Hi Akshay, Please find the updated patch.
On Fri, Sep 17, 2021 at 8:55 PM Akshay Joshi <akshay.jo...@enterprisedb.com> wrote: > Hi Rahul > > Patch not applied, rebase and send the patch again. > > On Thu, Sep 16, 2021 at 6:39 PM Rahul Shirsat < > rahul.shir...@enterprisedb.com> 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'],