# This file enables gridster integration (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.
Dashing.gridsterLayout = (positions) ->
Dashing.customGridsterLayout = true positions = positions.replace(/^"|"$/g, '') positions = $.parseJSON(positions) widgets = $("[data-row]") maxRow = 1 maxCol = 1 numColumns = Dashing.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
Dashing.getWidgetPositions = ->
$(".gridster ul:first").gridster().data('gridster').serialize()
Dashing.showGridsterInstructions = ->
newWidgetPositions = Dashing.getWidgetPositions() unless JSON.stringify(newWidgetPositions) == JSON.stringify(Dashing.currentWidgetPositions) Dashing.currentWidgetPositions = newWidgetPositions $('#save-gridster').slideDown() $('#gridster-code').text(" <script type='text/javascript'>\n $(function() {\n \ \ Dashing.gridsterLayout('#{JSON.stringify(Dashing.currentWidgetPositions)}')\n });\n </script> ")
$ ->
$('#save-gridster').leanModal() $('#save-gridster').click -> $('#save-gridster').slideUp()