Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0737233

Browse files
authored
Merge pull request gridstack#638 from radiolips/bugfix/550
gridstack#550 gridstack#607
2 parents 66f46ce + 1bc10c1 commit 0737233

File tree

6 files changed

+57
-30
lines changed

6 files changed

+57
-30
lines changed

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -509,9 +509,14 @@ Changes
509509

510510
#### v0.3.0-dev (Development Version)
511511

512-
- trigger custom event for resizestop (gsresizestop) ([#577](https://github.com/troolee/gridstack.js/issues/577)).
513-
- prevent dragging/resizing in oneColumnMode ([#593](https://github.com/troolee/gridstack.js/issues/593)).
514-
- add oneColumnModeClass option to grid.
512+
- remove placeholder when dragging widget below grid (already worked when dragging left, above, and to the right of grid).
513+
- prevent extra checks for removing widget when dragging off grid.
514+
- trigger `added` when a widget is added via dropping from one grid to another.
515+
- trigger `removed` when a widget is removed via dropping from one grid to another.
516+
- trigger `removed` when a widget is removed via dropping on a removable zone ([#607](https://github.com/troolee/gridstack.js/issues/607) and [#550])(https://github.com/troolee/gridstack.js/issues/550)).
517+
- trigger custom event for `resizestop` called `gsresizestop` ([#577](https://github.com/troolee/gridstack.js/issues/577) and [#398](https://github.com/troolee/gridstack.js/issues/398)).
518+
- prevent dragging/resizing in `oneColumnMode` ([#593](https://github.com/troolee/gridstack.js/issues/593)).
519+
- add `oneColumnModeClass` option to grid.
515520
- remove 768px CSS styles, moved to grid-stack-one-column-mode class.
516521
- add max-width override on grid-stck-one-column-mode ([#462](https://github.com/troolee/gridstack.js/issues/462)).
517522
- add internal function`isNodeChangedPosition`, minor optimization to move/drag.

dist/gridstack.all.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/gridstack.js

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,10 @@
859859
node._grid = self;
860860
var el = $(ui.draggable).clone(false);
861861
el.data('_gridstack_node', node);
862+
var originalNode = $(ui.draggable).data('_gridstack_node_orig');
863+
if (typeof originalNode !== 'undefined') {
864+
originalNode._grid._triggerRemoveEvent();
865+
}
862866
$(ui.draggable).remove();
863867
node.el = el;
864868
self.placeholder.hide();
@@ -876,6 +880,8 @@
876880
self.container.append(el);
877881
self._prepareElementsByNode(el, node);
878882
self._updateContainerHeight();
883+
self.grid._addedNodes.push(node);
884+
self._triggerAddEvent();
879885
self._triggerChangeEvent();
880886

881887
self.grid.endUpdate();
@@ -1059,20 +1065,22 @@
10591065
}
10601066

10611067
if (event.type == 'drag') {
1062-
if (x < 0 || x >= self.grid.width || y < 0) {
1063-
if (self.opts.removable === true) {
1064-
self._setupRemovingTimeout(el);
1065-
}
1068+
if (x < 0 || x >= self.grid.width || y < 0 || (!self.grid.float && y > self.grid.getGridHeight())) {
1069+
if (!node._temporaryRemoved) {
1070+
if (self.opts.removable === true) {
1071+
self._setupRemovingTimeout(el);
1072+
}
10661073

1067-
x = node._beforeDragX;
1068-
y = node._beforeDragY;
1074+
x = node._beforeDragX;
1075+
y = node._beforeDragY;
10691076

1070-
self.placeholder.detach();
1071-
self.placeholder.hide();
1072-
self.grid.removeNode(node);
1073-
self._updateContainerHeight();
1077+
self.placeholder.detach();
1078+
self.placeholder.hide();
1079+
self.grid.removeNode(node);
1080+
self._updateContainerHeight();
10741081

1075-
node._temporaryRemoved = true;
1082+
node._temporaryRemoved = true;
1083+
}
10761084
} else {
10771085
self._clearRemovingTimeout(el);
10781086

@@ -1149,6 +1157,8 @@
11491157

11501158
if (node._isAboutToRemove) {
11511159
forceNotify = true;
1160+
var gridToNotify = el.data('_gridstack_node')._grid;
1161+
gridToNotify._triggerRemoveEvent();
11521162
el.removeData('_gridstack_node');
11531163
el.remove();
11541164
} else {
@@ -1183,6 +1193,7 @@
11831193
$(el).data('gridstack').onResizeHandler();
11841194
});
11851195
o.find('.grid-stack-item').trigger('resizestop');
1196+
o.find('.grid-stack-item').trigger('gsresizestop');
11861197
}
11871198
if (event.type == 'resizestop') {
11881199
self.container.trigger('gsresizestop', o);

dist/gridstack.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/gridstack.min.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/gridstack.js

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,10 @@
859859
node._grid = self;
860860
var el = $(ui.draggable).clone(false);
861861
el.data('_gridstack_node', node);
862+
var originalNode = $(ui.draggable).data('_gridstack_node_orig');
863+
if (typeof originalNode !== 'undefined') {
864+
originalNode._grid._triggerRemoveEvent();
865+
}
862866
$(ui.draggable).remove();
863867
node.el = el;
864868
self.placeholder.hide();
@@ -876,6 +880,8 @@
876880
self.container.append(el);
877881
self._prepareElementsByNode(el, node);
878882
self._updateContainerHeight();
883+
self.grid._addedNodes.push(node);
884+
self._triggerAddEvent();
879885
self._triggerChangeEvent();
880886

881887
self.grid.endUpdate();
@@ -1059,20 +1065,22 @@
10591065
}
10601066

10611067
if (event.type == 'drag') {
1062-
if (x < 0 || x >= self.grid.width || y < 0) {
1063-
if (self.opts.removable === true) {
1064-
self._setupRemovingTimeout(el);
1065-
}
1068+
if (x < 0 || x >= self.grid.width || y < 0 || (!self.grid.float && y > self.grid.getGridHeight())) {
1069+
if (!node._temporaryRemoved) {
1070+
if (self.opts.removable === true) {
1071+
self._setupRemovingTimeout(el);
1072+
}
10661073

1067-
x = node._beforeDragX;
1068-
y = node._beforeDragY;
1074+
x = node._beforeDragX;
1075+
y = node._beforeDragY;
10691076

1070-
self.placeholder.detach();
1071-
self.placeholder.hide();
1072-
self.grid.removeNode(node);
1073-
self._updateContainerHeight();
1077+
self.placeholder.detach();
1078+
self.placeholder.hide();
1079+
self.grid.removeNode(node);
1080+
self._updateContainerHeight();
10741081

1075-
node._temporaryRemoved = true;
1082+
node._temporaryRemoved = true;
1083+
}
10761084
} else {
10771085
self._clearRemovingTimeout(el);
10781086

@@ -1149,6 +1157,8 @@
11491157

11501158
if (node._isAboutToRemove) {
11511159
forceNotify = true;
1160+
var gridToNotify = el.data('_gridstack_node')._grid;
1161+
gridToNotify._triggerRemoveEvent();
11521162
el.removeData('_gridstack_node');
11531163
el.remove();
11541164
} else {
@@ -1183,6 +1193,7 @@
11831193
$(el).data('gridstack').onResizeHandler();
11841194
});
11851195
o.find('.grid-stack-item').trigger('resizestop');
1196+
o.find('.grid-stack-item').trigger('gsresizestop');
11861197
}
11871198
if (event.type == 'resizestop') {
11881199
self.container.trigger('gsresizestop', o);

0 commit comments

Comments
 (0)