Skip to content

Commit c9971a6

Browse files
committed
Merge commit '99653bded3afc20d67660bb98c76cf5e0e70139d'
2 parents 19a5219 + 99653bd commit c9971a6

File tree

14 files changed

+158
-81
lines changed

14 files changed

+158
-81
lines changed

Gruntfile.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ module.exports = function(grunt) {
6969
target: './doc/README.md'
7070
}
7171
},
72+
faq: {
73+
options: {
74+
target: './doc/FAQ.md'
75+
}
76+
},
7277
},
7378

7479
jshint: {
@@ -93,7 +98,7 @@ module.exports = function(grunt) {
9398
},
9499
},
95100
docs: {
96-
files: ['README.md', 'doc/README.md'],
101+
files: ['README.md', 'doc/README.md', 'doc/FAQ.md'],
97102
tasks: ['doctoc'],
98103
options: {
99104
},

README.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Join gridstack.js on Slack: https://gridstackjs.troolee.com
2727
- [Basic usage](#basic-usage)
2828
- [Migrating to v0.2.5](#migrating-to-v025)
2929
- [API Documentation](#api-documentation)
30+
- [Questions and Answers](#questions-and-answers)
3031
- [Touch devices support](#touch-devices-support)
3132
- [Use with knockout.js](#use-with-knockoutjs)
3233
- [Use with angular.js](#use-with-angularjs)
@@ -44,7 +45,7 @@ Join gridstack.js on Slack: https://gridstackjs.troolee.com
4445
- [Using AniJS](#using-anijs)
4546
- [The Team](#the-team)
4647
- [Changes](#changes)
47-
- [v0.2.5-dev (Development version)](#v025-dev-development-version)
48+
- [v0.2.5 (2016-03-02)](#v025-2016-03-02)
4849
- [v0.2.4 (2016-02-15)](#v024-2016-02-15)
4950
- [v0.2.3 (2015-06-23)](#v023-2015-06-23)
5051
- [v0.2.2 (2014-12-23)](#v022-2014-12-23)
@@ -59,15 +60,15 @@ Join gridstack.js on Slack: https://gridstackjs.troolee.com
5960
Demo
6061
====
6162

62-
Please visit http://troolee.github.io/gridstack.js/ for demo.
63+
Please visit http://troolee.github.io/gridstack.js/ for demo. Or check out [these example](http://troolee.github.io/gridstack.js/demo/).
6364

6465

6566
Usage
6667
=====
6768

6869
## Requirements
6970

70-
* [lodash.js](https://lodash.com) (>= 3.5.0)
71+
* [lodash.js](https://lodash.com) (>= 3.5.0, full build)
7172
* [jQuery](http://jquery.com) (>= 1.11.0)
7273
* [jQuery UI](http://jqueryui.com) (>= 1.11.0). Minimum required components: Core, Widget, Mouse, Draggable, Resizable
7374
* (Optional) [jquery-ui-touch-punch](https://github.com/furf/jquery-ui-touch-punch) for touch-based devices support
@@ -79,8 +80,8 @@ Note: You can still use [underscore.js](http://underscorejs.org) (>= 1.7.0) inst
7980
* Using CDN:
8081

8182
```html
82-
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/gridstack.js/0.2.4/gridstack.min.css" />
83-
<script type="text/javascript" src='//cdnjs.cloudflare.com/ajax/libs/gridstack.js/0.2.4/gridstack.min.js'></script>
83+
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/gridstack.js/0.2.5/gridstack.min.css" />
84+
<script type="text/javascript" src='//cdnjs.cloudflare.com/ajax/libs/gridstack.js/0.2.5/gridstack.min.js'></script>
8485
```
8586

8687
* Using bower:
@@ -136,6 +137,13 @@ when they will be completely removed.
136137

137138
Please check out `doc/README.md` for more information about gridstack.js API.
138139

140+
## Questions and Answers
141+
142+
Please feel free to as a questions here in issues, using [Stackoverflow](http://stackoverflow.com/search?q=gridstack) or [Slack chat](https://gridstackjs.troolee.com).
143+
We will glad to answer and help you as soon as we can.
144+
145+
Also please check our FAQ `doc/FAQ.md` before asking in case the answer is already there.
146+
139147
## Touch devices support
140148

141149
Please use [jQuery UI Touch Punch](https://github.com/furf/jquery-ui-touch-punch) to make jQuery UI Draggable/Resizable
@@ -465,7 +473,7 @@ for help.
465473
Changes
466474
=======
467475

468-
#### v0.2.5-dev (Development version)
476+
#### v0.2.5 (2016-03-02)
469477

470478
- update names to respect js naming convention.
471479
- `cellHeight` and `verticalMargin` can now be string (e.g. '3em', '20px') (Thanks to @jlowcs).

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gridstack",
3-
"version": "0.2.5-dev",
3+
"version": "0.2.5",
44
"homepage": "https://github.com/troolee/gridstack.js",
55
"authors": [
66
"Pavel Reznikov <pashka.reznikov@gmail.com>"

demo/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
<body>
88
<ul>
99
<li><a href="float.html">Float grid demo</a></li>
10-
<li><a href="knockout.js">Knockout.js demo</a></li>
11-
<li><a href="knockout2.js">Knockout.js demo (2)</a></li>
10+
<li><a href="knockout.html">Knockout.js demo</a></li>
11+
<li><a href="knockout2.html">Knockout.js demo (2)</a></li>
1212
<li><a href="nested.html">Nested grids demo</a></li>
1313
<li><a href="rtl.html">RTL demo</a></li>
1414
<li><a href="serialization.html">Serialization demo</a></li>

dist/gridstack.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272

7373
.grid-stack > .grid-stack-item > .ui-resizable-se,
7474
.grid-stack > .grid-stack-item > .ui-resizable-sw {
75-
background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMS42MjYgNTExLjYyNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTExLjYyNiA1MTEuNjI3OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTMyOC45MDYsNDAxLjk5NGgtMzYuNTUzVjEwOS42MzZoMzYuNTUzYzQuOTQ4LDAsOS4yMzYtMS44MDksMTIuODQ3LTUuNDI2YzMuNjEzLTMuNjE1LDUuNDIxLTcuODk4LDUuNDIxLTEyLjg0NSAgIGMwLTQuOTQ5LTEuODAxLTkuMjMxLTUuNDI4LTEyLjg1MWwtNzMuMDg3LTczLjA5QzI2NS4wNDQsMS44MDksMjYwLjc2LDAsMjU1LjgxMywwYy00Ljk0OCwwLTkuMjI5LDEuODA5LTEyLjg0Nyw1LjQyNCAgIGwtNzMuMDg4LDczLjA5Yy0zLjYxOCwzLjYxOS01LjQyNCw3LjkwMi01LjQyNCwxMi44NTFjMCw0Ljk0NiwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDVjMy42MTksMy42MTcsNy45MDEsNS40MjYsMTIuODUsNS40MjYgICBoMzYuNTQ1djI5Mi4zNThoLTM2LjU0MmMtNC45NTIsMC05LjIzNSwxLjgwOC0xMi44NSw1LjQyMWMtMy42MTcsMy42MjEtNS40MjQsNy45MDUtNS40MjQsMTIuODU0ICAgYzAsNC45NDUsMS44MDcsOS4yMjcsNS40MjQsMTIuODQ3bDczLjA4OSw3My4wODhjMy42MTcsMy42MTcsNy44OTgsNS40MjQsMTIuODQ3LDUuNDI0YzQuOTUsMCw5LjIzNC0xLjgwNywxMi44NDktNS40MjQgICBsNzMuMDg3LTczLjA4OGMzLjYxMy0zLjYyLDUuNDIxLTcuOTAxLDUuNDIxLTEyLjg0N2MwLTQuOTQ4LTEuODA4LTkuMjMyLTUuNDIxLTEyLjg1NCAgIEMzMzguMTQyLDQwMy44MDIsMzMzLjg1Nyw0MDEuOTk0LDMyOC45MDYsNDAxLjk5NHoiIGZpbGw9IiM2NjY2NjYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);
75+
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMS42MjYgNTExLjYyNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTExLjYyNiA1MTEuNjI3OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTMyOC45MDYsNDAxLjk5NGgtMzYuNTUzVjEwOS42MzZoMzYuNTUzYzQuOTQ4LDAsOS4yMzYtMS44MDksMTIuODQ3LTUuNDI2YzMuNjEzLTMuNjE1LDUuNDIxLTcuODk4LDUuNDIxLTEyLjg0NSAgIGMwLTQuOTQ5LTEuODAxLTkuMjMxLTUuNDI4LTEyLjg1MWwtNzMuMDg3LTczLjA5QzI2NS4wNDQsMS44MDksMjYwLjc2LDAsMjU1LjgxMywwYy00Ljk0OCwwLTkuMjI5LDEuODA5LTEyLjg0Nyw1LjQyNCAgIGwtNzMuMDg4LDczLjA5Yy0zLjYxOCwzLjYxOS01LjQyNCw3LjkwMi01LjQyNCwxMi44NTFjMCw0Ljk0NiwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDVjMy42MTksMy42MTcsNy45MDEsNS40MjYsMTIuODUsNS40MjYgICBoMzYuNTQ1djI5Mi4zNThoLTM2LjU0MmMtNC45NTIsMC05LjIzNSwxLjgwOC0xMi44NSw1LjQyMWMtMy42MTcsMy42MjEtNS40MjQsNy45MDUtNS40MjQsMTIuODU0ICAgYzAsNC45NDUsMS44MDcsOS4yMjcsNS40MjQsMTIuODQ3bDczLjA4OSw3My4wODhjMy42MTcsMy42MTcsNy44OTgsNS40MjQsMTIuODQ3LDUuNDI0YzQuOTUsMCw5LjIzNC0xLjgwNywxMi44NDktNS40MjQgICBsNzMuMDg3LTczLjA4OGMzLjYxMy0zLjYyLDUuNDIxLTcuOTAxLDUuNDIxLTEyLjg0N2MwLTQuOTQ4LTEuODA4LTkuMjMyLTUuNDIxLTEyLjg1NCAgIEMzMzguMTQyLDQwMy44MDIsMzMzLjg1Nyw0MDEuOTk0LDMyOC45MDYsNDAxLjk5NHoiIGZpbGw9IiM2NjY2NjYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);
7676
background-repeat: no-repeat;
7777
background-position: center;
7878
-webkit-transform: rotate(45deg);

dist/gridstack.js

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* gridstack.js 0.2.5-dev
2+
* gridstack.js 0.2.5
33
* http://troolee.github.io/gridstack.js/
44
* (c) 2014-2016 Pavel Reznikov
55
* gridstack.js may be freely distributed under the MIT license.
@@ -646,6 +646,8 @@
646646
if (node.noResize || self.opts.disableResize) {
647647
node.el.resizable('disable');
648648
}
649+
650+
node.el.trigger('resize');
649651
});
650652
} else {
651653
if (!oneColumnMode) {
@@ -665,40 +667,42 @@
665667
if (!node.noResize && !self.opts.disableResize) {
666668
node.el.resizable('enable');
667669
}
670+
671+
node.el.trigger('resize');
668672
});
669673
}
670674
};
671675

672676
$(window).resize(this.onResizeHandler);
673677
this.onResizeHandler();
674678

675-
if (typeof self.opts.removable === 'string') {
679+
if (!self.opts.staticGrid && typeof self.opts.removable === 'string') {
676680
var trashZone = $(self.opts.removable);
677681
if (!trashZone.data('droppable')) {
678682
trashZone.droppable({
679683
accept: '.' + self.opts.itemClass
680684
});
681685
}
682686
trashZone
683-
.on('dropover', function(event, ui) {
684-
var el = $(ui.draggable);
685-
var node = el.data('_gridstack_node');
686-
if (node._grid !== self) {
687-
return;
688-
}
689-
self._setupRemovingTimeout(el);
690-
})
691-
.on('dropout', function(event, ui) {
692-
var el = $(ui.draggable);
693-
var node = el.data('_gridstack_node');
694-
if (node._grid !== self) {
695-
return;
696-
}
697-
self._clearRemovingTimeout(el);
698-
});
699-
}
700-
701-
if (self.opts.acceptWidgets) {
687+
.on('dropover', function(event, ui) {
688+
var el = $(ui.draggable);
689+
var node = el.data('_gridstack_node');
690+
if (node._grid !== self) {
691+
return;
692+
}
693+
self._setupRemovingTimeout(el);
694+
})
695+
.on('dropout', function(event, ui) {
696+
var el = $(ui.draggable);
697+
var node = el.data('_gridstack_node');
698+
if (node._grid !== self) {
699+
return;
700+
}
701+
self._clearRemovingTimeout(el);
702+
});
703+
}
704+
705+
if (!self.opts.staticGrid && self.opts.acceptWidgets) {
702706
var draggingElement = null;
703707

704708
var onDrag = function(event, ui) {
@@ -797,7 +801,7 @@
797801
.removeClass('ui-draggable ui-draggable-dragging ui-draggable-disabled')
798802
.unbind('drag', onDrag);
799803
self.container.append(el);
800-
self._prepareElementByNode(el, node);
804+
self._prepareElementsByNode(el, node);
801805
self._updateContainerHeight();
802806
self._triggerChangeEvent();
803807

@@ -965,7 +969,7 @@
965969
node._isAboutToRemove = false;
966970
};
967971

968-
GridStack.prototype._prepareElementByNode = function(el, node) {
972+
GridStack.prototype._prepareElementsByNode = function(el, node) {
969973
var self = this;
970974

971975
var cellWidth;
@@ -1115,11 +1119,11 @@
11151119
resize: dragOrResize
11161120
}));
11171121

1118-
if (node.noMove || this._isOneColumnMode() || this.opts.staticGrid || this.opts.disableDrag) {
1122+
if (node.noMove || this._isOneColumnMode() || this.opts.disableDrag) {
11191123
el.draggable('disable');
11201124
}
11211125

1122-
if (node.noResize || this._isOneColumnMode() || this.opts.staticGrid || this.opts.disableResize) {
1126+
if (node.noResize || this._isOneColumnMode() || this.opts.disableResize) {
11231127
el.resizable('disable');
11241128
}
11251129

@@ -1151,7 +1155,9 @@
11511155
}, triggerAddEvent);
11521156
el.data('_gridstack_node', node);
11531157

1154-
this._prepareElementByNode(el, node);
1158+
if (!this.opts.staticGrid) {
1159+
this._prepareElementsByNode(el, node);
1160+
}
11551161
};
11561162

11571163
GridStack.prototype.setAnimation = function(enable) {
@@ -1247,7 +1253,7 @@
12471253
el.each(function(index, el) {
12481254
el = $(el);
12491255
var node = el.data('_gridstack_node');
1250-
if (typeof node == 'undefined' || node === null) {
1256+
if (self.opts.staticGrid || typeof node == 'undefined' || node === null) {
12511257
return;
12521258
}
12531259

@@ -1267,7 +1273,7 @@
12671273
el.each(function(index, el) {
12681274
el = $(el);
12691275
var node = el.data('_gridstack_node');
1270-
if (typeof node == 'undefined' || node === null) {
1276+
if (self.opts.staticGrid || typeof node == 'undefined' || node === null) {
12711277
return;
12721278
}
12731279

0 commit comments

Comments
 (0)