When we use deps functionality, backform controls re-render then. But before we re-render them we must remove old grid (if any) otherwise is causes js error "Unable to call exitEditMode of undefined". Fixes #1497

This commit is contained in:
Harshal Dhumal 2016-07-25 14:31:17 +01:00 committed by Dave Page
parent 9dd3cf2399
commit 875360d1c8
3 changed files with 26 additions and 5 deletions

View File

@ -371,6 +371,11 @@ function($, _, S, pgAdmin, pgBrowser, Alertify) {
titleTmpl({label: data.label})
);
// Clean up existing grid if any (in case of re-render)
if (self.grid) {
self.grid.remove();
}
$gridBody.append(self.generateHeader(data));
var gridSchema = _.clone(this.gridSchema);

View File

@ -380,6 +380,11 @@
titleTmpl(data)
);
// Clean up existing grid if any (in case of re-render)
if (self.grid) {
self.grid.remove();
}
var gridSchema = _.clone(this.gridSchema);
_.each(gridSchema.columns, function(col) {

View File

@ -967,7 +967,8 @@
return this;
},
showGridControl: function(data) {
var gridHeader = _.template([
var self = this,
gridHeader = _.template([
'<div class="subnode-header">',
' <label class="control-label pg-el-sm-10"><%-label%></label>',
' <button class="btn-sm btn-default add" <%=canAdd ? "" : "disabled=\'disabled\'"%>><%-add_label%></buttton>',
@ -976,6 +977,11 @@
gridHeader(data)
);
// Clean up existing grid if any (in case of re-render)
if (self.grid) {
self.grid.remove();
}
if (!(data.subnode)) {
return '';
}
@ -983,8 +989,7 @@
var subnode = data.subnode.schema ? data.subnode : data.subnode.prototype,
gridSchema = Backform.generateGridColumnsFromModel(
data.node_info, subnode, this.field.get('mode'), data.columns
),
self = this;
);
// Set visibility of Add button
if (data.mode == 'properties') {
@ -1201,7 +1206,8 @@
return this;
},
showGridControl: function(data) {
var gridHeader = ["<div class='subnode-header'>",
var self = this,
gridHeader = ["<div class='subnode-header'>",
" <label class='control-label pg-el-sm-10'>" + data.label + "</label>" ,
" <button class='btn-sm btn-default add'>Add</buttton>",
"</div>"].join("\n");
@ -1210,9 +1216,14 @@
var subnode = data.subnode.schema ? data.subnode : data.subnode.prototype,
gridSchema = Backform.generateGridColumnsFromModel(
data.node_info, subnode, this.field.get('mode'), data.columns, data.schema_node
), self = this,
),
pgBrowser = window.pgAdmin.Browser;
// Clean up existing grid if any (in case of re-render)
if (self.grid) {
self.grid.remove();
}
// Set visibility of Add button
if (data.disabled || data.canAdd == false) {
$(gridBody).find("button.add").remove();