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 ff988f680f25633b5e5add4bce5e6becf90ffff8..7cbff608951fff3349427d5455a02fed6a6bab98 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 69411a0a3fcacce154294638734b2387ec7e1282..d17b069d91dffca00a47c02f8a6c8898a7d14838 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 5fa76fce317af43276abbcb31e3e4a2e0ae2e68e..919acd3fa77238805b9d98ac5f160ff6085c1770 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 b96b73fc5ff97fbbbc097b87adc9769481ce65c0..01f21e5727cd5a45cb345db22c20dc2a6f7f6a49 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 b837d578cac39796b674df848e69a33b99487be6..49905a9d1ab51999d601cd8354d3a02b33c9b584 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(); }