GridField - Add Inline now only affects the current grid field, not nested or outer grid fields.

This commit is contained in:
Mellisa Hankins 2015-03-04 11:00:48 +11:00
parent ad55ceda83
commit c19ace1be5

View File

@ -79,26 +79,30 @@
$(".ss-gridfield.ss-gridfield-editable").entwine({ $(".ss-gridfield.ss-gridfield-editable").entwine({
reload: function(opts, success) { reload: function(opts, success) {
var grid = this; var grid = this;
var added = grid.find(".ss-gridfield-inline-new").detach(); var added = grid.find("tbody:first").find(".ss-gridfield-inline-new").detach();
this._super(opts, function() { this._super(opts, function() {
if(added.length) { if(added.length) {
added.appendTo(grid.find("tbody")); added.appendTo(grid.find("tbody:first"));
grid.find(".ss-gridfield-no-items").hide(); grid.find("tbody:first").children(".ss-gridfield-no-items").hide();
} }
if(success) success.apply(grid, arguments); if(success) success.apply(grid, arguments);
}); });
}, },
onaddnewinline: function() { onaddnewinline: function(e) {
if(e.target != this[0]) {
return;
}
var tmpl = window.tmpl; var tmpl = window.tmpl;
var row = this.find(".ss-gridfield-add-inline-template"); var row = this.find(".ss-gridfield-add-inline-template:last");
var num = this.data("add-inline-num") || 1; var num = this.data("add-inline-num") || 1;
tmpl.cache["ss-gridfield-add-inline-template"] = tmpl(row.html()); tmpl.cache[this[0].id + "ss-gridfield-add-inline-template"] = tmpl(row.html());
this.find("tbody").append(tmpl("ss-gridfield-add-inline-template", { num: num })); this.find("tbody:first").append(tmpl(this[0].id + "ss-gridfield-add-inline-template", { num: num }));
this.find(".ss-gridfield-no-items").hide(); this.find("tbody:first").children(".ss-gridfield-no-items").hide();
this.data("add-inline-num", num + 1); this.data("add-inline-num", num + 1);
} }
}); });
@ -115,7 +119,7 @@
var msg = ss.i18n._t("GridFieldExtensions.CONFIRMDEL", "Are you sure you want to delete this?"); var msg = ss.i18n._t("GridFieldExtensions.CONFIRMDEL", "Are you sure you want to delete this?");
if(confirm(msg)) { if(confirm(msg)) {
this.parents("tr").remove(); this.parents("tr.ss-gridfield-inline-new:first").remove();
} }
return false; return false;