diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js index 03d062a1c1b7d64789ee1b7a82cac904c71d4339..6cbc5accad96abc4405635ec3daedda1e69816aa 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js @@ -2116,6 +2116,20 @@ function ServerFacade(openbisServer) { }); } + this.unarchiveDataSet = function(dataSetPermId, callbackFunction) { + require(["as/dto/dataset/id/DataSetPermId", "as/dto/dataset/unarchive/DataSetUnarchiveOptions"], + function(DataSetPermId, DataSetUnarchiveOptions) { + var ids = [new DataSetPermId(dataSetPermId)]; + var options = new DataSetUnarchiveOptions(); + mainController.openbisV3.unarchiveDataSets(ids, options).done(function(result) { + callbackFunction(true); + }).fail(function(result) { + Util.showError("Call failed to server: " + JSON.stringify(result)); + callbackFunction(false); + }); + }); + } + this.getSessionInformation = function(callbackFunction) { mainController.openbisV3.getSessionInformation().done(function(sessionInfo) { Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â callbackFunction(sessionInfo); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js index e9318276b6c21f6121e490e421a8de0be341bd45..202e56c3b17eb4ede162f37ba6ae59ed936c7bbf 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js @@ -856,9 +856,14 @@ var FormUtil = new function() { for(var tbIdx = 0; tbIdx < toolbarModel.length; tbIdx++) { var $toolbarComponent = toolbarModel[tbIdx].component; var toolbarComponentTooltip = toolbarModel[tbIdx].tooltip; + var $toolbarComponentTooltip = toolbarModel[tbIdx].$tooltip; if(toolbarComponentTooltip) { $toolbarComponent.attr("title", toolbarComponentTooltip); $toolbarComponent.tooltipster(); + } else if ($toolbarComponentTooltip) { + $toolbarComponent.tooltipster({ + content: $toolbarComponentTooltip + }); } $toolbarContainer.append($toolbarComponent); $toolbarContainer.append(" "); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js index a05dc6db71a4f5f5969998feb6174f5f3c5dee48..6ed9dfed48a78885d902206c45f43fb48e0209aa 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js @@ -232,13 +232,27 @@ function DataSetFormController(parentController, mode, entity, dataSet, isMini, var physicalDataUpdate = { archivingRequested : archivingRequested } Util.blockUI(); mainController.serverFacade.updateDataSet(dataSetPermId, physicalDataUpdate, function() { - if(_this._dataSetFormModel.mode === FormMode.VIEW) { - mainController.changeView('showViewDataSetPageFromPermId', _this._dataSetFormModel.dataSet.code); - } else { - mainController.changeView('showEditDataSetPageFromPermId', _this._dataSetFormModel.dataSet.code); - } + _this._reloadView(); Util.unblockUI(); }); } + this.unarchive = function() { + var _this = this; + var dataSetPermId = this._dataSetFormModel.dataSetV3.permId.permId; + Util.blockUI(); + mainController.serverFacade.unarchiveDataSet(dataSetPermId, function() { + _this._reloadView(); + Util.unblockUI(); + }); + } + + this._reloadView = function() { + if(this._dataSetFormModel.mode === FormMode.VIEW) { + mainController.changeView('showViewDataSetPageFromPermId', this._dataSetFormModel.dataSet.code); + } else { + mainController.changeView('showEditDataSetPageFromPermId', this._dataSetFormModel.dataSet.code); + } + } + } \ No newline at end of file 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 145480947f6e6288a2c8382014ec85a400cdb324..4c4dd312848aee59742f3002443ca811f555ca51 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 @@ -94,25 +94,55 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) { //Archiving Requested Button var physicalData = this._dataSetFormModel.dataSetV3.physicalData; + if (profile.showDatasetArchivingButton && physicalData) { + + var archiveImage = "./img/archive-not-requested-icon.png"; if (physicalData.presentInArchive) { - var $archivingRequestedBtn = FormUtil.getButtonWithImage("./img/archive-archived-icon.png"); - var tooltip = "Archived"; - $archivingRequestedBtn.attr("disabled", true); - } else { + archiveImage = "./img/archive-archived-icon.png"; + } else if (physicalData.archivingRequested || physicalData.status == "ARCHIVE_PENDING") { + archiveImage = "./img/archive-requested-icon.png"; + } + + var archiveAction = null; + var archiveTooltip = null; + var $archiveTooltip = null; + if (physicalData.status == "AVAILABLE" && !physicalData.presentInArchive) { if (physicalData.archivingRequested) { - var $archivingRequestedBtn = FormUtil.getButtonWithImage("./img/archive-requested-icon.png", function () { - _this._dataSetFormController.setArchivingRequested(false); - }); - var tooltip = "Revoke archiving request"; + archiveAction = function() { + _this.revokeArchivingRequest(); + } + archiveTooltip = "Revoke archiving request"; } else { - var $archivingRequestedBtn = FormUtil.getButtonWithImage("./img/archive-not-requested-icon.png", function () { + archiveAction = function() { _this.requestArchiving(); - }); - var tooltip = "Request archiving"; + } + archiveTooltip = "Request archiving"; } + } else if (physicalData.status == "ARCHIVED") { + archiveAction = function() { + _this._dataSetFormController.unarchive(); + } + archiveTooltip = "Unarchive"; + } + + if (archiveTooltip == null) { + $archiveTooltip = $("<div>") + .append($("<p>").text("Status: " + physicalData.status)) + .append($("<p>").text("Present in archive: " + physicalData.presentInArchive)) + .append($("<p>").text("Archiving requested: " + physicalData.archivingRequested)); + } + + var $archivingRequestedBtn = FormUtil.getButtonWithImage(archiveImage, archiveAction); + if (archiveAction == null) { + $archivingRequestedBtn.attr("disabled", true); } - toolbarModel.push({ component : $archivingRequestedBtn, tooltip: tooltip }); + + toolbarModel.push({ + component : $archivingRequestedBtn, + tooltip : archiveTooltip, + $tooltip : $archiveTooltip + }); } //Delete Button @@ -675,4 +705,8 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) { Util.blockUI($window, css); } + this.revokeArchivingRequest = function() { + this._dataSetFormController.setArchivingRequested(false); + } + } \ No newline at end of file