Fixed an issue where referenced table drop-down should be disabled in

foreign key -> columns after one row is added.

Fixes #6906
pull/63/head
Nikhil Mohite 2021-11-18 12:22:14 +05:30 committed by Akshay Joshi
parent e1020aefdd
commit 3d5d507f4b
3 changed files with 36 additions and 2 deletions

View File

@ -11,6 +11,7 @@ notes for it.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
release_notes_6_3
release_notes_6_2 release_notes_6_2
release_notes_6_1 release_notes_6_1
release_notes_6_0 release_notes_6_0

View File

@ -0,0 +1,20 @@
************
Version 6.3
************
Release date: 2021-12-16
This release contains a number of bug fixes and new features since the release of pgAdmin4 6.2.
New features
************
Housekeeping
************
Bug fixes
*********
| `Issue #6906 <https://redmine.postgresql.org/issues/6906>`_ - Fixed an issue where referenced table drop-down should be disabled in foreign key -> columns after one row is added.

View File

@ -37,6 +37,7 @@ class ForeignKeyHeaderSchema extends BaseUISchema {
local_column: undefined, local_column: undefined,
references: undefined, references: undefined,
referenced: undefined, referenced: undefined,
_disable_references: false,
}); });
this.fieldOptions = fieldOptions; this.fieldOptions = fieldOptions;
@ -48,12 +49,12 @@ class ForeignKeyHeaderSchema extends BaseUISchema {
} }
addDisabled(state) { 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 */ /* Data to ForeignKeyColumnSchema will added using the header form */
getNewData(data) { 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 { return {
local_column: data.local_column, local_column: data.local_column,
referenced: data.referenced, referenced: data.referenced,
@ -73,6 +74,9 @@ class ForeignKeyHeaderSchema extends BaseUISchema {
options: this.fieldOptions.references, options: this.fieldOptions.references,
optionsReloadBasis: this.fieldOptions.references?.map ? _.join(this.fieldOptions.references.map((c)=>c.label), ',') : null, optionsReloadBasis: this.fieldOptions.references?.map ? _.join(this.fieldOptions.references.map((c)=>c.label), ',') : null,
optionsLoaded: (rows)=>obj.refTables=rows, optionsLoaded: (rows)=>obj.refTables=rows,
disabled: (state) => {
return state._disable_references ? true : false;
}
},{ },{
id: 'referenced', label: gettext('Referencing'), editable: false, deps: ['references'], id: 'referenced', label: gettext('Referencing'), editable: false, deps: ['references'],
type: (state)=>{ type: (state)=>{
@ -82,6 +86,9 @@ class ForeignKeyHeaderSchema extends BaseUISchema {
optionsReloadBasis: state.references, 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}; return {columns: currColumns};
}, },
},{ },{