# 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(" ") $ -> $('#save-gridster').leanModal() $('#save-gridster').click -> $('#save-gridster').slideUp()