390 Commits

Author SHA1 Message Date
ea77853b07 Removed console.logs 2012-11-28 08:01:21 -08:00
6786984511 Good enough swap logic for now 2012-11-28 07:58:37 -08:00
a3d2b09b8a Swap queue awesomeness 2012-11-27 14:55:15 -08:00
24cd3be70d Swap queue awesomeness 2012-11-27 14:10:11 -08:00
32e5f54670 Fix row issue 2012-11-26 16:44:12 -08:00
136923ec50 working on map grid functionality 2012-11-26 16:43:08 -08:00
262d115cf8 Added swaping queue, better handling of large to small swaps 2012-11-26 15:23:00 -08:00
98204f1c69 Added swaping queue, better handling of large to small swaps 2012-11-26 15:20:15 -08:00
773828731c More predictable default behavior 2012-11-20 12:02:29 -08:00
95ce88cfb3 Updated Readme 2012-11-20 10:23:51 -08:00
67465875aa Added property to prevent larger widget shifting 2012-11-20 10:16:19 -08:00
898b77d2d3 Added grid-swap behavior 2012-11-20 10:07:38 -08:00
ce391ae13e Fix inverted arguments for a collision callback
The start and stop callbacks on this line seem to be backwards.
2012-11-01 01:47:07 -03:00
b538d64969 updated dist 2012-10-20 01:52:08 +02:00
55edd11ef8 gridster: new method remove_all_widgets
Remove multiple widgets without chaining callbacks was not possible so I've added a new argument to remove_widget method named `silent` which if it's value is true, widgets below the removed will not move up.

Also added the method remove_all_widgets.

Fixes #63
2012-10-20 01:37:41 +02:00
c75db76f4e updated dist 2012-10-20 00:14:14 +02:00
a20f3d53b5 ignoring demo folder 2012-10-20 00:12:47 +02:00
552df22e1c Allow for an optional drag handle to be specified
When defining the gridster, you can now define a draggable.handle selector:

For example:

    $("#widgets").gridster({
        widget_margins: [10, 10],
        widget_base_dimensions: [565, 400],
		draggable: {
			stop: function(event, ui) {
				console.log('save new columns');
			},
			handle: '.title'
		}
    });

If handle is omitted (or left blank), it works as it did previously. If a value is specified, then dragging only starts if the element which was clicked matches the selector specified.

Added by @vieron:
Closes #29
2012-10-20 00:12:10 +02:00
07b34131bd update dist 2012-10-15 16:27:12 +02:00
68f1d6279c Avoid dynamic column generation.
Using add_faux_col each time a new widget is added to the grid caused the widget was always positioned in the first row on the right. Related to #60.
2012-10-15 15:47:31 +02:00
a5d122246d updated dist 2012-10-07 21:45:06 +02:00
5411836c88 events/onselectstart: Don't prevent default behaviour on form fields
Fixes #56.
2012-10-07 21:36:58 +02:00
5a3c382c8b Immediate children selection for widgets. Fixes #52. 2012-10-07 21:12:38 +02:00
6ebd10139f updated dist 2012-10-07 21:12:38 +02:00
42ce094e1c updated grunt config to generate gridster+extras distribution 2012-10-07 21:12:38 +02:00
cd5c936939 gridster extra methods
Some new methods we need at Ducksboard to implement TV mode.

Two new distributions of Gridster are generated with grunt:
    - jquery.gridster.with-extras.js
    - jquery.gridster.with-extras.min.js
2012-10-07 21:12:38 +02:00
7dbbc105c1 add_faux_cell: create parent array if doesn't exists 2012-10-07 21:12:38 +02:00
82b8778762 if not passed, use default namespace for generating stylessheets 2012-10-07 21:12:38 +02:00
7fc97d0f79 Allow to extend gridster out of the scope 2012-10-07 21:12:38 +02:00
0b1c9899d0 some code style corrections/improvements 2012-10-07 21:12:38 +02:00
c4fee63b96 ability to specify a max row as limit in can_move_to method 2012-10-03 15:40:16 +02:00
3d5077dd7b add_faux_cols method 2012-10-03 15:33:46 +02:00
c6bd80be8e Fixed disable method, it didn't work well for multiple instances.
Previously, disabling gridster caused all the instances of Gridster running on the pages was disabled. Because Draggable class uses event delegation from the body to manage drag events.
2012-10-03 13:48:55 +02:00
c503a4f99e updated dist 2012-09-12 17:51:44 +02:00
3bc9ea3527 Possibility to namespace first-time styles generated by gridster.
Useful if you have multiple grid instances in the same document.
2012-09-12 17:50:48 +02:00
104ee3220d updated dist 2012-09-09 14:32:49 +02:00
b71b8727df gridster: moving down widgets under placeholder. Related to #4.
This solves the overlapping-blocks seen in the screencast provided by @daniel-nelson. I've captured another one trying to reproduce the same movements with this commit applied: http://www.screenr.com/g7J8
2012-09-09 14:21:31 +02:00
dc61567454 collision: ignore min_area in collision sorting
This doesn't work with grids with small values in widget_base_dimensions and widget_margins options.
2012-09-08 13:58:47 +02:00
60fbb1cbf2 updated dist 2012-08-20 21:06:38 +02:00
9402f202b8 update coords for the new widget size.
Reported by @bmla in https://github.com/ducksboard/gridster.js/commit/dbf98cc9bdc#commitcomment-1735360
2012-08-20 21:06:21 +02:00
1086fe5b77 updated dist 2012-08-20 01:46:52 +02:00
dbf98cc9bd Resize widgets feature. Closes #15.
By popular demand, now gridster allows to change the size of widgets dynamically.

Usage.
- gridster_api.resize_wiget($widget, [size_x], [size_y]);

E.g. (try in gridster.net):
    - gridster.resize_widget($('.gs_w:eq(3)'), 6);
    - gridster.resize_widget($('.gs_w:eq(3)'), 1, 4);

To do this, two new methods were added to gridster:

    - empty_cells(col, row, size_x, size_y, $exclude)
      Move down widgets in cells represented by the arguments col, row, size_x,
      size_y.

    - remove_empty_cells(col, row, size_x, size_y, $exclude)
      Move up widgets below cells represented by the arguments col, row, size_x,
      size_y.

Also, add_widget method supports specifying a row and column. This was easy
through empty_cells method. Related to #24. Thanks to @parkerd for the help!

The code should be improved and make it more reusable when the feature of
"move widgets dynamically" is added (related to #20).
2012-08-20 01:31:34 +02:00
010444f57c Allow widgets to start in a specific col+row on the grid 2012-08-18 22:10:12 +02:00
32ea0da04b wip: resize widget feature 2012-08-18 22:10:12 +02:00
04301f48c9 updated dist 2012-08-18 19:47:26 +02:00
1d65da9260 Improving the way that rows are calculated. Related to #30.
Until now, the number of rows for the faux grid (this.cols) was calculated taking the highest
value among min_rows option, the highest widget, and the number of rows
that fits on the wrapper height (based on widget_base_dimensions, widget_margins
and extra_rows options).

In addition to this, styles for data-row attributes ara generated based on
this.cols (above) plus a constant value of 10. This was done to reduce
the number of cells by which iterate when dragging, but it's not very logical...

So, now the number of rows is calculated by adding the height of all widgets.
In this way we ensure that there is always available cells in the grid.
Also the same number of rows are generated for both the faux grid and
the DOM grid (css styles).
2012-08-18 19:34:47 +02:00
3ba70b7453 updated dist 2012-08-14 00:11:01 +02:00
573ed66922 fixes in drag/stop callbacks. Related to #23.
- break ondrag callback execution if stop event already was fired.
- unset this.$player after the execution of draggable.stop callback.
2012-08-14 00:06:03 +02:00
81c96b92d5 fixed: drag api access from gridster and draggable.disable method.
Fixes #25. I broke this in the issue #17 and commit 8e7a5c.
2012-08-13 22:32:35 +02:00
0fadccaa2f updated dist 2012-08-13 01:18:12 +02:00