src/pyams_portal/resources/js/portal.js
changeset 96 43a99de860f2
parent 84 2be886bff11b
child 114 1a58e325f642
--- a/src/pyams_portal/resources/js/portal.js	Mon Jun 11 15:29:20 2018 +0200
+++ b/src/pyams_portal/resources/js/portal.js	Mon Jun 11 15:30:26 2018 +0200
@@ -231,7 +231,9 @@
 				var new_slot = $('<div></div>').addClass('slot context-menu col col-xs-12 col-sm-12 col-md-12 col-lg-12 resizable')
 											   .attr('data-ams-slot-name', slot_name)
 											   .append($('<div></div>').addClass('header padding-x-5')
-																	   .text(slot_name))
+																	   .append('<i class="fa fa-fw fa-minus-square pull-right padding-top-2" ' +
+																			   '   data-ams-click-handler="PyAMS_portal.template.switchSlot"></i>')
+																	   .append(slot_name))
 											   .append($('<div></div>').addClass('portlets')
 																	   .sortable({
 																			placeholder: 'portlet-highlight',
@@ -374,6 +376,20 @@
 								{order: JSON.stringify(order)});
 			},
 
+			switchSlot: function() {
+				var switcher = $(this);
+				var portlets = switcher.parents('.header').first().siblings('.portlets');
+				if (portlets.hasClass('hidden')) {
+					portlets.removeClass('hidden');
+					switcher.removeClass('fa-plus-square')
+							.addClass('fa-minus-square');
+				} else {
+					portlets.addClass('hidden');
+					switcher.removeClass('fa-minus-square')
+							.addClass('fa-plus-square');
+				}
+			},
+
 			deleteSlot: function() {
 				return function(slot) {
 					MyAMS.skin.bigBox({
@@ -410,7 +426,9 @@
 				var portlet = $('<div></div>').addClass('portlet context-menu')
 											  .attr('data-ams-portlet-id', result.portlet_id)
 											  .append($('<div></div>').addClass('header padding-x-5')
-																	  .text(result.label))
+																	  .append('<i class="fa fa-fw fa-minus-square pull-right padding-top-2" ' +
+																			  '   data-ams-click-handler="PyAMS_portal.template.switchPortlet"></i>')
+																	  .append(result.label))
 											.  append($('<div></div>').addClass('preview')
 																	  .html(result.preview || ''))
 											  .contextMenu({
@@ -493,6 +511,20 @@
 								{order: JSON.stringify(order)});
 			},
 
+			switchPortlet: function() {
+				var switcher = $(this);
+				var portlet = switcher.parents('.header').first().siblings('.preview');
+				if (portlet.hasClass('hidden')) {
+					portlet.removeClass('hidden');
+					switcher.removeClass('fa-plus-square')
+							.addClass('fa-minus-square');
+				} else {
+					portlet.addClass('hidden');
+					switcher.removeClass('fa-minus-square')
+							.addClass('fa-plus-square');
+				}
+			},
+
 			deletePortlet: function() {
 				return function(portlet) {
 					MyAMS.skin.bigBox({