From 71615dc99b3b61ef1f2af17545de858ecaa1eb66 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Tue, 8 Nov 2016 14:17:03 +0000 Subject: [PATCH] SSDM-4172: Add button to expand file tree on all levels in data set detailed view SVN: 37287 --- .../js/views/DataSetForm/DataSetFormView.js | 2 +- .../widgets/DatasetViewerController.js | 5 ++- .../DataSetForm/widgets/DatasetViewerModel.js | 5 +-- .../DataSetForm/widgets/DatasetViewerView.js | 32 +++++++++++++++---- .../js/views/SampleForm/SampleFormView.js | 2 +- 5 files changed, 32 insertions(+), 14 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js index ff988f680f2..7cbff608951 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js @@ -297,7 +297,7 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) { } if(this._dataSetFormModel.mode !== FormMode.CREATE) { - var dataSetViewer = new DataSetViewerController("filesViewer", profile, this._dataSetFormModel.sample, mainController.serverFacade, profile.getDefaultDataStoreURL(), [this._dataSetFormModel.dataSet], false, false); + var dataSetViewer = new DataSetViewerController("filesViewer", profile, this._dataSetFormModel.sample, mainController.serverFacade, profile.getDefaultDataStoreURL(), [this._dataSetFormModel.dataSet], false, true); dataSetViewer.init(); } } diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerController.js index 69411a0a3fc..d17b069d91d 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerController.js @@ -26,10 +26,9 @@ * @param {String} datastoreDownloadURL The datastore url in format http://localhost:8889/datastore_server. * @param {Map} datasets API result with the datasets to show. * @param {Boolean} enableUpload If true, the button to create datasets is shown, this will require the sample to be present. - * @param {Boolean} enableOpenDataset If true, pressing on a row opens the dataset form on view mode for the given dataset. */ -function DataSetViewerController(containerId, profile, sample, serverFacade, datastoreDownloadURL, datasets, enableUpload, enableOpenDataset) { - this._datasetViewerModel = new DataSetViewerModel(containerId, profile, sample, serverFacade, datastoreDownloadURL, datasets, enableUpload, enableOpenDataset); +function DataSetViewerController(containerId, profile, sample, serverFacade, datastoreDownloadURL, datasets, enableUpload, enableDeepUnfolding) { + this._datasetViewerModel = new DataSetViewerModel(containerId, profile, sample, serverFacade, datastoreDownloadURL, datasets, enableUpload, enableDeepUnfolding); this._datasetViewerView = new DataSetViewerView(this, this._datasetViewerModel); this.init = function() { diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerModel.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerModel.js index 5fa76fce317..919acd3fa77 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerModel.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/DatasetViewerModel.js @@ -14,7 +14,8 @@ * limitations under the License. */ -function DataSetViewerModel(containerId, profile, sample, serverFacade, datastoreDownloadURL, datasets, enableUpload, enableOpenDataset) { +function DataSetViewerModel(containerId, profile, sample, serverFacade, datastoreDownloadURL, datasets, + enableUpload, enableDeepUnfolding) { this.containerId = containerId; this.containerIdTitle = containerId + "-title"; this.containerIdContent = containerId + "-content"; @@ -26,7 +27,7 @@ function DataSetViewerModel(containerId, profile, sample, serverFacade, datastor this.datasets = datasets; this.enableUpload = enableUpload; - this.enableOpenDataset = enableOpenDataset; + this.enableDeepUnfolding = enableDeepUnfolding; this.sampleDataSets = {}; this.datastoreDownloadURL = datastoreDownloadURL; 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 b96b73fc5ff..01f21e5727c 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 @@ -38,23 +38,41 @@ function DataSetViewerView(dataSetViewerController, dataSetViewerModel) { $containerTitle.append($("<div>").append($uploadButton)); - // Title / Container Content + // Container Content var $containerContent = $("<div>", {"id" : this._dataSetViewerModel.containerIdContent }); - $containerContent.append($("<legend>").append("Datasets:")); $mainContainer.append($containerTitle).append($containerContent); - var $container = $("#"+this._dataSetViewerModel.containerIdContent); - $container.empty(); - var $filesContainer = $("<div>"); - $container.append($filesContainer); + $containerContent.append($filesContainer); + if (this._dataSetViewerModel.enableDeepUnfolding) { + var b = FormUtil.getButtonWithText("Expand all levels", function() { + _this._expandAll(); + }); + $filesContainer.append(b); + var $treeContainer = $("<div>"); + $filesContainer.append($treeContainer); + $filesContainer = $treeContainer; + } this.repaintFilesAsTree($filesContainer); } + this._expandAll = function() { + var _this = this; + var tree = $("#filestree").fancytree("getTree"); + _this._expandDeep(tree.getRootNode()); + } + + this._expandDeep = function(node) { + var _this = this; + node.setExpanded(true).done(function() { + node.visit(function(n) {_this._expandDeep(n);}); + }) + } + this.repaintFilesAsTree = function($container) { $container.empty(); var _this = this; - var $tree = $("<div>", { "id" : "tree" }); + var $tree = $("<div>", { "id" : "filestree" }); $container.append($tree); var treeModel = []; diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js index b837d578cac..49905a9d1ab 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js @@ -455,7 +455,7 @@ function SampleFormView(sampleFormController, sampleFormModel) { this._reloadPreviewImage(); // Dataset Viewer - this._sampleFormModel.dataSetViewer = new DataSetViewerController("dataSetViewerContainer", profile, this._sampleFormModel.sample, mainController.serverFacade, profile.getDefaultDataStoreURL(), this._sampleFormModel.datasets, false, true); + this._sampleFormModel.dataSetViewer = new DataSetViewerController("dataSetViewerContainer", profile, this._sampleFormModel.sample, mainController.serverFacade, profile.getDefaultDataStoreURL(), this._sampleFormModel.datasets, false, false); this._sampleFormModel.dataSetViewer.init(); } -- GitLab