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()