diff --git a/PHPCI/View/layout.phtml b/PHPCI/View/layout.phtml index 33290fb3..28fe9302 100644 --- a/PHPCI/View/layout.phtml +++ b/PHPCI/View/layout.phtml @@ -30,6 +30,7 @@ + diff --git a/public/assets/js/build.js b/public/assets/js/build.js index 0b1d95dc..b97be489 100644 --- a/public/assets/js/build.js +++ b/public/assets/js/build.js @@ -116,11 +116,73 @@ var Build = Class.extend({ content.prepend('

'+plugin.title+'

'); } + this.toggleWidget(content); + container.append(content); $('#plugins').append(container); }, + toggleWidget: function($box) { + var self = this; + var id = $box.attr('id'); + var $header = $box.find('.box-header'); + var $content = $header.next(); + + // Add widget toggler + var $toggle = $(''); + if (self.isWidgetHidden(id)) { + $content.addClass('hidden'); + $toggle.toggleClass('fa-angle-down fa-angle-left'); + } + $toggle.appendTo($header).click(function() { + $content.toggleClass('hidden') + if ($content.hasClass('hidden')) { + self.hideWidget(id); + } else { + self.showWidget(id); + } + $(this).toggleClass('fa-angle-down fa-angle-left'); + }); + }, + + isWidgetHidden: function(id) { + var settings = this._getSettings('hidden_widgets'); + return (settings.indexOf(id) != -1); + }, + + hideWidget: function(id) { + var settings = this._getSettings('hidden_widgets'); + var index = settings.indexOf(id); + if (index == -1) { + settings.push(id); + this._storeSettings('hidden_widgets', settings); + } + }, + + showWidget: function(id) { + var settings = this._getSettings('hidden_widgets'); + var index = settings.indexOf(id); + if (index != -1) { + settings.splice(index, 1); + this._storeSettings('hidden_widgets', settings); + } + }, + + _getSettings: function(setting) { + var settingsArray = []; + var settingsString = $.cookie(setting); + if (settingsString) { + settingsArray = settingsString.split(','); + } + + return settingsArray; + }, + + _storeSettings: function(setting, value) { + $.cookie(setting, value.toString()); + }, + UiPlugin: Class.extend({ id: null, css: 'col-lg-4 col-md-6 col-sm-12 col-xs-12',