Updated index.html and minified

gh-pages
Jim Heising 2014-09-02 15:12:55 -07:00
parent 94ec4c33d2
commit a8a2a108d7
10 changed files with 1490 additions and 1529 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -22,7 +22,7 @@
<body>
<div id="board-content">
<img id="dash-logo" data-bind="attr:{src: header_image}, visible:header_image()">
<div class="gridster">
<div class="gridster responsive-column-width">
<ul data-bind="grid: true">
</ul>
</div>
@ -73,6 +73,16 @@
</div>
</div>
</div>
<div id="column-tools" class="responsive-column-width">
<ul class="board-toolbar left-columns">
<li class="column-tool add" data-bind="click: addGridColumnLeft"><span class="column-icon right"></span><i class="icon-arrow-left icon-white"></i></li>
<li class="column-tool sub" data-bind="click: subGridColumnLeft"><span class="column-icon left"></span><i class="icon-arrow-right icon-white"></i></li>
</ul>
<ul class="board-toolbar right-columns">
<li class="column-tool sub" data-bind="click: subGridColumnRight"><span class="column-icon right"></span><i class="icon-arrow-left icon-white"></i></li>
<li class="column-tool add" data-bind="click: addGridColumnRight"><span class="column-icon left"></span><i class="icon-arrow-right icon-white"></i></li>
</ul>
</div>
<div id="toggle-header" data-bind="click: toggleEditing">
<i id="toggle-header-icon" class="icon-wrench icon-white"></i></div>
</header>

View File

@ -559,6 +559,26 @@ function FreeboardModel(datasourcePlugins, widgetPlugins, freeboardUI)
self.addPane(newPane);
}
this.addGridColumnLeft = function()
{
freeboardUI.addGridColumnLeft();
}
this.addGridColumnRight = function()
{
freeboardUI.addGridColumnRight();
}
this.subGridColumnLeft = function()
{
freeboardUI.subGridColumnLeft();
}
this.subGridColumnRight = function()
{
freeboardUI.subGridColumnRight();
}
this.addPane = function(pane)
{
self.panes.push(pane);
@ -633,33 +653,134 @@ function FreeboardUI()
{
var PANE_MARGIN = 10;
var PANE_WIDTH = 300;
var MIN_COLUMNS = 3;
var COLUMN_WIDTH = PANE_MARGIN + PANE_WIDTH + PANE_MARGIN;
var loadingIndicator = $('<div class="wrapperloading"><div class="loading up" ></div><div class="loading down"></div></div>');
var grid;
function processResize(layoutWidgets)
{
var rootElement = grid.$el;
// Get the maximum size
rootElement.find("> li").unbind().removeData();
$(".gridster").css("width", "");
grid.generate_grid_and_stylesheet();
var repositionFunction = function(){};
if(layoutWidgets)
{
rootElement.find("> li").each(function(index){
repositionFunction = function(index){
var paneElement = this;
var viewModel = ko.dataFor(paneElement);
var newPosition = getPositionForScreenSize(viewModel);
$(paneElement).attr("data-row", newPosition.row).attr("data-col", newPosition.col);
var newPosition = getPositionForScreenSize(viewModel);
$(paneElement).attr("data-row", newPosition.row)
.attr("data-col", newPosition.col);
}
}
repositionGrid(repositionFunction);
updateGridColumnControls();
}
function addGridColumn(shift)
{
var num_cols = grid.cols + 1;
if(updateGridWidth(num_cols)) {
repositionGrid(function() {
var paneElement = this;
var paneModel = ko.dataFor(paneElement);
var prevColumnIndex = grid.cols > 1 ? grid.cols - 1 : 1;
var prevCol = paneModel.col[prevColumnIndex];
var prevRow = paneModel.row[prevColumnIndex];
var newPosition;
if(shift)
{
leftPreviewCol = true;
var newCol = prevCol < grid.cols ? prevCol + 1 : grid.cols;
newPosition = {row: prevRow, col: newCol};
}
else
{
rightPreviewCol = true;
newPosition = {row: prevRow, col: prevCol};
}
$(paneElement).attr("data-row", newPosition.row)
.attr("data-col", newPosition.col);
});
}
updateGridColumnControls();
}
function subtractGridColumn(shift)
{
var num_cols = grid.cols - 1;
if(updateGridWidth(num_cols)) {
repositionGrid(function() {
var paneElement = this;
var paneModel = ko.dataFor(paneElement);
var prevColumnIndex = grid.cols + 1;
var prevCol = paneModel.col[prevColumnIndex];
var prevRow = paneModel.row[prevColumnIndex];
var newPosition;
if(shift)
{
// This will cause problems if there are panes in column 1
var newCol = prevCol > 1 ? prevCol - 1 : 1;
newPosition = {row: prevRow, col: newCol};
}
else
{
// This will cause problems if there are panes in the last column
var newCol = prevCol <= grid.cols ? prevCol : grid.cols;
newPosition = {row: prevRow, col: newCol};
}
$(paneElement).attr("data-row", newPosition.row)
.attr("data-col", newPosition.col);
});
}
updateGridColumnControls();
}
function updateGridColumnControls() {
var col_controls = $(".column-tool");
var available_width = $("#board-content").width();
var max_columns = Math.floor(available_width / COLUMN_WIDTH);
if(grid.cols <= MIN_COLUMNS) {
col_controls.addClass("min");
} else {
col_controls.removeClass("min");
}
if(grid.cols >= max_columns) {
col_controls.addClass("max");
} else {
col_controls.removeClass("max");
}
}
function updateGridWidth(newCols) {
var new_width = COLUMN_WIDTH*newCols;
var available_width = $("#board-content").width();
if(newCols < MIN_COLUMNS || new_width > available_width)
{
return false;
} else {
$(".responsive-column-width").css("max-width", new_width);
return true;
}
}
function repositionGrid(repositionFunction) {
var rootElement = grid.$el;
rootElement.find("> li").unbind().removeData();
$(".responsive-column-width").css("width", "");
grid.generate_grid_and_stylesheet();
rootElement.find("> li").each(repositionFunction);
grid.init();
$(".gridster").css("width", grid.cols * 300 + (grid.cols * 20));
$(".responsive-column-width").css("width", grid.cols * PANE_WIDTH + (grid.cols * PANE_MARGIN * 2));
}
ko.bindingHandlers.grid = {
@ -670,7 +791,7 @@ function FreeboardUI()
widget_margins : [PANE_MARGIN, PANE_MARGIN],
widget_base_dimensions: [PANE_WIDTH, 10],
resize: {
enabled : true,
enabled : false,
axes : "x"
}
}).data("gridster");
@ -748,7 +869,7 @@ function FreeboardUI()
{
loadingIndicator.fadeOut(500).remove();
}
}
}
function showPaneEditIcons(show, animate)
{
@ -762,13 +883,12 @@ function FreeboardUI()
if(show)
{
$(".pane-tools").fadeIn(animateLength);//.css("display", "block").animate({opacity: 1.0}, animateLength);
$("#column-tools").fadeIn(animateLength);
}
else
{
$(".pane-tools").fadeOut(animateLength);//.animate({opacity: 0.0}, animateLength).css("display", "none");//, function()
/*{
$(this).css("display", "none");
});*/
$("#column-tools").fadeOut(animateLength);
}
}
@ -818,7 +938,7 @@ function FreeboardUI()
{
if(columnIndex == cols) // If we already have a position defined for this number of columns, return that position
{
return {row: paneModel.row[columnIndex], col: paneModel.col[columnIndex]};
return {row: paneModel.row[columnIndex], col: paneModel.col[columnIndex]};
}
else if(paneModel.col[columnIndex] > cols) // If it's greater than our display columns, put it in the last column
{
@ -889,6 +1009,18 @@ function FreeboardUI()
},
removeAllPanes : function() {
grid.remove_all_widgets();
},
addGridColumnLeft : function() {
addGridColumn(true);
},
addGridColumnRight : function() {
addGridColumn(false);
},
subGridColumnLeft : function() {
subtractGridColumn(true);
},
subGridColumnRight : function() {
subtractGridColumn(false);
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -559,6 +559,26 @@ function FreeboardModel(datasourcePlugins, widgetPlugins, freeboardUI)
self.addPane(newPane);
}
this.addGridColumnLeft = function()
{
freeboardUI.addGridColumnLeft();
}
this.addGridColumnRight = function()
{
freeboardUI.addGridColumnRight();
}
this.subGridColumnLeft = function()
{
freeboardUI.subGridColumnLeft();
}
this.subGridColumnRight = function()
{
freeboardUI.subGridColumnRight();
}
this.addPane = function(pane)
{
self.panes.push(pane);
@ -633,33 +653,134 @@ function FreeboardUI()
{
var PANE_MARGIN = 10;
var PANE_WIDTH = 300;
var MIN_COLUMNS = 3;
var COLUMN_WIDTH = PANE_MARGIN + PANE_WIDTH + PANE_MARGIN;
var loadingIndicator = $('<div class="wrapperloading"><div class="loading up" ></div><div class="loading down"></div></div>');
var grid;
function processResize(layoutWidgets)
{
var rootElement = grid.$el;
// Get the maximum size
rootElement.find("> li").unbind().removeData();
$(".gridster").css("width", "");
grid.generate_grid_and_stylesheet();
var repositionFunction = function(){};
if(layoutWidgets)
{
rootElement.find("> li").each(function(index){
repositionFunction = function(index){
var paneElement = this;
var viewModel = ko.dataFor(paneElement);
var newPosition = getPositionForScreenSize(viewModel);
$(paneElement).attr("data-row", newPosition.row).attr("data-col", newPosition.col);
var newPosition = getPositionForScreenSize(viewModel);
$(paneElement).attr("data-row", newPosition.row)
.attr("data-col", newPosition.col);
}
}
repositionGrid(repositionFunction);
updateGridColumnControls();
}
function addGridColumn(shift)
{
var num_cols = grid.cols + 1;
if(updateGridWidth(num_cols)) {
repositionGrid(function() {
var paneElement = this;
var paneModel = ko.dataFor(paneElement);
var prevColumnIndex = grid.cols > 1 ? grid.cols - 1 : 1;
var prevCol = paneModel.col[prevColumnIndex];
var prevRow = paneModel.row[prevColumnIndex];
var newPosition;
if(shift)
{
leftPreviewCol = true;
var newCol = prevCol < grid.cols ? prevCol + 1 : grid.cols;
newPosition = {row: prevRow, col: newCol};
}
else
{
rightPreviewCol = true;
newPosition = {row: prevRow, col: prevCol};
}
$(paneElement).attr("data-row", newPosition.row)
.attr("data-col", newPosition.col);
});
}
updateGridColumnControls();
}
function subtractGridColumn(shift)
{
var num_cols = grid.cols - 1;
if(updateGridWidth(num_cols)) {
repositionGrid(function() {
var paneElement = this;
var paneModel = ko.dataFor(paneElement);
var prevColumnIndex = grid.cols + 1;
var prevCol = paneModel.col[prevColumnIndex];
var prevRow = paneModel.row[prevColumnIndex];
var newPosition;
if(shift)
{
// This will cause problems if there are panes in column 1
var newCol = prevCol > 1 ? prevCol - 1 : 1;
newPosition = {row: prevRow, col: newCol};
}
else
{
// This will cause problems if there are panes in the last column
var newCol = prevCol <= grid.cols ? prevCol : grid.cols;
newPosition = {row: prevRow, col: newCol};
}
$(paneElement).attr("data-row", newPosition.row)
.attr("data-col", newPosition.col);
});
}
updateGridColumnControls();
}
function updateGridColumnControls() {
var col_controls = $(".column-tool");
var available_width = $("#board-content").width();
var max_columns = Math.floor(available_width / COLUMN_WIDTH);
if(grid.cols <= MIN_COLUMNS) {
col_controls.addClass("min");
} else {
col_controls.removeClass("min");
}
if(grid.cols >= max_columns) {
col_controls.addClass("max");
} else {
col_controls.removeClass("max");
}
}
function updateGridWidth(newCols) {
var new_width = COLUMN_WIDTH*newCols;
var available_width = $("#board-content").width();
if(newCols < MIN_COLUMNS || new_width > available_width)
{
return false;
} else {
$(".responsive-column-width").css("max-width", new_width);
return true;
}
}
function repositionGrid(repositionFunction) {
var rootElement = grid.$el;
rootElement.find("> li").unbind().removeData();
$(".responsive-column-width").css("width", "");
grid.generate_grid_and_stylesheet();
rootElement.find("> li").each(repositionFunction);
grid.init();
$(".gridster").css("width", grid.cols * 300 + (grid.cols * 20));
$(".responsive-column-width").css("width", grid.cols * PANE_WIDTH + (grid.cols * PANE_MARGIN * 2));
}
ko.bindingHandlers.grid = {
@ -670,7 +791,7 @@ function FreeboardUI()
widget_margins : [PANE_MARGIN, PANE_MARGIN],
widget_base_dimensions: [PANE_WIDTH, 10],
resize: {
enabled : true,
enabled : false,
axes : "x"
}
}).data("gridster");
@ -748,7 +869,7 @@ function FreeboardUI()
{
loadingIndicator.fadeOut(500).remove();
}
}
}
function showPaneEditIcons(show, animate)
{
@ -762,13 +883,12 @@ function FreeboardUI()
if(show)
{
$(".pane-tools").fadeIn(animateLength);//.css("display", "block").animate({opacity: 1.0}, animateLength);
$("#column-tools").fadeIn(animateLength);
}
else
{
$(".pane-tools").fadeOut(animateLength);//.animate({opacity: 0.0}, animateLength).css("display", "none");//, function()
/*{
$(this).css("display", "none");
});*/
$("#column-tools").fadeOut(animateLength);
}
}
@ -818,7 +938,7 @@ function FreeboardUI()
{
if(columnIndex == cols) // If we already have a position defined for this number of columns, return that position
{
return {row: paneModel.row[columnIndex], col: paneModel.col[columnIndex]};
return {row: paneModel.row[columnIndex], col: paneModel.col[columnIndex]};
}
else if(paneModel.col[columnIndex] > cols) // If it's greater than our display columns, put it in the last column
{
@ -889,6 +1009,18 @@ function FreeboardUI()
},
removeAllPanes : function() {
grid.remove_all_widgets();
},
addGridColumnLeft : function() {
addGridColumn(true);
},
addGridColumnRight : function() {
addGridColumn(false);
},
subGridColumnLeft : function() {
subtractGridColumn(true);
},
subGridColumnRight : function() {
subtractGridColumn(false);
}
}
}

3
js/freeboard.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -15617,6 +15617,11 @@ new a.w;var b=new a.Ba;0<b.Rb&&a.La(b);a.b("jqueryTmplTemplateEngine",a.Ba)})()}
$(window).bind('resize.gridster-draggable', throttle($.proxy(this.calculate_positions, this), 200));
};
fn.setOptions = function(options)
{
this.options = $.extend(this.options, options);
};
fn.events = function()
{
this.$container.on('selectstart.gridster-draggable', $.proxy(this.on_select_start, this));
@ -15933,6 +15938,10 @@ new a.w;var b=new a.Ba;0<b.Rb&&a.La(b);a.b("jqueryTmplTemplateEngine",a.Ba)})()}
{
$.data(this, 'drag', new Draggable(this, options));
}
else
{
$.data(this, 'drag').setOptions(options);
}
});
};
@ -18985,6 +18994,7 @@ new a.w;var b=new a.Ba;0<b.Rb&&a.La(b);a.b("jqueryTmplTemplateEngine",a.Ba)})()}
};
}(jQuery, window, document));
(function($)
{
$.fn.insertAtCaret = function(text, opts)

File diff suppressed because one or more lines are too long