Skip to content

Commit

Permalink
Run unload events on repeat row delete.
Browse files Browse the repository at this point in the history
We run a load event when we add a new subgroup (but not when we unhide
it), so we need to run a matching unload event when we delete a subgroup
(but not when we hide it).
  • Loading branch information
Sophist-UK committed Jan 20, 2018
1 parent c24381e commit 9f40a6b
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
16 changes: 16 additions & 0 deletions media/com_fabrik/js/element.js
Expand Up @@ -271,6 +271,22 @@ define(['jquery'], function (jQuery) {
this.addNewEvent(action, js);
},

/**
* Run unload events if repeat group row is being deleted
*/
runUnloadEvents: function () {
var events = this.events['unload'];
if (events) {
for (var i = 0; i < events.length; i++) {
try {
eval(js[i]);
} catch (error) {
fconsole('Error in', this.element.id , 'unload event javascript:', error.name, '-', error.message, "\r\n", js[i]);
}
}
}
},

validate: function () {
},

Expand Down
19 changes: 19 additions & 0 deletions media/com_fabrik/js/form.js
Expand Up @@ -1970,6 +1970,15 @@ define(['jquery', 'fab/encoder', 'fab/fabrik', 'lib/debounce/jquery.ba-throttle-
this.setRepeatButtons(group, i);
Fabrik.fireEvent('fabrik.form.group.delete.end', [this, e, i, delIndex]);
} else {

// Run unload events on each element being deleted
subGroup.getElements('.fabrikinput').each(function (dom,i,els) {
var object = this.getElementObject(els[i].id);
if (object) {
object.runUnloadEvents();
}
}.bind(this));

var toel = subGroup.getPrevious();
/*
var myFx = new Fx.Tween(subGroup, {
Expand Down Expand Up @@ -2034,6 +2043,16 @@ define(['jquery', 'fab/encoder', 'fab/fabrik', 'lib/debounce/jquery.ba-throttle-
this.setRepeatButtons(group, i);
},

getElementObject: function(el) {
for (form in Fabrik.blocks) {
var elements = Fabrik.blocks[form].elements;
if (elements.hasOwnProperty(el)) {
return elements[el];
}
}
return null;
},

hideLastGroup: function (groupId, subGroup) {
var sge = subGroup.getElement('.fabrikSubGroupElements');
var notice = new Element(
Expand Down

0 comments on commit 9f40a6b

Please sign in to comment.