mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fixed exclusion constraint issues:
1. Incorrect error message. 2. Properties panel Column Section data missing 3. Operator class value is missing Fixes #6771
This commit is contained in:
parent
a6dce27ffa
commit
d28f8bc7ee
@ -128,7 +128,7 @@ class ExclusionColumnSchema extends BaseUISchema {
|
|||||||
get baseFields() {
|
get baseFields() {
|
||||||
let obj = this;
|
let obj = this;
|
||||||
return [{
|
return [{
|
||||||
id: 'is_exp', label: '', type:'', editable: false, width: 20,
|
id: 'is_exp', label: '', type:'', cell: '', editable: false, width: 20,
|
||||||
disableResizing: true,
|
disableResizing: true,
|
||||||
controlProps: {
|
controlProps: {
|
||||||
formatter: {
|
formatter: {
|
||||||
@ -221,6 +221,9 @@ export default class ExclusionConstraintSchema extends BaseUISchema {
|
|||||||
initialise(data) {
|
initialise(data) {
|
||||||
this.exColumnSchema.isNewExCons = this.isNew(data);
|
this.exColumnSchema.isNewExCons = this.isNew(data);
|
||||||
this.amname = data.amname;
|
this.amname = data.amname;
|
||||||
|
if(data.amname === 'btree') {
|
||||||
|
this.exColumnSchema.setOperClassOptions(this.fieldOptions.getOperClass({indextype: data.amname}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
changeColumnOptions(columns) {
|
changeColumnOptions(columns) {
|
||||||
@ -246,7 +249,7 @@ export default class ExclusionConstraintSchema extends BaseUISchema {
|
|||||||
id: 'oid', label: gettext('OID'), cell: 'string',
|
id: 'oid', label: gettext('OID'), cell: 'string',
|
||||||
type: 'text' , mode: ['properties'],
|
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'],
|
type: 'switch', mode: ['properties'],
|
||||||
},{
|
},{
|
||||||
id: 'comment', label: gettext('Comment'), cell: 'text',
|
id: 'comment', label: gettext('Comment'), cell: 'text',
|
||||||
@ -340,13 +343,13 @@ export default class ExclusionConstraintSchema extends BaseUISchema {
|
|||||||
},{
|
},{
|
||||||
id: 'columns', label: gettext('Columns/Expressions'),
|
id: 'columns', label: gettext('Columns/Expressions'),
|
||||||
group: gettext('Columns'), type: 'collection',
|
group: gettext('Columns'), type: 'collection',
|
||||||
mode: ['create', 'edit'],
|
mode: ['create', 'edit', 'properties'],
|
||||||
editable: false, schema: this.exColumnSchema,
|
editable: false, schema: this.exColumnSchema,
|
||||||
headerSchema: this.exHeaderSchema, headerVisible: (state)=>obj.isNew(state),
|
headerSchema: this.exHeaderSchema, headerVisible: (state)=>obj.isNew(state),
|
||||||
CustomControl: DataGridViewWithHeaderForm,
|
CustomControl: DataGridViewWithHeaderForm,
|
||||||
uniqueCol: ['column'],
|
uniqueCol: ['column'],
|
||||||
canAdd: false, canDelete: function(state) {
|
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);
|
return obj.isNew(state);
|
||||||
},
|
},
|
||||||
readonly: obj.isReadonly, cell: ()=>({
|
readonly: obj.isReadonly, cell: ()=>({
|
||||||
@ -425,7 +428,7 @@ export default class ExclusionConstraintSchema extends BaseUISchema {
|
|||||||
|
|
||||||
validate(state, setError) {
|
validate(state, setError) {
|
||||||
if ((_.isUndefined(state.columns) || _.isNull(state.columns) || state.columns.length < 1)) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,18 +110,21 @@ export function getFieldMetaData(field, schema, value, viewHelperProps, onlyMode
|
|||||||
(_.isUndefined(field.max_version) ? true :
|
(_.isUndefined(field.max_version) ? true :
|
||||||
(viewHelperProps.serverInfo.version <= field.max_version))));
|
(viewHelperProps.serverInfo.version <= field.max_version))));
|
||||||
|
|
||||||
let _readonly = viewHelperProps.inCatalog || (viewHelperProps.mode == 'properties');
|
retData.readonly = viewHelperProps.inCatalog || (viewHelperProps.mode == 'properties');
|
||||||
if(!_readonly) {
|
if(!retData.readonly) {
|
||||||
_readonly = evalFunc(schema, readonly, value);
|
retData.readonly = evalFunc(schema, readonly, value);
|
||||||
}
|
}
|
||||||
retData.readonly = _readonly;
|
|
||||||
|
|
||||||
let _visible = verInLimit;
|
let _visible = verInLimit;
|
||||||
_visible = _visible && evalFunc(schema, _.isUndefined(visible) ? true : visible, value);
|
_visible = _visible && evalFunc(schema, _.isUndefined(visible) ? true : visible, value);
|
||||||
retData.visible = Boolean(_visible);
|
retData.visible = Boolean(_visible);
|
||||||
|
|
||||||
retData.disabled = Boolean(evalFunc(schema, disabled, value));
|
retData.disabled = Boolean(evalFunc(schema, disabled, value));
|
||||||
|
|
||||||
|
retData.editable = !(viewHelperProps.inCatalog || (viewHelperProps.mode == 'properties'));
|
||||||
|
if(retData.editable) {
|
||||||
retData.editable = evalFunc(schema, _.isUndefined(editable) ? true : editable, value);
|
retData.editable = evalFunc(schema, _.isUndefined(editable) ? true : editable, value);
|
||||||
|
}
|
||||||
|
|
||||||
let {canAdd, canEdit, canDelete, canAddRow } = field;
|
let {canAdd, canEdit, canDelete, canAddRow } = field;
|
||||||
retData.canAdd = _.isUndefined(canAdd) ? retData.canAdd : evalFunc(schema, canAdd, value);
|
retData.canAdd = _.isUndefined(canAdd) ? retData.canAdd : evalFunc(schema, canAdd, value);
|
||||||
|
@ -789,6 +789,7 @@ function SchemaPropertiesView({
|
|||||||
setLoaderText('Loading...');
|
setLoaderText('Loading...');
|
||||||
getInitData().then((data)=>{
|
getInitData().then((data)=>{
|
||||||
data = data || {};
|
data = data || {};
|
||||||
|
schema.initialise(data);
|
||||||
if(!unmounted) {
|
if(!unmounted) {
|
||||||
setOrigData(data || {});
|
setOrigData(data || {});
|
||||||
setLoaderText('');
|
setLoaderText('');
|
||||||
@ -839,7 +840,7 @@ function SchemaPropertiesView({
|
|||||||
schema={field.schema}
|
schema={field.schema}
|
||||||
accessPath={[field.id]}
|
accessPath={[field.id]}
|
||||||
formErr={{}}
|
formErr={{}}
|
||||||
controlClassName={classes.controlRow}
|
containerClassName={classes.controlRow}
|
||||||
canAdd={false}
|
canAdd={false}
|
||||||
canEdit={false}
|
canEdit={false}
|
||||||
canDelete={false}
|
canDelete={false}
|
||||||
|
Loading…
Reference in New Issue
Block a user