diff --git a/modules/backend/formwidgets/repeater/assets/js/repeater.js b/modules/backend/formwidgets/repeater/assets/js/repeater.js index a8963218b..68fa766fe 100644 --- a/modules/backend/formwidgets/repeater/assets/js/repeater.js +++ b/modules/backend/formwidgets/repeater/assets/js/repeater.js @@ -39,6 +39,8 @@ Repeater.prototype.init = function() { this.bindSorting() + this.$el.on('ajaxDone', '[data-repeater-remove]', this.proxy(this.onRemoveItemSuccess)) + this.$el.on('ajaxDone', '[data-repeater-add]', this.proxy(this.onAddItemSuccess)) this.$el.on('click', '> ul > li > .repeater-item-collapse .repeater-item-collapse-one', this.proxy(this.toggleCollapse)) this.$el.one('dispose-control', this.proxy(this.dispose)) @@ -47,6 +49,8 @@ Repeater.prototype.dispose = function() { this.$sortable.sortable('destroy') + this.$el.off('ajaxDone', '[data-repeater-remove]', this.proxy(this.onRemoveItemSuccess)) + this.$el.off('ajaxDone', '[data-repeater-add]', this.proxy(this.onAddItemSuccess)) this.$el.off('click', '> ul > li > .repeater-item-collapse .repeater-item-collapse-one', this.proxy(this.toggleCollapse)) this.$el.off('dispose-control', this.proxy(this.dispose)) @@ -73,6 +77,14 @@ this.$sortable.sortable(sortableOptions) } + Repeater.prototype.onRemoveItemSuccess = function(ev) { + $(ev.target).closest('.field-repeater-item').remove() + } + + // This fires twice, not sure why + Repeater.prototype.onAddItemSuccess = function(ev) { + } + Repeater.prototype.toggleCollapse = function(ev) { var $item = $(ev.target).closest('.field-repeater-item'), isCollapsed = $item.hasClass('collapsed') diff --git a/modules/backend/formwidgets/repeater/partials/_repeater.htm b/modules/backend/formwidgets/repeater/partials/_repeater.htm index 59cba2994..c713ac298 100644 --- a/modules/backend/formwidgets/repeater/partials/_repeater.htm +++ b/modules/backend/formwidgets/repeater/partials/_repeater.htm @@ -15,6 +15,7 @@
diff --git a/modules/backend/formwidgets/repeater/partials/_repeater_item.htm b/modules/backend/formwidgets/repeater/partials/_repeater_item.htm index c28726ac4..5e195c338 100644 --- a/modules/backend/formwidgets/repeater/partials/_repeater_item.htm +++ b/modules/backend/formwidgets/repeater/partials/_repeater_item.htm @@ -9,9 +9,9 @@ type="button" class="close" aria-label="Remove" + data-repeater-remove data-request="getEventHandler('onRemoveItem') ?>" data-request-data="'index': ''" - data-request-success="$(this).closest('.field-repeater-item').remove()" data-request-confirm="">