From d1d701e51f7ef2e608a865d76e5edfe38001035c Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Fri, 9 Dec 2016 11:11:52 +0000
Subject: [PATCH] SSDM-4407 : Dataset menu tree can now close all nodes at once

SVN: 37464
---
 .../DataSetForm/widgets/DatasetViewerView.js  | 24 +++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerView.js
index ab8acd4c0a3..7227d3e92b9 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerView.js
@@ -49,10 +49,26 @@ function DataSetViewerView(dataSetViewerController, dataSetViewerModel) {
 		var $filesContainer = $("<div>");
 		$containerContent.append($filesContainer);
 		if (this._dataSetViewerModel.enableDeepUnfolding) {
-			var b = FormUtil.getButtonWithIcon("glyphicon-chevron-down", function() {
-				_this._expandAll();
-			}, null, "Expand all");
-			$filesContainer.append(b);
+			var expandCollapseAll = FormUtil.getButtonWithIcon("glyphicon-chevron-down", function() {
+				var icon = $($(this).children()[0]);
+				
+				if(icon.hasClass("glyphicon-chevron-down")) {
+					_this._expandAll();
+					icon.removeClass("glyphicon-chevron-down");
+					icon.addClass("glyphicon-chevron-up");
+				} else if(icon.hasClass("glyphicon-chevron-up")) {
+					
+					$("#filestree").fancytree("getRootNode").visit(function(node) {
+					    node.setExpanded(false);
+					});
+					
+					icon.removeClass("glyphicon-chevron-up");
+					icon.addClass("glyphicon-chevron-down");
+				}
+				
+			}, null, "Expand/Collapse all");
+			$filesContainer.append(expandCollapseAll);
+			
 			var $treeContainer = $("<div>");
 			$filesContainer.append($treeContainer);
 			$filesContainer = $treeContainer;
-- 
GitLab