summaryrefslogtreecommitdiff
path: root/assets/javascripts/dashing.gridster.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'assets/javascripts/dashing.gridster.coffee')
-rw-r--r--assets/javascripts/dashing.gridster.coffee37
1 files changed, 37 insertions, 0 deletions
diff --git a/assets/javascripts/dashing.gridster.coffee b/assets/javascripts/dashing.gridster.coffee
new file mode 100644
index 0000000..e25c561
--- /dev/null
+++ b/assets/javascripts/dashing.gridster.coffee
@@ -0,0 +1,37 @@
+#= require_directory ./gridster
+
+# 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.
+
+Dashing.gridsterLayout = (positions) ->
+ Dashing.customGridsterLayout = true
+ positions = positions.replace(/^"|"$/g, '')
+ positions = $.parseJSON(positions)
+ widgets = $("[data-row^=]")
+ for widget, index in widgets
+ $(widget).attr('data-row', positions[index].row)
+ $(widget).attr('data-col', positions[index].col)
+
+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()