lib/assets/javascripts/my_dashboard.gridster.coffee in my_dashboard-0.5.5 vs lib/assets/javascripts/my_dashboard.gridster.coffee in my_dashboard-0.5.6

- old
+ new

@@ -1,50 +1,101 @@ \ No newline at end of file +# This file enables gridster integration (http://gridster.net/) +# Delete it if you'd rather handle the layout yourself. +# You'll miss out on a lot if you do, but we won't hold it against you. + +MyDashboard.gridsterLayout = (positions) -> + MyDashboard.customGridsterLayout = true + positions = positions.replace(/^"|"$/g, '') + positions = $.parseJSON(positions) + widgets = $("[data-row]") + maxRow = 1 + maxCol = 1 + numColumns = MyDashboard.numColumns || 1 + for widget, index in widgets + if positions? and index < positions.length + $(widget).attr('data-row', positions[index].row) + $(widget).attr('data-col', positions[index].col) + if positions[index].row > maxRow + maxRow = positions[index].row + maxCol = positions[index].col + 1 + else if positions[index].row == maxRow and positions[index].col >= maxCol + maxCol = positions[index].col + 1 + else + if maxCol > numColumns + maxRow += 1 + maxCol = 1 + $(widget).attr('data-row', maxRow) + $(widget).attr('data-col', maxCol) + maxCol += 1 + +MyDashboard.getWidgetPositions = -> + $(".gridster ul:first").gridster().data('gridster').serialize() + +MyDashboard.showGridsterInstructions = -> + newWidgetPositions = MyDashboard.getWidgetPositions() + + unless JSON.stringify(newWidgetPositions) == JSON.stringify(MyDashboard.currentWidgetPositions) + MyDashboard.currentWidgetPositions = newWidgetPositions + $('#save-gridster').slideDown() + $('#gridster-code').text(" + <script type='text/javascript'>\n + $(function() {\n + \ \ MyDashboard.gridsterLayout('#{JSON.stringify(MyDashboard.currentWidgetPositions)}')\n + });\n + </script> + ") + +$ -> + $('#save-gridster').leanModal() + + $('#save-gridster').click -> + $('#save-gridster').slideUp()