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 741d99067c37e7f53f2e1c7b45024b36adb05769..5fc84d5f807768cfcaf096ac497f5a33875fd4d8 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, callbackFunction) { + this.exportZenodo = function(entities, includeRoot, metadataOnly, userInformation, title, callbackFunction) { this.asyncExportZenodo({ "method": "exportAll", "includeRoot": includeRoot, @@ -426,6 +426,7 @@ function ServerFacade(openbisServer) { "userInformation": userInformation, "originUrl": window.location.origin, "sessionToken": this.openbisServer.getSession(), + "submissionTitle": title, }, callbackFunction, "zenodo-exports-api"); }; @@ -441,7 +442,6 @@ function ServerFacade(openbisServer) { var options = new AggregationServiceExecutionOptions(); options.withParameter("sessionToken", parameters["sessionToken"]); - options.withParameter("entities", parameters["entities"]); options.withParameter("includeRoot", parameters["includeRoot"]); options.withParameter("metadataOnly", parameters["metadataOnly"]); @@ -450,6 +450,7 @@ function ServerFacade(openbisServer) { options.withParameter("submissionType", parameters["submissionType"]); options.withParameter("submissionUrl", parameters["submissionUrl"]); options.withParameter("entities", parameters["entities"]); + options.withParameter("submissionTitle", parameters["submissionTitle"]); 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/ZenodoExport/ZenodoExportController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ZenodoExport/ZenodoExportController.js index 34f489234de0f0119b948bb8139ea5a7e76855ff..22d8015cdae2798ad66dbae025a5c121076a69fe 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 @@ -25,6 +25,7 @@ function ZenodoExportController(parentController) { this.exportSelected = function() { var _this = this; var selectedNodes = $(exportModel.tree).fancytree('getTree').getSelectedNodes(); + var title = exportView.$titleTextBox.val().trim(); var toExport = []; for (var eIdx = 0; eIdx < selectedNodes.length; eIdx++) { @@ -34,12 +35,14 @@ function ZenodoExportController(parentController) { if (toExport.length === 0) { Util.showInfo('First select something to export.'); + } else if (title === "") { + Util.showInfo('Please enter a title.'); } else if (!this.isValid(toExport)) { 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, + mainController.serverFacade.exportZenodo(toExport, true, false, userInformation, title, function(operationExecutionPermId) { _this.waitForOpExecutionResponse(operationExecutionPermId, function(error, result) { Util.unblockUI(); 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 775a8893be6bbaed639dd4409ab6e73e14e56b43..833660f9406412a911d2006d59f9747ee194fca1 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 @@ -53,8 +53,17 @@ function ZenodoExportView(exportController, exportModel) { var $formTitle = $('<h2>').append('Zenodo Export Builder'); $header.append($formTitle); + this.paintTitleTextBox($container); + var $exportButton = $('<input>', { 'type': 'submit', 'class': 'btn btn-primary', 'value': 'Export Selected', 'onClick': '$("form[name=\'rcExportForm\']").submit()'}); $header.append($exportButton); }; + + this.paintTitleTextBox = function ($container) { + this.$titleTextBox = FormUtil.getTextInputField('zenodo-submission-title', 'Submission title', true); + var titleTextBoxFormGroup = FormUtil.getFieldForComponentWithLabel(this.$titleTextBox, 'Submission Title', null, true); + titleTextBoxFormGroup.css('width', '50%'); + $container.append(titleTextBoxFormGroup); + }; } \ 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 4934cac3586e661ffe31a3142a24b52af2876ba7..be1dd798a3369d52923b64d6be25380fc00e7337 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 @@ -110,7 +110,7 @@ def sendToZenodo(tr, params, tempZipFilePath, entities): selfUrl = depositionLinks.get('self') submitFile(httpClient.newRequest(depositUrl), accessToken, tempZipFilePath) - addMetadata(httpClient.newRequest(selfUrl), accessToken) + addMetadata(params, httpClient.newRequest(selfUrl), accessToken) entityPermIds = map(lambda entity: entity['permId'], entities) zenodoCallable = ZenodoCallable(params, accessToken, selfUrl, @@ -140,10 +140,10 @@ def submitFile(request, accessToken, tempZipFilePath): return JSONObject(contentStr) -def addMetadata(request, accessToken): +def addMetadata(params, request, accessToken): data = { 'metadata': { - 'title': str(time.time()), + 'title': params.get('submissionTitle'), 'license': 'cc-zero', 'upload_type': 'dataset', 'description': 'Add some description.',