Hi Akshay,
Please find the updated patch.
On Fri, Sep 17, 2021 at 8:55 PM Akshay Joshi <[email protected]>
wrote:
> Hi Rahul
>
> Patch not applied, rebase and send the patch again.
>
> On Thu, Sep 16, 2021 at 6:39 PM Rahul Shirsat <
> [email protected]> wrote:
>
>> Hi Hackers,
>>
>> Please find the attached patch which resolves the below issue:
>>
>> 1. Enum Type - Unable to delete rows for Enum type in Create Type
>> dialogue.
>> 2. Range Type - Loading icons are shown in different drop down tabs.
>>
>> --
>> *Rahul Shirsat*
>> Senior Software Engineer | EnterpriseDB Corporation.
>>
>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
> *pgAdmin Hacker | Principal Software Architect*
> *EDB Postgres <http://edbpostgres.com>*
>
> *Mobile: +91 976-788-8246*
>
--
*Rahul Shirsat*
Senior Software Engineer | EnterpriseDB Corporation.
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/static/js/type.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/static/js/type.ui.js
index 16d13816b..d989ce6e2 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/static/js/type.ui.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/static/js/type.ui.js
@@ -54,6 +54,8 @@ function getRangeSchema(nodeObj, treeNodeInfo, itemNodeData) {
}).catch((err)=>{
reject(err);
});
+ } else {
+ resolve(data);
}
});
},
@@ -80,6 +82,8 @@ function getRangeSchema(nodeObj, treeNodeInfo, itemNodeData) {
}).catch((err)=>{
reject(err);
});
+ } else {
+ resolve(data);
}
});
},
@@ -107,6 +111,8 @@ function getRangeSchema(nodeObj, treeNodeInfo, itemNodeData) {
}).catch((err)=>{
reject(err);
});
+ } else {
+ resolve(data);
}
});
},
@@ -157,11 +163,10 @@ class EnumerationSchema extends BaseUISchema {
return [
{
id: 'label', label: gettext('Label'),
- type: 'text', cell: 'text',
- cellHeaderClasses: 'width_percent_99',
- readonly: function (state) {
- return !obj.isNew(state);
- },
+ type: 'text', cell: 'text', minWidth: 640,
+ editable: (state) => {
+ return _.isUndefined(obj.isNew) ? true : obj.isNew(state);
+ }
}
];
}
@@ -1313,6 +1318,24 @@ export default class TypeSchema extends BaseUISchema {
this.nodeInfo = this.fieldOptions.node_info;
}
+ isInvalidColumnAdded(state) {
+
+ let tempCol = _.map(state.enum, 'label');
+ let dontAddColumn = false;
+
+ if(tempCol.length == 1 && tempCol[0] == undefined) {
+ dontAddColumn = true;
+ } else {
+ tempCol.forEach(function(enumVal) {
+ if(enumVal == undefined) {
+ dontAddColumn = true;
+ return;
+ }
+ });
+ }
+ return dontAddColumn;
+ }
+
schemaCheck(state) {
if(this.fieldOptions.node_info && 'schema' in this.fieldOptions.node_info)
{
@@ -1420,14 +1443,17 @@ export default class TypeSchema extends BaseUISchema {
{
id: 'enum', label: gettext('Enumeration type'),
schema: new EnumerationSchema(),
- editable: true,
type: 'collection',
group: gettext('Definition'), mode: ['edit', 'create'],
- canAdd: true, canEdit: false,
- canDelete: function(state) {
+ canAddRow: function(state) {
+ return !obj.isInvalidColumnAdded(state);
+ },
+ canEdit: false,
+ canDeleteRow: function(state) {
// We will disable it if it's in 'edit' mode
- return !obj.isNew(state);
+ return obj.isNew(state);
},
+ canEditRow: false,
disabled: () => obj.inCatalog(),
deps: ['typtype'],
uniqueCol : ['label'],