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('
');
}
+ 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',