154 Commits

Author SHA1 Message Date
c1668d9ab6 chore(css naming): gs_w to gs-w following CSS naming conventions
BREAKING CHANGE: If you are using `gs_w` classes somewhere, replace
them with `gs-w`
2013-10-26 19:49:31 +02:00
8dda2410f3 feat(draggable): pass useful data to all drag callbacks
start/stop/drag callbacks receive: element offset, cursor position,
and references to $player and $helper elements.
2013-10-26 19:49:31 +02:00
faa6c5db00 feat(utils): add delay helper to utils 2013-10-26 19:49:31 +02:00
21fcad9a28 style(generated-css): add line breaks in css declarations 2013-10-26 19:49:31 +02:00
ae02b32b92 fix: fixes and improvements in widget-resizing. Closes #32 2013-10-26 19:49:31 +02:00
1ade74e239 fix(gridster): the preview holder should not always use li
Use the same element as the original widget for the preview holder.
Using a <li> can cause a list item bullet to be displayed when widgets
are not necessarily <li> elements.
2013-10-26 19:49:30 +02:00
31fd8d6ba8 fix(gridster): overlapping widget problem 2013-10-26 19:49:28 +02:00
1b13617df2 fix(gridster): Orphan preview holder when dragging is interrupted
After beginning a drag, if the mouse button is released outside of the
screen, and if a subsequent drag operation is begun on another widget
(while the previous widget still follows the mouse around), Draggable
will trigger a new drag start event, causing Gridster to leave the
current widget + its preview holder aside and start dragging the new
widget. This will lead to an orphan preview holder to be left on the
screen.

A quick solution is to ignore drag start without receiving a drag stop.
2013-10-26 17:43:54 +02:00
5bfbc5c0b5 fix(gridster): remove_widget Returns the instance of the Gridster Class
Following same pattern as remove_all_widgets --> remove_widget also
return *this* (as per inlined comment documentation)
2013-10-26 17:43:54 +02:00
c0c12d0c38 gridster/fix: calculating container_width correctly
Thanks @badtant for the notice (3d755fd793 (commitcomment-3423763))
2013-06-14 12:03:06 +02:00
f749c13e4a updated dist 2013-06-13 15:36:40 +02:00
0a3315d3cb max_cols: to disable max_col option set to null instead of '-1'.
Default is null.
2013-06-13 15:22:27 +02:00
b4ac8dc0bd drag/touch: don't prevent default when start dragging in touch device 2013-06-13 12:14:06 +02:00
e1a5b4ed52 gridster/fix: using comparators in sort methods.
Sort method by default orders alphabetically, but we are sorting numbers
and this means that: 40 < 6. And we not expect this result.
2013-06-13 12:01:47 +02:00
4c02e4c1ed Reverting some changes in commit 6302b98
Check to avoid generation of duplicated stylesheet-tags shouldn't have
been removed from Gridster. It's useful when calling multiple times 
`generate_stylesheet` method once Gridster is initializated. We use it
at ducksboard to generate a TVmode version of the grid with bigger widgets.

Refactored the way stylesheet tags are removed. When created I push them 
to a jQuery collection which is removed when `destroy` method is executed.
2013-06-13 11:43:37 +02:00
3d755fd793 Pass container width to draggable instance. Relative to 5569caa687 2013-06-13 11:43:37 +02:00
2aa9b55433 namespaced events instead of caching callbacks 2013-06-13 11:43:37 +02:00
eca38b6272 Merge pull request #165 from matiangul/master
Fix is_empty method
2013-05-14 08:42:10 -07:00
52dc36ead9 Merge pull request #169 from tuvokki/master
Fix for Issue #158
2013-05-14 07:50:05 -07:00
826120bdb1 resize_widget function with callback parameter
Is it possible to add a callback to the resize_widget function, that is
called when the resizing of a widget is finished? This may help to
update the widget content properly.
2013-05-13 16:14:47 +02:00
fca830007a Fixed is_empty method 2013-05-04 11:05:00 +02:00
d56f6d80a3 Merge pull request #152 from rfink/master
Fix for issue #46
2013-04-24 08:13:30 -07:00
5569caa687 Add max_cols setting
Right now the number of columns is calculated by dividing the available
space by the necessary space. I want to have an option to limit the
number of calculated columns, without changing the width of the div my
grid lives in.

In order to limit the number of calculated columns max_cols is set to a
number. To have 'unlimited' columns set the value of max_cols to -1 (as
ids done in the default settings). This provides the arbitrary useful
functionality to set the max number of columns to 0. Any sideeffect
caused by this are mitigated by checking that the max_cols is larger
than the min_cols setting.
2013-04-11 14:18:54 +02:00
6302b988d1 Fix for not removing stylesheets on destroy 2013-04-09 12:27:04 +00:00
b58f1454a5 Merge pull request #125 from brokenseal/master
Possible solution to memory leak #124
2013-04-02 07:52:59 -07:00
7f3f679cb6 Fixed a minor issue when trying to destroy a non existing drag_api 2013-02-15 16:50:35 +01:00
233129b183 Bound leftover callbacks are one of the main causes of memory leaks, let's remove them inside the destroy method 2013-02-15 15:25:09 +01:00
ac2908e1a2 Added a destroy method on the Gridster class 2013-02-15 14:30:20 +01:00
36bec0bb14 Fixed a couple of errors in the methods definition
Added my own IDE filed in the .gitignore file
2013-02-15 14:29:54 +01: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
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
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
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
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
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
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
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
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
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