mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Add canAddRow/canEditRow/canDeleteRow functionality for Backgrid.
This will allow user to check condition on individual opration(add/edit/delete row) rather than only while rendering the control.
This commit is contained in:
committed by
Dave Page
parent
0fb0820c64
commit
6e237d16ca
@@ -899,7 +899,9 @@
|
||||
},
|
||||
render: function() {
|
||||
// Clean up existing elements
|
||||
|
||||
this.undelegateEvents();
|
||||
this.$el.empty();
|
||||
|
||||
var field = _.defaults(this.field.toJSON(), this.defaults),
|
||||
attributes = this.model.toJSON(),
|
||||
@@ -927,6 +929,7 @@
|
||||
canAdd: (field.version_compatible &&
|
||||
evalF.apply(this.field, [data.canAdd, data, this.model])
|
||||
),
|
||||
canAddRow: data.canAddRow,
|
||||
canDelete: evalF.apply(this.field, [data.canDelete, data, this.model]),
|
||||
canEdit: evalF.apply(this.field, [data.canEdit, data, this.model])
|
||||
});
|
||||
@@ -978,7 +981,8 @@
|
||||
gridSchema.columns.unshift({
|
||||
name: "pg-backform-delete", label: "",
|
||||
cell: Backgrid.Extension.DeleteCell,
|
||||
editable: false, cell_priority: -1
|
||||
editable: false, cell_priority: -1,
|
||||
canDeleteRow: data.canDeleteRow
|
||||
});
|
||||
}
|
||||
|
||||
@@ -990,7 +994,7 @@
|
||||
|
||||
gridSchema.columns.unshift({
|
||||
name: "pg-backform-edit", label: "", cell : editCell,
|
||||
cell_priority: -2
|
||||
cell_priority: -2, canEditRow: data.canEditRow
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1041,7 +1045,9 @@
|
||||
if (!(data.disabled || data.canAdd == false)) {
|
||||
$dialog.find('button.add').first().click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var canAddRow = _.isFunction(data.canAddRow) ?
|
||||
data.canAddRow.apply(self, [self.model]) : true;
|
||||
if (canAddRow) {
|
||||
// Close any existing expanded row before adding new one.
|
||||
_.each(grid.body.rows, function(row){
|
||||
var editCell = row.$el.find(".subnode-edit-in-process").parent();
|
||||
@@ -1089,6 +1095,7 @@
|
||||
$(newRow).pgMakeVisible('backform-tab');
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1143,6 +1150,7 @@
|
||||
visible: evalF(data.visible, data, this.model),
|
||||
required: evalF(data.required, data, this.model),
|
||||
canAdd: evalF(data.canAdd, data, this.model),
|
||||
canAddRow: data.canAddRow,
|
||||
canEdit: evalF(data.canEdit, data, this.model),
|
||||
canDelete: evalF(data.canDelete, data, this.model)
|
||||
});
|
||||
@@ -1200,7 +1208,8 @@
|
||||
gridSchema.columns.unshift({
|
||||
name: "pg-backform-delete", label: "",
|
||||
cell: Backgrid.Extension.DeleteCell,
|
||||
editable: false, cell_priority: -1
|
||||
editable: false, cell_priority: -1,
|
||||
canDeleteRow: data.canDeleteRow
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1214,7 +1223,8 @@
|
||||
|
||||
gridSchema.columns.unshift({
|
||||
name: "pg-backform-edit", label: "", cell : editCell,
|
||||
cell_priority: -2, editable: canEdit
|
||||
cell_priority: -2, editable: canEdit,
|
||||
canEditRow: data.canEditRow
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1273,6 +1283,9 @@
|
||||
// Add button callback
|
||||
$dialog.find('button.add').click(function(e) {
|
||||
e.preventDefault();
|
||||
var canAddRow = _.isFunction(data.canAddRow) ?
|
||||
data.canAddRow.apply(self, [self.model]) : true;
|
||||
if (canAddRow) {
|
||||
// Close any existing expanded row before adding new one.
|
||||
_.each(grid.body.rows, function(row){
|
||||
var editCell = row.$el.find(".subnode-edit-in-process").parent();
|
||||
@@ -1291,6 +1304,7 @@
|
||||
});
|
||||
$(newRow).pgMakeVisible('backform-tab');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return $dialog;
|
||||
@@ -1662,8 +1676,11 @@
|
||||
subnode: ((_.isString(s.model) && s.model in pgBrowser.Nodes) ?
|
||||
pgBrowser.Nodes[s.model].model : s.model),
|
||||
canAdd: (disabled ? false : evalASFunc(s.canAdd)),
|
||||
canAddRow: (disabled ? false : evalASFunc(s.canAddRow)),
|
||||
canEdit: (disabled ? false : evalASFunc(s.canEdit)),
|
||||
canDelete: (disabled ? false : evalASFunc(s.canDelete)),
|
||||
canEditRow: (disabled ? false : evalASFunc(s.canEditRow)),
|
||||
canDeleteRow: (disabled ? false : evalASFunc(s.canDeleteRow)),
|
||||
transform: evalASFunc(s.transform),
|
||||
mode: mode,
|
||||
control: control,
|
||||
|
||||
Reference in New Issue
Block a user