Hi Hackers, Please find the attached patch for RM-6906: <https://redmine.postgresql.org/issues/6906> Referenced Table drop-down should be disabled in foreign Key > Columns after one row is added.
-- *Thanks & Regards,* *Nikhil Mohite* *Senior Software Engineer.* *EDB Postgres* <https://www.enterprisedb.com/> *Mob.No: +91-7798364578.*
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/static/js/foreign_key.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/static/js/foreign_key.ui.js index 4aae23bd..7cfd3b5d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/static/js/foreign_key.ui.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/static/js/foreign_key.ui.js @@ -37,6 +37,7 @@ class ForeignKeyHeaderSchema extends BaseUISchema { local_column: undefined, references: undefined, referenced: undefined, + _disable_references: false, }); this.fieldOptions = fieldOptions; @@ -48,12 +49,12 @@ class ForeignKeyHeaderSchema extends BaseUISchema { } addDisabled(state) { - return !(state.local_column && state.references && state.referenced); + return !(state.local_column && (state.references || this.origData.references) && state.referenced); } /* Data to ForeignKeyColumnSchema will added using the header form */ getNewData(data) { - let references_table_name = _.find(this.refTables, (t)=>t.value==data.references)?.label; + let references_table_name = _.find(this.refTables, (t)=>t.value==data.references || t.value == this.origData.references)?.label; return { local_column: data.local_column, referenced: data.referenced, @@ -73,6 +74,9 @@ class ForeignKeyHeaderSchema extends BaseUISchema { options: this.fieldOptions.references, optionsReloadBasis: this.fieldOptions.references?.map ? _.join(this.fieldOptions.references.map((c)=>c.label), ',') : null, optionsLoaded: (rows)=>obj.refTables=rows, + disabled: (state) => { + return state._disable_references ? true : false; + } },{ id: 'referenced', label: gettext('Referencing'), editable: false, deps: ['references'], type: (state)=>{ @@ -82,6 +86,9 @@ class ForeignKeyHeaderSchema extends BaseUISchema { optionsReloadBasis: state.references, }; }, + }, + { + id: '_disable_references', label: '', type: 'switch', visible: false }]; } } @@ -358,6 +365,12 @@ export default class ForeignKeySchema extends BaseUISchema { } } } + if(actionObj.type == SCHEMA_STATE_ACTIONS.ADD_ROW) { + obj.fkHeaderSchema.origData.references = null; + // Set references value. + obj.fkHeaderSchema.origData.references = obj.fkHeaderSchema.sessData.references; + obj.fkHeaderSchema.origData._disable_references = true; + } return {columns: currColumns}; }, },{