Trigger change event for add/remove

Trigger change event for add_widget / remove_widget methods and refactor
the trigger into a method for uniformity
This commit is contained in:
cvillemure 2015-07-22 15:21:51 -04:00
commit 187e13a244
2 changed files with 20 additions and 7 deletions

View file

@ -158,7 +158,7 @@ to completely lock the widget.
### onchange(items)
Occurs when widgets change their position/size
Occurs when adding/removing widgets or existing widgets change their position/size
```javascript
var serialize_widget_map = function (items) {

View file

@ -509,6 +509,21 @@
$(window).resize(on_resize_handler);
on_resize_handler();
};
GridStack.prototype._trigger_change_event = function(forceTrigger) {
var elements = this.grid.get_dirty_nodes();
var hasChanges = false;
var eventParams = [];
if (elements && elements.length) {
eventParams.push(elements);
hasChanges = true;
}
if (hasChanges || forceTrigger === true) {
this.container.trigger('change', eventParams);
}
};
GridStack.prototype._init_styles = function() {
if (this._styles_id) {
@ -638,9 +653,7 @@
.attr('data-gs-height', node.height)
.removeAttr('style');
self._update_container_height();
var elements = self.grid.get_dirty_nodes();
if (elements && elements.length)
self.container.trigger('change', [elements]);
self._trigger_change_event();
self.grid.end_update();
};
@ -704,6 +717,7 @@
this.container.append(el);
this._prepare_element(el);
this._update_container_height();
this._trigger_change_event(true);
return el;
};
@ -722,6 +736,7 @@
this._update_container_height();
if (detach_node)
el.remove();
this._trigger_change_event(true);
};
GridStack.prototype.remove_all = function(detach_node) {
@ -846,9 +861,7 @@
callback.call(this, el, node);
self._update_container_height();
var elements = self.grid.get_dirty_nodes();
if (elements && elements.length)
self.container.trigger('change', [elements]);
self._trigger_change_event();
self.grid.end_update();
};