diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js index 8c6bfbcf1f2791f064a86b0aff88d215f6bd5568..5132066cc08c68a358607e50b7736a3d74aea233 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js @@ -83,6 +83,8 @@ function MainController(profile) { //Functionality to keep state this.backStack = []; + + this.zenodoApiTokenKey = "personal-zenodo-api-token"; // // Validates and enters the app 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 5fc84d5f807768cfcaf096ac497f5a33875fd4d8..cf273afe3bfe7883c1fbe5f6e7775c43a7243742 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 @@ -417,7 +417,7 @@ function ServerFacade(openbisServer) { }); }; - this.exportZenodo = function(entities, includeRoot, metadataOnly, userInformation, title, callbackFunction) { + this.exportZenodo = function(entities, includeRoot, metadataOnly, userInformation, title, accessToken, callbackFunction) { this.asyncExportZenodo({ "method": "exportAll", "includeRoot": includeRoot, @@ -427,6 +427,7 @@ function ServerFacade(openbisServer) { "originUrl": window.location.origin, "sessionToken": this.openbisServer.getSession(), "submissionTitle": title, + "accessToken": accessToken }, callbackFunction, "zenodo-exports-api"); }; @@ -451,6 +452,7 @@ function ServerFacade(openbisServer) { options.withParameter("submissionUrl", parameters["submissionUrl"]); options.withParameter("entities", parameters["entities"]); options.withParameter("submissionTitle", parameters["submissionTitle"]); + options.withParameter("accessToken", parameters["accessToken"]); options.withParameter("userId", parameters["userInformation"]["id"]); options.withParameter("userEmail", parameters["userInformation"]["email"]); options.withParameter("userFirstName", parameters["userInformation"]["firstName"]); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserProfile/UserProfileController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserProfile/UserProfileController.js index f4fb3b515664e25d1071b020b3cb832c47840978..93d3c3fc9e2ebfd73e007cdd00da66bee76928ac 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserProfile/UserProfileController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserProfile/UserProfileController.js @@ -18,8 +18,7 @@ function UserProfileController(mainController, mode) { this._mainController = mainController; this._userProfileModel = new UserProfileModel(mode); this._userProfileView = new UserProfileView(this, this._userProfileModel); - - this._zenodoApiTokenKey = "personal-zenodo-api-token"; + this._zenodoApiTokenKey = this._mainController.zenodoApiTokenKey; this.init = function(views) { this._userProfileView.repaint(views); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserProfile/UserProfileView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserProfile/UserProfileView.js index e87f1560104fa3648e9c5272595f62858e0de5fa..65d80e7574d388b5922b96ea0459bc8b35175128 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserProfile/UserProfileView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserProfile/UserProfileView.js @@ -77,7 +77,7 @@ function UserProfileView(userProfileController, userProfileModel) { this._userProfileController.getSettingValue(this._userProfileController._zenodoApiTokenKey, (function (settingsValue) { if (settingsValue) { - this._$zenodoToken.val(settingsValue); + this._$zenodoToken.val(settingsValue.trim()); } }).bind(this)); $formColumn.append(this._getFormGroup(this._$zenodoToken, "Zenodo API Token:")); @@ -94,7 +94,6 @@ function UserProfileView(userProfileController, userProfileModel) { this._$zenodoToken.prop("disabled", true); } }).bind(this)); - } this._getOptionsMenu = function() { diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportController.js index 22d8015cdae2798ad66dbae025a5c121076a69fe..fb99fc614e7ea5cb2e89a2a84a54680df5e6d190 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportController.js @@ -15,17 +15,26 @@ */ function ZenodoExportController(parentController) { - var exportModel = new ZenodoExportModel(); - var exportView = new ZenodoExportView(this, exportModel); + this.exportModel = null; + this.exportView = null; + this.zenodoApiTokenKey = parentController.zenodoApiTokenKey; this.init = function(views) { - exportView.repaint(views); + this.getSettingValue(this.zenodoApiTokenKey, (function (accessToken) { + if (accessToken && accessToken !== '') { + this.exportModel = new ZenodoExportModel(accessToken); + this.exportView = new ZenodoExportView(this, this.exportModel); + this.exportView.repaint(views); + } else { + Util.showError('Personal Zenodo API Token missing, please set it on your user profile.'); + } + }).bind(this)); }; this.exportSelected = function() { var _this = this; - var selectedNodes = $(exportModel.tree).fancytree('getTree').getSelectedNodes(); - var title = exportView.$titleTextBox.val().trim(); + var selectedNodes = $(this.exportModel.tree).fancytree('getTree').getSelectedNodes(); + var title = this.exportView.$titleTextBox.val().trim(); var toExport = []; for (var eIdx = 0; eIdx < selectedNodes.length; eIdx++) { @@ -41,8 +50,8 @@ function ZenodoExportController(parentController) { Util.showInfo('Not only spaces and the root should be selected. It will result in an empty export file.'); } else { Util.blockUI(); - this.getUserInformation(function(userInformation) { - mainController.serverFacade.exportZenodo(toExport, true, false, userInformation, title, + this.getUserInformation((function(userInformation) { + mainController.serverFacade.exportZenodo(toExport, true, false, userInformation, title, this.exportModel.accessToken, function(operationExecutionPermId) { _this.waitForOpExecutionResponse(operationExecutionPermId, function(error, result) { Util.unblockUI(); @@ -59,7 +68,7 @@ function ZenodoExportController(parentController) { } }); }); - }); + }).bind(this)); } }; @@ -112,4 +121,8 @@ function ZenodoExportController(parentController) { callback(userInformation); }); }; + + this.getSettingValue = function (key, callback) { + parentController.serverFacade.getSetting(key, callback); + }; } \ 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/ZenodoExport/ZenodoExportModel.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportModel.js index f555844b57e82e8c640965767f2077b1b66f213e..dc4f73489ca42ef5f9dc9cd1abe15ef67a0a8c35 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportModel.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportModel.js @@ -14,5 +14,6 @@ * limitations under the License. */ -function ZenodoExportModel() { +function ZenodoExportModel(accessToken) { + this.accessToken = accessToken; } \ 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/ZenodoExport/ZenodoExportView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportView.js index 833660f9406412a911d2006d59f9747ee194fca1..a2ae6996d23f4730a24de4e2ff05f4b6df87fae4 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportView.js @@ -21,7 +21,7 @@ function ZenodoExportView(exportController, exportModel) { var $form = $("<div>"); var $formColumn = $("<form>", { - 'name': 'rcExportForm', + 'name': 'zenodoExportForm', 'role': 'form', 'action': 'javascript:void(0);', 'onsubmit': 'mainController.currentView.exportSelected();' @@ -56,7 +56,7 @@ function ZenodoExportView(exportController, exportModel) { this.paintTitleTextBox($container); var $exportButton = $('<input>', { 'type': 'submit', 'class': 'btn btn-primary', 'value': 'Export Selected', - 'onClick': '$("form[name=\'rcExportForm\']").submit()'}); + 'onClick': '$("form[name=\'zenodoExportForm\']").submit()'}); $header.append($exportButton); }; diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/zenodo-exports-api/plugin.properties b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/zenodo-exports-api/plugin.properties index d172528c3ff79f9d887466243c0ee593a8ee74a8..1e4e8fa3aa70869ce9c174f3bdcf7d2c5941224b 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/zenodo-exports-api/plugin.properties +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/zenodo-exports-api/plugin.properties @@ -2,5 +2,4 @@ label = Zenodo Exports API class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.jython.JythonIngestionService script-path = zenodoExports.py limit-data-size-megabytes=${zenodo-exports-api-limit-data-size-megabytes:4000} -zenodoUrl=https://sandbox.zenodo.org -accessToken=dkN5iagpbJfh4wmK2fM4sVyzCyNmCF6aM5XCZufT9t986HGmk1RGGwUjIdlb \ No newline at end of file +zenodoUrl=${zenodo-exports-api-zenodoUrl:https://localhost} \ No newline at end of file diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/zenodo-exports-api/zenodoExports.py b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/zenodo-exports-api/zenodoExports.py index ffe21051279224270fb98c46ed23b9c07a231403..5922f0f8827de532880931ddc8150ef0501f88fc 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/zenodo-exports-api/zenodoExports.py +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/zenodo-exports-api/zenodoExports.py @@ -93,7 +93,7 @@ def export(entities, tr, params): def sendToZenodo(tr, params, tempZipFilePath, entities): depositRootUrl = str(getConfigurationProperty(tr, 'zenodoUrl')) + '/api/deposit/depositions' - accessToken = str(getConfigurationProperty(tr, 'accessToken')) + accessToken = params.get('accessToken') operationLog.info('accessToken: %s' % accessToken) httpClient = None