diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/static/js/exclusion_constraint.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/static/js/exclusion_constraint.ui.js index a1bf0c589..523bd8f94 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/static/js/exclusion_constraint.ui.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/static/js/exclusion_constraint.ui.js @@ -128,7 +128,7 @@ class ExclusionColumnSchema extends BaseUISchema { get baseFields() { let obj = this; return [{ - id: 'is_exp', label: '', type:'', editable: false, width: 20, + id: 'is_exp', label: '', type:'', cell: '', editable: false, width: 20, disableResizing: true, controlProps: { formatter: { @@ -221,6 +221,9 @@ export default class ExclusionConstraintSchema extends BaseUISchema { initialise(data) { this.exColumnSchema.isNewExCons = this.isNew(data); this.amname = data.amname; + if(data.amname === 'btree') { + this.exColumnSchema.setOperClassOptions(this.fieldOptions.getOperClass({indextype: data.amname})); + } } changeColumnOptions(columns) { @@ -246,7 +249,7 @@ export default class ExclusionConstraintSchema extends BaseUISchema { id: 'oid', label: gettext('OID'), cell: 'string', type: 'text' , mode: ['properties'], },{ - id: 'is_sys_obj', label: gettext('System foreign key?'), + id: 'is_sys_obj', label: gettext('System exclusion constraint?'), type: 'switch', mode: ['properties'], },{ id: 'comment', label: gettext('Comment'), cell: 'text', @@ -340,13 +343,13 @@ export default class ExclusionConstraintSchema extends BaseUISchema { },{ id: 'columns', label: gettext('Columns/Expressions'), group: gettext('Columns'), type: 'collection', - mode: ['create', 'edit'], + mode: ['create', 'edit', 'properties'], editable: false, schema: this.exColumnSchema, headerSchema: this.exHeaderSchema, headerVisible: (state)=>obj.isNew(state), CustomControl: DataGridViewWithHeaderForm, uniqueCol: ['column'], canAdd: false, canDelete: function(state) { - // We can't update columns of existing foreign key. + // We can't update columns of existing return obj.isNew(state); }, readonly: obj.isReadonly, cell: ()=>({ @@ -425,7 +428,7 @@ export default class ExclusionConstraintSchema extends BaseUISchema { validate(state, setError) { if ((_.isUndefined(state.columns) || _.isNull(state.columns) || state.columns.length < 1)) { - setError('columns', gettext('Please specify columns for Foreign key.')); + setError('columns', gettext('Please specify columns for exclusion constraint.')); return true; } diff --git a/web/pgadmin/static/js/SchemaView/FormView.jsx b/web/pgadmin/static/js/SchemaView/FormView.jsx index 1749a2eba..03f63ae5b 100644 --- a/web/pgadmin/static/js/SchemaView/FormView.jsx +++ b/web/pgadmin/static/js/SchemaView/FormView.jsx @@ -110,18 +110,21 @@ export function getFieldMetaData(field, schema, value, viewHelperProps, onlyMode (_.isUndefined(field.max_version) ? true : (viewHelperProps.serverInfo.version <= field.max_version)))); - let _readonly = viewHelperProps.inCatalog || (viewHelperProps.mode == 'properties'); - if(!_readonly) { - _readonly = evalFunc(schema, readonly, value); + retData.readonly = viewHelperProps.inCatalog || (viewHelperProps.mode == 'properties'); + if(!retData.readonly) { + retData.readonly = evalFunc(schema, readonly, value); } - retData.readonly = _readonly; let _visible = verInLimit; _visible = _visible && evalFunc(schema, _.isUndefined(visible) ? true : visible, value); retData.visible = Boolean(_visible); retData.disabled = Boolean(evalFunc(schema, disabled, value)); - retData.editable = evalFunc(schema, _.isUndefined(editable) ? true : editable, value); + + retData.editable = !(viewHelperProps.inCatalog || (viewHelperProps.mode == 'properties')); + if(retData.editable) { + retData.editable = evalFunc(schema, _.isUndefined(editable) ? true : editable, value); + } let {canAdd, canEdit, canDelete, canAddRow } = field; retData.canAdd = _.isUndefined(canAdd) ? retData.canAdd : evalFunc(schema, canAdd, value); diff --git a/web/pgadmin/static/js/SchemaView/index.jsx b/web/pgadmin/static/js/SchemaView/index.jsx index d21f23fb2..0f3182f47 100644 --- a/web/pgadmin/static/js/SchemaView/index.jsx +++ b/web/pgadmin/static/js/SchemaView/index.jsx @@ -789,6 +789,7 @@ function SchemaPropertiesView({ setLoaderText('Loading...'); getInitData().then((data)=>{ data = data || {}; + schema.initialise(data); if(!unmounted) { setOrigData(data || {}); setLoaderText(''); @@ -839,7 +840,7 @@ function SchemaPropertiesView({ schema={field.schema} accessPath={[field.id]} formErr={{}} - controlClassName={classes.controlRow} + containerClassName={classes.controlRow} canAdd={false} canEdit={false} canDelete={false}