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
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
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).
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).
- new disable, enable methods
- don't generate duplicated stylesheets for the same origin config
- new configuration option called avoid_overlapped_widgets. Avoid that widgets loaded from the DOM can be overlapped. It is helpful if the positions were bad stored in the database or if there was any conflict.
- Removed jquery ui dependencie.
- Fix to prevent widgets go out of the grid.
- New methods to get all widgets from a column or row.
- generate_stylesheets method now supports namespaces to generate multiple stylesheets based on a parent class.