diff --git a/Dockerfile b/Dockerfile index e7089c4825f..244978d1745 100644 --- a/Dockerfile +++ b/Dockerfile @@ -70,6 +70,7 @@ COPY ./admin/rdm_announcement/requirements.txt ./admin/rdm_announcement/ COPY ./admin/rdm_statistics/requirements.txt ./admin/rdm_statistics/ COPY ./addons/metadata/requirements.txt ./addons/metadata/ COPY ./addons/onlyoffice/requirements.txt ./addons/onlyoffice/ +COPY ./addons/workflow/requirements.txt ./addons/workflow/ RUN pip3 install pip==21.0 @@ -179,6 +180,7 @@ COPY ./addons/iqbrims/static/ ./addons/iqbrims/static/ COPY ./addons/binderhub/static/ ./addons/binderhub/static/ COPY ./addons/metadata/static/ ./addons/metadata/static/ COPY ./addons/onlyoffice/static/ ./addons/onlyoffice/static/ +COPY ./addons/workflow/static/ ./addons/workflow/static/ RUN \ # OSF yarn install --frozen-lockfile \ diff --git a/addons.json b/addons.json index 98138a0d32f..40a232f5349 100644 --- a/addons.json +++ b/addons.json @@ -33,7 +33,8 @@ "onedrivebusiness", "metadata", "datasteward", - "onlyoffice" + "onlyoffice", + "workflow" ], "addons_default": [ "osfstorage", @@ -68,7 +69,8 @@ "nextcloudinstitutions": "partial", "iqbrims": "partial", "dropboxbusiness": "partial", - "onedrivebusiness": "partial" + "onedrivebusiness": "partial", + "workflow": "partial" }, "addons_commentable": [ "osfstorage", @@ -95,7 +97,8 @@ "nextcloudinstitutions", "iqbrims", "dropboxbusiness", - "onedrivebusiness" + "onedrivebusiness", + "workflow" ], "addons_based_on_ids": [ "osfstorage", @@ -138,7 +141,8 @@ "binderhub": "GakuNin Federated Computing Services (Jupyter) is a web-based interactive computational environment. Files on a GakuNin RDM project can be imported to/exported from GakuNin Federated Computing Services (Jupyter)", "onedrivebusiness": "OneDrive for Office365 is a file storage add-on. Connect your Microsoft OneDrive account to a GakuNin RDM project to interact with files hosted on Microsoft OneDrive via the GakuNin RDM.", "metadata": "The Metadata addon provides the functionality to register metadata to files and generate reports.", - "onlyoffice": "ONLYOFFICE document server." + "onlyoffice": "ONLYOFFICE document server.", + "workflow": "Work Flow Addon is ..." }, "addons_url": { "box": "http://www.box.com", @@ -166,7 +170,8 @@ "binderhub": "https://binder.cs.rcos.nii.ac.jp", "onedrivebusiness": "https://onedrive.live.com", "metadata": "https://rcos.nii.ac.jp/service/rdm/", - "onlyoffice": "https://onlyoffice.com/" + "onlyoffice": "https://onlyoffice.com/", + "workflow": "https://dummy.nii.ac.jp/workflow" }, "institutional_storage_add_on_method": [ "nextcloudinstitutions", diff --git a/addons/base/views.py b/addons/base/views.py index b79d8ef0b06..4f3c480900f 100644 --- a/addons/base/views.py +++ b/addons/base/views.py @@ -1043,6 +1043,7 @@ def addon_view_file(auth, node, file_node, version): 'file_id': file_node._id, 'allow_comments': file_node.provider in settings.ADDONS_COMMENTABLE, 'checkout_user': file_node.checkout._id if file_node.checkout else None, + 'locked_user': file_node.locked._id if file_node.locked else None, 'version_names': list(version_names), 'wopi_onlyoffice': onlyoffice_settings.WOPI_CLIENT_ONLYOFFICE, }) diff --git a/addons/metadata/apps.py b/addons/metadata/apps.py index f69fb617d8f..b3655a310f8 100644 --- a/addons/metadata/apps.py +++ b/addons/metadata/apps.py @@ -37,10 +37,10 @@ class AddonAppConfig(BaseAddonAppConfig): node_settings_template = os.path.join(TEMPLATE_PATH, 'metadata_node_settings.mako') - excel_maximun_file_size = 10485760 - text_maximun_file_size = 10485760 - image_maximun_file_size = 10485760 - other_maximun_file_size = 10485760 + excel_file_maximum_size = 10485760 + text_file_maximum_size = 10485760 + image_file_maximum_size = 10485760 + any_file_maximum_size = 10485760 text_file_extension = ['txt', 'csv', 'tsv'] excel_file_extension = ['xlsx', 'xls'] diff --git a/addons/metadata/static/files.js b/addons/metadata/static/files.js index e062b32abed..d3c3580dcbe 100644 --- a/addons/metadata/static/files.js +++ b/addons/metadata/static/files.js @@ -474,30 +474,6 @@ function MetadataButtons() { * Start editing metadata. */ self.editMetadata = function(context, filepath, item) { - window.context = context; - window.item = item; - - var file_total_size = 0; - var file_total_number_of_files = 0; - var file_total_number_of_folders = 0; - var file_maximum_number_of_layers = 0; - var root = ''; - getFile(filepath); - - function getFile(filepath) { - context.wbcache.searchFile(filepath, function (file) { - if (file.hasOwnProperty('links')) { - window.filepath = file.links.download; - root = file.attributes.materialized; - window.filesize = file.attributes.size; - } - else { - window.filepath = ''; - root = '/'+ file.data.provider; - } - }); - } - var dialog = null; const extraMetadata = self.getExtraMetadata(item); if ((context.projectMetadata || {}).editable && !extraMetadata) { diff --git a/addons/metadata/static/metadata-fields.js b/addons/metadata/static/metadata-fields.js index 73923853c3a..451c7bc1b84 100644 --- a/addons/metadata/static/metadata-fields.js +++ b/addons/metadata/static/metadata-fields.js @@ -26,9 +26,10 @@ const sizeofFormat = require("./util").sizeofFormat; const getLocalizedText = util.getLocalizedText; const normalizeText = util.normalizeText; -const logPrefix = '[metadata] '; var filteredPages = []; +const logPrefix = '[metadata] '; + const QuestionPage = oop.defclass({ constructor: function(schema, fileItem, options) { const self = this; @@ -54,7 +55,7 @@ const QuestionPage = oop.defclass({ filteredPages = []; filteredPages = (self.schema.pages || []).filter(function(page) { return (page.questions || []).some(function(question){ - return question.hide === true; + return question.concealment_page === "buttonHide"; }) }).map(function(page){ return page; @@ -190,6 +191,7 @@ const QuestionField = oop.extend(Emitter, { create: function() { const self = this; + self.element = $('
').addClass('form-group'); if(filteredPages.length > 0 && filteredPages.length != 1){ const currentPage = filteredPages.filter(function(page) { return (page.questions || []).some(function (question) { @@ -199,26 +201,26 @@ const QuestionField = oop.extend(Emitter, { const filteredPageIds = currentPage.flatMap(function(page) { return (page.questions || []).filter(function (question) { - return question.hide === true; + return question.concealment_page === "buttonHide"; }) .map(function (question) { return question.qid.split(':')[1]; }); }); - const isHide = currentPage.some(function(page) { + const isConcealmentPage = currentPage.some(function(page) { return (page.questions || []).some(function (question) { return question.qid === self.question.qid && self.question.qid.split(':')[1] != filteredPageIds && self.question.required != true; }) }); - if (isHide && filteredPageIds.length == 1) { - self.element = $('
').addClass('form-group-'+filteredPageIds).css('height','0').css('overflow', 'hidden').css('margin','0px'); + if (isConcealmentPage && filteredPageIds.length == 1) { + self.element = $('
').addClass('concealment-page-'+filteredPageIds).css('height','0').css('overflow', 'scroll'); }else{ - self.element = $('
').addClass('form-group').css('margin','0px'); + self.element = $('
').addClass('form-group'); } }else{ - self.element = $('
').addClass('form-group').css('margin','0px'); + self.element = $('
').addClass('form-group'); } // construct header @@ -228,10 +230,6 @@ const QuestionField = oop.extend(Emitter, { // construct label const label = $('') .text(self.question.title ? getLocalizedText(self.question.title) : self.question.label); - - if(self.question.auto_value){ - label.append($('   ⟳ ')); - } if (self.question.required) { label.append($('') .css('color', 'red') @@ -240,19 +238,19 @@ const QuestionField = oop.extend(Emitter, { } header.append(label); - if(self.question.hasOwnProperty('hide') && self.question.hide){ + if(self.question.hasOwnProperty('concealment_page') && self.question.concealment_page == "buttonHide"){ const p = $('

'); - const a = $('').text('▼ '+_('Show Items')); + const a = $('').text(' '+_('Show Items')); p.on('click', function(){ - $('.form-group-'+self.question.qid.split(':')[1]).each(function() { + $('.concealment-page-'+self.question.qid.split(':')[1]).each(function() { if($(this).height() === 0){ $(this).animate({height: $(this).get(0).scrollHeight}, 'fast', function() { - $(this).css('height', ''); + $(this).css('height', '').addClass('form-group'); }); - a.text('▲ '+_('Hide Items')); + a.text(' '+_('Hide Items')); }else { - $(this).animate({height: 0}, 'fast'); - a.text('▼ '+_('Show Items')); + $(this).animate({height: 0}, 'fast').removeClass('form-group'); + a.text(' '+_('Show Items')); } }); }); @@ -384,7 +382,7 @@ function createFormField(question, options, value) { formField = new TextFormField(question, options); } formField.create(); - if (value != null && value !== '') { + if (value != null && value !== '' || (question.hasOwnProperty('initial_row_addition') && question.initial_row_addition)) { try { formField.setValue(value); } catch (error) { @@ -729,11 +727,7 @@ const ArrayFormField = oop.extend(FormFieldInterface, { const headRow = $(''); const thead = $('').append(headRow); self.question.properties.forEach(function(prop) { - if(prop.auto_value){ - headRow.append($('' + getLocalizedText(prop.title) + '  ⟳')); - }else{ - headRow.append($('' + getLocalizedText(prop.title) + '')); - } + headRow.append($('' + getLocalizedText(prop.title) + '')); }); headRow.append($('')); // remove button header @@ -846,6 +840,11 @@ const ArrayFormField = oop.extend(FormFieldInterface, { } else { rows = value || []; } + + if(self.question.hasOwnProperty('initial_row_addition') && self.question.initial_row_addition ){ + self.addRow(); + } + rows.forEach(function(row) { self.addRow(row); }); @@ -1145,8 +1144,8 @@ function createSuggestionButton(container, question, buttonSuggestions, options, .then(function (value) { if(value == 'error'){ return; - }else if( value == 'auto-value-filesize-over-error'){ - var name = question.qid.split(':')[1]; + }else if( value == 'get-filesize-over-error'){ + var name = question.qid.split(':')[1].replace('/', '-'); $('.'+name).remove(); container.after( '
'+ _("File size exceeds the maximum allowed size.")+'
' diff --git a/addons/metadata/suggestion.py b/addons/metadata/suggestion.py index 8a22bb13300..e05f37ec237 100644 --- a/addons/metadata/suggestion.py +++ b/addons/metadata/suggestion.py @@ -15,7 +15,6 @@ from io import BytesIO from website import settings from flask import request - import numpy as np import openpyxl import io @@ -23,7 +22,6 @@ import imghdr import csv import chardet - from addons.metadata.apps import AddonAppConfig as AddonAppConfig import mimetypes @@ -45,7 +43,7 @@ def valid_suggestion_key(key): if key == 'file-data-number': return True - elif key.startswith('auto-'): + elif key.startswith('get-'): return True elif key == 'ror': return True @@ -62,8 +60,8 @@ def suggestion_metadata(key, keyword, filepath, node): suggestions = [] if key == 'file-data-number': suggestions.extend(suggestion_file_data_number(key, filepath, node)) - elif key.startswith('auto-'): - suggestions.extend(suggestion_file_metadata_auto_value(key, keyword, filepath, node)) + elif key.startswith('get-'): + suggestions.extend(suggestion_file_metadata_get_value(key, keyword, filepath, node)) elif key == 'ror': suggestions.extend(suggestion_ror(key, keyword)) elif key.startswith('erad:'): @@ -76,7 +74,7 @@ def suggestion_metadata(key, keyword, filepath, node): raise KeyError('Invalid key: {}'.format(key)) return suggestions -def suggestion_file_metadata_auto_value(key, keyword, filepath, node): +def suggestion_file_metadata_get_value(key, keyword, filepath, node): data = '' error_string = '' extension = '' @@ -92,13 +90,13 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): file_size, extension = get_file_size_and_extension(url, cookies) - excelmaximumsize = AddonAppConfig.excel_maximun_file_size - textmaximumsize = AddonAppConfig.text_maximun_file_size - imagemaximumsize = AddonAppConfig.image_maximun_file_size - othermaximumsize = AddonAppConfig.other_maximun_file_size + excel_file_maximum_size = AddonAppConfig.excel_file_maximum_size + text_file_maximum_size = AddonAppConfig.text_file_maximum_size + image_file_maximum_size = AddonAppConfig.image_file_maximum_size + any_file_maximum_size = AddonAppConfig.any_file_maximum_size - if (key == 'auto-file-number-of-rows-excel' or key == 'auto-file-number-of-columns-excel') and extension in AddonAppConfig.excel_file_extension: - if file_size < excelmaximumsize: + if (key == 'get-excel-row-count' or key == 'get-excel-column-count') and extension in AddonAppConfig.excel_file_extension: + if file_size < excel_file_maximum_size: response = download_file(url, cookies) try: byteCode = BytesIO(response) @@ -109,18 +107,19 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): rows, columns = excel_data.shape data = str(rows) + str(columns) - if key == 'auto-file-number-of-rows-excel': + if key == 'get-excel-row-count': data = str(rows) - elif key == 'auto-file-number-of-columns-excel': + elif key == 'get-excel-column-count': data = str(columns) except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-number-of-rows-text' and extension in AddonAppConfig.text_file_extension: - if file_size < textmaximumsize: + elif key == 'get-text-row-count' and extension in AddonAppConfig.text_file_extension: + if file_size < text_file_maximum_size: response = download_file(url, cookies) try: encoding_info = chardet.detect(response) @@ -134,11 +133,12 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-number-of-columns-text' and extension in AddonAppConfig.text_file_extension: - if file_size < textmaximumsize: + elif key == 'get-text-column-count' and extension in AddonAppConfig.text_file_extension: + if file_size < text_file_maximum_size: response = download_file(url, cookies) try: text_data = chardet.detect(response).get('encoding') @@ -162,11 +162,12 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-delimiter' and extension in AddonAppConfig.text_file_extension: - if file_size < textmaximumsize: + elif key == 'get-text-delimiter' and extension in AddonAppConfig.text_file_extension: + if file_size < text_file_maximum_size: response = download_file(url, cookies) try: content = response.decode('utf-8') @@ -201,11 +202,12 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-image-type' and extension in AddonAppConfig.image_file_extension: - if file_size < imagemaximumsize: + elif key == 'get-image-type' and extension in AddonAppConfig.image_file_extension: + if file_size < image_file_maximum_size: response = download_file(url, cookies) try: image_type = imghdr.what(None, h=response) @@ -216,11 +218,12 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-color-b&w' and extension in AddonAppConfig.image_file_extension: - if file_size < imagemaximumsize: + elif key == 'get-image-color-information' and extension in AddonAppConfig.image_file_extension: + if file_size < image_file_maximum_size: response = download_file(url, cookies) try: image_data = b'' @@ -253,11 +256,12 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-text/binary' and (extension in AddonAppConfig.text_file_extension or extension in AddonAppConfig.excel_file_extension or extension in AddonAppConfig.image_file_extension): - if file_size < othermaximumsize: + elif key == 'get-image-text/binary' and (extension in AddonAppConfig.text_file_extension or extension in AddonAppConfig.excel_file_extension or extension in AddonAppConfig.image_file_extension): + if file_size < any_file_maximum_size: response = download_file(url, cookies) try: # Download the content directly into a variable @@ -267,7 +271,7 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): file_content += chunk # Determine if the content is binary or text - if isBinary(file_content, extension): + if is_binary(file_content, extension): data = 'binary' else: data = 'text' @@ -275,11 +279,12 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-resolution' and extension in AddonAppConfig.image_file_extension: - if file_size < imagemaximumsize: + elif key == 'get-image-resolution' and extension in AddonAppConfig.image_file_extension: + if file_size < image_file_maximum_size: response = download_file(url, cookies) try: Image.MAX_IMAGE_PIXELS = None @@ -296,11 +301,12 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-character-code' and extension in AddonAppConfig.text_file_extension: - if file_size < textmaximumsize: + elif key == 'get-text-character-code' and extension in AddonAppConfig.text_file_extension: + if file_size < text_file_maximum_size: response = download_file(url, cookies) try: encoding = chardet.detect(response).get('encoding') @@ -308,11 +314,12 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' - elif key == 'auto-file-data-size' and extension in AddonAppConfig.image_file_extension: - if file_size < imagemaximumsize: + elif key == 'get-image-datasaize' and extension in AddonAppConfig.image_file_extension: + if file_size < image_file_maximum_size: response = download_file(url, cookies) try: Image.MAX_IMAGE_PIXELS = None @@ -322,19 +329,21 @@ def suggestion_file_metadata_auto_value(key, keyword, filepath, node): except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) else: - data = 'auto-value-filesize-over-error' + data = 'get-filesize-over-error' except Exception as e: data = '' error_string = error_string + str(e) + logger.info(error_string) return [{ 'key': key, 'value': data, 'error': error_string, }] -def isBinary(file_content, extension): +def is_binary(file_content, extension): """Binary file detection. Determine by MIME type and content if MIME is not enough. """ @@ -346,7 +355,7 @@ def isBinary(file_content, extension): # If encoding is None, consider it binary if encode is None: ret = True - elif isBinary08HCharacter(file_content): + elif is_binary08H_character(file_content): ret = True else: if 'office' in m or m.startswith('image') or m.startswith('application/vnd.ms-excel'): @@ -356,7 +365,7 @@ def isBinary(file_content, extension): return ret -def isBinary08HCharacter(buf): +def is_binary08H_character(buf): """Binary file detection. Check for ASCII code below 08H to determine binary. """ @@ -367,8 +376,7 @@ def isBinary08HCharacter(buf): break return ret - -def readdump(dumpname, mode='r'): +def read_dump(dumpname, mode='r'): buf = '' with open(dumpname, mode) as f: buf = f.read() @@ -383,6 +391,30 @@ def detect_delimiter(content, delimiters): return delimiter return None +def get_file_size_and_extension(url, cookies): + try: + response = requests.head(url, cookies=cookies, stream=True) + response.raise_for_status() + content_length = response.headers.get('Content-Length') + if content_length is not None: + file_size = int(content_length) + else: + raise ValueError('The Content-Length header is missing.') + + content_disposition = response.headers.get('X-Waterbutler-Metadata') + metadata_json = json.loads(content_disposition) + file_name = metadata_json.get('attributes', {}).get('name') + extension = file_name.split('.')[-1] + + return file_size, extension + except requests.RequestException as e: + logger.info(str(e)) + return None, None + +def download_file(url, cookies): + response = requests.get(url, cookies=cookies).content + return response + def suggestion_file_data_number(key, filepath, node): parts = filepath.split('/') is_dir = parts[0] == 'dir' @@ -415,7 +447,7 @@ def suggestion_ror(key, keyword): res = [] for item in response.json()['items']: labels = item.get('labels', []) - name_ja = next((l['label'] for l in labels if l['iso639'] == 'ja'), item['name']) + name_ja = next((label['label'] for label in labels if label['iso639'] == 'ja'), item['name']) res.append({ 'key': key, 'value': { @@ -505,29 +537,6 @@ def _erad_candidates(**pred): for record in ERadRecord.objects.filter(**pred) ] -def get_file_size_and_extension(url, cookies): - try: - response = requests.head(url, cookies=cookies, stream=True) - response.raise_for_status() - content_length = response.headers.get('Content-Length') - if content_length is not None: - file_size = int(content_length) - else: - raise ValueError('The Content-Length header is missing.') - - content_disposition = response.headers.get('X-Waterbutler-Metadata') - metadata_json = json.loads(content_disposition) - file_name = metadata_json.get('attributes', {}).get('name') - extension = file_name.split('.')[-1] - logger.info(file_size) - logger.info(extension) - return file_size, extension - except requests.RequestException: - return None, None - -def download_file(url, cookies): - response = requests.get(url, cookies=cookies).content - return response def suggestion_asset(key, keyword, node): addon = node.get_addon(SHORT_NAME) diff --git a/addons/metadata/tests/test_auto_value.py b/addons/metadata/tests/test_auto_value.py index 75b10a6e674..6b983b8cfaa 100644 --- a/addons/metadata/tests/test_auto_value.py +++ b/addons/metadata/tests/test_auto_value.py @@ -1,6 +1,6 @@ import logging import pytest -from addons.metadata.suggestion import suggestion_file_metadata_auto_value +from addons.metadata.suggestion import suggestion_file_metadata_get_value from osf_tests.factories import ProjectFactory from osf_tests import factories from tests.base import OsfTestCase @@ -54,23 +54,23 @@ def test_txt_file(self): testpath = f'osfstorage/{self.file.name}' - data = suggestion_file_metadata_auto_value('auto-file-number-of-rows-text', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-number-of-rows-text', '', testpath, self.node) assert data[0]['key'] == 'auto-file-number-of-rows-text' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-number-of-columns-text', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-number-of-columns-text', '', testpath, self.node) assert data[0]['key'] == 'auto-file-number-of-columns-text' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-delimiter', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-delimiter', '', testpath, self.node) assert data[0]['key'] == 'auto-file-delimiter' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-character-code', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-character-code', '', testpath, self.node) assert data[0]['key'] == 'auto-file-character-code' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-text/binary', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-text/binary', '', testpath, self.node) assert data[0]['key'] == 'auto-file-text/binary' assert data[0]['error'] == '' @@ -97,11 +97,11 @@ def test_excel_file(self): testpath = f'osfstorage/{self.file.name}' - data = suggestion_file_metadata_auto_value('auto-file-number-of-rows-excel', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-number-of-rows-excel', '', testpath, self.node) assert data[0]['key'] == 'auto-file-number-of-rows-excel' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-number-of-columns-excel', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-number-of-columns-excel', '', testpath, self.node) assert data[0]['key'] == 'auto-file-number-of-columns-excel' assert data[0]['error'] == '' @@ -128,22 +128,22 @@ def test_image_file(self): testpath = f'osfstorage/{self.file.name}' - data = suggestion_file_metadata_auto_value('auto-file-image-type', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-image-type', '', testpath, self.node) assert data[0]['key'] == 'auto-file-image-type' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-color-b&w', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-color-b&w', '', testpath, self.node) assert data[0]['key'] == 'auto-file-color-b&w' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-resolution', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-resolution', '', testpath, self.node) assert data[0]['key'] == 'auto-file-resolution' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-data-size', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-data-size', '', testpath, self.node) assert data[0]['key'] == 'auto-file-data-size' assert data[0]['error'] == '' - data = suggestion_file_metadata_auto_value('auto-file-text/binary', '', testpath, self.node) + data = suggestion_file_metadata_get_value('auto-file-text/binary', '', testpath, self.node) assert data[0]['key'] == 'auto-file-text/binary' assert data[0]['error'] == '' diff --git a/addons/osfstorage/models.py b/addons/osfstorage/models.py index 823e21cd1a8..1e6eb8cbdfc 100644 --- a/addons/osfstorage/models.py +++ b/addons/osfstorage/models.py @@ -138,10 +138,18 @@ def path(self): """ return '/' + self._id + ('' if self.is_file else '/') + @property + def is_readonly(self): + return self.is_checked_out or self.is_locked + @property def is_checked_out(self): return self.checkout is not None + @property + def is_locked(self): + return self.locked is not None + # overrides BaseFileNode @property def current_version_number(self): @@ -152,6 +160,8 @@ def _check_delete_allowed(self): raise exceptions.FileNodeIsPrimaryFile() if self.is_checked_out: raise exceptions.FileNodeCheckedOutError() + if self.is_locked: + raise exceptions.FileNodeLockedError() return True @property @@ -175,6 +185,8 @@ def move_under(self, destination_parent, name=None): raise exceptions.FileNodeIsPrimaryFile() if self.is_checked_out: raise exceptions.FileNodeCheckedOutError() + if self.is_locked: + raise exceptions.FileNodeLockedError() self.update_region_from_latest_version(destination_parent) return super(OsfStorageFileNode, self).move_under(destination_parent, name) @@ -192,6 +204,10 @@ def check_in_or_out(self, user, checkout, save=False): from osf.models import NodeLog # Avoid circular import target = self.target + if self.is_locked: + # Prevent check in/out if file is locked + raise exceptions.FileNodeLockedError() + if isinstance(target, AbstractNode) and self.is_checked_out and self.checkout != user: # Allow project admins to force check in if not target.has_permission(user, permissions.ADMIN): @@ -225,6 +241,55 @@ def check_in_or_out(self, user, checkout, save=False): if save: self.save() + def lock(self, user, is_locked, save=False): + """ + Updates self.locked with the requesting user or None, + iff user has permission to lock file or folder. + Adds log to self.target if target is a node. + + + :param user: User making the request + :param is_locked: Whether or not to lock the file or folder + :param save: Whether or not to save the user + """ + from osf.models import NodeLog + + target = self.target + if self.is_checked_out: + # Prevent lock/unlock if file is checked out + raise exceptions.FileNodeCheckedOutError() + + if not target.has_permission(user, permissions.ADMIN): + raise exceptions.FileNodeLockedError() + + action = NodeLog.LOCKED if is_locked else NodeLog.UNLOCKED + if self.is_locked and action == NodeLog.LOCKED: + # No need to lock again + return + if not self.is_locked and action == NodeLog.UNLOCKED: + # No need to unlock again + return + self.locked = user if is_locked else None + if isinstance(target, Loggable): + target.add_log( + action=action, + params={ + 'kind': self.kind, + 'project': target.parent_id, + 'node': target._id, + 'urls': { + 'download': '/project/{}/files/{}/{}/?action=download'.format(target._id, + self.provider, + self._id), + 'view': '/project/{}/files/{}/{}'.format(target._id, self.provider, self._id)}, + 'path': self.materialized_path + }, + auth=Auth(user), + ) + + if save: + self.save() + def save(self): self._path = '' self._materialized_path = '' @@ -449,6 +514,39 @@ def is_checked_out(self): return False + @property + def is_locked(self): + sql = """ + WITH RECURSIVE is_locked_cte(id, parent_id, locked_id) AS ( + SELECT + T.id, + T.parent_id, + T.locked_id + FROM %s AS T + WHERE T.id = %s + UNION ALL + SELECT + T.id, + T.parent_id, + T.locked_id + FROM is_locked_cte AS R + JOIN %s AS T ON T.parent_id = R.id + ) + SELECT N.locked_id + FROM is_locked_cte as N + WHERE N.locked_id IS NOT NULL + LIMIT 1; + """ + + with connection.cursor() as cursor: + cursor.execute(sql, [AsIs(self._meta.db_table), self.pk, AsIs(self._meta.db_table)]) + row = cursor.fetchone() + + if row and row[0]: + return True + + return False + @property def is_preprint_primary(self): if hasattr(self.target, 'primary_file') and self.target.primary_file: diff --git a/addons/osfstorage/tests/test_models.py b/addons/osfstorage/tests/test_models.py index 0611832fbf2..26aa08c8950 100644 --- a/addons/osfstorage/tests/test_models.py +++ b/addons/osfstorage/tests/test_models.py @@ -9,7 +9,7 @@ from nose.tools import * # noqa from framework.auth import Auth -from addons.osfstorage.models import OsfStorageFile, OsfStorageFileNode, OsfStorageFolder +from addons.osfstorage.models import OsfStorageFile, OsfStorageFileNode, OsfStorageFolder, exceptions from osf.models import BaseFileNode from osf.exceptions import ValidationError from osf.utils.permissions import WRITE, ADMIN @@ -688,6 +688,95 @@ def test_get_file_guids_for_trashed_folder_recursive_wo_guids(self): '/' + folder._id, provider='osfstorage', target=node) assert [] == all_guids + def test_lock_file(self): + creator = factories.AuthUserFactory() + node = ProjectFactory(creator=creator) + osfstorage = node.get_addon('osfstorage') + root_node = osfstorage.get_root() + file = root_node.append_file('test_file') + + file.lock(creator, True, save=True) + assert_true(file.locked == creator) + + file.lock(creator, False, save=True) + assert_is(file.locked, None) + + def test_lock_file_no_permission(self): + creator = factories.AuthUserFactory() + user = factories.AuthUserFactory() + node = ProjectFactory(creator=creator) + osfstorage = node.get_addon('osfstorage') + root_node = osfstorage.get_root() + file = root_node.append_file('testfile') + + with assert_raises(exceptions.FileNodeLockedError): + file.lock(user, True, save=True) + + def test_lock_file_checked_out(self): + creator = factories.AuthUserFactory() + node = ProjectFactory(creator=creator) + osfstorage = node.get_addon('osfstorage') + root_node = osfstorage.get_root() + file = root_node.append_file('testfile') + file.check_in_or_out(creator, creator, save=True) + + with assert_raises(exceptions.FileNodeCheckedOutError): + file.lock(creator, True, save=True) + + def test_delete_locked_file(self): + creator = factories.AuthUserFactory() + node = ProjectFactory(creator=creator) + osfstorage = node.get_addon('osfstorage') + root_node = osfstorage.get_root() + file = root_node.append_file('testfile') + file.lock(creator, True, save=True) + + with assert_raises(exceptions.FileNodeLockedError): + file.delete() + + def test_move_locked_file(self): + creator = factories.AuthUserFactory() + node = ProjectFactory(creator=creator) + osfstorage = node.get_addon('osfstorage') + root_node = osfstorage.get_root() + file = root_node.append_file('testfile') + file.lock(creator, True, save=True) + folder = root_node.append_folder('testfolder') + + with assert_raises(exceptions.FileNodeLockedError): + file.move_under(folder) + + def test_check_in_or_out_locked_file(self): + creator = factories.AuthUserFactory() + node = ProjectFactory(creator=creator) + osfstorage = node.get_addon('osfstorage') + root_node = osfstorage.get_root() + file = root_node.append_file('testfile') + file.lock(creator, True, save=True) + + with assert_raises(exceptions.FileNodeLockedError): + file.check_in_or_out(creator, None, save=True) + + def test_is_readonly_locked_file(self): + creator = factories.AuthUserFactory() + node = ProjectFactory(creator=creator) + osfstorage = node.get_addon('osfstorage') + root_node = osfstorage.get_root() + file = root_node.append_file('test_file') + + file.lock(creator, True, save=True) + assert_true(file.is_readonly) + + def test_is_readonly_locked_folder(self): + creator = factories.AuthUserFactory() + node = ProjectFactory(creator=creator) + osfstorage = node.get_addon('osfstorage') + root_node = osfstorage.get_root() + folder = root_node.append_folder('testfolder') + + folder.lock(creator, True, save=True) + assert_true(folder.is_readonly) + @pytest.mark.django_db class TestNodeSettingsModel: diff --git a/addons/osfstorage/tests/test_views.py b/addons/osfstorage/tests/test_views.py index ebb66608bb5..102534b8679 100644 --- a/addons/osfstorage/tests/test_views.py +++ b/addons/osfstorage/tests/test_views.py @@ -133,6 +133,7 @@ def test_children_metadata(self): # latestVersionSeen should not be present in record.serialize, because it has to do # with the user making the request itself, which isn't important when serializing the record expected_data['latestVersionSeen'] = None + expected_data['locked'] = None assert_equal(res_date_modified, expected_date_modified) assert_equal(res_date_created, expected_date_created) diff --git a/addons/osfstorage/views.py b/addons/osfstorage/views.py index 9fa853da767..9f667968288 100644 --- a/addons/osfstorage/views.py +++ b/addons/osfstorage/views.py @@ -137,6 +137,10 @@ def osfstorage_move_hook(source, destination, name=None, **kwargs): raise HTTPError(http_status.HTTP_405_METHOD_NOT_ALLOWED, data={ 'message_long': 'Cannot move file as it is checked out.' }) + except exceptions.FileNodeLockedError: + raise HTTPError(http_status.HTTP_405_METHOD_NOT_ALLOWED, data={ + 'message_long': 'Cannot move file as it is locked.' + }) except exceptions.FileNodeIsPrimaryFile: raise HTTPError(http_status.HTTP_403_FORBIDDEN, data={ 'message_long': 'Cannot move file as it is the primary file of preprint.' @@ -196,6 +200,7 @@ def osfstorage_get_children(file_node, **kwargs): , 'modified', LATEST_VERSION.created , 'created', EARLIEST_VERSION.created , 'checkout', CHECKOUT_GUID + , 'locked', LOCKED_GUID , 'md5', LATEST_VERSION.metadata ->> 'md5' , 'sha256', LATEST_VERSION.metadata ->> 'sha256' , 'sha512', LATEST_VERSION.metadata ->> 'sha512' @@ -231,6 +236,12 @@ def osfstorage_get_children(file_node, **kwargs): AND content_type_id = %s LIMIT 1 ) CHECKOUT_GUID ON TRUE + LEFT JOIN LATERAL ( + SELECT _id from osf_guid + WHERE object_id = F.locked_id + AND content_type_id = %s + LIMIT 1 + ) LOCKED_GUID ON TRUE LEFT JOIN LATERAL ( SELECT P.total AS DOWNLOAD_COUNT FROM osf_pagecounter AS P WHERE P.resource_id = %s @@ -270,6 +281,7 @@ def osfstorage_get_children(file_node, **kwargs): WHERE parent_id = %s AND (NOT F.type IN ('osf.trashedfilenode', 'osf.trashedfile', 'osf.trashedfolder')) """, [ + user_content_type_id, user_content_type_id, file_node.target.guids.first().id, user_pk, @@ -328,6 +340,11 @@ def osfstorage_create_child(file_node, payload, **kwargs): 'message_long': 'File cannot be updated due to checkout status.' }) + if file_node.is_locked: + raise HTTPError(http_status.HTTP_403_FORBIDDEN, data={ + 'message_long': 'File cannot be updated due to locked status.' + }) + if not is_folder: try: metadata = dict(payload['metadata'], **payload['hashes']) @@ -378,6 +395,8 @@ def osfstorage_delete(file_node, payload, target, **kwargs): except exceptions.FileNodeCheckedOutError: raise HTTPError(http_status.HTTP_403_FORBIDDEN) + except exceptions.FileNodeLockedError: + raise HTTPError(http_status.HTTP_403_FORBIDDEN) except exceptions.FileNodeIsPrimaryFile: raise HTTPError(http_status.HTTP_403_FORBIDDEN, data={ 'message_long': 'Cannot delete file as it is the primary file of preprint.' diff --git a/addons/weko/apps.py b/addons/weko/apps.py index d9c322f44d0..0b11962f2d5 100644 --- a/addons/weko/apps.py +++ b/addons/weko/apps.py @@ -25,6 +25,7 @@ class WEKOAddonAppConfig(BaseAddonAppConfig): categories = ['storage'] has_hgrid_files = True max_file_size = 128 # MB + node_settings_template = os.path.join(TEMPLATE_PATH, 'weko_node_settings.mako') user_settings_template = os.path.join(TEMPLATE_PATH, 'weko_user_settings.mako') diff --git a/addons/weko/mappings/e-rad-metadata-mappings.json b/addons/weko/mappings/e-rad-metadata-mappings.json index 19ab596d181..88e5ca524e5 100644 --- a/addons/weko/mappings/e-rad-metadata-mappings.json +++ b/addons/weko/mappings/e-rad-metadata-mappings.json @@ -7,16 +7,25 @@ }, "@files": { "@type": "object", - "metadata.item_30002_file35[]": { - "filename": "{{object_filename}}", - "format": "{{object_format}}", - "displaytype": "preview", - "accessrole": "{% if object_grdm_file_access_rights == \"open access\" %}open_access{% elif object_grdm_file_access_rights == \"restricted access\" %}open_login{% elif object_grdm_file_access_rights == \"embargoed access\" %}open_date{% else %}open_no{% endif %}", - "date[]": { - "@createIf": "{% if object_grdm_file_access_rights == \"embargoed access\" %}{{object_grdm_file_available_date}}{% endif %}", - "dateValue": "{{object_grdm_file_available_date}}" + "metadata.item_30002_file35[]": [ + { + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}true{% endif %}", + "filename": "{{object_filename}}", + "format": "{{object_format}}", + "displaytype": "preview", + "accessrole": "{% if object_grdm_file_access_rights == \"open access\" %}open_access{% elif object_grdm_file_access_rights == \"restricted access\" %}open_login{% elif object_grdm_file_access_rights == \"embargoed access\" %}open_date{% else %}open_no{% endif %}", + "date[]": { + "@createIf": "{% if object_grdm_file_access_rights == \"embargoed access\" %}{{object_grdm_file_available_date}}{% endif %}", + "dateValue": "{{object_grdm_file_available_date}}" + } + }, + { + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}value{% endif %}", + "filename": "{{object_filename}}", + "format": "{{object_format}}", + "displaytype": "preview" } - } + ] }, "@projects": { "@type": "object", @@ -69,7 +78,25 @@ }, "grdm-file:data-number": { "@type": "string", - "@createIf": "{{value}}" + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}" + }, + "grdm-file:doi": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" and grdm_file_doi_exists_value == \"exists\" %}{{value}}{% endif %}", + "metadata.item_30002_relation18[]": { + "subitem_relation_type": "isVersionOf", + "subitem_relation_type_id": { + "subitem_relation_type_select": "DOI", + "subitem_relation_type_id_text": "https://doi.org/{{value}}" + } + } + }, + "grdm-file:manuscript-type": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_resource_type13": { + "resourcetype": "{{value}}" + } }, "grdm-file:title-ja": { "@type": "string", @@ -87,10 +114,57 @@ "subitem_title_language": "en" } }, + "grdm-file:authors": { + "@type": "array", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}true{% endif %}", + "metadata.item_30002_creator2[]": { + "nameIdentifiers[]": { + "@createIf": "{{object_number}}", + "nameIdentifierURI": "{{object_number}}", + "nameIdentifierScheme": "e-Rad_Researcher" + }, + "creatorNames[]": [ + { + "@createIf": "{{object_name_ja_last}}{{object_name_ja_middle}}{{object_name_ja_first}}", + "creatorName": "{{object_name_ja_last}}, {{object_name_ja_middle}}{% if object_name_ja_middle %} {% endif %}{{object_name_ja_first}}", + "creatorNameLang": "ja" + }, + { + "@createIf": "{{object_name_en_last}}{{object_name_en_middle}}{{object_name_en_first}}", + "creatorName": "{{object_name_en_last}}, {{object_name_en_middle}}{% if object_name_ja_middle %} {% endif %}{{object_name_en_first}}", + "creatorNameLang": "en" + } + ], + "familyNames[]": [ + { + "@createIf": "{{object_name_ja_last}}", + "familyName": "{{object_name_ja_last}}", + "familyNameLang": "ja" + }, + { + "@createIf": "{{object_name_en_last}}", + "familyName": "{{object_name_en_last}}", + "familyNameLang": "en" + } + ], + "givenNames[]": [ + { + "@createIf": "{{object_name_ja_middle}}{{object_name_ja_first}}", + "givenName": "{{object_name_ja_middle}}{% if object_name_ja_middle %} {% endif %}{{object_name_ja_first}}", + "givenNameLang": "ja" + }, + { + "@createIf": "{{object_name_en_middle}}{{object_name_en_first}}", + "givenName": "{{object_name_en_middle}}{% if object_name_en_middle %} {% endif %}{{object_name_en_first}}", + "givenNameLang": "en" + } + ] + } + }, "grdm-file:date-issued-updated": null, "grdm-file:data-description-ja": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_description9[]": { "subitem_description_type": "Abstract", "subitem_description": "{{value}}", @@ -99,7 +173,7 @@ }, "grdm-file:data-description-en": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_description9[]": { "subitem_description_type": "Abstract", "subitem_description": "{{value}}", @@ -108,7 +182,7 @@ }, "grdm-file:data-research-field": { "@type": "string", - "@createIf": "{{grdm_file_data_research_field_value}}{{project_research_field_value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{grdm_file_data_research_field_value}}{{project_research_field_value}}{% endif %}", "metadata.item_30002_subject8[RESEARCH_FIELD_JA]": { "subitem_subject_scheme": "e-Rad_field", "subitem_subject": "{% if grdm_file_data_research_field_value != \"project\" %}{{grdm_file_data_research_field_tooltip_0}}{% else %}{{project_research_field_tooltip_0}}{% endif %}", @@ -122,18 +196,18 @@ }, "grdm-file:data-type": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_resource_type13": { "resourcetype": "{{value}}" } }, "grdm-file:file-size": { "@type": "string", - "@createIf": "{{value}}" + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}" }, "grdm-file:data-policy-free": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_rights6[]": [ { "subitem_rights": "{{tooltip_0}}", @@ -147,7 +221,7 @@ }, "grdm-file:data-policy-license": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_rights6[]": [ { "@createIf": "{% if (value | has_license_def_for_jpcoar2) %}{{ value | to_normalized_ja_license_name_for_jpcoar2 }}{% endif %}", @@ -175,7 +249,7 @@ }, "grdm-file:data-policy-cite-ja": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_rights6[]": [ { "subitem_rights": "{{value}}", @@ -185,7 +259,7 @@ }, "grdm-file:data-policy-cite-en": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_rights6[]": [ { "subitem_rights": "{{value}}", @@ -195,14 +269,14 @@ }, "grdm-file:access-rights": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_access_rights4": { "subitem_access_right": "{{value}}" } }, "grdm-file:available-date": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_date11[]": { "subitem_date_issued_type": "Available", "subitem_date_issued_datetime": "{{value}}" @@ -210,9 +284,91 @@ }, "grdm-file:repo-information-ja": null, "grdm-file:repo-information-en": null, + "grdm-file:journal-name-ja": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_source_title23[]": { + "subitem_source_title": "{{value}}", + "subitem_source_title_language": "ja" + } + }, + "grdm-file:journal-name-en": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_source_title23[]": { + "subitem_source_title": "{{value}}", + "subitem_source_title_language": "en" + } + }, + "grdm-file:date-published": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_date11[]": { + "subitem_date_issued_type": "Issued", + "subitem_date_issued_datetime": "{{value}}" + } + }, + "grdm-file:volume": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_volume_number24": { + "subitem_volume": "{{value}}" + } + }, + "grdm-file:issue": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_issue_number25": { + "subitem_issue": "{{value}}" + } + }, + "grdm-file:page-start": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_page_start27": { + "subitem_start_page": "{{value}}" + } + }, + "grdm-file:page-end": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_page_end28": { + "subitem_end_page": "{{value}}" + } + }, + "grdm-file:reviewed": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_version_type15": { + "subitem_peer_reviewed": "{% if value == \"yes\" %}Peer reviewed{% else %}Not peer reviewed{% endif %}" + } + }, "grdm-file:repo-url-doi-link": null, + "grdm-file:publication-link": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_relation18[]": { + "subitem_relation_type": "isSupplementTo", + "subitem_relation_type_id": { + "subitem_relation_type_select": "DOI", + "subitem_relation_type_id_text": "https://doi.org/{{value}}" + } + } + }, + "grdm-file:dataset-link": { + "@type": "string", + "@createIf": "{% if grdm_file_file_type_value != \"dataset\" %}{{value}}{% endif %}", + "metadata.item_30002_relation18[]": { + "subitem_relation_type": "isSupplementedBy", + "subitem_relation_type_id": { + "subitem_relation_type_select": "DOI", + "subitem_relation_type_id_text": "https://doi.org/{{value}}" + } + } + }, "grdm-file:creators": { "@type": "array", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}true{% endif %}", "metadata.item_30002_creator2[]": { "nameIdentifiers[]": { "@createIf": "{{object_number}}", @@ -235,7 +391,7 @@ }, "grdm-file:hosting-inst-ja": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[HOSTING_INSTITUTION]": { "contributorType": "HostingInstitution", "contributorNames[]": { @@ -246,7 +402,7 @@ }, "grdm-file:hosting-inst-en": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[HOSTING_INSTITUTION]": { "contributorType": "HostingInstitution", "contributorNames[]": { @@ -257,7 +413,7 @@ }, "grdm-file:hosting-inst-id": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[HOSTING_INSTITUTION]": { "contributorType": "HostingInstitution", "nameIdentifiers[]": { @@ -269,7 +425,7 @@ "grdm-file:data-man-type": null, "grdm-file:data-man-number": { "@type": "string", - "@createIf": "{% if grdm_file_data_man_type_value == \"individual\" %}{{value}}{% endif %}", + "@createIf": "{% if grdm_file_data_man_type_value == \"individual\" and grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[DATA_MANAGER]": { "contributorType": "DataManager", "nameIdentifiers[]": { @@ -280,7 +436,7 @@ }, "grdm-file:data-man-name-ja": { "@type": "string", - "@createIf": "{% if grdm_file_data_man_type_value == \"individual\" %}{{value}}{% endif %}", + "@createIf": "{% if grdm_file_data_man_type_value == \"individual\" and grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[DATA_MANAGER]": { "contributorType": "DataManager", "contributorNames[]": { @@ -291,7 +447,7 @@ }, "grdm-file:data-man-name-en": { "@type": "string", - "@createIf": "{% if grdm_file_data_man_type_value == \"individual\" %}{{value}}{% endif %}", + "@createIf": "{% if grdm_file_data_man_type_value == \"individual\" and grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[DATA_MANAGER]": { "contributorType": "DataManager", "contributorNames[]": { @@ -302,7 +458,7 @@ }, "grdm-file:data-man-org-ja": { "@type": "string", - "@createIf": "{% if grdm_file_data_man_type_value == \"organization\" %}{{value}}{% endif %}", + "@createIf": "{% if grdm_file_data_man_type_value == \"organization\" and grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[DATA_MANAGER]": { "contributorType": "DataManager", "contributorNames[]": { @@ -314,7 +470,7 @@ }, "grdm-file:data-man-org-en": { "@type": "string", - "@createIf": "{% if grdm_file_data_man_type_value == \"organization\" %}{{value}}{% endif %}", + "@createIf": "{% if grdm_file_data_man_type_value == \"organization\" and grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[DATA_MANAGER]": { "contributorType": "DataManager", "contributorNames[]": { @@ -326,7 +482,7 @@ }, "grdm-file:data-man-address-ja grdm-file:data-man-tel grdm-file:data-man-email": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[CONTACT_PERSON]": { "contributorType": "ContactPerson", "contributorNames[CONTACT_PERSON_JA]": { @@ -338,7 +494,7 @@ }, "grdm-file:data-man-address-en grdm-file:data-man-tel grdm-file:data-man-email": { "@type": "string", - "@createIf": "{{value}}", + "@createIf": "{% if grdm_file_file_type_value == \"dataset\" %}{{value}}{% endif %}", "metadata.item_30002_contributor3[CONTACT_PERSON]": { "contributorType": "ContactPerson", "contributorNames[CONTACT_PERSON_EN]": { diff --git a/addons/weko/migrations/0006_registrationmetadatamapping_packaging_type.py b/addons/weko/migrations/0006_registrationmetadatamapping_packaging_type.py new file mode 100644 index 00000000000..66cf1715530 --- /dev/null +++ b/addons/weko/migrations/0006_registrationmetadatamapping_packaging_type.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.28 on 2025-03-24 07:47 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('addons_weko', '0005_registrationmetadatamapping'), + ] + + operations = [ + migrations.AddField( + model_name='registrationmetadatamapping', + name='packaging_type', + field=models.CharField(blank=True, max_length=256, null=True), + ), + ] diff --git a/addons/weko/models.py b/addons/weko/models.py index 5e9bbbc7a6e..222aaaa09e8 100644 --- a/addons/weko/models.py +++ b/addons/weko/models.py @@ -29,18 +29,14 @@ from .deposit import ROCRATE_FILENAME_PATTERN from . import settings - logger = logging.getLogger(__name__) - class WEKOFileNode(BaseFileNode): _provider = 'weko' - class WEKOFolder(WEKOFileNode, Folder): pass - class WEKOFile(WEKOFileNode, File): version_identifier = 'version' @@ -48,7 +44,6 @@ class UserSettings(BaseOAuthUserSettings): oauth_provider = WEKOProvider serializer = WEKOSerializer - class NodeSettings(BaseOAuthNodeSettings, BaseStorageAddon): oauth_provider = WEKOProvider serializer = WEKOSerializer @@ -206,6 +201,7 @@ def serialize_waterbutler_settings(self): 'url': provider.sword_url, 'index_id': self.index_id, 'index_title': self.index_title, + 'default_storage_provider': default_provider.short_name, 'default_storage': default_provider.serialize_waterbutler_settings(), } @@ -376,12 +372,12 @@ def _clean_expired_publish_tasks(self): ) q.delete() - class RegistrationMetadataMapping(BaseModel): registration_schema_id = models.CharField(max_length=64, blank=True, null=True) - rules = DateTimeAwareJSONField(default=dict, blank=True) + packaging_type = models.CharField(max_length=256, blank=True, null=True) + rules = DateTimeAwareJSONField(default=dict, blank=True) class PublishTask(BaseModel): project = models.ForeignKey(NodeSettings, related_name='publish_task', @@ -394,7 +390,6 @@ class PublishTask(BaseModel): last_task_id = models.CharField(max_length=128, blank=True, null=True) - @receiver(post_save, sender=NodeLog) def node_post_save(sender, instance, created, **kwargs): action = instance.action diff --git a/addons/weko/tests/test_model.py b/addons/weko/tests/test_model.py index 109a4ccaba1..d775c367648 100644 --- a/addons/weko/tests/test_model.py +++ b/addons/weko/tests/test_model.py @@ -4,9 +4,10 @@ import unittest from tests.base import get_default_metaschema -from osf_tests.factories import ProjectFactory, DraftRegistrationFactory +from osf_tests.factories import InstitutionFactory, RegionFactory, DraftRegistrationFactory from framework.auth import Auth +from osf.models import RdmAddonOption from addons.base.tests.models import ( OAuthAddonNodeSettingsTestSuiteMixin, OAuthAddonUserSettingTestSuiteMixin @@ -63,6 +64,8 @@ def setUp(self): } self.mock_find_repository.start() super(TestNodeSettings, self).setUp() + self.institution = InstitutionFactory() + self.node.affiliated_institutions.add(self.institution) def tearDown(self): self.mock_requests_get.stop() @@ -153,4 +156,43 @@ def test_set_folder(self): assert_equal(last_log.action, '{0}_index_linked'.format(self.short_name)) def test_serialize_settings(self): - pass + settings = self.node_settings.serialize_waterbutler_settings() + assert_equal(settings['nid'], self.node._id) + assert_equal(settings['index_id'], self.node_settings.index_id) + assert_equal(settings['index_title'], self.node_settings.index_title) + assert_true('url' in settings and settings['url']) + assert_equal(settings['default_storage_provider'], 'osfstorage') + assert_true('default_storage' in settings and settings['default_storage']) + + def test_serialize_settings_with_institutional_storage(self): + osfstorage = self.node.get_addon('osfstorage') + new_region = RegionFactory( + _id=self.institution._id, + name='Test Region', + waterbutler_settings={ + 'storage': { + 'provider': 's3compatinstitutions', + }, + 'disabled': True, + } + ) + osfstorage.region = new_region + osfstorage.has_auth = False + osfstorage.save() + assert_false(osfstorage.has_auth) + + storage = self.node.add_addon('s3compatinstitutions', auth=Auth(self.node.creator)) + self.node.save() + addon_option = RdmAddonOption( + provider=storage.config.short_name, + institution=self.node.affiliated_institutions.first(), + ) + addon_option.save() + storage.addon_option = addon_option + storage.folder_id = '1234567890' + storage.save() + assert_true(storage.complete) + + settings = self.node_settings.serialize_waterbutler_settings() + assert_equal(settings['default_storage_provider'], 'osfstorage') + assert_true('default_storage' in settings and settings['default_storage']) diff --git a/addons/weko/tests/test_schema.py b/addons/weko/tests/test_schema.py index 35b4e1bbb3c..dc2a56f1fdb 100644 --- a/addons/weko/tests/test_schema.py +++ b/addons/weko/tests/test_schema.py @@ -106,10 +106,6 @@ def test_write_csv_minimal(self): assert_true( re.match(r'[^@]+@[^@]+\.[^@]+', feedback_mail[-1]) ) - assert_equal( - props.pop(), - ['.metadata.item_30002_file35[0].accessrole', '', '', '', 'open_no'], - ) assert_equal( props.pop(), ['.metadata.item_30002_file35[0].displaytype', '', '', '', 'preview'], @@ -130,54 +126,6 @@ def test_write_csv_minimal(self): assert_true( re.match(r'[0-9]+\-[0-9]+\-[0-9]+', pub_date[-1]) ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[0].subitem_description', '', '', '', '日本語説明'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[0].subitem_description_language', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[0].subitem_description_type', '', '', '', 'Abstract'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_resource_type13.resourcetype', '', '', '', 'dataset'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_title0[0].subitem_title', '', '', '', 'ENGLISH TITLE'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_title0[0].subitem_title_language', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['#.id', '#ID', '#', '#', ''], - ) - assert_equal( - props.pop(), - ['.uri', 'URI', '', '', ''], - ) - assert_equal( - props.pop(), - ['.cnri', '.CNRI', '', '', ''], - ) - assert_equal( - props.pop(), - ['.doi_ra', '.DOI_RA', '', '', ''], - ) - assert_equal( - props.pop(), - ['.doi', '.DOI', '', '', ''], - ) - assert_equal( - props.pop(), - ['.edit_mode', 'Keep/Upgrade Version', '', 'Required', 'Keep'], - ) def test_write_csv_full(self): buf = io.StringIO() @@ -291,10 +239,6 @@ def test_write_csv_full(self): assert_true( re.match(r'[^@]+@[^@]+\.[^@]+', feedback_mail[-1]) ) - assert_equal( - props.pop(), - ['.metadata.item_30002_file35[0].accessrole', '', '', '', 'open_login'], - ) assert_equal( props.pop(), ['.metadata.item_30002_file35[0].displaytype', '', '', '', 'preview'], @@ -314,258 +258,4 @@ def test_write_csv_full(self): ) assert_true( re.match(r'[0-9]+\-[0-9]+\-[0-9]+', pub_date[-1]) - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_access_rights4.subitem_access_right', '', '', '', 'restricted access'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_creator2[0].creatorNames[0].creatorName', '', '', '', '情報太郎'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_creator2[0].creatorNames[0].creatorNameLang', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_creator2[0].creatorNames[1].creatorName', '', '', '', 'Taro Joho'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_creator2[0].creatorNames[1].creatorNameLang', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_creator2[0].nameIdentifiers[0].nameIdentifierScheme', '', '', '', 'e-Rad_Researcher'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_creator2[0].nameIdentifiers[0].nameIdentifierURI', '', '', '', '22222'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[0].subitem_description', '', '', '', 'TEST DESCRIPTION'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[0].subitem_description_language', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[0].subitem_description_type', '', '', '', 'Abstract'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[1].subitem_description', '', '', '', 'テスト説明'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[1].subitem_description_language', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_description9[1].subitem_description_type', '', '', '', 'Abstract'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[0].contributorNames[0].contributorName', '', '', '', 'National Institute of Informatics Hitotsubashi TEL: XX-XXXX-XXXX E-Mail: dummy@test.rcos.nii.ac.jp'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[0].contributorNames[0].lang', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[0].contributorNames[0].nameType', '', '', '', 'Organizational'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[0].contributorType', '', '', '', 'ContactPerson'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[0].contributorNames[1].contributorName', '', '', '', '国立情報学研究所 一ツ橋 TEL: XX-XXXX-XXXX E-Mail: dummy@test.rcos.nii.ac.jp'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[0].contributorNames[1].lang', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[0].contributorNames[1].nameType', '', '', '', 'Organizational'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[1].contributorNames[0].contributorName', '', '', '', 'Hanako Joho'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[1].contributorNames[0].lang', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[1].contributorType', '', '', '', 'DataManager'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[1].contributorNames[1].contributorName', '', '', '', '情報花子'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[1].contributorNames[1].lang', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[1].nameIdentifiers[0].nameIdentifierScheme', '', '', '', 'e-Rad_Researcher'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[1].nameIdentifiers[0].nameIdentifierURI', '', '', '', '11111'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[0].subitem_rights', '', '', '', 'Test for license'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[0].subitem_rights_language', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[1].subitem_rights', '', '', '', 'ライセンスのテスト'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[1].subitem_rights_language', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[2].subitem_rights', '', '', '', '無償'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[2].subitem_rights_language', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[3].subitem_rights', '', '', '', 'free'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[3].subitem_rights_language', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[4].subitem_rights', '', '', '', 'CC0 1.0 Universal'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_rights6[4].subitem_rights_language', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - [ - '.metadata.item_30002_rights6[4].subitem_rights_resource', - '', - '', - '', - 'https://creativecommons.org/publicdomain/zero/1.0/deed.en', - ], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_subject8[0].subitem_subject', '', '', '', 'Life Science'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_subject8[0].subitem_subject_language', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_subject8[0].subitem_subject_scheme', '', '', '', 'e-Rad_field'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_subject8[1].subitem_subject', '', '', '', 'ライフサイエンス'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_subject8[1].subitem_subject_language', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_subject8[1].subitem_subject_scheme', '', '', '', 'e-Rad_field'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_resource_type13.resourcetype', '', '', '', 'experimental data'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[2].contributorNames[0].contributorName', '', '', '', 'National Institute of Informatics'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[2].contributorNames[0].lang', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[2].contributorType', '', '', '', 'HostingInstitution'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[2].nameIdentifiers[0].nameIdentifierScheme', '', '', '', 'ROR'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[2].nameIdentifiers[0].nameIdentifierURI', '', '', '', 'https://ror.org/04ksd4g47'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[2].contributorNames[1].contributorName', '', '', '', '国立情報学研究所'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_contributor3[2].contributorNames[1].lang', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_title0[0].subitem_title', '', '', '', 'TEST DATA'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_title0[0].subitem_title_language', '', '', '', 'en'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_title0[1].subitem_title', '', '', '', 'テストデータ'], - ) - assert_equal( - props.pop(), - ['.metadata.item_30002_title0[1].subitem_title_language', '', '', '', 'ja'], - ) - assert_equal( - props.pop(), - ['#.id', '#ID', '#', '#', ''], - ) - assert_equal( - props.pop(), - ['.uri', 'URI', '', '', ''], - ) - assert_equal( - props.pop(), - ['.cnri', '.CNRI', '', '', ''], - ) - assert_equal( - props.pop(), - ['.doi_ra', '.DOI_RA', '', '', ''], - ) - assert_equal( - props.pop(), - ['.doi', '.DOI', '', '', ''], - ) - assert_equal( - props.pop(), - ['.edit_mode', 'Keep/Upgrade Version', '', 'Required', 'Keep'], - ) + ) \ No newline at end of file diff --git a/addons/weko/utils.py b/addons/weko/utils.py index 1be97d9641b..91032956713 100644 --- a/addons/weko/utils.py +++ b/addons/weko/utils.py @@ -2,26 +2,42 @@ import re from osf.models.metaschema import RegistrationSchema +from jinja2 import Environment +from jinja2.exceptions import TemplateSyntaxError logger = logging.getLogger(__name__) -def _validate_mapping_element(element): +def _validate_mapping_element(element, full_key=None): if isinstance(element, list): - for e in element: - _validate_mapping_element(e) + for i, e in enumerate(element): + current_key = f'{full_key}[{i}]' if full_key else f'[{i}]' + _validate_mapping_element(e, full_key=current_key) return for key, v in element.items(): + current_key = f'{full_key}.{key}' if full_key else key if key.startswith('@'): if key not in ['@type', '@createIf']: - raise ValueError(f'Unexpected special property: {key}') + raise ValueError(f'Unexpected special property: {current_key}') + _validate_jinja2_syntax(v, current_key) continue if not re.match(r'([\.a-zA-Z_]+)(\[[A-Z_]*\])?', key): raise ValueError(f'Unexpected key format "{key}" (must be [a-zA-Z_]+[[A-Z_]*]?)') if isinstance(v, str): + _validate_jinja2_syntax(v, current_key) continue - _validate_mapping_element(v) + _validate_mapping_element(v, full_key=current_key) + + +def _validate_jinja2_syntax(value, key): + if not isinstance(value, str): + raise ValueError('Value must be string') + try: + env = Environment(autoescape=False) + env.parse(value) + except TemplateSyntaxError as e: + raise ValueError(f'Invalid Jinja2 syntax in {key} "{value}": {e}') def _validate_metadata_element(element): @@ -74,7 +90,7 @@ def validate_mapping(mapping): raise ValueError(f'Mapping "_" cannot have @type property') if key == '_' and '@createIf' in element: raise ValueError(f'Mapping "_" cannot have @createIf property') - _validate_mapping_element(element) + _validate_mapping_element(element, full_key=key) def ensure_registration_metadata_mapping(schema_name, mapping): diff --git a/addons/weko/views.py b/addons/weko/views.py index 498ad7b8cce..d09f066ccae 100644 --- a/addons/weko/views.py +++ b/addons/weko/views.py @@ -398,6 +398,7 @@ def weko_get_available_schemas(auth, **kwargs): mapping.registration_schema_id for mapping in RegistrationMetadataMapping.objects.all() ] + available_schema_ids = list(set(available_schema_ids)) node = kwargs['node'] or kwargs['project'] addon = node.get_addon(SHORT_NAME) schemas = [ diff --git a/addons/workflow/__init__.py b/addons/workflow/__init__.py new file mode 100644 index 00000000000..24184b2de86 --- /dev/null +++ b/addons/workflow/__init__.py @@ -0,0 +1,4 @@ +SHORT_NAME = 'workflow' +FULL_NAME = 'Work Flow' + +default_app_config = 'addons.{}.apps.AddonAppConfig'.format(SHORT_NAME) diff --git a/addons/workflow/apps.py b/addons/workflow/apps.py new file mode 100644 index 00000000000..fc44072f35e --- /dev/null +++ b/addons/workflow/apps.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +import os +from addons.base.apps import BaseAddonAppConfig +from . import SHORT_NAME, FULL_NAME + + +HERE = os.path.dirname(os.path.abspath(__file__)) +TEMPLATE_PATH = os.path.join( + HERE, + 'templates' +) + +class AddonAppConfig(BaseAddonAppConfig): + + short_name = SHORT_NAME + name = 'addons.{}'.format(SHORT_NAME) + label = 'addons_{}'.format(SHORT_NAME) + + full_name = FULL_NAME + + owners = ['node'] + + views = [ + 'widget', + 'page' + ] + + configs = ['node'] + + categories = ['other'] + + node_settings_template = os.path.join(TEMPLATE_PATH, 'node_settings.mako') + + @property + def routes(self): + from . import routes + return [ + routes.page_routes, + routes.api_routes + ] + + @property + def node_settings(self): + return self.get_model('NodeSettings') diff --git a/addons/workflow/migrations/0001_initial.py b/addons/workflow/migrations/0001_initial.py new file mode 100644 index 00000000000..1baf5a3fd15 --- /dev/null +++ b/addons/workflow/migrations/0001_initial.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.28 on 2025-03-14 10:18 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import django_extensions.db.fields +import osf.models.base +import osf.utils.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('osf', '0245_ensure_schema_and_reports'), + ] + + operations = [ + migrations.CreateModel( + name='NodeSettings', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')), + ('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')), + ('_id', models.CharField(db_index=True, default=osf.models.base.generate_object_id, max_length=24, unique=True)), + ('is_deleted', models.BooleanField(default=False)), + ('deleted', osf.utils.fields.NonNaiveDateTimeField(blank=True, null=True)), + ('param_1', models.TextField(blank=True, null=True)), + ('workflow_engine', models.CharField(blank=True, max_length=255, null=True)), + ('workflow_name', models.CharField(blank=True, max_length=255, null=True)), + ('workflow_id', models.CharField(blank=True, max_length=255, null=True)), + ('creator_token', models.CharField(blank=True, max_length=255, null=True)), + ('admin_token', models.CharField(blank=True, max_length=255, null=True)), + ('executor_token', models.CharField(blank=True, max_length=255, null=True)), + ('owner', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='addons_workflow_node_settings', to='osf.AbstractNode')), + ], + options={ + 'abstract': False, + }, + bases=(models.Model, osf.models.base.QuerySetExplainMixin), + ), + ] diff --git a/addons/workflow/migrations/0002_auto_20250321_0200.py b/addons/workflow/migrations/0002_auto_20250321_0200.py new file mode 100644 index 00000000000..923bbd4ccd1 --- /dev/null +++ b/addons/workflow/migrations/0002_auto_20250321_0200.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.28 on 2025-03-21 02:00 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('addons_workflow', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='nodesettings', + name='admin_mailaddr', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='nodesettings', + name='process_id', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='nodesettings', + name='process_name', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='nodesettings', + name='process_project_id', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='nodesettings', + name='researcher_mailaddr', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='nodesettings', + name='workflow_project_id', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='nodesettings', + name='workflow_userid', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='nodesettings', + name='workflow_valid_userid', + field=models.CharField(blank=True, max_length=255, null=True), + ), + ] diff --git a/addons/workflow/migrations/0003_nodesettings_file_path.py b/addons/workflow/migrations/0003_nodesettings_file_path.py new file mode 100644 index 00000000000..9b9757f6d2e --- /dev/null +++ b/addons/workflow/migrations/0003_nodesettings_file_path.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.28 on 2025-03-21 04:52 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('addons_workflow', '0002_auto_20250321_0200'), + ] + + operations = [ + migrations.AddField( + model_name='nodesettings', + name='file_path', + field=models.CharField(blank=True, max_length=255, null=True), + ), + ] diff --git a/addons/workflow/migrations/__init__.py b/addons/workflow/migrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/addons/workflow/models.py b/addons/workflow/models.py new file mode 100644 index 00000000000..c73a77b76f6 --- /dev/null +++ b/addons/workflow/models.py @@ -0,0 +1,39 @@ +import logging + +from addons.base.models import BaseNodeSettings +from django.db import models +from . import settings + +logger = logging.getLogger(__name__) + +class NodeSettings(BaseNodeSettings): + param_1 = models.TextField(blank=True, null=True) + + def get_param_1(self): + if self.param_1 is None or self.param_1 == '': + return settings.DEFAULT_PARAM_1 + return self.param_1 + + def set_param_1(self, param_1): + self.param_1 = param_1 + self.save() + + workflow_engine = models.CharField(max_length=255, blank=True, null=True) + workflow_name = models.CharField(max_length=255, blank=True, null=True) + workflow_id = models.CharField(max_length=255, blank=True, null=True) + creator_token = models.CharField(max_length=255, blank=True, null=True) + admin_token = models.CharField(max_length=255, blank=True, null=True) + executor_token = models.CharField(max_length=255, blank=True, null=True) + + process_id = models.CharField(max_length=255, blank=True, null=True) + process_name = models.CharField(max_length=255, blank=True, null=True) + workflow_project_id = models.CharField(max_length=255, blank=True, null=True) + process_project_id = models.CharField(max_length=255, blank=True, null=True) + workflow_userid = models.CharField(max_length=255, blank=True, null=True) + workflow_valid_userid = models.CharField(max_length=255, blank=True, null=True) + file_path = models.CharField(max_length=255, blank=True, null=True) + admin_mailaddr = models.CharField(max_length=255, blank=True, null=True) + researcher_mailaddr = models.CharField(max_length=255, blank=True, null=True) + + def __str__(self): + return self.workflow_name diff --git a/addons/workflow/requirements.txt b/addons/workflow/requirements.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/addons/workflow/routes.py b/addons/workflow/routes.py new file mode 100644 index 00000000000..7221be93f63 --- /dev/null +++ b/addons/workflow/routes.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +from framework.routing import Rule, json_renderer +from website.routes import notemplate +from . import SHORT_NAME +from . import views + +# HTML endpoints +page_routes = { + 'rules': [ + # Home (Base) | GET + Rule( + [ + '//{}'.format(SHORT_NAME), + '//node//{}'.format(SHORT_NAME), + ], + 'get', + views.project_workflow, + notemplate + ), + + ] +} + +# JSON endpoints +api_routes = { + 'rules': [ + Rule([ + '/project//{}/settings'.format(SHORT_NAME), + '/project//node//{}/settings'.format(SHORT_NAME), + ], 'get', views.workflow_get_config, json_renderer), + Rule([ + '/project//{}/settings'.format(SHORT_NAME), + '/project//node//{}/settings'.format(SHORT_NAME), + ], 'put', views.workflow_set_config, json_renderer), + + Rule([ + '/project//{}/config'.format(SHORT_NAME), + '/project//node//{}/config'.format(SHORT_NAME), + ], 'get', views.workflow_get_config_ember, json_renderer), + Rule([ + '/project//{}/config'.format(SHORT_NAME), + '/project//node//{}/config'.format(SHORT_NAME), + ], 'patch', views.workflow_set_config_ember, json_renderer), + Rule([ + '/project//{}/register_workflow'.format(SHORT_NAME), + ], 'post', views.register_workflow_data, json_renderer), + Rule([ + '/addons/workflow/registered_workflows/', + ], 'get', views.get_registered_workflows, json_renderer), + Rule([ + '/addons/workflow/all_registered_workflows/', + ], 'get', views.get_all_registered_workflows, json_renderer), + Rule([ + '/project//{}/register_workflow/'.format(SHORT_NAME), + ], 'patch', views.update_workflow_data, json_renderer), + Rule([ + '/project//{}/remove_workflow/'.format(SHORT_NAME), + ], 'delete', views.remove_workflow_data, json_renderer), + + Rule([ + '/project//{}/workflow_connection'.format(SHORT_NAME), + ], 'get', views.workflow_connection, json_renderer), + Rule([ + '/addons/workflow/start_workflow/', + ], 'post', views.start_workflow_data, json_renderer), + ], + 'prefix': '/api/v1', +} diff --git a/addons/workflow/settings/__init__.py b/addons/workflow/settings/__init__.py new file mode 100644 index 00000000000..2b2f98881f6 --- /dev/null +++ b/addons/workflow/settings/__init__.py @@ -0,0 +1,10 @@ +import logging +from .defaults import * # noqa + + +logger = logging.getLogger(__name__) + +try: + from .local import * # noqa +except ImportError: + logger.warn('No local.py settings file found') diff --git a/addons/workflow/settings/defaults.py b/addons/workflow/settings/defaults.py new file mode 100644 index 00000000000..f95ed71881a --- /dev/null +++ b/addons/workflow/settings/defaults.py @@ -0,0 +1 @@ +DEFAULT_PARAM_1 = '' diff --git a/addons/workflow/settings/workflow_connection.json b/addons/workflow/settings/workflow_connection.json new file mode 100644 index 00000000000..bb1d71b0690 --- /dev/null +++ b/addons/workflow/settings/workflow_connection.json @@ -0,0 +1,9 @@ +{ + "engine1": + { + "name":"flowable-task", + "url":"http://dummy:8091/flowable-task", + "account":"", + "password":"" + } +} \ No newline at end of file diff --git a/addons/workflow/static/node-cfg.js b/addons/workflow/static/node-cfg.js new file mode 100644 index 00000000000..cf445ce5690 --- /dev/null +++ b/addons/workflow/static/node-cfg.js @@ -0,0 +1,81 @@ +'use strict'; + +var $ = require('jquery'); +var m = require('mithril'); +var ko = require('knockout'); +var Raven = require('raven-js'); +var osfHelpers = require('js/osfHelpers'); +var ChangeMessageMixin = require('js/changeMessage'); +var SaveManager = require('js/saveManager'); + +var SHORT_NAME = 'workflow'; +var logPrefix = '[' + SHORT_NAME + '] '; + + +function NodeSettings() { + var self = this; + self.baseUrl = window.contextVars.node.urls.api + SHORT_NAME + '/'; + + self.param_1 = ko.observable(''); + self.loaded_param_1 = ko.observable(''); + self.dirty = ko.computed(function() { + return self.param_1() != self.loaded_param_1(); + }) + + ChangeMessageMixin.call(self); + + self.saveManager = new SaveManager( + self.baseUrl + 'settings', + null, + { + dirty: function() { + return self.param_1() != self.loaded_param_1() + } + } + ); + + self.submit = function() { + console.log(logPrefix, 'submit', self.param_1()); + self.saveManager.save({'param_1': self.param_1()}) + .then(function (data) { + console.log(logPrefix, 'updated: ', data); + self.loaded_param_1(self.param_1()) + }, + function(reason) { + Raven.captureMessage('Error while updating addon info', { + extra: { + reason: reason + } + }); + }) + }; + + self.loadConfig = function() { + var url = self.baseUrl + 'settings'; + console.log(logPrefix, 'loading: ', url); + + return $.ajax({ + url: url, + type: 'GET', + dataType: 'json' + }).done(function (data) { + console.log(logPrefix, 'loaded: ', data); + self.loaded_param_1(data.param_1); + self.param_1(data.param_1); + }).fail(function(xhr, status, error) { + Raven.captureMessage('Error while retrieving addon info', { + extra: { + url: url, + status: status, + error: error + } + }); + }); + }; +} + +$.extend(NodeSettings.prototype, ChangeMessageMixin.prototype); + +var settings = new NodeSettings(); +osfHelpers.applyBindings(settings, '#' + SHORT_NAME + 'Scope'); +settings.loadConfig(); diff --git a/addons/workflow/static/widget-cfg.js b/addons/workflow/static/widget-cfg.js new file mode 100644 index 00000000000..860fc1f54fe --- /dev/null +++ b/addons/workflow/static/widget-cfg.js @@ -0,0 +1,52 @@ +'use strict'; +// widget用ファイル + +var $ = require('jquery'); +var ko = require('knockout'); +var Raven = require('raven-js'); +var osfHelpers = require('js/osfHelpers'); + +var logPrefix = '[workflow] '; + +require('./workflow.css'); + + +function WorkflowWidget() { + var self = this; + self.baseUrl = window.contextVars.node.urls.api + 'workflow/'; + self.loading = ko.observable(true); + self.loadFailed = ko.observable(false); + self.loadCompleted = ko.observable(false); + self.param_1 = ko.observable(''); + + self.loadConfig = function() { + var url = self.baseUrl + 'settings'; + console.log(logPrefix, 'loading: ', url); + + return $.ajax({ + url: url, + type: 'GET', + dataType: 'json' + }).done(function (data) { + console.log(logPrefix, 'loaded: ', data); + self.loading(false); + self.loadCompleted(true); + self.param_1(data.param_1); + }).fail(function(xhr, status, error) { + self.loading(false); + self.loadFailed(true); + Raven.captureMessage('Error while retrieving addon info', { + extra: { + url: url, + status: status, + error: error + } + }); + }); + }; + +} + +var w = new WorkflowWidget(); +osfHelpers.applyBindings(w, '#workflow-content'); +w.loadConfig(); diff --git a/addons/workflow/static/workflow.css b/addons/workflow/static/workflow.css new file mode 100644 index 00000000000..46fb8c4880c --- /dev/null +++ b/addons/workflow/static/workflow.css @@ -0,0 +1,5 @@ +/* widget用ファイル */ + +#workflow-content p { + color: blue; +} diff --git a/addons/workflow/static/workflowAnonymousLogActionList.json b/addons/workflow/static/workflowAnonymousLogActionList.json new file mode 100644 index 00000000000..5abdc378d19 --- /dev/null +++ b/addons/workflow/static/workflowAnonymousLogActionList.json @@ -0,0 +1,5 @@ +{ + "workflow_file_added": "A user created a workflow", + "workflow_file_updated": "A user updated a workflow", + "workflow_file_deleted": "A user deleted a workflow" +} \ No newline at end of file diff --git a/addons/workflow/static/workflowLogActionList.json b/addons/workflow/static/workflowLogActionList.json new file mode 100644 index 00000000000..ad3c58f93a2 --- /dev/null +++ b/addons/workflow/static/workflowLogActionList.json @@ -0,0 +1,5 @@ +{ + "workflow_file_added": "${user} created a ${filename} workflow in ${node}", + "workflow_file_updated": "${user} updated a ${filename} workflow in ${node}", + "workflow_file_deleted": "${user} deleted a ${filename} workflow in ${node}" +} \ No newline at end of file diff --git a/addons/workflow/templates/node_settings.mako b/addons/workflow/templates/node_settings.mako new file mode 100644 index 00000000000..8dc1ed8b301 --- /dev/null +++ b/addons/workflow/templates/node_settings.mako @@ -0,0 +1,26 @@ + + +
+

+ + ${addon_full_name} +

+ +
+
+
+ +
+ +
+
+ +
+
+ +
+ +
+
diff --git a/addons/workflow/tests/__init__.py b/addons/workflow/tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/addons/workflow/tests/conftest.py b/addons/workflow/tests/conftest.py new file mode 100644 index 00000000000..da9f243685b --- /dev/null +++ b/addons/workflow/tests/conftest.py @@ -0,0 +1 @@ +from osf_tests.conftest import * # noqa diff --git a/addons/workflow/tests/factories.py b/addons/workflow/tests/factories.py new file mode 100644 index 00000000000..1154b545601 --- /dev/null +++ b/addons/workflow/tests/factories.py @@ -0,0 +1,13 @@ +"""Factories for the My Screen addon.""" +import factory +from factory.django import DjangoModelFactory +from osf_tests.factories import ProjectFactory + +from ..models import NodeSettings + + +class NodeSettingsFactory(DjangoModelFactory): + class Meta: + model = NodeSettings + + owner = factory.SubFactory(ProjectFactory) diff --git a/addons/workflow/tests/test_model.py b/addons/workflow/tests/test_model.py new file mode 100644 index 00000000000..c0600986286 --- /dev/null +++ b/addons/workflow/tests/test_model.py @@ -0,0 +1,35 @@ +import mock +from nose.tools import * # noqa +import pytest +import unittest + +from tests.base import get_default_metaschema +from osf_tests.factories import ProjectFactory + +from framework.auth import Auth +from ..models import NodeSettings +from .factories import NodeSettingsFactory + + +pytestmark = pytest.mark.django_db + +class TestNodeSettings(unittest.TestCase): + _NodeSettingsFactory = NodeSettingsFactory + + def setUp(self): + super(TestNodeSettings, self).setUp() + self.node = ProjectFactory() + self.user = self.node.creator + + self.node_settings = self._NodeSettingsFactory(owner=self.node) + self.node_settings.save() + + def tearDown(self): + super(TestNodeSettings, self).tearDown() + self.node.delete() + self.user.delete() + + def test_set_param_1(self): + self.node_settings.set_param_1('TEST_PARAM_1') + self.node_settings.save() + assert_equal(self.node_settings.get_param_1(), 'TEST_PARAM_1') diff --git a/addons/workflow/tests/test_view.py b/addons/workflow/tests/test_view.py new file mode 100644 index 00000000000..da1226b6c26 --- /dev/null +++ b/addons/workflow/tests/test_view.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +from rest_framework import status as http_status + +import mock +from nose.tools import * # noqa + +from framework.auth import Auth +from tests.base import OsfTestCase, get_default_metaschema +from osf_tests.factories import ProjectFactory + +from .. import SHORT_NAME +from .. import settings +from .utils import BaseAddonTestCase +from website.util import api_url_for + + +class TestViews(BaseAddonTestCase, OsfTestCase): + + def test_empty_param_1(self): + self.node_settings.set_param_1('') + self.node_settings.save() + url = self.project.api_url_for('{}_get_config'.format(SHORT_NAME)) + res = self.app.get(url, auth=self.user.auth) + assert_equals(res.json['param_1'], settings.DEFAULT_PARAM_1) + + def test_param_1(self): + self.node_settings.set_param_1('PARAM_1') + self.node_settings.save() + url = self.project.api_url_for('{}_get_config'.format(SHORT_NAME)) + res = self.app.get(url, auth=self.user.auth) + assert_equals(res.json['param_1'], 'PARAM_1') + + # ember: ここから + def test_ember_empty_param_1(self): + self.node_settings.set_param_1('') + self.node_settings.save() + url = self.project.api_url_for('{}_get_config_ember'.format(SHORT_NAME)) + res = self.app.get(url, auth=self.user.auth) + assert_equals(res.json['data']['type'], 'workflow-config') + assert_equals(res.json['data']['attributes']['param1'], settings.DEFAULT_PARAM_1) + + def test_ember_param_1(self): + self.node_settings.set_param_1('PARAM_1') + self.node_settings.save() + url = self.project.api_url_for('{}_get_config_ember'.format(SHORT_NAME)) + res = self.app.get(url, auth=self.user.auth) + assert_equals(res.json['data']['type'], 'workflow-config') + assert_equals(res.json['data']['attributes']['param1'], 'PARAM_1') + # ember: ここまで diff --git a/addons/workflow/tests/test_workflow.py b/addons/workflow/tests/test_workflow.py new file mode 100644 index 00000000000..575f5454024 --- /dev/null +++ b/addons/workflow/tests/test_workflow.py @@ -0,0 +1,33 @@ +import os +import json +import subprocess + +curr_path = os.path.normpath(os.path.dirname(__file__)) +json_path = os.path.abspath(os.path.join(curr_path, os.pardir)) +file_path = os.path.join(json_path, 'settings', 'workflow_connection.json') + +with open(file_path, 'r') as json_file: + json_load = json.load(json_file) + +name = json_load['engine1']['name'] +url = json_load['engine1']['url'] +account = json_load['engine1']['account'] +password = json_load['engine1']['password'] + +target = f'http://{account}:{password}@{url}/process-api/repository/process-definitions' + +curl_command = [ + 'curl', + '-X', 'GET', + target +] + +result = subprocess.run( + curl_command, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True +) + +print('response code:', result.returncode) +print('response body:', result.stdout) \ No newline at end of file diff --git a/addons/workflow/tests/utils.py b/addons/workflow/tests/utils.py new file mode 100644 index 00000000000..1c4dbc0c8c9 --- /dev/null +++ b/addons/workflow/tests/utils.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +from addons.base.tests.base import OAuthAddonTestCaseMixin, AddonTestCase +from .. import SHORT_NAME + + +class BaseAddonTestCase(AddonTestCase): + ADDON_SHORT_NAME = SHORT_NAME + OWNERS = ['node'] + NODE_USER_FIELD = None + ExternalAccountFactory = None + Provider = None + Serializer = None + client = None + + def set_node_settings(self, settings): + return diff --git a/addons/workflow/utils.py b/addons/workflow/utils.py new file mode 100644 index 00000000000..244384c2f44 --- /dev/null +++ b/addons/workflow/utils.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +# widget: ここから +def serialize_workflow_widget(node): + workflow = node.get_addon('workflow') + ret = { + 'complete': True + } + ret.update(workflow.config.to_json()) + return ret +# widget: ここまで diff --git a/addons/workflow/views.py b/addons/workflow/views.py new file mode 100644 index 00000000000..bd8cedc7fb1 --- /dev/null +++ b/addons/workflow/views.py @@ -0,0 +1,293 @@ +# -*- coding: utf-8 -*- +import logging + +from flask import request +from rest_framework import status as http_status + +from . import SHORT_NAME +from .models import NodeSettings +# from .models import WorkflowProcessRegistration +from framework.exceptions import HTTPError +from website.ember_osf_web.views import use_ember_app +from website.project.decorators import ( + must_be_valid_project, + must_have_addon, +) + +logger = logging.getLogger(__name__) + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def workflow_get_config(**kwargs): + node = kwargs['node'] or kwargs['project'] + addon = node.get_addon(SHORT_NAME) + return {'param_1': addon.get_param_1()} + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def workflow_set_config(**kwargs): + node = kwargs['node'] or kwargs['project'] + addon = node.get_addon(SHORT_NAME) + try: + param_1 = request.json['param_1'] + except KeyError: + raise HTTPError(http_status.HTTP_400_BAD_REQUEST) + logger.info('param_1: {}'.format(param_1)) + addon.set_param_1(param_1) + return {} + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def project_workflow(**kwargs): + return use_ember_app() + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def workflow_get_config_ember(**kwargs): + node = kwargs['node'] or kwargs['project'] + addon = node.get_addon(SHORT_NAME) + return { + 'data': { + 'id': node._id, + 'type': 'workflow-config', + 'attributes': {'param1': addon.get_param_1()}, + } + } + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def workflow_set_config_ember(**kwargs): + node = kwargs['node'] or kwargs['project'] + addon = node.get_addon(SHORT_NAME) + try: + config = request.json['data']['attributes'] + param_1 = config['param1'] + except KeyError: + raise HTTPError(http_status.HTTP_400_BAD_REQUEST) + + addon.set_param_1(param_1) + return { + 'data': { + 'id': node._id, + 'type': 'workflow-config', + 'attributes': {'param1': param_1}, + } + } + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def register_workflow_data(**kwargs): + from framework.auth import Auth + try: + node = kwargs['node'] or kwargs['project'] + data = request.json + workflow_registration = NodeSettings( + workflow_engine=data['workflowEngine'], + workflow_name=data['workflowName'], + workflow_id=data['workflowID'], + creator_token=data['creatorToken'], + admin_token=data['adminToken'], + executor_token=data['executorToken'], + workflow_project_id=node._id, + workflow_userid=node.creator, + workflow_valid_userid=node.creator, + ) + workflow_registration.save() + + node.add_log( + action='workflow_file_added', + params={ + 'project': node.parent_id, + 'node': node._id, + 'filename': workflow_registration.workflow_name, + }, + auth=Auth(user=node.creator), + ) + + return {'message': 'Workflow registration successful'} + except KeyError as e: + logger.error(f'KeyError: {e}, Request data: {request.json}') + raise HTTPError(http_status.HTTP_400_BAD_REQUEST) + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def update_workflow_data(workflow_id, **kwargs): + from framework.auth import Auth + try: + data = request.json + workflow = NodeSettings.objects.get( + workflow_id=workflow_id, + is_deleted=False + ) + workflow.workflow_name = data['workflowName'] + workflow.creator_token = data['creatorToken'] + workflow.admin_token = data['adminToken'] + workflow.executor_token = data['executorToken'] + workflow.save() + + node = kwargs['node'] or kwargs['project'] + node.add_log( + action='workflow_file_updated', + params={ + 'project': node.parent_id, + 'node': node._id, + 'filename': data['workflowName'], + }, + auth=Auth(user=node.creator), + ) + return {'message': 'Workflow update successful'} + except NodeSettings.DoesNotExist: + raise HTTPError(http_status.HTTP_404_NOT_FOUND) + except KeyError as e: + logger.error(f'KeyError: {e}, Request data: {request.json}') + raise HTTPError(http_status.HTTP_400_BAD_REQUEST) + + +def get_registered_workflows(**kwargs): + workflows = NodeSettings.objects.filter(is_deleted=False) + workflow_list = [ + { + 'engine': workflow.workflow_engine, + 'name': workflow.workflow_name, + 'id': workflow.workflow_id, + 'creatorToken': workflow.creator_token, + 'adminToken': workflow.admin_token, + 'executorToken': workflow.executor_token, + 'processId': workflow.process_id, + 'process_name': workflow.process_name, + 'workflow_project_id': workflow.workflow_project_id, + 'process_project_id': workflow.process_project_id, + 'workflow_userid': workflow.workflow_userid, + 'workflow_valid_userid': workflow.workflow_valid_userid, + 'admin_mailaddr': workflow.admin_mailaddr, + 'researcher_mailaddr': workflow.researcher_mailaddr, + 'filePath': workflow.file_path, + } + for workflow in workflows + ] + return {'data': workflow_list} + + +def get_all_registered_workflows(**kwargs): + workflows = NodeSettings.objects.all() + workflow_list = [ + { + 'engine': workflow.workflow_engine, + 'name': workflow.workflow_name, + 'id': workflow.workflow_id, + 'creator_token': workflow.creator_token, + 'admin_token': workflow.admin_token, + 'executor_token': workflow.executor_token, + 'process_id': workflow.process_id, + 'process_name': workflow.process_name, + 'workflow_project_id': workflow.workflow_project_id, + 'process_project_id': workflow.process_project_id, + 'workflow_userid': workflow.workflow_userid, + 'workflow_valid_userid': workflow.workflow_valid_userid, + 'admin_mailaddr': workflow.admin_mailaddr, + 'researcher_mailaddr': workflow.researcher_mailaddr, + 'file_path': workflow.file_path, + } + for workflow in workflows + ] + return {'data': workflow_list} + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def remove_workflow_data(workflow_id, **kwargs): + from framework.auth import Auth + try: + workflow = NodeSettings.objects.filter( + workflow_id=workflow_id, + is_deleted=False + ).first() + + if workflow: + workflow.delete() + + node = kwargs['node'] or kwargs['project'] + node.add_log( + action='workflow_file_deleted', + params={ + 'project': node.parent_id, + 'node': node._id, + 'filename': workflow.workflow_name, + }, + auth=Auth(user=node.creator), + ) + return {'message': 'Workflow removed successfully'} + else: + raise HTTPError( + http_status.HTTP_404_NOT_FOUND, + detail='Workflow not found' + ) + + except Exception as e: + logger.error(f'Error removing workflow: {e}') + raise HTTPError( + http_status.HTTP_500_INTERNAL_SERVER_ERROR, + detail='Failed to remove workflow' + ) + + +@must_be_valid_project +@must_have_addon(SHORT_NAME, 'node') +def workflow_connection(**kwargs): + import os + import json + + path = os.path.join(os.path.dirname(__file__), 'settings', 'workflow_connection.json') + + with open(path, 'r', encoding='utf-8') as file: + data = json.load(file) + + extracted_data = [ + { + 'name': engine['name'], + 'url': engine['url'], + 'account': engine['account'], + 'password': engine['password'] + } + for engine in data.values() + ] + + return {'data': extracted_data} + + +def start_workflow_data(**kwargs): + + try: + data = request.json + + workflowProcess_registration = NodeSettings( + workflow_engine=data['workflow_engine'], + workflow_name=data['workflow_name'], + workflow_id=data['workflow_id'], + creator_token=data['creator_token'], + admin_token=data['admin_token'], + executor_token=data['executor_token'], + process_id=data['process_id'], + process_name=data['process_name'], + workflow_project_id=data['workflow_project_id'], + process_project_id=data['process_project_id'], + file_path=data['file_path'], + admin_mailaddr=data['admin_mailaddr'], + researcher_mailaddr=data['researcher_mailaddr'], + ) + + workflowProcess_registration.save() + return { + 'status': 'OK', + 'message': 'Workflow process registration successful' + } + except KeyError as e: + logger.error(f'KeyError: {e}, Request data: {request.json}') + raise HTTPError(http_status.HTTP_400_BAD_REQUEST) diff --git a/api/base/settings/defaults.py b/api/base/settings/defaults.py index 983af9f40de..fd1c3dababf 100644 --- a/api/base/settings/defaults.py +++ b/api/base/settings/defaults.py @@ -128,6 +128,7 @@ 'addons.metadata', 'addons.datasteward', 'addons.onlyoffice', + 'addons.workflow', ) # local development using https diff --git a/api/files/serializers.py b/api/files/serializers.py index 85bbd958809..f07070242a0 100644 --- a/api/files/serializers.py +++ b/api/files/serializers.py @@ -167,6 +167,7 @@ class BaseFileSerializer(JSONAPISerializer): help_text='OSF GUID for this file (if one has been assigned)', ) checkout = CheckoutField() + locked = ser.BooleanField(help_text='Whether this file is locked', required=False) name = ser.CharField(read_only=True, help_text='Display name used in the general user interface') kind = ser.CharField(read_only=True, help_text='Either folder or file') path = ser.CharField(read_only=True, help_text='The unique path used to reference this object') @@ -332,6 +333,9 @@ def update(self, instance, validated_data): if attr == 'checkout': user = self.context['request'].user instance.check_in_or_out(user, value) + elif attr == 'locked': + user = self.context['request'].user + instance.lock(user, value) else: setattr(instance, attr, value) instance.save() diff --git a/api/institutions/authentication.py b/api/institutions/authentication.py index 7f5c4cfb8d3..af702ffc193 100644 --- a/api/institutions/authentication.py +++ b/api/institutions/authentication.py @@ -183,6 +183,9 @@ def get_next(obj, *args): organization_name_ja = get_next(p_user, 'jao', 'jaOrganizationName') # affiliation: 'jaou' is friendlyName organizational_unit_ja = get_next(p_user, 'jaou', 'jaOrganizationalUnitName') + # @R-2024-AUTH01 gakuninIdentityAssuranceMethodReference + gakunin_identity_assurance_method_reference = p_user.get('gakuninIdentityAssuranceMethodReference') + # @R2022-48 ial,aal ial = None aal = None @@ -492,6 +495,7 @@ def get_next(obj, *args): 'organizational_unit': organizational_unit, 'organization_name_ja': organization_name_ja, 'organizational_unit_ja': organizational_unit_ja, + 'gakunin_identity_assurance_method_reference': gakunin_identity_assurance_method_reference, }, ) diff --git a/api/schemas/serializers.py b/api/schemas/serializers.py index 9da8c111273..4eb4462d284 100644 --- a/api/schemas/serializers.py +++ b/api/schemas/serializers.py @@ -48,11 +48,16 @@ class RegistrationSchemaBlockSerializer(JSONAPISerializer): message_required_if = ser.CharField(read_only=True) enabled_if = ser.CharField(read_only=True) suggestion = ser.CharField(read_only=True) - auto_value = ser.BooleanField(read_only=True) - auto_date = ser.BooleanField(read_only=True) - auto_title = ser.BooleanField(read_only=True) - hide_projectmetadata = ser.BooleanField(read_only=True) + retrieval_title = ser.CharField(read_only=True) + retrieval_date = ser.CharField(read_only=True) + concealment_page_navigator = ser.BooleanField(read_only=True) + required_all_check = ser.CharField(read_only=True) index = ser.IntegerField(read_only=True, source='_order') + multi_language = ser.BooleanField(read_only=True) + retrieval_version = ser.CharField(read_only=True) + readonly = ser.CharField(read_only=True) + sentence = ser.CharField(read_only=True) + row_addition_caption = ser.CharField(read_only=True) links = LinksField({ 'self': 'get_absolute_url', diff --git a/api/wb/serializers.py b/api/wb/serializers.py index 25d0486cad3..9e64d0c1da4 100644 --- a/api/wb/serializers.py +++ b/api/wb/serializers.py @@ -23,6 +23,7 @@ class WaterbutlerMetadataSerializer(ser.Serializer): modified = ser.CharField(read_only=True) path = ser.CharField(read_only=True) checkout = ser.SerializerMethodField(read_only=True) + locked = ser.BooleanField(read_only=True) version = ser.IntegerField(help_text='Latest file version', read_only=True, source='current_version_number') downloads = ser.SerializerMethodField() @@ -59,6 +60,8 @@ def create(self, validated_data): raise exceptions.ValidationError('File already exists with this name.') except file_exceptions.FileNodeCheckedOutError: raise exceptions.ValidationError('Cannot move file as it is checked out.') + except file_exceptions.FileNodeLockedError: + raise exceptions.ValidationError('Cannot move file as it is locked.') except file_exceptions.FileNodeIsPrimaryFile: raise exceptions.ValidationError('Cannot move file as it is the primary file of preprint.') diff --git a/framework/addons/data/addons.json b/framework/addons/data/addons.json index e4690c8676d..2686a2b8b7c 100644 --- a/framework/addons/data/addons.json +++ b/framework/addons/data/addons.json @@ -708,6 +708,36 @@ "status": "none", "text": "ONLYOFFICE information will not be registered." } + }, + "Work Flow": { + "Permissions": { + "status": "none", + "text": "The GakuNin RDM does not affect the permissions of Work Flow." + }, + "View / download file versions": { + "status": "none", + "text": "The Work Flow add-on does not provide Storage Features." + }, + "Add / update files": { + "status": "none", + "text": "The Work Flow add-on does not provide Storage Features." + }, + "Delete files": { + "status": "none", + "text": "The Work Flow add-on does not provide Storage Features." + }, + "Logs": { + "status": "none", + "text": "The Work Flow add-on does not provide Storage Features." + }, + "Forking": { + "status": "partial", + "text": "Forking a project or component copies information about linked Work Flow but the GakuNin RDM does not affect authentication of Work Flow." + }, + "Registering": { + "status": "none", + "text": "Work Flow information will not be registered." + } } }, "disclaimers": [ diff --git a/osf/migrations/0244_auto_20250328_0945.py b/osf/migrations/0244_auto_20250328_0945.py new file mode 100644 index 00000000000..e95b7928300 --- /dev/null +++ b/osf/migrations/0244_auto_20250328_0945.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.28 on 2025-03-28 09:45 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('osf', '0243_ensure_schema_mappings'), + ] + + operations = [ + migrations.AddField( + model_name='basefilenode', + name='locked', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='locked_by', to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='registrationschemablock', + name='concealment_page_navigator', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='registrationschemablock', + name='get_edit', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='registrationschemablock', + name='get_retrieval_date', + field=models.TextField(null=True), + ), + migrations.AddField( + model_name='registrationschemablock', + name='get_retrieval_title', + field=models.TextField(null=True), + ), + migrations.AddField( + model_name='registrationschemablock', + name='get_retrieval_version', + field=models.TextField(null=True), + ), + migrations.AddField( + model_name='registrationschemablock', + name='multi_language', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='registrationschemablock', + name='required_all_check', + field=models.TextField(null=True), + ), + migrations.AddField( + model_name='registrationschemablock', + name='row_addition_caption', + field=models.TextField(null=True), + ), + migrations.AddField( + model_name='registrationschemablock', + name='sentence', + field=models.BooleanField(default=False), + ), + ] diff --git a/osf/migrations/0245_ensure_schema_and_reports.py b/osf/migrations/0245_ensure_schema_and_reports.py new file mode 100644 index 00000000000..2ee82174a33 --- /dev/null +++ b/osf/migrations/0245_ensure_schema_and_reports.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations +from osf.utils.migrations import UpdateRegistrationSchemasAndSchemaBlocks + + +def ensure_registration_reports(*args): + from api.base import settings + from addons.metadata import FULL_NAME + from addons.metadata.utils import ensure_registration_report + from addons.metadata.report_format import REPORT_FORMATS + if FULL_NAME not in settings.INSTALLED_APPS: + return + for schema_name, report_name, csv_template in REPORT_FORMATS: + ensure_registration_report(schema_name, report_name, csv_template) + +class Migration(migrations.Migration): + + dependencies = [ + ('osf', '0244_auto_20250328_0945'), + ] + + operations = [ + UpdateRegistrationSchemasAndSchemaBlocks(), + migrations.RunPython(ensure_registration_reports, ensure_registration_reports), + ] diff --git a/osf/migrations/0246_update_schema_for_manuscript.py b/osf/migrations/0246_update_schema_for_manuscript.py new file mode 100644 index 00000000000..f6c0f102436 --- /dev/null +++ b/osf/migrations/0246_update_schema_for_manuscript.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations +from osf.utils.migrations import UpdateRegistrationSchemasAndSchemaBlocks + + +def ensure_registration_mappings(*args): + from api.base import settings + from addons.weko.apps import NAME + from addons.weko.utils import ensure_registration_metadata_mapping + from addons.weko.mappings import REGISTRATION_METADATA_MAPPINGS + if NAME not in settings.INSTALLED_APPS: + return + for schema_name, mappings in REGISTRATION_METADATA_MAPPINGS: + ensure_registration_metadata_mapping(schema_name, mappings) + + +class Migration(migrations.Migration): + + dependencies = [ + ('osf', '0245_ensure_schema_and_reports'), + ] + + operations = [ + UpdateRegistrationSchemasAndSchemaBlocks(), + migrations.RunPython(ensure_registration_mappings, ensure_registration_mappings), + ] diff --git a/osf/migrations/0247_auto_20250417_0241.py b/osf/migrations/0247_auto_20250417_0241.py new file mode 100644 index 00000000000..4914e3ddc8f --- /dev/null +++ b/osf/migrations/0247_auto_20250417_0241.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.28 on 2025-04-17 02:41 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('osf', '0246_update_schema_for_manuscript'), + ] + + operations = [ + migrations.RenameField( + model_name='registrationschemablock', + old_name='auto_date', + new_name='readonly', + ), + migrations.RenameField( + model_name='registrationschemablock', + old_name='get_retrieval_date', + new_name='retrieval_date', + ), + migrations.RenameField( + model_name='registrationschemablock', + old_name='get_retrieval_title', + new_name='retrieval_title', + ), + migrations.RenameField( + model_name='registrationschemablock', + old_name='get_retrieval_version', + new_name='retrieval_version', + ), + migrations.RemoveField( + model_name='registrationschemablock', + name='auto_title', + ), + migrations.RemoveField( + model_name='registrationschemablock', + name='auto_value', + ), + migrations.RemoveField( + model_name='registrationschemablock', + name='get_edit', + ), + migrations.RemoveField( + model_name='registrationschemablock', + name='hide_projectmetadata', + ), + ] diff --git a/osf/migrations/0248_update_schema_for_manuscript.py b/osf/migrations/0248_update_schema_for_manuscript.py new file mode 100644 index 00000000000..3ca21df00bd --- /dev/null +++ b/osf/migrations/0248_update_schema_for_manuscript.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations +from osf.utils.migrations import UpdateRegistrationSchemasAndSchemaBlocks + + +def ensure_registration_mappings(*args): + from api.base import settings + from addons.weko.apps import NAME + from addons.weko.utils import ensure_registration_metadata_mapping + from addons.weko.mappings import REGISTRATION_METADATA_MAPPINGS + if NAME not in settings.INSTALLED_APPS: + return + for schema_name, mappings in REGISTRATION_METADATA_MAPPINGS: + ensure_registration_metadata_mapping(schema_name, mappings) + + +class Migration(migrations.Migration): + + dependencies = [ + ('osf', '0247_auto_20250417_0241'), + ] + + operations = [ + UpdateRegistrationSchemasAndSchemaBlocks(), + migrations.RunPython(ensure_registration_mappings, ensure_registration_mappings), + ] diff --git a/osf/models/files.py b/osf/models/files.py index 26105ffbdc1..b8d9157e169 100644 --- a/osf/models/files.py +++ b/osf/models/files.py @@ -82,6 +82,14 @@ class BaseFileNode(TypedModel, CommentableMixin, OptionalGuidMixin, Taggable, Ob # The User that has this file "checked out" # Should only be used for OsfStorage checkout = models.ForeignKey('osf.OSFUser', blank=True, null=True, on_delete=models.CASCADE) + # The User that has locked this file + locked = models.ForeignKey( + 'osf.OSFUser', + blank=True, + null=True, + on_delete=models.CASCADE, + related_name='locked_by', + ) # The last time the touch method was called on this FileNode last_touched = NonNaiveDateTimeField(null=True, blank=True) # A list of dictionaries sorted by the 'modified' key diff --git a/osf/models/metaschema.py b/osf/models/metaschema.py index 2449054f061..930246b1594 100644 --- a/osf/models/metaschema.py +++ b/osf/models/metaschema.py @@ -196,10 +196,15 @@ class Meta: message_required_if = models.TextField(null=True) enabled_if = models.TextField(null=True) suggestion = models.TextField(null=True) - auto_value = models.BooleanField(default=False) - auto_date = models.BooleanField(default=False) - auto_title = models.BooleanField(default=False) - hide_projectmetadata = models.BooleanField(default=False) + retrieval_title = models.TextField(null=True) + retrieval_date = models.TextField(null=True) + concealment_page_navigator = models.BooleanField(default=False) + required_all_check = models.TextField(null=True) + multi_language = models.BooleanField(default=False) + retrieval_version = models.TextField(null=True) + readonly = models.BooleanField(default=False) + sentence = models.BooleanField(default=False) + row_addition_caption = models.TextField(null=True) @property def absolute_api_v2_url(self): diff --git a/osf/models/nodelog.py b/osf/models/nodelog.py index 1a993590479..adef5555755 100644 --- a/osf/models/nodelog.py +++ b/osf/models/nodelog.py @@ -55,6 +55,9 @@ class NodeLog(ObjectIDMixin, BaseModel): CHECKED_IN = 'checked_in' CHECKED_OUT = 'checked_out' + LOCKED = 'locked' + UNLOCKED = 'unlocked' + PERMISSIONS_UPDATED = 'permissions_updated' MADE_PRIVATE = 'made_private' diff --git a/osf/models/validators.py b/osf/models/validators.py index bffa1022add..4e8d3a09e18 100644 --- a/osf/models/validators.py +++ b/osf/models/validators.py @@ -388,6 +388,12 @@ def _build_question_schema(self, question): 'type': 'string', 'description': question_text, } + elif question.block_type == 'single-select-pulldown-input': + # allow any option + return { + 'type': 'string', + 'description': question_text, + } elif question.block_type == 'pulldown-input': # allow any option return { @@ -422,6 +428,7 @@ def _build_question_schema(self, question): 'e-rad-researcher-name-en-input', 'e-rad-bunnya-input', 'file-metadata-input', 'date-input', + 'ad-metadata-input', 'date-input', 'file-capacity-input', 'file-creators-input', 'file-data-number-input', 'file-title-input', diff --git a/osf/utils/migrations.py b/osf/utils/migrations.py index 62283675e1c..c76651e619b 100644 --- a/osf/utils/migrations.py +++ b/osf/utils/migrations.py @@ -49,11 +49,13 @@ ('e-rad-award-title-ja', 'string'): 'e-rad-award-title-ja-input', ('e-rad-award-title-en', 'string'): 'e-rad-award-title-en-input', ('e-rad-award-field', 'choose'): 'e-rad-award-field-input', + ('singleselect-pulldown', 'choose'): 'single-select-pulldown-input', ('e-rad-researcher-number', 'string'): 'e-rad-researcher-number-input', ('e-rad-researcher-name-ja', 'string'): 'e-rad-researcher-name-ja-input', ('e-rad-researcher-name-en', 'string'): 'e-rad-researcher-name-en-input', ('e-rad-bunnya', 'string'): 'e-rad-bunnya-input', ('file-metadata', 'string'): 'file-metadata-input', + ('ad-metadata', 'string'): 'ad-metadata-input', ('date', 'string'): 'date-input', # deprecated format types are mapped to the simple text type ('file-capacity', 'string'): 'short-text-input', @@ -221,7 +223,7 @@ def remove_schemas(*args): def create_schema_block(state, schema_id, block_type, display_text='', required=False, help_text='', registration_response_key=None, schema_block_group_key='', example_text='', default=False, pattern=None, space_normalization=False, required_if=None, - message_required_if=None, enabled_if=None, suggestion=None, auto_value=False, auto_date=False, auto_title=False, hide_projectmetadata=False): + message_required_if=None, enabled_if=None, suggestion=None, retrieval_title='', retrieval_date='', concealment_page_navigator=False, multi_language=False, retrieval_version='', readonly=False, sentence=False, required_all_check=None, row_addition_caption=''): """ For mapping schemas to schema blocks: creates a given block from the specified parameters """ @@ -263,10 +265,15 @@ def create_schema_block(state, schema_id, block_type, display_text='', required= 'message_required_if': message_required_if, 'enabled_if': enabled_if, 'suggestion': suggestion, - 'auto_value': auto_value, - 'auto_date': auto_date, - 'auto_title': auto_title, - 'hide_projectmetadata': hide_projectmetadata, + 'retrieval_title': retrieval_title, + 'required_all_check': required_all_check, + 'retrieval_date': retrieval_date, + 'concealment_page_navigator': concealment_page_navigator, + 'multi_language': multi_language, + 'retrieval_version': retrieval_version, + 'readonly': readonly, + 'sentence': sentence, + 'row_addition_caption': row_addition_caption, } try: @@ -285,6 +292,7 @@ def split_options_into_blocks(state, rs, question, schema_block_group_key): answer_text = option if isinstance(option, basestring) else option.get('text') help_text = '' if isinstance(option, basestring) else option.get('tooltip', '') default = False if isinstance(option, basestring) else option.get('default', False) + multi_language = False if isinstance(option, basestring) else option.get('multi_language', False) create_schema_block( state, @@ -293,6 +301,7 @@ def split_options_into_blocks(state, rs, question, schema_block_group_key): display_text=answer_text, help_text=help_text, default=default, + multi_language=multi_language, schema_block_group_key=schema_block_group_key, ) @@ -373,6 +382,7 @@ def create_schema_blocks_for_question(state, rs, question, sub=False): """ # If there are subquestions, recurse and format subquestions properties = question.get('properties') + _help_text = question.get('help', '') if properties: first_subquestion = properties[0] first_subq_text = first_subquestion.get('title') or first_subquestion.get('description', '') @@ -386,6 +396,7 @@ def create_schema_blocks_for_question(state, rs, question, sub=False): rs.id, block_type='subsection-heading' if sub else 'section-heading', display_text=question.get('title', '') or question.get('description', ''), + help_text=_help_text, schema_block_group_key=schema_block_group_key, ) create_schema_block( @@ -401,6 +412,7 @@ def create_schema_blocks_for_question(state, rs, question, sub=False): message_required_if=question.get('message_required_if', None), enabled_if=question.get('enabled_if', None), suggestion=question.get('suggestion', None), + row_addition_caption=question.get('row_addition_caption', ''), ) else: create_schema_block( @@ -471,9 +483,13 @@ def create_schema_blocks_for_question(state, rs, question, sub=False): message_required_if=question.get('message_required_if', None), enabled_if=question.get('enabled_if', None), suggestion=question.get('suggestion', None), - auto_value=question.get('auto_value', False), - auto_date=question.get('auto_date', False), - auto_title=question.get('auto_title', False), + retrieval_title=question.get('retrieval_title', ''), + retrieval_date=question.get('retrieval_date', ''), + required_all_check=question.get('required_all_check', ''), + retrieval_version=question.get('retrieval_version', ''), + readonly=question.get('readonly', False), + sentence=question.get('sentence', False), + row_addition_caption=question.get('row_addition_caption', ''), ) # If there are multiple choice answers, create blocks for these as well. @@ -508,7 +524,7 @@ def map_schemas_to_schemablocks(*args): 'page-heading', display_text=strip_html(page.get('title', '')), help_text=strip_html(page.get('description', '')), - hide_projectmetadata=strip_html(page.get('hide_projectmetadata', False)) + concealment_page_navigator=strip_html(page.get('concealment_page_navigator', False)) ) for question in page['questions']: create_schema_blocks_for_question(state, rs, question) diff --git a/osf_tests/test_archiver.py b/osf_tests/test_archiver.py index e90b9027536..bc3c8d6c565 100644 --- a/osf_tests/test_archiver.py +++ b/osf_tests/test_archiver.py @@ -457,7 +457,7 @@ def _test_addon(self, addon_short_name): # @pytest.mark.skip('Unskip when figshare addon is implemented') def test_addons(self): # Test that each addon in settings.ADDONS_ARCHIVABLE other than wiki/forward implements the StorageAddonBase interface - for addon in [a for a in settings.ADDONS_ARCHIVABLE if a not in ['wiki', 'forward']]: + for addon in [a for a in settings.ADDONS_ARCHIVABLE if a not in ['wiki', 'forward', 'workflow']]: self._test_addon(addon) class TestArchiverTasks(ArchiverTestCase): diff --git a/scripts/reset_registration_schema.py b/scripts/reset_registration_schema.py index fadf3d2b355..ab90af97e0e 100644 --- a/scripts/reset_registration_schema.py +++ b/scripts/reset_registration_schema.py @@ -41,7 +41,7 @@ 'page-heading', display_text=strip_html(page.get('title', '')), help_text=strip_html(page.get('description', '')), - hide_projectmetadata=strip_html(page.get('hide_projectmetadata', False)) + concealment_page_navigator=strip_html(page.get('concealment_page_navigator', False)) ) for question in page['questions']: create_schema_blocks_for_question(apps, schema, question) diff --git a/website/files/exceptions.py b/website/files/exceptions.py index 6e3760c45c9..c17531994b6 100644 --- a/website/files/exceptions.py +++ b/website/files/exceptions.py @@ -17,6 +17,12 @@ class FileNodeCheckedOutError(FileException): """ pass +class FileNodeLockedError(FileException): + """ + This is to be raised if a fileNode (file or folder) is locked + """ + pass + class FileNodeIsPrimaryFile(FileException): pass diff --git a/website/project/metadata/e-rad-metadata-1.json b/website/project/metadata/e-rad-metadata-1.json index d05057a486a..d4d5e79d900 100644 --- a/website/project/metadata/e-rad-metadata-1.json +++ b/website/project/metadata/e-rad-metadata-1.json @@ -227,6 +227,25 @@ "format": "file-metadata", "required": true }, + { + "qid": "grdm-file:file-type", + "nav": "ファイル種別", + "title": "ファイル種別|File Type", + "type": "choose", + "required": true, + "format": "singleselect", + "options": [ + { + "text": "dataset", + "tooltip": "データセット|dataset", + "default": true + }, + { + "text": "manuscript", + "tooltip": "論文|manuscript" + } + ] + }, { "qid": "grdm-file:data-number", "nav": "データ No.", @@ -240,12 +259,97 @@ "key": "file-data-number", "button": "入力|Fill" } + ], + "enabled_if": { + "grdm-file:file-type": "dataset" + } + }, + { + "qid": "grdm-file:doi-exists", + "nav": "論文(出版社版)のDOIの有無", + "title": "論文(出版社版)のDOIの有無|Existence of DOI of the publication (publisher version)", + "type": "choose", + "format": "singleselect", + "options": [ + { + "text": "exists", + "tooltip": "あり|exists" + }, + { + "text": "not exists", + "tooltip": "なし|not exists" + } + ], + "required": true, + "enabled_if": { + "grdm-file:file-type": "manuscript" + } + }, + { + "qid": "grdm-file:doi", + "nav": "論文(出版社版)のDOI", + "title": "論文(出版社版)のDOI|DOI of the publication (publisher version)", + "type": "string", + "format": "text", + "required": false, + "pattern": "^10\\.[0-9]{4,}(/[-._;()/:a-zA-Z0-9]+)*$", + "help": "例: 10.1234/5678|E.g., 10.1234/5678", + "enabled_if": { + "grdm-file:file-type": "manuscript" + }, + "required_if": { + "grdm-file:doi-exists": "exists" + }, + "message_required_if": "論文(出版社版)のDOIの有無が「あり」の場合は必須項目です|This field is required if the existence of DOI of the publication (publisher version) is \"exists\"" + }, + { + "qid": "grdm-file:manuscript-type", + "nav": "論文の種類", + "title": "論文の種類|Type of manuscript", + "type": "choose", + "format": "singleselect", + "enabled_if": { + "grdm-file:file-type": "manuscript" + }, + "options": [ + { + "text": "conference paper", + "tooltip": "会議発表論文|conference paper" + }, + { + "text": "data paper", + "tooltip": "データ論文|data paper" + }, + { + "text": "departmental bulletin paper", + "tooltip": "紀要論文|departmental bulletin paper" + }, + { + "text": "editorial", + "tooltip": "エディトリアル|editorial" + }, + { + "text": "journal article", + "tooltip": "学術雑誌論文|journal article" + }, + { + "text": "review article", + "tooltip": "レビュー論文|review article" + }, + { + "text": "software paper", + "tooltip": "ソフトウェア論文|software paper" + }, + { + "text": "article", + "tooltip": "その他の記事|article" + } ] }, { "qid": "grdm-file:title-ja", - "nav": "データの名称 (日本語)", - "title": "データの名称 (日本語)|Title (Japanese)", + "nav": "データの名称または論文表題 (日本語)", + "title": "データの名称または論文表題 (日本語)|Title (Japanese)", "type": "string", "format": "text", "required": false, @@ -288,6 +392,234 @@ } ] }, + { + "qid": "grdm-file:authors", + "nav": "著者名", + "title": "著者名|Author Name", + "type": "array", + "required": true, + "enabled_if": { + "grdm-file:file-type": "manuscript" + }, + "properties": [ + { + "id": "number", + "title": "e-Rad 研究者番号|e-Rad Researcher Number", + "type": "string", + "format": "text", + "required": false, + "pattern": "^[0-9a-zA-Z]*$", + "help": "e-Rad 研究者番号(半角数字)|e-Rad Researcher Number(single-byte numeric characters)", + "space_normalization": true, + "suggestion": [ + { + "key": "erad:kenkyusha_no", + "template": "
{{kenkyusha_shimei}}{{kenkyusha_no}} - {{kenkyukikan_mei}} - {{kadai_mei}} ({{nendo}})
", + "autofill": { + "number": "kenkyusha_no", + "name-ja": "kenkyusha_shimei_ja", + "name-en": "kenkyusha_shimei_en" + } + }, + { + "key": "contributor:erad", + "template": "
{{name-ja-full}}|{{name-en-full}}{{erad}}
", + "autofill": { + "number": "erad", + "name-ja": "name-ja", + "name-en": "name-en" + } + } + ] + }, + { + "id": "name-ja", + "title": "名前(日本語)|Name (Japanese)", + "type": "object", + "required": false, + "required_if": "name-en", + "properties": [ + { + "id": "last", + "title": "姓|Last Name", + "type": "string", + "format": "text", + "required": false, + "space_normalization": true, + "suggestion": [ + { + "key": "erad:kenkyusha_shimei", + "template": "
{{kenkyusha_shimei}}{{kenkyusha_no}} - {{kenkyukikan_mei}} - {{kadai_mei}} ({{nendo}})
", + "autofill": { + "../number": "kenkyusha_no", + "../name-ja": "kenkyusha_shimei_ja", + "../name-en": "kenkyusha_shimei_en" + } + }, + { + "key": "contributor:name", + "template": "
{{name-ja-full}}|{{name-en-full}}{{erad}}
", + "autofill": { + "../number": "erad", + "../name-ja": "name-ja", + "../name-en": "name-en" + } + } + ] + }, + { + "id": "middle", + "title": "ミドルネーム|Middle Name", + "type": "string", + "format": "text", + "required": false, + "space_normalization": true, + "suggestion": [ + { + "key": "erad:kenkyusha_shimei", + "template": "
{{kenkyusha_shimei}}{{kenkyusha_no}} - {{kenkyukikan_mei}} - {{kadai_mei}} ({{nendo}})
", + "autofill": { + "../number": "kenkyusha_no", + "../name-ja": "kenkyusha_shimei_ja", + "../name-en": "kenkyusha_shimei_en" + } + }, + { + "key": "contributor:name", + "template": "
{{name-ja-full}}|{{name-en-full}}{{erad}}
", + "autofill": { + "../number": "erad", + "../name-ja": "name-ja", + "../name-en": "name-en" + } + } + ] + }, + { + "id": "first", + "title": "名|First Name", + "type": "string", + "format": "text", + "required": false, + "space_normalization": true, + "suggestion": [ + { + "key": "erad:kenkyusha_shimei", + "template": "
{{kenkyusha_shimei}}{{kenkyusha_no}} - {{kenkyukikan_mei}} - {{kadai_mei}} ({{nendo}})
", + "autofill": { + "../number": "kenkyusha_no", + "../name-ja": "kenkyusha_shimei_ja", + "../name-en": "kenkyusha_shimei_en" + } + }, + { + "key": "contributor:name", + "template": "
{{name-ja-full}}|{{name-en-full}}{{erad}}
", + "autofill": { + "../number": "erad", + "../name-ja": "name-ja", + "../name-en": "name-en" + } + } + ] + } + ] + }, + { + "id": "name-en", + "title": "Name (English)", + "type": "object", + "required": false, + "required_if": "name-ja", + "properties": [ + { + "id": "last", + "title": "Last Name", + "type": "string", + "format": "text", + "required": false, + "space_normalization": true, + "suggestion": [ + { + "key": "erad:kenkyusha_shimei", + "template": "
{{kenkyusha_shimei}}{{kenkyusha_no}} - {{kenkyukikan_mei}} - {{kadai_mei}} ({{nendo}})
", + "autofill": { + "../number": "kenkyusha_no", + "../name-ja": "kenkyusha_shimei_ja", + "../name-en": "kenkyusha_shimei_en" + } + }, + { + "key": "contributor:name", + "template": "
{{name-ja-full}}|{{name-en-full}}{{erad}}
", + "autofill": { + "../number": "erad", + "../name-ja": "name-ja", + "../name-en": "name-en" + } + } + ] + }, + { + "id": "middle", + "title": "Middle Name", + "type": "string", + "format": "text", + "required": false, + "space_normalization": true, + "suggestion": [ + { + "key": "erad:kenkyusha_shimei", + "template": "
{{kenkyusha_shimei}}{{kenkyusha_no}} - {{kenkyukikan_mei}} - {{kadai_mei}} ({{nendo}})
", + "autofill": { + "../number": "kenkyusha_no", + "../name-ja": "kenkyusha_shimei_ja", + "../name-en": "kenkyusha_shimei_en" + } + }, + { + "key": "contributor:name", + "template": "
{{name-ja-full}}|{{name-en-full}}{{erad}}
", + "autofill": { + "../number": "erad", + "../name-ja": "name-ja", + "../name-en": "name-en" + } + } + ] + }, + { + "id": "first", + "title": "First Name", + "type": "string", + "format": "text", + "required": false, + "space_normalization": true, + "suggestion": [ + { + "key": "erad:kenkyusha_shimei", + "template": "
{{kenkyusha_shimei}}{{kenkyusha_no}} - {{kenkyukikan_mei}} - {{kadai_mei}} ({{nendo}})
", + "autofill": { + "../number": "kenkyusha_no", + "../name-ja": "kenkyusha_shimei_ja", + "../name-en": "kenkyusha_shimei_en" + } + }, + { + "key": "contributor:name", + "template": "
{{name-ja-full}}|{{name-en-full}}{{erad}}
", + "autofill": { + "../number": "erad", + "../name-ja": "name-ja", + "../name-en": "name-en" + } + } + ] + } + ] + } + ] + }, { "qid": "grdm-file:date-issued-updated", "nav": "掲載日・掲載更新日", @@ -295,7 +627,10 @@ "type": "string", "format": "date", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", - "help": "例: 2010-01-01|E.g., 2010-01-01" + "help": "例: 2010-01-01|E.g., 2010-01-01", + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:data-description-ja", @@ -305,7 +640,10 @@ "format": "textarea", "required": false, "required_if": "grdm-file:data-description-en", - "help": "例: 〇〇実証においてセンサより撮像したデータであり、道路の画像データ, 〇〇のシミュレーションにおいて〇〇の条件のもとで得られたデータ, 〇〇への応用が期待できる、〇〇〇〇のゲノム解析と、その効率的な化合物生産に役立てるための発現プロファイル情報" + "help": "例: 〇〇実証においてセンサより撮像したデータであり、道路の画像データ, 〇〇のシミュレーションにおいて〇〇の条件のもとで得られたデータ, 〇〇への応用が期待できる、〇〇〇〇のゲノム解析と、その効率的な化合物生産に役立てるための発現プロファイル情報", + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:data-description-en", @@ -314,7 +652,10 @@ "type": "string", "format": "textarea", "required": false, - "required_if": "grdm-file:data-description-ja" + "required_if": "grdm-file:data-description-ja", + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:data-research-field", @@ -322,6 +663,9 @@ "title": "データの分野|Research field", "type": "choose", "format": "singleselect", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "options": [ { "text": "project", @@ -381,6 +725,9 @@ "title": "データ種別|Data type", "type": "choose", "format": "singleselect", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "options": [ { "text": "dataset", @@ -456,7 +803,10 @@ "key": "file-size", "button": "計算|Calculate" } - ] + ], + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:data-policy-free", @@ -474,7 +824,10 @@ "tooltip": "有償|consideration" } ], - "required": true + "required": true, + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:data-policy-license", @@ -483,6 +836,9 @@ "required": true, "type": "choose", "format": "singleselect", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "options": [ { "text": "group:None:1", @@ -609,7 +965,10 @@ "type": "string", "format": "textarea", "required": false, - "required_if": "grdm-file:data-policy-cite-en" + "required_if": "grdm-file:data-policy-cite-en", + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:data-policy-cite-en", @@ -618,7 +977,10 @@ "type": "string", "format": "textarea", "required": false, - "required_if": "grdm-file:data-policy-cite-ja" + "required_if": "grdm-file:data-policy-cite-ja", + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:access-rights", @@ -644,7 +1006,10 @@ "tooltip": "公開期間猶予|embargoed access" } ], - "required": true + "required": true, + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:available-date", @@ -658,7 +1023,10 @@ "required_if": { "grdm-file:access-rights": "embargoed access" }, - "message_required_if": "公開期間猶予の場合は必須項目です|This field is required for embargoed access" + "message_required_if": "公開期間猶予の場合は必須項目です|This field is required for embargoed access", + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:repo-information-ja", @@ -666,7 +1034,10 @@ "title": "リポジトリ情報 (日本語)|Repository information (Japanese)", "type": "string", "format": "text", - "required": false + "required": false, + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:repo-information-en", @@ -674,7 +1045,135 @@ "title": "Repository information (English)", "type": "string", "format": "text", - "required": false + "required": false, + "enabled_if": { + "grdm-file:file-type": "dataset" + } + }, + { + "qid": "grdm-file:journal-name-ja", + "nav": "掲載誌名 (日本語)", + "title": "掲載誌名 (日本語)|Journal Name (Japanese)", + "type": "string", + "format": "text", + "required": false, + "enabled_if": { + "grdm-file:file-type": "manuscript" + }, + "required_if": { + "$and": [ + { + "grdm-file:doi-exists": "not exists" + }, + { + "grdm-file:journal-name-en": "" + } + ] + }, + "message_required_if": "論文(出版社版)のDOIの有無が「なし」の場合は日英どちらか必須です|Either Japanese or English is required if the existence of DOI of the publication (publisher version) is \"not exists\"" + }, + { + "qid": "grdm-file:journal-name-en", + "nav": "Journal Name (English)", + "title": "Journal Name (English)", + "type": "string", + "format": "text", + "required": false, + "enabled_if": { + "grdm-file:file-type": "manuscript" + }, + "required_if": { + "$and": [ + { + "grdm-file:doi-exists": "not exists" + }, + { + "grdm-file:journal-name-ja": "" + } + ] + }, + "message_required_if": "論文(出版社版)のDOIの有無が「なし」の場合は日英どちらか必須です|Either Japanese or English is required if the existence of DOI of the publication (publisher version) is \"not exists\"" + }, + { + "qid": "grdm-file:date-published", + "nav": "発行年月", + "title": "発行年月|Date (Published)", + "type": "string", + "format": "text", + "pattern": "^[0-9]{4}-[0-9]{2}$", + "help": "例: 2010-01|E.g., 2010-01", + "enabled_if": { + "grdm-file:file-type": "manuscript" + }, + "required_if": { + "grdm-file:doi-exists": "not exists" + }, + "message_required_if": "論文(出版社版)のDOIの有無が「なし」の場合は必須項目です|This field is required if the existence of DOI of the publication (publisher version) is \"not exists\"" + }, + { + "qid": "grdm-file:volume", + "nav": "巻", + "title": "巻|Volume", + "type": "string", + "format": "text", + "required": false, + "enabled_if": { + "grdm-file:file-type": "manuscript" + } + }, + { + "qid": "grdm-file:issue", + "nav": "号", + "title": "号|Issue", + "type": "string", + "format": "text", + "required": false, + "enabled_if": { + "grdm-file:file-type": "manuscript" + } + }, + { + "qid": "grdm-file:page-start", + "nav": "掲載ページ (開始)", + "title": "掲載ページ (開始)|Page Start", + "type": "string", + "format": "text", + "required": false, + "enabled_if": { + "grdm-file:file-type": "manuscript" + } + }, + { + "qid": "grdm-file:page-end", + "nav": "掲載ページ (終了)", + "title": "掲載ページ (終了)|Page End", + "type": "string", + "format": "text", + "required": false, + "enabled_if": { + "grdm-file:file-type": "manuscript" + } + }, + { + "qid": "grdm-file:reviewed", + "nav": "査読の有無", + "title": "査読の有無|Peer reviewed", + "type": "choose", + "format": "singleselect", + "options": [ + { + "text": "yes", + "tooltip": "あり|yes" + }, + { + "text": "no", + "tooltip": "なし|no" + } + ], + "required": true, + "enabled_if": { + "grdm-file:file-type": "manuscript" + } }, { "qid": "grdm-file:repo-url-doi-link", @@ -683,14 +1182,44 @@ "type": "string", "format": "text", "required": false, - "pattern": "[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$", + "pattern": "^[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$", "help": "例: https://example.com/example|E.g., https://example.com/example", "suggestion": [ { "key": "file-url", "button": "入力|Fill" } - ] + ], + "enabled_if": { + "grdm-file:file-type": "dataset" + } + }, + + { + "qid": "grdm-file:publication-link", + "nav": "学術論文を掲載した「機関リポジトリ等の情報基盤」のDOI", + "title": "学術論文を掲載した「機関リポジトリ等の情報基盤」のDOI|DOI of the institutional repository or other information infrastructure where the academic paper is published", + "pattern": "^10\\.[0-9]{4,}(/[-._;()/:a-zA-Z0-9]+)*$", + "help": "例: 10.1234/5678|E.g., 10.1234/5678", + "type": "string", + "format": "text", + "required": false, + "enabled_if": { + "grdm-file:file-type": "dataset" + } + }, + { + "qid": "grdm-file:dataset-link", + "nav": "根拠データを掲載した「機関リポジトリ等の情報基盤」のDOI", + "title": "根拠データを掲載した「機関リポジトリ等の情報基盤」のDOI|DOI of the institutional repository or other information infrastructure where the supplemental data is published", + "pattern": "^10\\.[0-9]{4,}(/[-._;()/:a-zA-Z0-9]+)*$", + "help": "例: 10.1234/5678|E.g., 10.1234/5678", + "type": "string", + "format": "text", + "required": false, + "enabled_if": { + "grdm-file:file-type": "manuscript" + } }, { "qid": "grdm-file:creators", @@ -699,6 +1228,9 @@ "type": "array", "required": false, "help": "e-Rad 研究者番号(半角数字)|e-Rad Researcher Number(single-byte numeric characters)", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "properties": [ { "id": "number", @@ -707,6 +1239,7 @@ "format": "text", "required": false, "pattern": "^[0-9a-zA-Z]*$", + "help": "e-Rad 研究者番号(半角数字)|e-Rad Researcher Number(single-byte numeric characters)", "space_normalization": true, "suggestion": [ { @@ -796,6 +1329,9 @@ "required": false, "required_if": "grdm-file:hosting-inst-en", "space_normalization": true, + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "suggestion": [ { "key": "ror", @@ -817,6 +1353,9 @@ "required": false, "required_if": "grdm-file:hosting-inst-ja", "space_normalization": true, + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "suggestion": [ { "key": "ror", @@ -836,7 +1375,10 @@ "type": "string", "format": "text", "required": false, - "space_normalization": true + "space_normalization": true, + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:data-man-type", @@ -855,7 +1397,10 @@ "tooltip": "組織|organization" } ], - "required": true + "required": true, + "enabled_if": { + "grdm-file:file-type": "dataset" + } }, { "qid": "grdm-file:data-man-number", @@ -867,7 +1412,14 @@ "pattern": "^[a-zA-Z0-9]+$", "help": "e-Rad 研究者番号(半角数字)|e-Rad Researcher Number(single-byte numeric characters)", "enabled_if": { - "grdm-file:data-man-type": "individual" + "$and": [ + { + "grdm-file:data-man-type": "individual" + }, + { + "grdm-file:file-type": "dataset" + } + ] }, "suggestion": [ { @@ -901,7 +1453,14 @@ "required": false, "required_if": "grdm-file:data-man-name-en", "enabled_if": { - "grdm-file:data-man-type": "individual" + "$and": [ + { + "grdm-file:data-man-type": "individual" + }, + { + "grdm-file:file-type": "dataset" + } + ] }, "suggestion": [ { @@ -935,7 +1494,14 @@ "required": false, "required_if": "grdm-file:data-man-name-ja", "enabled_if": { - "grdm-file:data-man-type": "individual" + "$and": [ + { + "grdm-file:data-man-type": "individual" + }, + { + "grdm-file:file-type": "dataset" + } + ] }, "suggestion": [ { @@ -977,6 +1543,9 @@ } ] }, + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "message_required_if": "「データ管理者の所属機関の連絡先メールアドレス」を入力する必要があります。もしくは、「データ管理者の所属組織名」(日英どちらか)および「データ管理者の所属機関の連絡先住所」(日英どちらか)、「データ管理者の所属機関の連絡先電話番号」を入力する必要があります。|\"Contact mail address of data manager\" must be filled. Or \"Contact organization of data manager\" (either Japanese or English), \"Contact address of data manager\" (either Japanese or English) and \"Contact phone number of data manager\" must be filled.", "space_normalization": true, "help": "例: 〇〇研究所〇〇部門〇〇課, 〇〇大学〇〇研究室", @@ -1000,6 +1569,9 @@ "title": "Contact organization of data manager (English)", "type": "string", "format": "text", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "required": false, "required_if": { "$and": [ @@ -1033,6 +1605,9 @@ "title": "データ管理者の所属機関の連絡先住所 (日本語)|Contact address of data manager (Japanese)", "type": "string", "format": "text", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "required": false, "required_if": { "$and": [ @@ -1053,6 +1628,9 @@ "title": "Contact address of data manager (English)", "type": "string", "format": "text", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "required": false, "required_if": { "$and": [ @@ -1073,6 +1651,9 @@ "title": "データ管理者の所属機関の連絡先電話番号|Contact phone number of data manager", "type": "string", "format": "text", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "required": false, "required_if": { "grdm-file:data-man-email": {"$exists": false} @@ -1086,6 +1667,9 @@ "title": "データ管理者の所属機関の連絡先メールアドレス|Contact mail address of data manager", "type": "string", "format": "text", + "enabled_if": { + "grdm-file:file-type": "dataset" + }, "required": false, "required_if": { "$or": [ @@ -1153,9 +1737,12 @@ "tooltip": "非共有・非公開|closed access" } ], - "required": true + "required": true, + "enabled_if": { + "grdm-file:file-type": "dataset" + } } ] } ] -} +} \ No newline at end of file diff --git a/website/project/metadata/ms2-mibyodb-metadata.json b/website/project/metadata/ms2-mibyodb-metadata.json index f711a227a6a..d0edc60e44b 100644 --- a/website/project/metadata/ms2-mibyodb-metadata.json +++ b/website/project/metadata/ms2-mibyodb-metadata.json @@ -1,13 +1,12 @@ { "name": "ムーンショット目標2未病データベース-メタデータ", - "version": 1, - "description": "本登録画面は、ムーンショット型研究開発事業 目標2(MS2)の関係者のみが利用可能です。ムーンショット目標2データベース(未病DB)ではデータセット全体に対するメタデータを「プロジェクトメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」としています。本登録画面では未病DBのプロジェクトメタデータを入力することができます。|This registration screen can only be used by those involved in the Moonshot Research and Development Project Goal 2 (MS2). In the Moonshot Goal 2 database (Mibyo DB), the metadata for the entire dataset is called 「project metadata」, and the metadata for individual files and folders is called 「file metadata」. On this registration screen, you can enter project metadata for the Mibyo DB.", + "version": 2, + "description": "本登録画面ではムーンショット目標2データベース(未病DB)の【プロジェクトメタデータ】を登録することができます。実験に関する情報やファイル形式毎にデータの概要情報を記載できます。\n\nなお、未病DBではデータセット全体の管理情報に対するメタデータを「プロジェクトメタデータ」、実験やデータの詳細に対するメタデータを「データセットメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」、その他追加のメタデータファイルを「拡張メタデータ」としています。各メタデータについて詳しくは未病DBガイドラインを参照ください。\nhttps://rdm.nii.ac.jp/3sw6v/|This registration screen can only be used by those involved in the Moonshot Research and Development Project Goal 2 (MS2). In the Moonshot Goal 2 database (Mebyo DB), the metadata for the entire dataset is called 「project metadata」, and the metadata for individual files and folders is called 「file metadata」. On this registration screen, you can enter project metadata for the Mebyo DB.\nhttps://rdm.nii.ac.jp/3sw6v/", "pages": [ { "id": "page1", - "level": "レベル1|Level1", - "title": "メタデータ登録|Metadata Registration", - "description": "本登録画面は、ムーンショット型研究開発事業 目標2(MS2)の関係者のみが利用可能です。ムーンショット目標2データベース(未病DB)ではデータセット全体に対するメタデータを「プロジェクトメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」としています。本登録画面では未病DBのプロジェクトメタデータを入力することができます。|This registration screen can only be used by those involved in the Moonshot Research and Development Project Goal 2 (MS2). In the Moonshot Goal 2 database (Mibyo DB), the metadata for the entire dataset is called 「project metadata」, and the metadata for individual files and folders is called 「file metadata」. On this registration screen, you can enter project metadata for the Mibyo DB.", + "title": "プロジェクトメタデータ登録|Poject Metadata Registration", + "description": "本登録画面ではムーンショット目標2データベース(未病DB)の【プロジェクトメタデータ】を登録することができます。実験に関する情報やファイル形式毎にデータの概要情報を記載できます。\n\nなお、未病DBではデータセット全体の管理情報に対するメタデータを「プロジェクトメタデータ」、実験やデータの詳細に対するメタデータを「データセットメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」、その他追加のメタデータファイルを「拡張メタデータ」としています。各メタデータについて詳しくは未病DBガイドラインを参照ください。\nhttps://rdm.nii.ac.jp/3sw6v/|This registration screen can only be used by those involved in the Moonshot Research and Development Project Goal 2 (MS2). In the Moonshot Goal 2 database (Mebyo DB), the metadata for the entire dataset is called 「project metadata」, and the metadata for individual files and folders is called 「file metadata」. On this registration screen, you can enter project metadata for the Mebyo DB.\nhttps://rdm.nii.ac.jp/3sw6v/", "questions": [ { "qid": "title-of-dataset", @@ -18,7 +17,7 @@ "required": true, "space_normalization": true, "help": "(※)記入上の注意\nGakuNin RDM上の〇〇PJ共有領域内に作成したコンポーネントの名称に合わせて記入して下さい。|(*) Notes for Filling Out\nPlease fill in according to the names of the components created within the 〇〇PJ shared area on GakuNin RDM.", - "auto_title": true + "retrieval_title": "dual_retrieval" }, { "qid": "title-of-dataset-en", @@ -29,14 +28,14 @@ "required": false, "space_normalization": true, "help": "(*) Notes for Filling Out\nPlease fill in according to the names of the components created within the 〇〇PJ shared area on GakuNin RDM.", - "auto_title": true + "retrieval_title": "button_retrieval" }, { "qid": "project-name", - "nav": "プロジェクト名", - "title": "プロジェクト名|Project name", + "nav": "MSプロジェクト名", + "title": "MSプロジェクト名|MS Project name", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "required": true, "options": [ { @@ -77,7 +76,7 @@ "required": true, "pattern": "^[0-9]{4}[-/][0-9]{1,2}[-/][0-9]{1,2}$", "help": "e.g. 2021/8/1|e.g. 2021/8/1", - "auto_date": true + "retrieval_date": "auto_retrieval" }, { "qid": "date-updated-in-metadata", @@ -88,7 +87,7 @@ "required": true, "pattern": "^[0-9]{4}[-/][0-9]{1,2}[-/][0-9]{1,2}$", "help": "e.g. 2022/6/20|e.g. 2022/6/20", - "auto_date": true + "retrieval_date": "dual_retrieval" }, { "qid": "purpose-of-experiment", @@ -161,7 +160,7 @@ "nav": "データセットの分野", "title": "データセットの分野|Dataset Research field", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "自然科学一般|Natural Science", @@ -220,36 +219,34 @@ "required": true, "options": [ { - "text": "配列データ|Sequence data", - "tooltip": "配列データ|Sequence data" + "text": "配列データ|Sequence data" }, { - "text": "エピゲノムデータ|Epigenome data", - "tooltip": "エピゲノムデータ|Epigenome data" + "text": "エピゲノムデータ|Epigenome data" }, { - "text": "トランスクリプトームデータ|Transcriptome data", - "tooltip": "トランスクリプトームデータ|Transcriptome data" + "text": "トランスクリプトームデータ|Transcriptome data" }, { - "text": "プロテオームデータ|Proteome data", - "tooltip": "プロテオームデータ|Proteome data" + "text": "プロテオームデータ|Proteome data" }, { - "text": "リン酸化プロテオームデータ|Phosphoproteome data", - "tooltip": "リン酸化プロテオームデータ|Phosphoproteome data" + "text": "リン酸化プロテオームデータ|Phosphoproteome data" }, { - "text": "メタボロームデータ|Metabolome data", - "tooltip": "メタボロームデータ|Metabolome data" + "text": "メタボロームデータ|Metabolome data" }, { - "text": "イメージデータ|Imaging data", - "tooltip": "イメージデータ|Imaging data" + "text": "イメージデータ|Imaging data" }, { - "text": "その他の生物学的解析データ|Other biological analysis data", - "tooltip": "その他の生物学的解析データ|Other biological analysis data" + "text": "時系列データ|Time series data" + }, + { + "text": "経時的データ|Over time data" + }, + { + "text": "その他|Other" } ] }, @@ -260,14 +257,15 @@ "type": "string", "format": "textarea", "space_normalization": true, - "required": false + "required": false, + "help": "解析対象データ「その他」を選んだ場合は、代表的なデータの種別をご記入ください。 |If you select \"Other\" as the data to be Analysis type, please enter the typical type of data." }, { "qid": "the-presence-of-metadata-files-created-for-a-specific-modality-in-other-databases", "nav": "データの説明", "title": "他のデータベースで特定のモダリティ用に作成したメタデータファイルの有無|The presence of metadata files created for a specific modality in other databases", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "有|Yes", @@ -301,7 +299,7 @@ "nav": "データの提供・公開(解析結果・解析ツールの提供・公開)", "title": "連絡・許諾の要不要|Necessity of Contact and Permission", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "連絡不要|No contact required", @@ -324,7 +322,7 @@ "nav": "データの提供・公開(解析結果・解析ツールの提供・公開)", "title": "謝辞に記載の要不要|Necessity of including in Acknowledgments", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "要|Necessary", @@ -336,7 +334,7 @@ } ], "required": true, - "help": "管理対象データ(解析結果・解析ツールなど含む)の利活用・提供方針について記入。 |Data utilization and provision policy (Utilization and provision policy of Analytical results or Analytical tools)" + "help": "管理対象データ(解析結果・解析ツールなど含む)を利用した成果を発表する際の謝辞への記載方針について記入。 |Data utilization and provision policy (Utilization and provision policy of Analytical results or Analytical tools)" }, { "qid": "names-to-be-included-in-the-acknowledgments", @@ -345,7 +343,7 @@ "type": "string", "format": "text", "required": true, - "help": "利用者が論文等で成果を公表する際に、提供者を謝辞に明示する場合の書き方を記載\n\ne.g. 東大太郎, ○○大学△△グループ|Describe how to explicitly acknowledge the provider in the acknowledgments when the user publishes results in papers or similar publications\n\ne.g. Daitaro Tokyo, ○○ University △△ Group" + "help": "利用者が論文等で成果を公表する際に、提供者を謝辞に明示する場合の書き方を記載\n\ne.g. 未病太郎, ○○大学△△グループ|Describe how to explicitly acknowledge the provider in the acknowledgments when the user publishes results in papers or similar publications\n\ne.g. Daitaro Tokyo, ○○ University △△ Group" }, { "qid": "names-to-be-included-in-the-acknowledgments-en", @@ -353,7 +351,7 @@ "title": "Names to be included in the Acknowledgments (individuals, groups, etc.), or the full text of the Acknowledgments (English)", "type": "string", "format": "text", - "required": false, + "required": true, "help": "Describe how to explicitly acknowledge the provider in the acknowledgments when the user publishes results in papers or similar publications\n\ne.g. Daitaro Tokyo, ○○ University △△ Group" }, { @@ -362,7 +360,7 @@ "title": "その他条件、あるいは、特記事項(日本語)|Other Conditions or Special Notes (Japanese)", "type": "string", "format": "text", - "required": true, + "required": false, "help": "e.g. 倫理審査委員会の審査承認が必要, クレジット表記を条件とする, 利用前に協議が必要|e.g. Ethical review committee approval necessary, Credit Attribution required, Contact required before Publication" }, { @@ -380,7 +378,7 @@ "title": "ライセンス|License", "required": true, "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "該当なし(解析ツールではない)|N/A (NOT analytical tools)", @@ -485,7 +483,7 @@ "nav": "データの提供・公開(解析結果・解析ツールの提供・公開)", "title": "有償・無償 |Pay or Free ", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "有償|Pay", @@ -503,7 +501,7 @@ "nav": "データの提供・公開(解析結果・解析ツールの提供・公開)", "title": "商用利用の可否 |Availability of commercial use ", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "可|Yes", @@ -521,7 +519,7 @@ "nav": "データの提供・公開", "title": "アクセス権|Access rights", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "公開|open access", @@ -557,7 +555,7 @@ "nav": "リポジトリ", "title": "リポジトリ情報 |Repository information ", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "GakuNin RDM", @@ -643,7 +641,7 @@ "format": "text", "required": true, "space_normalization": true, - "help": "e.g. 東大太郎|e.g. Taro Todai" + "help": "e.g. 未病太郎|e.g. Mebyo Taro" }, { "qid": "name-of-data-creator-en", @@ -653,7 +651,7 @@ "format": "text", "required": false, "space_normalization": true, - "help": "e.g. Taro Todai" + "help": "e.g. Mebyo Taro" }, { "qid": "belonging-of-data-creator", @@ -663,7 +661,7 @@ "format": "text", "required": true, "space_normalization": true, - "help": "e.g. 東京大学|e.g. The University of Tokyo" + "help": "e.g. 未病大学|e.g. Mebyo University" }, { "qid": "belonging-of-data-creator-en", @@ -673,7 +671,7 @@ "format": "text", "required": false, "space_normalization": true, - "help": "e.g. The University of Tokyo" + "help": "e.g. Mebyo University" }, { "qid": "contact-of-data-creator", @@ -693,7 +691,7 @@ "format": "text", "required": true, "space_normalization": true, - "help": "e.g. 東大太郎|e.g. Taro Todai" + "help": "e.g. 未病太郎|e.g. Mebyo Taro" }, { "qid": "name-of-data-manager-en", @@ -703,7 +701,7 @@ "format": "text", "required": false, "space_normalization": true, - "help": "e.g. Taro Todai" + "help": "e.g. Mebyo Taro" }, { "qid": "belonging-of-data-manager", @@ -713,7 +711,7 @@ "format": "text", "required": true, "space_normalization": true, - "help": "e.g. 東京大学|e.g. The University of Tokyo" + "help": "e.g. 未病大学|e.g. Mebyo University" }, { "qid": "belonging-of-data-manager-en", @@ -723,7 +721,7 @@ "format": "text", "required": false, "space_normalization": true, - "help": "e.g. The University of Tokyo" + "help": "e.g. Mebyo University" }, { "qid": "contact-of-data-manager", @@ -778,7 +776,7 @@ "nav": "インフォームドコンセント", "title": "(ヒト)インフォームドコンセント(IC) 有・無・不要 |(Human) Informed Consent (IC) Yes, No, or Unnecessary", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "有|Yes", @@ -800,7 +798,7 @@ "nav": "インフォームドコンセント", "title": "(IC有の場合)第三者提供の同意 |(IC is Yes) Consent for provision to a third party", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "有|Yes", @@ -821,7 +819,7 @@ "nav": "インフォームドコンセント", "title": "(IC有の場合)海外提供 |(IC is Yes) Overseas Offerings", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "有|Yes", @@ -842,7 +840,7 @@ "nav": "インフォームドコンセント", "title": "(IC有の場合)産業利用等 |(IC is Yes) Industrial use, etc.", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "有|Yes", @@ -863,7 +861,7 @@ "nav": "インフォームドコンセント", "title": "(IC無の場合) |(IC is No)", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "オプトアウト手続き|Opt-out procedure", @@ -884,7 +882,7 @@ "nav": "匿名加工の有無", "title": "(ヒト)匿名加工の有無|(Human) Anonymous processing Yes or No ", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "有|Yes", @@ -902,7 +900,7 @@ "nav": "利益相反の有無", "title": "利益相反の有無|Conflict of interest Yes or No ", "type": "choose", - "format": "pulldown", + "format": "singleselect-pulldown", "options": [ { "text": "有|Yes", @@ -960,255 +958,1349 @@ }, { "id": "page2", - "title": "ファイルメタデータ|file metadata", - "description": "本登録画面は、ムーンショット型研究開発事業 目標2(MS2)の関係者のみが利用可能です。本登録画面では未病DBのファイルメタデータを入力することができます。ここでは、既にプロジェクトポータルなどでファイルメタデータを付与済みのファイルのみが表示されます。|This registration screen is available only to those involved in the Moonshot Research and Development Project Goal 2 (MS2).On this registration screen, you can enter file metadata for the Meibyo DB.Only files that have already been given file metadata on the project portal etc. will be displayed here.", + "title": "データセットメタデータ登録|dataset metadata", + "description": "本登録画面ではムーンショット目標2データベース(未病DB)の【データセットメタデータ】を登録することができます。実験に関する情報やファイル形式毎にデータの概要情報を記載できます。\n\nなお、未病DBではデータセット全体の管理情報に対するメタデータを「プロジェクトメタデータ」、実験やデータの詳細に対するメタデータを「データセットメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」、その他追加のメタデータファイルを「拡張メタデータ」としています。各メタデータについて詳しくは未病DBガイドラインを参照ください。\nhttps://rdm.nii.ac.jp/3sw6v/", "questions": [ { - "qid": "grdm-files", - "nav": "登録データ一覧", - "title": "登録データ一覧|Registered Data List", + "qid": "d-msr-object-of-measurement-jp", + "nav": "測定対象", + "title": "測定対象(日本語)|Object of measurement (Japanese)", "type": "string", - "format": "file-metadata", - "required": true, - "space_normalization": true + "format": "text" }, { - "qid": "grdm-file:Label-explanation", - "nav": "説明文", - "title": "ムーンショット目標2データベース(未病DB)ではデータセット全体に対するメタデータを「プロジェクトメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」としています。|In the Moonshot Research and Development Project Goal 2 (Mibyo DB), the metadata for the entire dataset is called \"project metadata\", and the metadata for individual files and folders is called \"file metadata\".", - "type": "object", - "properties": [ - ], - "required": false - } - ] - }, - { - "id": "page3", - "title": "フォルダ構成|Folder structure", - "hide_projectmetadata": true, - "questions": [ + "qid": "d-msr-object-of-measurement-en", + "nav": "測定対象", + "title": "Object of measurement (English)", + "type": "string", + "format": "text" + }, { - "qid": "grdm-file:Label-folder", - "nav": "フォルダ構成", - "title": "■フォルダ構成 ────────────────────────────────────────|■Folder structure ────────────────────────────────────────", - "type": "object", - "properties": [ - ], - "required": false, - "hide": true + "qid": "d-msr-target-organs-for-measurement", + "nav": "関連する器官名など", + "title": "関連する器官名など|Target organs for measurement", + "type": "string", + "format": "text" }, { - "qid": "grdm-file:d-fol-Structure-or-descriptions-of-folders", - "nav": "フォルダ構成や各フォルダの説明", - "title": "フォルダ構成や各フォルダの説明|Structure or descriptions of folders ", - "type": "array", - "properties": [ - { - "id": "folder-name", - "title": "フォルダ名(命名規則など)|Folder name (Naming conventions, etc.)", - "type": "string", - "format": "textarea" - }, - { - "id": "description-of-folder", - "title": "フォルダの概要説明(格納されているファイルなど)(日本語)|Description of folder (Contained folders and files) (Japanese)", - "type": "string", - "format": "textarea" - }, - { - "id": "description-of-folder-en", - "title": "Description of folder (Contained folders and files) (English)", - "type": "string", - "format": "textarea" - }, - { - "id": "contents", - "title": "コンテンツ(代表的な拡張子)|Contents (typical file extensions.)", - "type": "string", - "format": "textarea" - } - ] + "qid": "d-msr-data-type-jp", + "nav": "データの種類", + "title": "データの種類(日本語)|Data type (Japanese)", + "type": "string", + "help": "(e.g. scRNA-seqデータ, 顕微鏡画像およびその定量データ)|(e.g. scRNA-seq data, microscopic images and their quantitative data)", + "format": "text" }, { - "qid": "grdm-file:d-fol-remarks-jp", - "nav": "備考", - "title": "備考(日本語)|Remarks (Japanese)", + "qid": "d-msr-data-type-en", + "nav": "データの種類", + "title": "Data type (English)", "type": "string", - "format": "textarea", - "space_normalization": true + "help": "(e.g. scRNA-seq data, microscopic images and their quantitative data)", + "format": "text" }, { - "qid": "grdm-file:d-fol-remarks-en", - "nav": "備考", - "title": "Remarks (English)", + "qid": "d-msr-classification-of-measuring-devices-jp", + "nav": "測定装置の分類", + "title": "測定装置の分類(日本語)|Classification of measuring devices (Japanese)", "type": "string", - "format": "textarea", - "space_normalization": true - } - ] - }, - { - "id": "page4", - "title": "テキストファイル|■TextFile", - "hide_projectmetadata": true, - "questions": [ + "help": "(e.g. fMRI、顕微鏡、CT、RNA-seq分析器、次世代シーケンサー、マイクロアレイリーダー、その他)|(e.g. fMRI, microscopy, CT, RNA-seq analyzers, next generation sequencers, microarray readers, etc.)", + "format": "text" + }, { - "qid": "grdm-file:Label-text", - "nav": "テキストファイル", - "title": "■テキストファイル ────────────────────────────────────────|■TextFile ────────────────────────────────────────", - "type": "object", - "properties": [ - ], - "required": false, - "hide": true + "qid": "d-msr-classification-of-measuring-devices-en", + "nav": "測定装置の分類", + "title": "Classification of measuring devices (English)", + "type": "string", + "help": "(e.g. fMRI, microscopy, CT, RNA-seq analyzers, next generation sequencers, microarray readers, etc.)", + "format": "text" }, { - "qid": "grdm-file:d-txt-file-name-convention-file-extension", - "nav": "ファイル名、または命名規則・拡張子", + "qid": "d-msr-measuring-device-name", + "nav": "計測装置名", + "title": "計測装置名|Measuring device name", "type": "array", "properties": [ { - "id": "file-name-convention-file-extension", - "title": "ファイル名、または命名規則・拡張子(e.g. csv, tsv, txt)など|File name, naming convention, file extension (e.g. csv, tsv, txt), etc.", + "id": "Measuring-device-name", + "title": "計測装置名(日本語)|Measuring device name (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "Measuring-device-name-en", + "title": "Measuring device name (English)", "type": "string", "format": "text" } ] }, { - "qid": "grdm-file:d-txt-description-jp", - "nav": "説明", - "title": "説明(日本語)|Description (Japanese)", - "type": "string", - "format": "text" - }, - { - "qid": "grdm-file:d-txt-description-en", - "nav": "説明", - "title": "Description (English)", - "type": "string", - "format": "text" - }, - { - "qid": "grdm-file:d-txt-description-of-row", - "nav": "行の説明", - "title": "行の説明|Description of row", + "qid": "d-msr-procedure", + "nav": "手順", + "title": "手順|Procedure", "type": "array", - "help": "(※)記入上の注意・記入例を参考に、各行の説明を自由に記載。・命名規則などを用いて簡略な記載も可能・適宜、行の追加も可能。|(*) Notes for entry・Refer to the example and describe each line freely.・Simplified descriptions are possible using naming conventions, etc.・Additional lines can be added as needed.", "properties": [ { - "id": "Position-of-row", - "title": "行、列の位置(日本語)|Position of row and column (Japanese)", + "id": "Procedure", + "title": "手順 (論文を書く際に必要な最小限の内容)(日本語)|Procedure (Minimum content required for writing a paper) (Japanese)", "type": "string", "format": "textarea" }, { - "id": "Name-of-term", - "title": "項目名(日本語)|Name of term (Japanese)", + "id": "Procedure-en", + "title": "Procedure (Minimum content required for writing a paper) (English)", "type": "string", "format": "textarea" - }, + } + ] + }, + { + "qid": "d-msr-user-defined-metadata-items", + "nav": "その他測定条件・手順に関するメタデータ項目", + "title": "その他測定条件・手順に関するメタデータ項目|User-defined metadata for measurement and conditions and procedures", + "type": "array", + "properties": [ { - "id": "Description-of-term", - "title": "項目の説明(日本語)|Description of term (Japanese)", + "id": "Metadata-item-name", + "title": "メタデータ項目名(日本語)|Metadata item name (Japanese)", "type": "string", "format": "textarea" }, { - "id": "Position-of-row-en", - "title": "Position of row and column (English)", + "id": "value-or-content", + "title": "値または内容(日本語)|value or content (Japanese)", "type": "string", "format": "textarea" }, { - "id": "Name-of-term-en", - "title": "Name of term (English)", + "id": "Metadata-item-name-en", + "title": "Metadata item name (English)", "type": "string", "format": "textarea" }, { - "id": "Description-of-term-en", - "title": "Description of term (English)", + "id": "value-or-content-en", + "title": "value or content (English)", "type": "string", "format": "textarea" } ] }, { - "qid": "grdm-file:d-txt-description-of-column", - "nav": "列の説明", - "title": "列の説明|Description of column", + "qid": "d-msr-remarks-jp", + "nav": "備考", + "title": "備考(日本語)|Remarks (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "qid": "d-msr-remarks-en", + "nav": "備考", + "title": "Remarks (English)", + "type": "string", + "format": "textarea" + }, + { + "qid": "d-fol-Structure-or-descriptions-of-folders-jp", + "nav": "データ格納フォルダの説明", + "title": "データ格納フォルダの説明|Description of data storage folder", "type": "array", - "help": "(※)記入上の注意・記入例を参考に、各列の説明を自由に記載。・命名規則などを用いて簡略な記載も可能。・適宜、行の追加も可能。|(*) Notes for entry・The description of each column can be freely described by referring to the example.・A simple description using naming conventions, etc. is also possible.・Rows can be added as needed.", "properties": [ { - "id": "Position-of-row", - "title": "行、列の位置(日本語)|Position of row and column (Japanese)", - "type": "string", - "format": "textarea" - }, - { - "id": "Name-of-term", - "title": "項目名(日本語)|Name of term (Japanese)", - "type": "string", - "format": "textarea" - }, - { - "id": "Description-of-term", - "title": "項目の説明(日本語)|Description of term (Japanese)", + "id": "folder-name", + "title": "フォルダ名(命名規則など)|Folder name (Naming conventions, etc.)", "type": "string", "format": "textarea" }, { - "id": "Position-of-row-en", - "title": "Position of row and column (English)", + "id": "description-of-folder", + "title": "フォルダの概要説明(格納されているファイルなど)(日本語)|Description of folder (Contained folders and files) (Japanese)", "type": "string", "format": "textarea" }, { - "id": "Name-of-term-en", - "title": "Name of term (English)", + "id": "description-of-folder-en", + "title": "Description of folder (Contained folders and files) (English)", "type": "string", "format": "textarea" }, { - "id": "Description-of-term-en", - "title": "Description of term (English)", + "id": "contents", + "title": "コンテンツ(代表的な拡張子)|Contents (typical file extensions.)", "type": "string", "format": "textarea" } ] }, { - "qid": "grdm-file:d-txt-data-preprocessing-jp", - "nav": "データ前処理", - "title": "データ前処理(日本語)|Data preprocessing (Japanese)", + "qid": "d-d-fol-remarks-jp", + "nav": "備考", + "title": "備考(日本語)|Remarks (Japanese)", "type": "string", - "format": "text" + "format": "textarea", + "space_normalization": true }, { - "qid": "grdm-file:d-txt-data-preprocessing-en", - "nav": "データ前処理", - "title": "Data preprocessing (English)", + "qid": "d-d-fol-remarks-en", + "nav": "備考", + "title": "Remarks (English)", "type": "string", - "format": "text" + "format": "textarea", + "space_normalization": true }, { - "qid": "grdm-file:d-txt-temporal-measurement-data", - "nav": "経時的に測定したデータ ", - "title": "経時的に測定したデータ |Temporal measurement data", - "type": "choose", - "format": "singleselect", - "help": "(Yes/No)", - "options": [ + "qid": "d-txt-group", + "nav": "テキストファイル", + "title": "テキストファイル|TextFile", + "help": "以下の項目はデータセットに含まれるテキスト(e.g. csv, tsv, txt)形式のファイル概要を記載できます。ここでは同形式のファイル全体に対する概要情報を記載し、個別のファイルに関してはファイルメタデータをご活用ください。同形式で複数種類のファイル(心拍と体温の時系列など)がある場合は、欄下部にある追加ボタンから入力欄を追加してください。データ利用者が分かりやすいよう、ファイルに用いている命名規則や拡張子、行列の各ラベルなどの情報をご記載ください。", + "type": "array", + "row_addition_caption": "テキストファイル|TextFile", + "properties": [ { - "text": "Yes|Yes", - "tooltip": "Yes|Yes" + "id":"d-txt-file-name-convention-file-extension", + "title": "ファイル名、または命名規則・拡張子(e.g. csv, tsv, txt)など|File name, naming convention, file extension (e.g. csv, tsv, txt), etc.", + "type": "string", + "format": "textarea" }, { - "text": "No|No", - "tooltip": "No|No" + "id": "d-txt-description-jp", + "title": "説明(日本語)|Description (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "d-txt-description-en", + "title": "Description (English)", + "type": "string", + "format": "text" + }, + { + "id": "d-txt-description-of-row", + "nav": "行の説明", + "title": "行の説明|Description of row", + "type": "array", + "help": "(※)記入上の注意\n・記入例を参考に、各行の説明を自由に記載。\n・命名規則などを用いて簡略な記載も可能\n・適宜、行の追加も可能。|(*) Notes for input\n・Refer to the example and describe each line freely.\n・Simplified descriptions are possible using naming conventions, etc.\n・Additional lines can be added as needed.", + "properties": [ + { + "id": "Position-of-row", + "title": "行の位置(日本語)|Position of row (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term", + "title": "項目名(日本語)|Name of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term", + "title": "項目の説明(日本語)|Description of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Position-of-row-en", + "title": "Position of row (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term-en", + "title": "Name of term (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term-en", + "title": "Description of term (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "id": "d-txt-description-of-column", + "nav": "列の説明", + "title": "列の説明|Description of column", + "type": "array", + "help": "(※)記入上の注意・記入例を参考に、各列の説明を自由に記載。・命名規則などを用いて簡略な記載も可能。・適宜、行の追加も可能。|(*) Notes for input・The description of each column can be freely described by referring to the example.・A simple description using naming conventions, etc. is also possible.・Rows can be added as needed.", + "properties": [ + { + "id": "Position-of-column", + "title": "行の位置(日本語)|Position of column (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term", + "title": "項目名(日本語)|Name of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term", + "title": "項目の説明(日本語)|Description of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Position-of-column-en", + "title": "Position of column (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term-en", + "title": "Name of term (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term-en", + "title": "Description of term (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "id": "d-txt-data-preprocessing-jp", + "title": "データ前処理(日本語)|Data preprocessing (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "d-txt-data-preprocessing-en", + "title": "Data preprocessing (English)", + "type": "string", + "format": "text" + }, + { + "id": "d-txt-temporal-measurement-data", + "title": "経時的に測定したデータ |Temporal measurement data", + "type": "choose", + "format": "singleselect-pulldown", + "help": "(Yes/No)", + "options": [ + { + "text": "Yes|Yes" + }, + { + "text": "No|No" + } + ] + }, + { + "id": "d-txt-number-of-rows", + "title": "行数|Number of rows", + "type": "string", + "format": "text", + "pattern": "^[0-9]+$", + "help": "(※)記入上の注意\n・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。\n・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of rows differs for the same type of file, please list the largest one.\n・In the remarks, please state something like \"The number of lines depends on the file\"." + }, + { + "id": "d-txt-number-of-columns", + "title": "列数|Number of columns", + "type": "string", + "format": "text", + "pattern": "^[0-9]+$", + "help": "(※)記入上の注意\n・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。\n・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of columns is different for the same type of file, please list the largest number.\n・In the remarks, please state something like \"The number of columns depends on the file\"." + }, + { + "id": "d-txt-approximate-number-of-similar-files", + "title": "同種のファイル概数|Approximate number of similar files", + "type": "string", + "format": "text" + }, + { + "id": "t-txt-delimiter", + "title": "区切り文字|Delimiter", + "type": "string", + "help": "(e.g. タブ, カンマ, etc.)|(e.g. tab, comma, etc.)", + "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$" + }, + { + "id": "t-txt-character-code", + "title": "文字コード|Character code", + "type": "string", + "help": "(e.g. UTF-8, ASCII, etc.)", + "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$" + }, + { + "id": "t-txt-remarks-jp", + "title": "備考(日本語)|Remarks (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "t-txt-remarks-en", + "nav": "備考", + "title": "Remarks (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "qid": "d-exl-group", + "nav": "エクセルファイル", + "title": "エクセルファイル|ExcelFile", + "type": "array", + "row_addition_caption": "エクセルファイル|ExcelFile", + "help": "以下の項目はデータセットに含まれるエクセル(e.g. xlsx, xlsm)形式のファイル概要を記載できます。ここでは同形式のファイル全体に対する概要情報を記載し、個別のファイルに関してはファイルメタデータをご活用ください。同形式で複数種類のファイル(心拍と体温の時系列など)がある場合は、欄下部にある追加ボタンから入力欄を追加してください。データ利用者が分かりやすいよう、ファイルに用いている命名規則や拡張子、行列の各ラベルなどの情報をご記載ください。", + "properties": [ + { + "id": "d-exl-file-name-convention-file-extension", + "type": "string", + "title": "ファイル名、または命名規則・拡張子(e.g. xlsx, xlsm)など|File name, naming convention, file extension (e.g. xlsx, xlsm), etc.", + "format": "text" + }, + { + "id": "d-exl-description-jp", + "title": "説明(日本語)|Description (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "d-exl-description-en", + "title": "Description (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "d-exl-description-of-row", + "title": "行の説明|Description of row", + "type": "array", + "help": "(※)記入上の注意\n・記入例を参考に、各行の説明を自由に記載。\n・命名規則などを用いて簡略な記載も可能・適宜、行の追加も可能。|(*) Notes for input\n・Refer to the example and describe each line freely.\n・Simplified descriptions are possible using naming conventions, etc.・Additional lines can be added as needed.", + "properties": [ + { + "id": "Position-of-row", + "title": "行の位置(日本語)|Position of row (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term", + "title": "項目名(日本語)|Name of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term", + "title": "項目の説明(日本語)|Description of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Position-of-row-en", + "title": "Position of row (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term-en", + "title": "Name of term (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term-en", + "title": "Description of term (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "id": "d-exl-description-of-column", + "title": "列の説明|Description of column", + "type": "array", + "help": "(※)記入上の注意・記入例を参考に、各列の説明を自由に記載。・命名規則などを用いて簡略な記載も可能。・適宜、行の追加も可能。|(*) Notes for input・The description of each column can be freely described by referring to the example.・A simple description using naming conventions, etc. is also possible.・Rows can be added as needed.", + "properties": [ + { + "id": "Position-of-column", + "title": "列の位置(日本語)|Position of column (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term", + "title": "項目名(日本語)|Name of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term", + "title": "項目の説明(日本語)|Description of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Position-of-column-en", + "title": "Position of column (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term-en", + "title": "Name of term (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term-en", + "title": "Description of term (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "id": "d-exl-data-preprocessing-jp", + "title": "データ前処理(日本語)|Data Preprocessing (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "d-exl-data-preprocessing-en", + "title": "Data Preprocessing (English)", + "type": "string", + "format": "text" + }, + { + "id": "d-exl-temporal-measurement-data", + "title": "経時的に測定したデータ|Temporal measurement data ", + "type": "choose", + "format": "singleselect-pulldown", + "help": "(Yes/No)", + "options": [ + { + "text": "Yes|Yes", + "tooltip": "Yes|Yes" + }, + { + "text": "No|No", + "tooltip": "No|No" + } + ] + }, + { + "id": "d-exl-number-of-rows", + "title": "行数|Number of rows", + "type": "string", + "format": "text", + "pattern": "^[0-9]+$", + "help": "(※)記入上の注意\n・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。\n・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of rows differs for the same type of file, please list the largest one.\n・In the remarks, please state something like \"The number of lines depends on the file\"." + }, + { + "id": "d-exl-number-of-columns", + "title": "列数|Number of columns", + "type": "string", + "format": "text", + "pattern": "^[0-9]+$", + "help": "(※)記入上の注意\n・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。\n・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of columns is different for the same type of file, please list the largest number.\n・In the remarks, please state something like \"The number of columns depends on the file\"." + }, + { + "id": "d-exl-approximate-number-of-similar-files", + "title": "同種のファイル概数|Approximate number of similar files", + "type": "string", + "format": "text" + }, + { + "id": "t-exl-remarks-jp", + "title": "備考(日本語)|Remarks (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "t-exl-remarks-en", + "title": "Remarks (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "qid": "d-image-group", + "nav": "画像ファイル", + "title": "画像ファイル|ImageFile", + "help": "以下の項目はデータセットに含まれる画像(e.g. jpg, png, tif)形式のファイル概要を記載できます。ここでは同形式のファイル全体に対する概要情報を記載し、個別のファイルに関してはファイルメタデータをご活用ください。同形式で複数種類のファイル(静止画と動画など)がある場合は、欄下部にある追加ボタンから入力欄を追加してください。データ利用者が分かりやすいよう、ファイルに用いている命名規則や拡張子、行列の各ラベルなどの情報をご記載ください。", + "type": "array", + "row_addition_caption": "画像ファイル|ImageFile", + "properties": [ + { + "id": "d-img-file-name-convention-file-extension", + "title": "ファイル名、または命名規則・拡張子(e.g. jpg, jng, tif)など|File name, naming convention, file extension (e.g. jpg, jng, tif), etc.", + "type": "string", + "format": "text" + }, + { + "id": "d-img-description-jp", + "title": "説明(日本語)|Description (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "d-img-description-en", + "title": "Description (English)", + "type": "string", + "format": "text" + }, + { + "id": "d-img-data-preprocessing-jp", + "title": "データ前処理(日本語)|Data Preprocessing (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "d-img-data-preprocessing-en", + "title": "Data preprocessing (English)", + "type": "string", + "format": "text" + }, + { + "id": "d-img-temporal-measurement-data", + "title": "経時的に測定したデータ|Temporal measurement data", + "type": "choose", + "format": "singleselect-pulldown", + "help": "(Yes/No)", + "options": [ + { + "text": "Yes|Yes", + "tooltip": "Yes|Yes" + }, + { + "text": "No|No", + "tooltip": "No|No" + } + ] + }, + { + "id": "d-img-pixel-width", + "title": "幅ピクセル数|Number of pixels (width) ", + "type": "string", + "format": "text" + }, + { + "id": "d-img-pixel-height", + "title": "高さピクセル数|Number of pixels (height) ", + "type": "string", + "format": "text" + }, + { + "id": "d-img-resolution-horizontal", + "title": "解像度(水平方向)|Resolution(horizontal) ", + "type": "string", + "format": "text" + }, + { + "id": "d-img-resolution-vertical", + "title": "解像度(垂直方向)|Resolution(vertical) ", + "type": "string", + "format": "text" + }, + { + "id": "t-img-Color-Monochrome", + "title": "色情報の数 |Number of color information ", + "type": "string", + "format": "text" + }, + { + "id": "t-img-number-of-color-bit", + "title": "色ビット数(色深度)|Color bits (Color depth)", + "type": "string", + "format": "text" + }, + { + "id": "t-img-compression-format", + "title": "圧縮形式|Compression format ", + "type": "string", + "format": "text" + }, + { + "id": "d-img-approximate-number-of-similar-files", + "title": "同種のファイル概数|Approximate number of similar files", + "type": "string", + "format": "text" + }, + { + "id": "t-img-image-type", + "title": "画像タイプ|Image Type", + "type": "string", + "format": "text" + }, + { + "id": "t-img-remarks-jp", + "title": "備考(日本語)|Remarks (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "t-img-remarks-en", + "title": "Remarks (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "qid": "d-any-group", + "nav": "任意のファイル", + "title": "任意のファイル|AnyFile", + "type": "array", + "row_addition_caption": "任意のファイル|AnyFile", + "help": "以下の項目はデータセットに含まれる任意形式のファイル概要を記載できます。ここでは同形式のファイル全体に対する概要情報を記載し、個別のファイルに関してはファイルメタデータをご活用ください。同形式で複数種類のファイル(心拍と体温の時系列など)がある場合は、欄下部にある追加ボタンから入力欄を追加してください。データ利用者が分かりやすいよう、ファイルに用いている命名規則や拡張子、行列の各ラベルなどの情報をご記載ください。なおここにないメタデータ項目を入力する場合は「ユーザ定義メタデータ」の欄をご活用ください。", + "properties": [ + { + "id": "d-abt-file-name-convention-file-extension", + "title": "ファイル名、または命名規則・拡張子など|File name, naming convention, file extension, etc.", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-description-jp", + "title": "説明(日本語)|Description (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-description-en", + "title": "Description (English)", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-data-preprocessing-jp", + "title": "データ前処理(日本語)|Data Preprocessing (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-data-preprocessing-en", + "title": "Data Preprocessing (English)", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-temporal-measurement-data", + "title": "経時的に測定したデータ|Temporal measurement data", + "type": "choose", + "format": "singleselect-pulldown", + "help": "(Yes/No)", + "options": [ + { + "text": "Yes|Yes", + "tooltip": "Yes|Yes" + }, + { + "text": "No|No", + "tooltip": "No|No" + } + ] + }, + { + "id": "d-abt-number-of-rows", + "title": "行数|Number of rows", + "type": "string", + "format": "text", + "pattern": "^[0-9]+$", + "help": "(※)記入上の注意\n・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。\n・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of rows differs for the same type of file, please list the largest one.\n・In the remarks, please state something like \"The number of lines depends on the file\"." + }, + { + "id": "d-abt-number-of-columns", + "title": "列数|Number of columns", + "type": "string", + "format": "text", + "pattern": "^[0-9]+$", + "help": "(※)記入上の注意\n・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。\n・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of columns is different for the same type of file, please list the largest number.\n・In the remarks, please state something like \"The number of columns depends on the file\"." + }, + { + "id": "d-abt-approximate-number-of-similar-files", + "title": "同種のファイル概数|Approximate number of similar files", + "type": "string", + "format": "text" + }, + { + "id": "t-abt-text/binary", + "title": "テキスト/バイナリ|Text/Binary", + "type": "choose", + "format": "singleselect-pulldown", + "help": "(Text/Binary)", + "options": [ + { + "text": "Text", + "tooltip": "Text" + }, + { + "text": "Binary", + "tooltip": "Binary" + } + ] + }, + { + "id": "t-abt-image-type", + "title": "画像タイプ|Image Type", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-pixel-width", + "title": "幅ピクセル数|Number of pixels (width) ", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-pixel-height", + "title": "高さピクセル数|Number of pixels (height) ", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-resolution-horizontal", + "title": "解像度(水平方向)|Resolution(horizontal) ", + "type": "string", + "format": "text" + }, + { + "id": "d-abt-resolution-vertical", + "title": "解像度(垂直方向)|Resolution(vertical) ", + "type": "string", + "format": "text" + }, + { + "id": "t-abt-Color-Monochrome", + "title": "色情報の数|Number of color information ", + "type": "string", + "format": "text" + }, + { + "id": "t-abt-number-of-color-bit", + "title": "色ビット数(色深度)|Number of Color bit (Color depth)", + "type": "string", + "format": "text" + }, + { + "id": "t-abt-compression-format", + "title": "圧縮形式|Compression format ", + "type": "string", + "format": "text" + }, + { + "id": "t-abt-delimiter", + "title": "区切り文字|Delimiter ", + "type": "string", + "help": "(e.g. タブ, カンマ) |(e.g. tab, comma)", + "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$" + }, + { + "id": "t-abt-character-code", + "title": "文字コード|Character code", + "type": "string", + "help": "(e.g. UTF-8)", + "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$" + }, + { + "id": "t-abt-user-defined-metadata-items", + "title": "ユーザー定義メタデータ項目|user-defined metadata item", + "type": "array", + "properties": [ + { + "id": "Metadata-item-name", + "title": "メタデータ項目名(日本語)|Metadata item name (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "value-or-content", + "title": "値または内容(日本語)|value or content (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Metadata-item-name-en", + "title": "Metadata item name (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "value-or-content-en", + "title": "value or content (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "id": "t-abt-remarks-jp", + "title": "備考(日本語)|Remarks (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "t-abt-remarks-en", + "title": "Remarks (English)", + "type": "string", + "format": "textarea" + } + ] + } + ] + }, + { + "id": "page3", + "title": "拡張メタデータアップロード|Upload Additional Metadata", + "description": "本登録画面ではムーンショット目標2データベース(未病DB)の【拡張メタデータ】をアップロードすることができます。カタログ登録したいファイルを下の画面でアップロードしてください。実データをアップロードしないよう、注意してください。\n\nなお、未病DBではデータセット全体の管理情報に対するメタデータを「プロジェクトメタデータ」、実験やデータの詳細に対するメタデータを「データセットメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」、その他追加のメタデータファイルを「拡張メタデータ」としています。各メタデータについて詳しくは未病DBガイドラインを参照ください。\nhttps://rdm.nii.ac.jp/3sw6v/", + "clipboardCopyPaste": false, + "questions": [ + { + "qid": "file-upload", + "type": "osf-upload", + "format": "osf-upload-toggle", + "title": "拡張メタデータのアップロード | AD Metadata Upload", + "sentence": true, + "fileLimit": 1 + } + ] + }, + { + "id": "page4", + "title": "拡張メタデータの選択|Choose Additional Metadata", + "clipboardCopyPaste": false, + "description": "本登録画面ではムーンショット目標2データベース(未病DB)の【拡張メタデータ】を登録することができます。カタログ登録したいファイルを下の画面で選択してください。下記画面に表示されていないファイルを登録する場合には、前画面「拡張メタデータアップロード」に戻り、該当ファイルをアップロードしてください。実データを選択しないよう、注意してください。\n\nなお、未病DBではデータセット全体の管理情報に対するメタデータを「プロジェクトメタデータ」、実験やデータの詳細に対するメタデータを「データセットメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」、その他追加のメタデータファイルを「拡張メタデータ」としています。各メタデータについて詳しくは未病DBガイドラインを参照ください。\nhttps://rdm.nii.ac.jp/3sw6v/", + "questions": [ + { + "qid": "choose-additional-metadata", + "type": "string", + "format": "ad-metadata", + "title": "拡張メタデータの選択 | Choose Additional Metadata", + "sentence": true + } + ] + }, + { + "id": "page5", + "title": "ファイルメタデータ|file metadata", + "description": "本登録画面ではムーンショット目標2データベース(未病DB)の【ファイルメタデータ】を登録することができます。カタログ登録したいファイルを下の画面で選択してください。実データを選択しないよう、注意してください。\n\nなお、未病DBではデータセット全体の管理情報に対するメタデータを「プロジェクトメタデータ」、実験やデータの詳細に対するメタデータを「データセットメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」、その他追加のメタデータファイルを「拡張メタデータ」としています。各メタデータについて詳しくは未病DBガイドラインを参照ください。\nhttps://rdm.nii.ac.jp/3sw6v/|This registration screen is available only to those involved in the Moonshot Research and Development Project Goal 2 (MS2).On this registration screen, you can enter file metadata for the Meibyo DB.Only files that have already been given file metadata on the project portal etc. will be displayed here.\nhttps://rdm.nii.ac.jp/3sw6v/", + "clipboardCopyPaste": false, + "questions": [ + { + "qid": "grdm-files", + "nav": "登録データ一覧", + "title": "登録データ一覧|Registered Data List", + "type": "string", + "format": "file-metadata", + "required": false, + "space_normalization": true + }, + { + "qid": "grdm-file:Label-explanation", + "nav": "説明文", + "title": "ムーンショット目標2データベース(未病DB)ではデータセット全体に対するメタデータを「プロジェクトメタデータ」、個々のファイルやフォルダに対するメタデータを「ファイルメタデータ」としています。|In the Moonshot Research and Development Project Goal 2 (Mebyo DB), the metadata for the entire dataset is called \"project metadata\", and the metadata for individual files and folders is called \"file metadata\".", + "type": "object", + "properties": [ + ], + "required": false + } + ] + }, + { + "id": "page6", + "title": "測定手順・条件等|measurement procedures/conditions", + "concealment_page_navigator": true, + "questions": [ + { + "qid": "grdm-file:Label-measurement", + "nav": "測定手順・条件等", + "title": "■測定手順・条件等 ────────────────────────────────────────|■measurement procedures/conditions ────────────────────────────────────────", + "type": "object", + "properties": [ + ], + "required": false, + "concealment_page": "buttonHide" + }, + { + "qid": "grdm-file:d-msr-object-of-measurement-jp", + "nav": "測定対象", + "title": "測定対象(日本語)|Object of measurement (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "qid": "grdm-file:d-msr-object-of-measurement-en", + "nav": "測定対象", + "title": "Object of measurement (English)", + "type": "string", + "format": "textarea" + }, + { + "qid": "grdm-file:d-msr-target-organs-for-measurement", + "nav": "関連する器官名など", + "title": "関連する器官名など|Target organs for measurement", + "type": "string", + "format": "text" + }, + { + "qid": "grdm-file:d-msr-data-type-jp", + "nav": "データの種類", + "title": "データの種類(日本語)|Data type (Japanese)", + "type": "string", + "help": "(e.g. scRNA-seqデータ, 顕微鏡画像およびその定量データ)|(e.g. scRNA-seq data, microscopic images and their quantitative data)", + "format": "textarea" + }, + { + "qid": "grdm-file:d-msr-data-type-en", + "nav": "データの種類", + "title": "Data type (English)", + "type": "string", + "help": "(e.g. scRNA-seq data, microscopic images and their quantitative data)", + "format": "textarea" + }, + { + "qid": "grdm-file:d-msr-classification-of-measuring-devices-jp", + "nav": "測定装置の分類", + "title": "測定装置の分類(日本語)|Classification of measuring devices (Japanese)", + "type": "string", + "help": "(e.g. fMRI、顕微鏡、CT、RNA-seq分析器、次世代シーケンサー、マイクロアレイリーダー、その他)|(e.g. fMRI, microscopy, CT, RNA-seq analyzers, next generation sequencers, microarray readers, etc.)", + "format": "textarea" + }, + { + "qid": "grdm-file:d-msr-classification-of-measuring-devices-en", + "nav": "測定装置の分類", + "title": "Classification of measuring devices (English)", + "type": "string", + "help": "(e.g. fMRI, microscopy, CT, RNA-seq analyzers, next generation sequencers, microarray readers, etc.)", + "format": "textarea" + }, + { + "qid": "grdm-file:d-msr-measuring-device-name", + "nav": "計測装置名", + "type": "array", + "initial_row_addition": true, + "properties": [ + { + "id": "Measuring-device-name", + "title": "計測装置名(日本語)|Measuring device name (Japanese)", + "type": "string", + "format": "text" + }, + { + "id": "Measuring-device-name-en", + "title": "Measuring device name (English)", + "type": "string", + "format": "text" + } + ] + }, + { + "qid": "grdm-file:d-msr-procedure", + "nav": "手順", + "type": "array", + "initial_row_addition": true, + "properties": [ + { + "id": "Procedure", + "title": "手順 (論文を書く際に必要な最小限の内容)(日本語)|Procedure (Minimum content required for writing a paper) (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Procedure-en", + "title": "Procedure (Minimum content required for writing a paper) (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "qid": "grdm-file:d-msr-user-defined-metadata-items", + "nav": "その他測定条件・手順に関するメタデータ項目", + "title": "その他測定条件・手順に関するメタデータ項目|User-defined metadata for measurement and conditions and procedures", + "type": "array", + "initial_row_addition": true, + "properties": [ + { + "id": "Metadata-item-name", + "title": "メタデータ項目名(日本語)|Metadata item name (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "value-or-content", + "title": "値または内容(日本語)|value or content (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Metadata-item-name-en", + "title": "Metadata item name (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "value-or-content-en", + "title": "value or content (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "qid": "grdm-file:d-msr-remarks-jp", + "nav": "備考", + "title": "備考(日本語)|Remarks (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "qid": "grdm-file:d-msr-remarks-en", + "nav": "備考", + "title": "Remarks (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "id": "page7", + "title": "フォルダ構成|Folder structure", + "concealment_page_navigator": true, + "questions": [ + { + "qid": "grdm-file:Label-folder", + "nav": "フォルダ構成", + "title": "■フォルダ構成 ────────────────────────────────────────|■Folder structure ────────────────────────────────────────", + "type": "object", + "properties": [ + ], + "required": false, + "concealment_page": "buttonHide" + }, + { + "qid": "grdm-file:d-fol-Structure-or-descriptions-of-folders-jp", + "nav": "データ格納フォルダの説明", + "title": "データ格納フォルダの説明|Description of data storage folder", + "type": "array", + "initial_row_addition": true, + "properties": [ + { + "id": "folder-name", + "title": "フォルダ名(命名規則など)|Folder name (Naming conventions, etc.)", + "type": "string", + "format": "textarea" + }, + { + "id": "description-of-folder", + "title": "フォルダの概要説明(格納されているファイルなど)(日本語)|Description of folder (Contained folders and files) (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "description-of-folder-en", + "title": "Description of folder (Contained folders and files) (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "contents", + "title": "コンテンツ(代表的な拡張子)|Contents (typical file extensions.)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "qid": "grdm-file:d-fol-remarks-jp", + "nav": "備考", + "title": "備考(日本語)|Remarks (Japanese)", + "type": "string", + "format": "textarea", + "space_normalization": true + }, + { + "qid": "grdm-file:d-fol-remarks-en", + "nav": "備考", + "title": "Remarks (English)", + "type": "string", + "format": "textarea", + "space_normalization": true + } + ] + }, + { + "id": "page8", + "title": "テキストファイル|■TextFile", + "concealment_page_navigator": true, + "questions": [ + { + "qid": "grdm-file:Label-text", + "nav": "テキストファイル", + "title": "■テキストファイル ────────────────────────────────────────|■TextFile ────────────────────────────────────────", + "type": "object", + "properties": [ + ], + "required": false, + "concealment_page": "buttonHide" + }, + { + "qid": "grdm-file:d-txt-file-name-convention-file-extension", + "nav": "ファイル名、または命名規則・拡張子", + "type": "array", + "initial_row_addition": true, + "properties": [ + { + "id": "storage-folder", + "title": "格納先フォルダ|Storage folder", + "type": "string", + "format": "text" + }, + { + "id": "file-name-convention-file-extension", + "title": "ファイル名、または命名規則・拡張子(e.g. csv, tsv, txt)など|File name, naming convention, file extension (e.g. csv, tsv, txt), etc.", + "type": "string", + "format": "text" + } + ] + }, + { + "qid": "grdm-file:d-txt-description-jp", + "nav": "説明", + "title": "説明(日本語)|Description (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "qid": "grdm-file:d-txt-description-en", + "nav": "説明", + "title": "Description (English)", + "type": "string", + "format": "textarea" + }, + { + "qid": "grdm-file:d-txt-description-of-row", + "nav": "行の説明", + "title": "行の説明|Description of row", + "type": "array", + "initial_row_addition": true, + "help": "(※)記入上の注意\n・記入例を参考に、各行の説明を自由に記載。\n・命名規則などを用いて簡略な記載も可能・適宜、行の追加も可能。|(*) Notes for input\n・Refer to the example and describe each line freely.\n・Simplified descriptions are possible using naming conventions, etc.・Additional lines can be added as needed.", + "properties": [ + { + "id": "Position-of-row", + "title": "行、列の位置(日本語)|Position of row and column (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term", + "title": "項目名(日本語)|Name of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term", + "title": "項目の説明(日本語)|Description of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Position-of-row-en", + "title": "Position of row and column (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term-en", + "title": "Name of term (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term-en", + "title": "Description of term (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "qid": "grdm-file:d-txt-description-of-column", + "nav": "列の説明", + "title": "列の説明|Description of column", + "type": "array", + "initial_row_addition": true, + "help": "(※)記入上の注意・記入例を参考に、各列の説明を自由に記載。・命名規則などを用いて簡略な記載も可能。・適宜、行の追加も可能。|(*) Notes for input・The description of each column can be freely described by referring to the example.・A simple description using naming conventions, etc. is also possible.・Rows can be added as needed.", + "properties": [ + { + "id": "Position-of-row", + "title": "行、列の位置(日本語)|Position of row and column (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term", + "title": "項目名(日本語)|Name of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term", + "title": "項目の説明(日本語)|Description of term (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "id": "Position-of-row-en", + "title": "Position of row and column (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Name-of-term-en", + "title": "Name of term (English)", + "type": "string", + "format": "textarea" + }, + { + "id": "Description-of-term-en", + "title": "Description of term (English)", + "type": "string", + "format": "textarea" + } + ] + }, + { + "qid": "grdm-file:d-txt-data-preprocessing-jp", + "nav": "データ前処理", + "title": "データ前処理(日本語)|Data preprocessing (Japanese)", + "type": "string", + "format": "textarea" + }, + { + "qid": "grdm-file:d-txt-data-preprocessing-en", + "nav": "データ前処理", + "title": "Data preprocessing (English)", + "type": "string", + "format": "textarea" + }, + { + "qid": "grdm-file:d-txt-temporal-measurement-data", + "nav": "経時的に測定したデータ ", + "title": "経時的に測定したデータ |Temporal measurement data", + "type": "choose", + "format": "singleselect-pulldown", + "help": "(Yes/No)", + "options": [ + { + "text": "Yes|Yes", + "tooltip": "Yes|Yes" + }, + { + "text": "No|No", + "tooltip": "No|No" } ] }, @@ -1220,11 +2312,11 @@ "required": false, "space_normalization": true, "pattern": "^[0-9]+$", - "help": "(※)記入上の注意・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for entry・If the number of rows differs for the same type of file, please list the largest one.・In the remarks, please state something like \"The number of lines depends on the file\".", + "help": "(※)記入上の注意\n・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。\n・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of rows differs for the same type of file, please list the largest one.\n・In the remarks, please state something like \"The number of lines depends on the file\".", "suggestion": [ { - "key": "auto-file-number-of-rows-text", - "button": "再取得|Fill" + "key": "get-text-row-count", + "button": "自動取得|Fill" } ] }, @@ -1236,11 +2328,11 @@ "required": false, "space_normalization": true, "pattern": "^[0-9]+$", - "help": "(※)記入上の注意・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for entry・If the number of columns is different for the same type of file, please list the largest number.・In the remarks, please state something like \"The number of columns depends on the file\".", + "help": "(※)記入上の注意\n・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。\n・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of columns is different for the same type of file, please list the largest number.\n・In the remarks, please state something like \"The number of columns depends on the file\".", "suggestion": [ { - "key": "auto-file-number-of-columns-text", - "button": "再取得|Fill" + "key": "get-text-column-count", + "button": "自動取得|Fill" } ] }, @@ -1262,8 +2354,8 @@ "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-delimiter", - "button": "再取得|Fill" + "key": "get-text-delimiter", + "button": "自動取得|Fill" } ] }, @@ -1277,15 +2369,14 @@ "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-character-code", - "button": "再取得|Fill" + "key": "get-text-character-code", + "button": "自動取得|Fill" } ] }, { "qid": "grdm-file:t-txt-remarks-jp", "nav": "備考", - "group_title": "", "title": "備考(日本語)|Remarks (Japanese)", "type": "string", "format": "textarea", @@ -1294,7 +2385,6 @@ { "qid": "grdm-file:t-txt-remarks-en", "nav": "備考", - "group_title": "", "title": "Remarks (English)", "type": "string", "format": "textarea", @@ -1303,9 +2393,9 @@ ] }, { - "id": "page5", + "id": "page9", "title": "エクセルファイル|ExcelFile", - "hide_projectmetadata": true, + "concealment_page_navigator": true, "questions": [ { "qid": "grdm-file:Label-excel", @@ -1315,13 +2405,20 @@ "properties": [ ], "required": false, - "hide": true + "concealment_page": "buttonHide" }, { "qid": "grdm-file:d-exl-file-name-convention-file-extension", "nav": "ファイル名、または命名規則・拡張子", "type": "array", + "initial_row_addition": true, "properties": [ + { + "id": "storage-folder", + "title": "格納先フォルダ|Storage folder", + "type": "string", + "format": "text" + }, { "id": "file-name-convention-file-extension", "title": "ファイル名、または命名規則・拡張子(e.g. xlsx, xlsm)など|File name, naming convention, file extension (e.g. xlsx, xlsm), etc.", @@ -1335,21 +2432,22 @@ "nav": "説明", "title": "説明(日本語)|Description (Japanese)", "type": "string", - "format": "text" + "format": "textarea" }, { "qid": "grdm-file:d-exl-description-en", "nav": "説明", "title": "Description (English)", "type": "string", - "format": "text" + "format": "textarea" }, { "qid": "grdm-file:d-exl-description-of-row", "nav": "行の説明", "title": "行の説明|Description of row", "type": "array", - "help": "(※)記入上の注意・記入例を参考に、各行の説明を自由に記載。・命名規則などを用いて簡略な記載も可能・適宜、行の追加も可能。|(*) Notes for entry・Refer to the example and describe each line freely.・Simplified descriptions are possible using naming conventions, etc.・Additional lines can be added as needed.", + "initial_row_addition": true, + "help": "(※)記入上の注意\n・記入例を参考に、各行の説明を自由に記載。\n・命名規則などを用いて簡略な記載も可能・適宜、行の追加も可能。|(*) Notes for input\n・Refer to the example and describe each line freely.\n・Simplified descriptions are possible using naming conventions, etc.・Additional lines can be added as needed.", "properties": [ { "id": "Position-of-row", @@ -1394,7 +2492,8 @@ "nav": "列の説明", "title": "列の説明|Description of column", "type": "array", - "help": "(※)記入上の注意・記入例を参考に、各列の説明を自由に記載。・命名規則などを用いて簡略な記載も可能。・適宜、行の追加も可能。|(*) Notes for entry・The description of each column can be freely described by referring to the example.・A simple description using naming conventions, etc. is also possible.・Rows can be added as needed.", + "initial_row_addition": true, + "help": "(※)記入上の注意・記入例を参考に、各列の説明を自由に記載。・命名規則などを用いて簡略な記載も可能。・適宜、行の追加も可能。|(*) Notes for input・The description of each column can be freely described by referring to the example.・A simple description using naming conventions, etc. is also possible.・Rows can be added as needed.", "properties": [ { "id": "Position-of-row", @@ -1439,14 +2538,14 @@ "nav": "データ前処理", "title": "データ前処理(日本語)|Data Preprocessing (Japanese)", "type": "string", - "format": "text" + "format": "textarea" }, { "qid": "grdm-file:d-exl-data-preprocessing-en", "nav": "データ前処理", "title": "Data Preprocessing (English)", "type": "string", - "format": "text" + "format": "textarea" }, { "qid": "grdm-file:d-exl-temporal-measurement-data", @@ -1474,11 +2573,11 @@ "required": false, "space_normalization": true, "pattern": "^[0-9]+$", - "help": "(※)記入上の注意・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for entry・If the number of rows differs for the same type of file, please list the largest one.・In the remarks, please state something like \"The number of lines depends on the file\".", + "help": "(※)記入上の注意\n・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。\n・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of rows differs for the same type of file, please list the largest one.\n・In the remarks, please state something like \"The number of lines depends on the file\".", "suggestion": [ { - "key": "auto-file-number-of-rows-excel", - "button": "再取得|Fill" + "key": "get-excel-row-count", + "button": "自動取得|Fill" } ] }, @@ -1490,11 +2589,11 @@ "required": false, "space_normalization": true, "pattern": "^[0-9]+$", - "help": "(※)記入上の注意・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for entry・If the number of columns is different for the same type of file, please list the largest number.・In the remarks, please state something like \"The number of columns depends on the file\".", + "help": "(※)記入上の注意\n・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。\n・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of columns is different for the same type of file, please list the largest number.\n・In the remarks, please state something like \"The number of columns depends on the file\".", "suggestion": [ { - "key": "auto-file-number-of-columns-excel", - "button": "再取得|Fill" + "key": "get-excel-column-count", + "button": "自動取得|Fill" } ] }, @@ -1525,11 +2624,10 @@ ] }, { - "id": "page6", + "id": "page10", "title": "画像ファイル|ImageFile", - "hide_projectmetadata": true, - "questions": - [ + "concealment_page_navigator": true, + "questions": [ { "qid": "grdm-file:Label-image", "nav": "画像ファイル", @@ -1538,13 +2636,20 @@ "properties": [ ], "required": false, - "hide": true + "concealment_page": "buttonHide" }, { "qid": "grdm-file:d-img-file-name-convention-file-extension", "nav": "ファイル名、または命名規則・拡張子", "type": "array", + "initial_row_addition": true, "properties": [ + { + "id": "storage-folder", + "title": "格納先フォルダ|Storage folder", + "type": "string", + "format": "text" + }, { "id": "file-name-convention-file-extension", "title": "ファイル名、または命名規則・拡張子(e.g. jpg, jng, tif)など|File name, naming convention, file extension (e.g. jpg, jng, tif), etc.", @@ -1558,7 +2663,7 @@ "nav": "説明", "title": "説明(日本語)|Description (Japanese)", "type": "string", - "format": "text", + "format": "textarea", "space_normalization": true }, { @@ -1566,7 +2671,7 @@ "nav": "説明", "title": "Description (English)", "type": "string", - "format": "text", + "format": "textarea", "space_normalization": true }, { @@ -1574,14 +2679,14 @@ "nav": "データ前処理", "title": "データ前処理(日本語)|Data Preprocessing (Japanese)", "type": "string", - "format": "text" + "format": "textarea" }, { "qid": "grdm-file:d-img-data-preprocessing-en", "nav": "データ前処理", "title": "Data preprocessing (English)", "type": "string", - "format": "text" + "format": "textarea" }, { "qid": "grdm-file:d-img-temporal-measurement-data", @@ -1602,65 +2707,100 @@ ] }, { - "qid": "grdm-file:d-img-data-size", - "nav": "データサイズ ", - "title": "データサイズ|Data size ", - "help": "(e.g. 1920x1080 pixel, 512x512x4(ch)(B,G,R,IR))(※)記入上の注意・単位は任意(pixel, ch, etc.)|(e.g. 1920x1080 pixel, 512x512x4(ch)(B,G,R,IR)) (*) Notes for entry・Units are optional (pixel, ch, etc.)", + "qid": "grdm-file:d-img-pixel-width", + "title": "幅ピクセル数|Number of pixels (width) ", "type": "string", "format": "text", "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-data-size", - "button": "再取得|Fill" + "key": "get-image-datasaize", + "button": "自動取得|Fill" } ] }, { - "qid": "grdm-file:d-img-resolution", - "nav": "解像度", - "title": "解像度|Resolution", + "qid": "grdm-file:d-img-pixel-height", + "title": "高さピクセル数|Number of pixels (height) ", "type": "string", - "pattern": "^[^\u0080-\uFFFF]+$", - "help": "(e.g. 96 dpi, 0.61 μm/px)(※)記入上の注意・単位は任意(dpi, μm/px, etc.)|(e.g. 96 dpi, 0.61 μm/px) (*) Notes for entry・Units are optional (dpi, μm/px, etc.)", "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-resolution", - "button": "再取得|Fill" + "key": "get-image-datasaize", + "button": "自動取得|Fill" } ] }, { - "qid": "grdm-file:d-img-approximate-number-of-similar-files", - "nav": "同種のファイル概数", - "title": "同種のファイル概数|Approximate number of similar files", + "qid": "grdm-file:d-img-resolution-horizontal", + "title": "解像度(水平方向)|Resolution(horizontal) ", "type": "string", - "format": "text" + "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$", + "help": "(e.g. 96 dpi, 0.61 μm/px)(※)記入上の注意・単位は任意(dpi, μm/px, etc.)|(e.g. 96 dpi, 0.61 μm/px) (*) Notes for input・Units are optional (dpi, μm/px, etc.)", + "suggestion": [ + { + "key": "get-image-resolution", + "button": "自動取得|Fill" + } + ] }, { - "qid": "grdm-file:t-img-image-type", - "nav": "画像タイプ", - "title": "画像タイプ|Image Type", + "qid": "grdm-file:d-img-resolution-vertical", + "title": "解像度(垂直方向)|Resolution(vertical) ", "type": "string", "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$", + "help": "(e.g. 96 dpi, 0.61 μm/px)(※)記入上の注意・単位は任意(dpi, μm/px, etc.)|(e.g. 96 dpi, 0.61 μm/px) (*) Notes for input・Units are optional (dpi, μm/px, etc.)", "suggestion": [ { - "key": "auto-file-image-type", - "button": "再取得|Fill" + "key": "get-image-resolution", + "button": "自動取得|Fill" } ] }, { "qid": "grdm-file:t-img-Color-Monochrome", - "nav": "カラー/モノクロ", - "title": "色情報の数(color/monochrome)|Number of color information (Color/Monochrome)", + "title": "色情報の数 |Number of color information ", + "type": "string", + "format": "text", + "suggestion": [ + { + "key": "get-image-color-information", + "button": "自動取得|Fill" + } + ] + }, + { + "qid": "grdm-file:t-img-number-of-color-bit", + "title": "色ビット数(色深度)|Color bits (Color depth)", + "type": "string", + "format": "text" + }, + { + "qid": "grdm-file:t-img-compression-format", + "title": "圧縮形式|Compression format ", + "type": "string", + "format": "text" + }, + { + "qid": "grdm-file:d-img-approximate-number-of-similar-files", + "nav": "同種のファイル概数", + "title": "同種のファイル概数|Approximate number of similar files", + "type": "string", + "format": "text" + }, + { + "qid": "grdm-file:t-img-image-type", + "nav": "画像タイプ", + "title": "画像タイプ|Image Type", "type": "string", "format": "text", "suggestion": [ { - "key": "auto-file-color-b&w", - "button": "再取得|Fill" + "key": "get-image-type", + "button": "自動取得|Fill" } ] }, @@ -1683,9 +2823,9 @@ ] }, { - "id": "page7", + "id": "page11", "title": "任意のファイル|AnyFile", - "hide_projectmetadata": true, + "concealment_page_navigator": true, "questions": [ { "qid": "grdm-file:Label-any", @@ -1695,13 +2835,20 @@ "properties": [ ], "required": false, - "hide": true + "concealment_page": "buttonHide" }, { "qid": "grdm-file:d-abt-file-name-convention-file-extension", "nav": "ファイル名、または命名規則・拡張子", "type": "array", + "initial_row_addition": true, "properties": [ + { + "id": "storage-folder", + "title": "格納先フォルダ|Storage folder", + "type": "string", + "format": "text" + }, { "id": "file-name-convention-file-extension", "title": "ファイル名、または命名規則・拡張子など|File name, naming convention, file extension, etc.", @@ -1715,7 +2862,7 @@ "nav": "説明", "title": "説明(日本語)|Description (Japanese)", "type": "string", - "format": "text", + "format": "textarea", "required": false, "space_normalization": true }, @@ -1724,7 +2871,7 @@ "nav": "説明", "title": "Description (English)", "type": "string", - "format": "text", + "format": "textarea", "required": false, "space_normalization": true }, @@ -1733,14 +2880,14 @@ "nav": "データ前処理", "title": "データ前処理(日本語)|Data Preprocessing (Japanese)", "type": "string", - "format": "text" + "format": "textarea" }, { "qid": "grdm-file:d-abt-data-preprocessing-en", "nav": "データ前処理", "title": "Data Preprocessing (English)", "type": "string", - "format": "text" + "format": "textarea" }, { "qid": "grdm-file:d-abt-temporal-measurement-data", @@ -1768,11 +2915,11 @@ "required": false, "space_normalization": true, "pattern": "^[0-9]+$", - "help": "(※)記入上の注意・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for entry・If the number of rows differs for the same type of file, please list the largest one.・In the remarks, please state something like \"The number of lines depends on the file\".", + "help": "(※)記入上の注意\n・同種のファイルで、行数が異なる場合は最大のものを記載して下さい。\n・備考に、「行数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of rows differs for the same type of file, please list the largest one.\n・In the remarks, please state something like \"The number of lines depends on the file\".", "suggestion": [ { - "key": "auto-file-number-of-rows-text", - "button": "再取得|Fill" + "key": "get-text-row-count", + "button": "自動取得|Fill" } ] }, @@ -1784,11 +2931,11 @@ "required": false, "space_normalization": true, "pattern": "^[0-9]+$", - "help": "(※)記入上の注意・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for entry・If the number of columns is different for the same type of file, please list the largest number.・In the remarks, please state something like \"The number of columns depends on the file\".", + "help": "(※)記入上の注意\n・同種のファイルで、列数が異なる場合は最大のものを記載して下さい。\n・備考に、「列数はファイルに依って異なる」などと記載して下さい。|(*) Notes for input\n・If the number of columns is different for the same type of file, please list the largest number.\n・In the remarks, please state something like \"The number of columns depends on the file\".", "suggestion": [ { - "key": "auto-file-number-of-columns-text", - "button": "再取得|Fill" + "key": "get-text-column-count", + "button": "自動取得|Fill" } ] }, @@ -1802,15 +2949,18 @@ }, { "qid": "grdm-file:t-abt-text/binary", - "nav": "テキスト/バイナリ", "title": "テキスト/バイナリ|Text/Binary", - "type": "string", - "format": "text", - "pattern": "^[^\u0080-\uFFFF]+$", - "suggestion": [ + "type": "choose", + "format": "singleselect", + "help": "(Text/Binary)", + "options": [ + { + "text": "Text", + "tooltip": "Text" + }, { - "key": "auto-file-text/binary", - "button": "再取得|Fill" + "text": "Binary", + "tooltip": "Binary" } ] }, @@ -1822,54 +2972,87 @@ "format": "text", "suggestion": [ { - "key": "auto-file-image-type", - "button": "再取得|Fill" + "key": "get-image-type", + "button": "自動取得|Fill" } ] }, { - "qid": "grdm-file:t-abt-Color-Monochrome", - "nav": "カラー/モノクロ", - "title": "色情報の数(color/monochrome)|Number of color information (Color/Monochrome)", + "qid": "grdm-file:d-abt-pixel-width", + "title": "幅ピクセル数|Number of pixels (width) ", + "type": "string", + "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$", + "suggestion": [ + { + "key": "get-image-datasaize", + "button": "自動取得|Fill" + } + ] + }, + { + "qid": "grdm-file:d-abt-pixel-height", + "title": "高さピクセル数|Number of pixels (height) ", "type": "string", "format": "text", + "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-color-b&w", - "button": "再取得|Fill" + "key": "get-image-datasaize", + "button": "自動取得|Fill" } ] }, { - "qid": "grdm-file:t-abt-data-size", - "nav": "データサイズ", - "title": "データサイズ|Data size", - "help": "(e.g. 1920x1080 pixcel, 512x512x4 (ch) (B,G,R,IR))(※)記入上の注意・単位は任意(pixel, ch, etc.)|(e.g. 1920x1080 pixel, 512x512x4 (ch) (B,G,R,IR)) (*) Notes for entry・Units are optional (pixel, ch, etc.)", + "qid": "grdm-file:d-abt-resolution-horizontal", + "title": "解像度(水平方向)|Resolution(horizontal) ", "type": "string", "format": "text", "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-data-size", - "button": "再取得|Fill" + "key": "get-image-resolution", + "button": "自動取得|Fill" } ] }, { - "qid": "grdm-file:t-abt-resolution", - "nav": "解像度", - "title": "解像度|Resolution", + "qid": "grdm-file:d-abt-resolution-vertical", + "title": "解像度(垂直方向)|Resolution(vertical) ", "type": "string", - "help": "(e.g. 96 dpi, 0.61 μm/px)(※)記入上の注意・単位は任意(dpi, μm/px, etc.)|(e.g. 96 dpi, 0.61 μm/px) (*) Notes for entry・Units are optional (dpi, μm/px, etc.)", "format": "text", "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-resolution", - "button": "再取得|Fill" + "key": "get-image-resolution", + "button": "自動取得|Fill" + } + ] + }, + { + "qid": "grdm-file:t-abt-Color-Monochrome", + "title": "色情報の数|Number of color information ", + "type": "string", + "format": "text", + "suggestion": [ + { + "key": "get-image-color-information", + "button": "自動取得|Fill" } ] }, + { + "qid": "grdm-file:t-abt-number-of-color-bit", + "title": "色ビット数(色深度)|Number of Color bit (Color depth)", + "type": "string", + "format": "text" + }, + { + "qid": "grdm-file:t-abt-compression-format", + "title": "圧縮形式|Compression format ", + "type": "string", + "format": "text" + }, { "qid": "grdm-file:t-abt-delimiter", "nav": "区切り文字", @@ -1880,8 +3063,8 @@ "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-delimiter", - "button": "再取得|Fill" + "key": "get-text-delimiter", + "button": "自動取得|Fill" } ] }, @@ -1895,8 +3078,8 @@ "pattern": "^[^\u0080-\uFFFF]+$", "suggestion": [ { - "key": "auto-file-character-code", - "button": "再取得|Fill" + "key": "get-text-character-code", + "button": "自動取得|Fill" } ] }, @@ -1905,6 +3088,7 @@ "nav": "ユーザー定義メタデータ項目", "title": "ユーザー定義メタデータ項目|user-defined metadata item", "type": "array", + "initial_row_addition": true, "properties": [ { "id": "Metadata-item-name", @@ -1951,271 +3135,222 @@ ] }, { - "id": "page8", - "title": "測定手順・条件等|measurement procedures/conditions", - "hide_projectmetadata": true, + "id": "page12", + "title": "チェックリスト:(MS2共有)カタログ登録前", + "clipboardCopyPaste": false, "questions": [ { - "qid": "grdm-file:Label-measurement", - "nav": "測定手順・条件等", - "title": "■測定手順・条件等 ────────────────────────────────────────|■measurement procedures/conditions ────────────────────────────────────────", - "type": "object", - "properties": [ + "qid": "Checklist1", + "nav": "解析対象データ3", + "title": "協定書(付帯事項含む。以降協定書)およびガイドラインの理解", + "type": "choose", + "format": "multiselect", + "required": true, + "help": "「ムーンショット目標2研究データデポジットの基本方針に係る協定書」(付帯事項含む。以降協定書)および「ムーンショット目標2データベースガイドライン」(以降ガイドライン)はムーンショット目標2(以降MS2)に参画する全ての研究参加者がその内容を理解し、遵守する必要があります。内容について改めて確認したい方は以下のリンクを参照ください。(MS2協定書、未病DBガイドライン)\nhttps://rdm.nii.ac.jp/ve4fp/\nhttps://rdm.nii.ac.jp/3sw6v/", + "options": [ + { + "text": "「ムーンショット目標2研究データデポジットの基本方針に係る協定書」(付帯事項含む。以降協定書)および「ムーンショット目標2データベースガイドライン」を全て読み、内容を理解しましたか?" + } ], - "required": false, - "hide": true - }, - { - "qid": "grdm-file:d-msr-object-of-measurement-jp", - "nav": "測定対象", - "title": "測定対象(日本語)|Object of measurement (Japanese)", - "type": "string", - "format": "text" + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-object-of-measurement-en", - "nav": "測定対象", - "title": "Object of measurement (English)", - "type": "string", - "format": "text" - }, - { - "qid": "grdm-file:d-msr-target-organs-for-measurement", - "nav": "測定対象器官", - "title": "測定対象器官|Target organs for measurement", - "type": "array", - "help": "(※)記入上の注意器官の種別(以下から選択、または、具体的な内容をご記入下さい):・ 臓器・(由来)臓器・培養・ 上記以外(具体的に記述下さい)器官の名称(1行に1器官を記入、具体的な臓器名などをご記入下さい):e.g. 肝臓、・腎臓、・膵臓、・精巣上体白色脂肪組織 (eWAT)、・視床下部、・脳下垂体|(*) Notes for entry Type of organ (Please select from the following or provide specifics):・Organ・Organ-derived cultured tissues and cells・Other than the above (please specify)Name of organ (one organ per line, please provide specific organ name, etc.):e.g. liver, kidney, pancreas, epididymal white adipose tissue (eWAT), hypothalamus, pituitary gland", - "properties": [ - { - "id": "Organ-Types", - "title": "器官の種別|Organ Types", - "type": "choose", - "format": "singleselect", - "options": [ - { - "text": "臓器|Organ", - "tooltip": "臓器|Organ" - }, - { - "text": "(由来)臓器・培養|Organ-derived cultured tissues and cells", - "tooltip": "(由来)臓器・培養|Organ-derived cultured tissues and cells" - }, - { - "text": "上記以外(具体的に記述下さい)|Other than the above (please specify)", - "tooltip": "上記以外(具体的に記述下さい)|Other than the above (please specify)" - } - ] - }, + "qid": "Checklist3", + "nav": "解析対象データ3", + "title": "研究データの個人情報", + "type": "choose", + "format": "multiselect", + "required": true, + "options": [ { - "id": "d-msr-name-of-organ", - "title": "器官の名称|Name of organ", - "type": "choose", - "format": "singleselect", - "options": [ - { - "text": "肝臓|liver", - "tooltip": "肝臓|liver" - }, - { - "text": "腎臓|kidney", - "tooltip": "腎臓|kidney" - }, - { - "text": "膵臓|pancreas", - "tooltip": "膵臓|pancreas" - }, - { - "text": "精巣上体白色脂肪組織 (eWAT)|epididymal white adipose tissue (eWAT)", - "tooltip": "精巣上体白色脂肪組織 (eWAT)|epididymal white adipose tissue (eWAT)" - }, - { - "text": "視床下部|hypothalamus", - "tooltip": "視床下部|hypothalamus" - }, - { - "text": "脳下垂体|pituitary gland", - "tooltip": "脳下垂体|pituitary gland" - } - ] + "text": "共有する実データに対して、倫理審査時に記載した指針に従った適切な処理を行いましたか?" } - ] - }, - { - "qid": "grdm-file:d-msr-data-type-jp", - "nav": "データの種類", - "title": "データの種類(日本語)|Data type (Japanese)", - "type": "string", - "help": "(e.g. scRNA-seqデータ, 顕微鏡画像およびその定量データ)|(e.g. scRNA-seq data, microscopic images and their quantitative data)", - "format": "text" + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-data-type-en", - "nav": "データの種類", - "title": "Data type (English)", - "type": "string", - "help": "(e.g. scRNA-seq data, microscopic images and their quantitative data)", - "format": "text" + "qid": "Checklist4", + "nav": "解析対象データ3", + "title": "メタデータの個人情報", + "type": "choose", + "format": "multiselect", + "required": true, + "help": "ムーンショット目標2データベース(以降未病DB)では、様々なメタデータを記録いただけるよう各種インターフェイスなどを提供していく予定です。また、記録されたメタデータは広くメンバー間で共有できるようカタログに登録され、MS2の全メンバーが閲覧可能となります。個人の特定が可能となる可能性があるメタデータが含まれる場合は、予めカタログ登録する内容から除外していただく必要があります。", + "multilanguage": true, + "options": [ + { + "text": "メタデータには個人情報など個人が特定できる情報が含まれていませんか?" + } + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-classification-of-measuring-devices-jp", - "nav": "測定装置の分類", - "title": "測定装置の分類(日本語)|Classification of measuring devices (Japanese)", - "type": "string", - "help": "(e.g. fMRI、顕微鏡、CT、RNA-seq分析器、次世代シーケンサー、マイクロアレイリーダー、その他)|(e.g. fMRI, microscopy, CT, RNA-seq analyzers, next generation sequencers, microarray readers, etc.)", - "format": "text" + "qid": "Checklist6", + "nav": "データの品質", + "title": "正しいメタデータ種別の選択", + "type": "choose", + "format": "multiselect", + "required": true, + "options": [ + { + "text": "ファイルメタデータ入力時、「ムーンショット目標2データベース(未病DB)のメタデータ」を選択していますか?" + } + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-classification-of-measuring-devices-en", - "nav": "測定装置の分類", - "title": "Classification of measuring devices (English)", - "type": "string", - "help": "(e.g. fMRI, microscopy, CT, RNA-seq analyzers, next generation sequencers, microarray readers, etc.)", - "format": "text" + "qid": "Checklist7", + "nav": "データの品質", + "title": "メタデータの品質", + "type": "choose", + "format": "multiselect", + "required": true, + "help": "未病DBでは、メタデータカタログを通して研究コラボレーションが創発・活発化することが期待されています。実験・数理・応用など様々な分野の研究者が互いの持つ研究資産を理解しコラボレーションにつながるためには、各提供者が自身の研究について分野外から見ても十分に理解可能な形で説明を付与する必要があります。未病DBのコンセプトやメタデータ入力についての解説は以下のリンクを参照ください。(未病DBガイドライン、未病DBデータ格納手順書)\nhttps://rdm.nii.ac.jp/3sw6v/\nhttps://rdm.nii.ac.jp/ve4fp/", + "options": [ + { + "text": "メタデータは、他の研究者が見ても分かりやすい形で記入しましたか?" + } + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-measuring-device-name", - "nav": "計測装置名", - "type": "array", - "properties": [ - { - "id": "Measuring-device-name", - "title": "計測装置名(日本語)|Measuring device name (Japanese)", - "type": "string", - "format": "text" - }, + "qid": "Checklist8", + "nav": "データの品質", + "title": "データセットの品質", + "type": "choose", + "format": "multiselect", + "required": true, + "options": [ { - "id": "Measuring-device-name-en", - "title": "Measuring device name (English)", - "type": "string", - "format": "text" + "text": "共有する実データは、他の研究者による再利用が可能な程度の品質が確保されていますか?" } - ] + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-procedure", - "nav": "手順", - "type": "array", - "properties": [ - { - "id": "Procedure", - "title": "手順 (論文を書く際に必要な最小限の内容)(日本語)|Procedure (Minimum content required for writing a paper) (Japanese)", - "type": "string", - "format": "textarea" - }, + "qid": "Checklist9", + "nav": "データの共有設定", + "title": "データの共有設定", + "type": "choose", + "format": "multiselect", + "required": true, + "help": "未病DBでは、公開・制限公開・共有・制限共有の各共有レベルが設定されています。各研究データは倫理審査などの状況に応じて、正しい共有レベルに設定する必要があります。各共有レベルについての解説は以下のリンクを参照ください。(未病DBガイドライン)\nhttps://rdm.nii.ac.jp/3sw6v/", + "options": [ { - "id": "Procedure-en", - "title": "Procedure (Minimum content required for writing a paper) (English)", - "type": "string", - "format": "textarea" + "text": "共有レベルは適切ですか?制限共有とすべき研究データが含まれていませんか?" } - ] + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-user-defined-metadata-items", - "nav": "ユーザー定義メタデータ項目", - "title": "ユーザー定義メタデータ項目|user-defined metadata item", - "type": "array", - "properties": [ - { - "id": "Metadata-item-name", - "title": "メタデータ項目名(日本語)|Metadata item name (Japanese)", - "type": "string", - "format": "textarea" - }, - { - "id": "value-or-content", - "title": "値または内容(日本語)|value or content (Japanese)", - "type": "string", - "format": "textarea" - }, - { - "id": "Metadata-item-name-en", - "title": "Metadata item name (English)", - "type": "string", - "format": "textarea" - }, + "qid": "Checklist10", + "nav": "データの共有設定", + "title": "制限共有の条件", + "type": "choose", + "format": "multiselect", + "required": true, + "options": [ { - "id": "value-or-content-en", - "title": "value or content (English)", - "type": "string", - "format": "textarea" + "text": "制限共有は、MS2全体での共有が難しい特別な事情がある場合に利用されるべき共有設定であることを理解しましたか?" } - ] + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-remarks-jp", - "nav": "備考", - "title": "備考(日本語)|Remarks (Japanese)", - "type": "string", - "format": "textarea" + "qid": "Checklist11", + "nav": "データの共有設定", + "title": "アクセス権の設定", + "type": "choose", + "format": "multiselect", + "required": true, + "options": [ + { + "text": "GakuNin RDM上のプロジェクト(コンポーネント)へのアクセス権を正しく設定していますか?" + } + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:d-msr-remarks-en", - "nav": "備考", - "title": "Remarks (English)", - "type": "string", - "format": "textarea" - } - ] - }, - { - "id": "page9", - "title": "データ概要~フォルダ構成|Data Overview - Folder structure", - "hide_projectmetadata": true, - "questions": [ - { - "qid": "grdm-file:Label-data-overview", - "nav": "データ概要~フォルダ構成", - "title": "■データ概要~フォルダ構成 ────────────────────────────────────────|■Data Overview - Folder structure ────────────────────────────────────────", - "type": "object", - "properties": [ + "qid": "Checklist12", + "nav": "連絡先", + "title": "連絡先の正しい記載", + "type": "choose", + "format": "multiselect", + "required": true, + "help": "各提供者は自身の研究データに対して責任をもって管理する必要があります。未病DBでは、各データセットに関して提供者にコンタクトを取る必要がある場合に、メタデータに記載された連絡先の情報を元に連絡をとります。そのため、メタデータの連絡先は常にコンタクト可能なものに更新してある必要があります。研究データの取扱や提供者の責務については以下のリンクを参照ください。(未病DBガイドライン)\nhttps://rdm.nii.ac.jp/3sw6v/", + "options": [ + { + "text": "有効なメールアドレスがメタデータに正しく記載されていますか?" + } ], - "required": false, - "hide": true + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:t-dat-data-type", - "nav": "データ種別", - "group_title": "", - "title": "データ種別|Data Type", - "type": "string", - "format": "text", - "help": "(e.g. txt, csv, tsv, asc, sif, xlsx, jpg, jng, tif, nd2)(※)記入上の注意・全てのファイル種を拡張子で記載|(e.g. txt, csv, tsv, asc, sif, xlsx, jpg, jng, tif, nd2) (*) Notes on Entry・List all file types by their extensions" + "qid": "Checklist13", + "nav": "連絡先", + "title": "研究対象者からの申立への対応", + "type": "choose", + "format": "multiselect", + "required": true, + "options": [ + { + "text": "研究対象者から申し立てがあった場合における未病DBの定める対応指針について十分に理解していますか?", + "multi_language": true + } + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:t-dat-total-size", - "title": "全サイズ|Total size", - "type": "string", - "format": "text", - "required": false, - "space_normalization": true, - "help": "(e.g. 30MB, 1.2TB)" + "qid": "Checklist14", + "nav": "解析対象データ3", + "title": "オーサーシップ・著作権に関する指針", + "type": "choose", + "format": "multiselect", + "required": true, + "help": "未病DBでは各提供者のオーサーシップや著作権について協定書に規定しています。各データセットにおいて、協定書を参考にデータ利用者との間で事前に取り決めを交わしておくことを推奨しています。提供者の権利については以下のリンクを参照ください。(協定書、未病DBガイドライン)", + "options": [ + { + "text": "未病DBが定めるオーサーシップや著作権に関する指針について理解しましたか?", + "multi_language": true + } + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:t-dat-total-number-of-folders", - "title": "全フォルダ数|Total number of folders", - "type": "string", - "format": "text", - "required": false, - "space_normalization": true + "qid": "Checklist2", + "nav": "解析対象データ3", + "title": "協定書およびガイドライン更新時の対応", + "type": "choose", + "format": "multiselect", + "required": true, + "help": "協定書およびガイドラインはプロジェクトの進展に伴い、プロジェクト状況に合わせた修正を行う場合があります。当チェックリストは、重要な修正があった場合に再度記入しなければならない場合があります。その際は、メタデータやメタデータカタログ(以降カタログ)に記載されたメールアドレスなどに通知されます。そのため、提供者の連絡先は常に最新のものに更新しておく必要があります。", + "options": [ + { + "text": "協定書、ガイドラインに変更があった場合には、メタデータに登録した連絡先にメール通知が行きます。その後、当チェックリスト項目を再入力しなければならない場合があることを理解しましたか?" + } + ], + "required_all_check": "disclaimer-check-date" }, { - "qid": "grdm-file:t-dat-total-number-of-files", - "title": "全ファイル数|Total number of files", + "qid": "disclaimer-check-date", + "nav": "カタログ登録前チェックリスト", + "title": "(MS2共有)カタログ登録前チェック日付|Disclaimer check date", "type": "string", "format": "text", - "required": false, - "space_normalization": true + "readonly": true, + "required": true }, { - "qid": "grdm-file:t-dat-maximum-number-of-layers", - "title": "最大階層数|Maximum number of layers", + "qid": "disclaimer-version", + "nav": "カタログ登録前チェックリスト", + "title": "(MS2共有)カタログ登録前チェックリスト バージョン|Disclaimer version", "type": "string", "format": "text", - "required": false, - "space_normalization": true + "required": true, + "readonly": true, + "retrieval_version": "2025/02/12" } ] } ] -} +} \ No newline at end of file diff --git a/website/project/views/node.py b/website/project/views/node.py index 474508d3315..a6ae4cdc5a0 100644 --- a/website/project/views/node.py +++ b/website/project/views/node.py @@ -62,12 +62,11 @@ from addons.forward.utils import serialize_forward_widget from addons.jupyterhub.utils import serialize_jupyterhub_widget from addons.iqbrims.utils import serialize_iqbrims_widget +from addons.workflow.utils import serialize_workflow_widget from admin.rdm_addons.utils import validate_rdm_addons_allowed from api.base import settings as api_settings from website.util import quota from osf.models.project_storage_type import ProjectStorageType - - from nii.mapcore_api import MAPCoreException from nii.mapcore import (mapcore_sync_is_enabled, mapcore_log_error, @@ -529,7 +528,8 @@ def view_project(auth, node, **kwargs): 'zotero': None, 'forward': None, 'dataverse': None, - 'jupyterhub': None + 'jupyterhub': None, + 'workflow': None } if 'wiki' in ret['addons']: @@ -557,6 +557,9 @@ def view_project(auth, node, **kwargs): if 'iqbrims' in ret['addons']: addons_widget_data['iqbrims'] = serialize_iqbrims_widget(node) + if 'workflow' in ret['addons']: + addons_widget_data['workflow'] = serialize_workflow_widget(node) + ret.update({'addons_widget_data': addons_widget_data}) try: projectStorageType = ProjectStorageType.objects.get(node=node) diff --git a/website/static/js/anonymousLogActionsList.json b/website/static/js/anonymousLogActionsList.json index 623070a737c..30040c7c260 100644 --- a/website/static/js/anonymousLogActionsList.json +++ b/website/static/js/anonymousLogActionsList.json @@ -50,6 +50,8 @@ "file_metadata_updated": "A user updated the file metadata for a file", "checked_out": "A user checked out a file from a project", "checked_in": "A user checked in a file to a project", + "locked": "A user locked a file in a project", + "unlocked": "A user unlocked a file in a project", "comment_added" : "A user added a comment to a project", "comment_removed" : "A user deleted a comment from a project", "comment_restored": "A user restored a comment in a project", diff --git a/website/static/js/fangorn.js b/website/static/js/fangorn.js index 0c67825c020..30670a9f3c4 100644 --- a/website/static/js/fangorn.js +++ b/website/static/js/fangorn.js @@ -437,6 +437,7 @@ function _fangornResolveToggle(item) { // padding added so that this overlaps the toggle-icon div and prevent cursor change into pointer for checkout icons. checkedByUser = m('i.fa.fa-sign-out.text-muted[style="font-size: 120%; cursor: default; padding-top: 10px; padding-bottom: 10px; padding-right: 4px;"]', ''), checkedByOther = m('i.fa.fa-sign-out[style="color: #d9534f; font-size: 120%; cursor: default; padding-top: 10px; padding-bottom: 10px; padding-right: 4px;"]', ''); + var locked = m('i.fa.fa-lock.text-muted[style="font-size: 120%; cursor: default; padding-top: 10px; padding-bottom: 10px; padding-right: 4px;"]', ''); // check if folder has children whether it's lazyloaded or not. if (item.kind === 'folder' && item.depth > 1) { if(!item.data.permissions.view){ @@ -454,6 +455,9 @@ function _fangornResolveToggle(item) { } return checkedByOther; } + if (item.data.extra && item.data.extra.locked) { + return locked; + } } return ''; } @@ -2463,7 +2467,7 @@ var FGItemButtons = { } if (item.data.permissions && item.data.permissions.edit) { if (item.data.provider === 'osfstorage') { - if (!item.data.extra.checkout){ + if (!item.data.extra.checkout && !item.data.extra.locked){ rowButtons.push( m.component(FGButton, { onclick: function(event) { _removeEvent.call(tb, event, [item]); }, @@ -2488,7 +2492,7 @@ var FGItemButtons = { icon: 'fa fa-sign-out', className : 'text-warning' }, gettext('Check out file'))); - } else if (item.data.extra.checkout && item.data.extra.checkout._id === window.contextVars.currentUser.id) { + } else if (item.data.extra.checkout && item.data.extra.checkout._id === window.contextVars.currentUser.id && !item.data.extra.locked) { rowButtons.push( m.component(FGButton, { onclick: function(event) { @@ -2527,7 +2531,7 @@ var FGItemButtons = { }, gettext('Download as zip')) ); } - if (item.data.provider && !item.data.isAddonRoot && item.data.permissions && item.data.permissions.edit && (item.data.provider !== 'osfstorage' || !item.data.extra.checkout)) { + if (item.data.provider && !item.data.isAddonRoot && item.data.permissions && item.data.permissions.edit && (item.data.provider !== 'osfstorage' || !(item.data.extra.checkout || item.data.extra.locked))) { rowButtons.push( m.component(FGButton, { onclick: function () { diff --git a/website/static/js/filepage/index.js b/website/static/js/filepage/index.js index b0052d175aa..7501fb3a550 100644 --- a/website/static/js/filepage/index.js +++ b/website/static/js/filepage/index.js @@ -246,6 +246,227 @@ var FileViewPage = { } }); }); + + $(document).on('fileviewpage:approval', function() { + var tmpForm = $('
'); + tmpForm.append(_('Workflow Project ID')); + tmpForm.append('


'); + tmpForm.append(_('Workflow Process Project ID')); + tmpForm.append('


'); + tmpForm.append(_('Workflow User ID')); + tmpForm.append('


'); + tmpForm.append(_('Workflow Valid User ID')); + tmpForm.append('


'); + tmpForm.append(_('Workfllow Startup User ID')); + tmpForm.append('


'); + tmpForm.append(_('File Path')); + tmpForm.append('


'); + tmpForm.append(_('Admin Mail Address')); + tmpForm.append('


'); + tmpForm.append(_('Researcher Mail Address')); + tmpForm.append('


'); + tmpForm.append('
'); + + $osf.ajaxJSON('get', '/api/v1/addons/workflow/all_registered_workflows/') + .done(function(resp) { + const targetItem = resp.data.find(function(item) { + return item.workflow_project_id === self.context.node.id; + }); + if (targetItem) { + var workflow_project_id = targetItem.workflow_project_id; + var workflow_userid = targetItem.workflow_userid; + var workflow_valid_userid = targetItem.workflow_valid_userid; + tmpForm.find('input[name=\'workflow_project_id\']').val(workflow_project_id); + tmpForm.find('input[name=\'workflow_userid\']').val(workflow_userid); + tmpForm.find('input[name=\'workflow_valid_userid\']').val(workflow_valid_userid); + } + + const process_project_id = self.context.node.id; + const workflow_startup_userid = self.context.currentUser.id; + tmpForm.find('input[name=\'process_project_id\']').val(process_project_id); + tmpForm.find('input[name=\'workflow_startup_userid\']').val(workflow_startup_userid); + }).fail(function(resp) { + }); + + + bootbox.confirm({ + title: _('Workflow Start'), + message: tmpForm, + buttons: { + confirm: { + label: _('Workflow Start'), + className: 'btn-success' + }, + cancel: { + label: _('Cancel'), + className: 'btn-danger' + } + }, + callback: function(confirm) { + if (!confirm) { + return; + } + + if (tmpForm.find('input[name=\'workflow_project_id\']').val() === '' || + tmpForm.find('input[name=\'process_project_id\']').val() === '' || + tmpForm.find('input[name=\'workflow_userid\']').val() === '' || + tmpForm.find('input[name=\'workflow_valid_userid\']').val() === '' || + tmpForm.find('input[name=\'workflow_startup_userid\']').val() === '' || + tmpForm.find('input[name=\'file_path\']').val() === '' || + tmpForm.find('input[name=\'admin_mailaddr\']').val() === '' || + tmpForm.find('input[name=\'researcher_mailaddr\']').val() === '' + ) { + alert(_('Check the workflow data again.')); + return; + } + + var loadingMessage = bootbox.dialog({ + message: '

' + _('Processing...') + '

', + closeButton: false + }); + + + $osf.ajaxJSON('get', '/api/v1/project/' + self.context.node.id + '/workflow/workflow_connection') + .done(function(resp) { + var workflow_url = resp.data[0].url; + + function fetchWorkflowData() { + var username = 'admin'; + var password = 'test'; + var credentials = btoa(username + ':' + password); + + return fetch(workflow_url + '/process-api/repository/process-definitions', { + method: 'GET', + headers: { + 'Authorization': 'Basic ' + credentials, + 'Content-Type': 'application/json' + } + }).then(function(response) { + if (!response.ok) { + throw new Error('Failed to fetch: ' + response.status); + } + return response.json(); + }).then(function(data) { + if (!data.data || data.data.length === 0) { + throw new Error('No process definition ID found in response.'); + } + + var firstId = data.data[0].id; + + console.log('First Process Definition ID:', firstId); + return firstId; + }).catch(function(error) { + console.error('Error fetching workflow data:', error); + return null; + }); + } + + function registerCombinedWorkflowData() { + var processDefinitionId; + + return fetchWorkflowData().then(function(id) { + processDefinitionId = id; + + if (!processDefinitionId) { + throw new Error('Failed to retrieve process definition ID.'); + } + + var requestData = { + processDefinitionId: processDefinitionId, + variables: [ + { name: 'WorkflowProjectId', value: tmpForm.find('input[name=\'workflow_project_id\']').val() }, + { name: 'WorkflowProcessProjectId', value: tmpForm.find('input[name=\'process_project_id\']').val() }, + { name: 'WorkflowRegistUserId', value: tmpForm.find('input[name=\'workflow_userid\']').val() }, + { name: 'WorkflowActiveUserId', value: tmpForm.find('input[name=\'workflow_valid_userid\']').val() }, + { name: 'WorkflowProcessStartId', value: tmpForm.find('input[name=\'workflow_startup_userid\']').val() }, + { name: 'FilePass', value: tmpForm.find('input[name=\'file_path\']').val() }, + { name: 'Email_address_of_the_person_responsible_for_the_management', value: tmpForm.find('input[name=\'admin_mailaddr\']').val() }, + { name: 'Email_address_of_the_person_conducting_the_research', value: tmpForm.find('input[name=\'researcher_mailaddr\']').val() } + ] + }; + + return fetch(workflow_url+'/process-api/runtime/process-instances', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Basic ' + btoa('admin:test') + }, + body: JSON.stringify(requestData) + }); + }).then(function(response) { + if (!response.ok) { + return response.text().then(function(errorText) { + throw new Error('Failed to register data: ' + response.status + ' - ' + errorText); + }); + } + return response.json(); + }).then(function(responseData) { + + return responseData.id; + }).catch(function(error) { + console.error('Error during workflow registration:', error); + return null; + }); + } + + registerCombinedWorkflowData().then(function(processId) { + $osf.ajaxJSON('post', '/api/v1/addons/workflow/start_workflow/', { + data: { + workflow_engine: '', + workflow_name: '', + workflow_id: '', + creator_token: self.context.currentUser.id, + admin_token: '', + executor_token: '', + process_id: processId, + process_name: '', + workflow_project_id: tmpForm.find('input[name=\'workflow_project_id\']').val(), + process_project_id: tmpForm.find('input[name=\'process_project_id\']').val(), + workflow_userid: tmpForm.find('input[name=\'workflow_userid\']').val(), + workflow_valid_userid: tmpForm.find('input[name=\'workflow_valid_userid\']').val(), + workflow_startup_userid: tmpForm.find('input[name=\'workflow_startup_userid\']').val(), + file_path: tmpForm.find('input[name=\'file_path\']').val(), + admin_mailaddr: tmpForm.find('input[name=\'admin_mailaddr\']').val(), + researcher_mailaddr: tmpForm.find('input[name=\'researcher_mailaddr\']').val() + }, + }).done(function(resp) { + if(resp.status === 'OK'){ + $.ajax({ + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + }, + type: 'PATCH', + url: window.contextVars.apiV2Prefix + 'files' + self.file.path + '/', + data: JSON.stringify({ + data: { + type: 'files', + id: self.context.file.id, + attributes: { + locked: true + } + } + }), + xhrFields: { withCredentials: true } + }) + .done(function(patchResp) { + loadingMessage.modal('hide'); + alert(_('The workflow process is complete.')); + }) + .fail(function(patchResp) { + loadingMessage.modal('hide'); + alert(_('The workflow process has failed.')); + }); + } + }).fail(function(resp) { + }); + }); + }).fail(function(resp) { + }); + } + }); + }); + $(document).on('fileviewpage:checkin', function() { var url = window.contextVars.apiV2Prefix + 'files' + self.file.path + '/'; $osf.ajaxJSON('PUT', url, { @@ -566,6 +787,11 @@ var FileViewPage = { } }}, _('Revisions')) ]), + + (ctrl.context.currentUser.isAdmin) ? m('.btn-group.m-t-xs', [ + m('a.btn.btn-sm.btn-success', {onclick: $(document).trigger.bind($(document), 'fileviewpage:approval')}, _('Request for administrator approval to publish')) + ]) : '', + ( window.contextVars.wopi.onlyoffice_url && ctrl.file.name.match(editExtensions) && ctrl.isLatestVersion && ctrl.canEdit() ) ? m('.btn-group.m-t-xs', [ @@ -633,4 +859,4 @@ module.exports = function(context) { } return m.component(FileViewPage, context); -}; +}; \ No newline at end of file diff --git a/website/static/js/logActionsList.json b/website/static/js/logActionsList.json index 961ed64adf9..3f9a8ad8d5d 100644 --- a/website/static/js/logActionsList.json +++ b/website/static/js/logActionsList.json @@ -51,6 +51,8 @@ "file_metadata_updated": "${user} updated the file metadata for ${path}", "checked_out": "${user} checked out ${kind} ${path} from ${node}", "checked_in": "${user} checked in ${kind} ${path} to ${node}", + "locked": "${user} locked ${kind} ${path} in ${node}", + "unlocked": "${user} unlocked ${kind} ${path} in ${node}", "comment_added": "${user} added a comment ${comment_location} in ${node}", "comment_removed": "${user} deleted a comment ${comment_location} in ${node}", "comment_restored": "${user} restored a comment ${comment_location} in ${node}", diff --git a/website/static/js/logActionsList_extract.js b/website/static/js/logActionsList_extract.js index 5dc03080bd4..4925a48da9c 100644 --- a/website/static/js/logActionsList_extract.js +++ b/website/static/js/logActionsList_extract.js @@ -1,4 +1,4 @@ -//Make the sentence correspond with 'logActionsList.json' for i18n +//make the sentence correspond with 'logActionsList_extract.js' for i18n var _ = require('js/rdmGettext')._; var project_created = _('${user} created ${node}'); var project_registered = _('${user} registered ${node}'); @@ -13,17 +13,19 @@ var group_added = _('${user} added ${group} to ${node}'); var group_removed = _('${user} removed ${group} from ${node}'); var group_updated = _('${user} changed ${group} permissions to ${node}'); var made_public = _('${user} made ${node} public'); -var made_public_no_user =  _('${node} made public'); +var made_public_no_user = _('${node} made public'); var made_private = _('${user} made ${node} private'); var tag_added = _('${user} added tag ${tag} to ${node}'); var tag_removed = _('${user} removed tag ${tag} from ${node}'); var edit_title = _('${user} changed the title from ${title_original} to ${title_new}'); var edit_description = _('${user} edited description of ${node}'); +var category_updated = _('${user} changed the category of ${node}'); +var article_doi_updated = _('${user} changed the article_doi of ${node}'); var updated_fields = _('${user} changed the ${updated_fields} for ${node}'); var external_ids_added = _('${user} created external identifier(s) ${identifiers} on ${node}'); var custom_citation_added = _('${user} created a custom citation for ${node}'); var custom_citation_edited = _('${user} edited a custom citation for ${node}'); -var custom_citation_removed = _('${user} removed a custom citation for ${node}'); +var custom_citation_removed = _('${user} removed a custom citation from ${node}'); var contributor_added = _('${user} added ${contributors} as contributor(s) to ${node}'); var contributor_removed = _('${user} removed ${contributors} as contributor(s) from ${node}'); var contributor_rejected = _('${contributors} cancelled invitation as contributor(s) from ${node}'); @@ -49,6 +51,8 @@ var file_restored = _('${user} restored file ${path} from ${node}'); var file_metadata_updated = _('${user} updated the file metadata for ${path}'); var checked_out = _('${user} checked out ${kind} ${path} from ${node}'); var checked_in = _('${user} checked in ${kind} ${path} to ${node}'); +var locked = _('${user} locked ${kind} ${path} in ${node}'); +var unlocked = _('${user} unlocked ${kind} ${path} in ${node}'); var comment_added = _('${user} added a comment ${comment_location} in ${node}'); var comment_removed = _('${user} deleted a comment ${comment_location} in ${node}'); var comment_restored = _('${user} restored a comment ${comment_location} in ${node}'); @@ -60,14 +64,17 @@ var embargo_cancelled = _('${user} cancelled embargoed registration of ${node}') var embargo_completed = _('${user} completed embargo of ${node}'); var embargo_completed_no_user = _('Embargo for ${node} completed'); var embargo_terminated = _('Embargo for ${node} ended'); -var retraction_initiated = _('${user} initiated withdrawal of registration of ${node}'); -var retraction_initiated_no_user = _('A withdrawal of registration of ${node} is proposed'); -var retraction_approved = _('${user} approved withdrawal of registration of ${node}'); -var retraction_cancelled = _('${user} cancelled withdrawal of registration of ${node}'); -var registration_initiated = _('${user} initiated registration of ${node}'); -var registration_approved = _('${user} approved registration of ${node}'); -var registration_approved_no_user = _('Registration of ${node} approved'); -var registration_cancelled = _('${user} cancelled registration of ${node}'); +var retraction_initiated = _('${user} initiated withdrawal of a registration of ${node}'); +var retraction_initiated_no_user = _('A withdrawal of a registration of ${node} was proposed'); +var retraction_approved = _('${user} approved a withdrawal of a registration of ${node}'); +var retraction_approved_no_user = _('A withdrawal of a registration of ${node} was approved'); +var retraction_cancelled = _('${user} cancelled withdrawal of a registration of ${node}'); +var external_registration_created = _('A registration of ${node} was created on an external registry.'); +var external_registration_imported = _('A registration of ${node} was imported to OSF from an external registry.'); +var registration_initiated = _('${user} initiated a registration of ${node}'); +var registration_approved = _('${user} approved a registration of ${node}'); +var registration_approved_no_user = _('Registration of ${node} was approved'); +var registration_cancelled = _('${user} cancelled a registration of ${node}'); var node_created = _('${user} created ${node}'); var node_forked = _('${user} created fork from ${forked_from}'); var node_removed = _('${user} removed ${node}'); @@ -85,9 +92,18 @@ var affiliated_institution_removed = _('${user} removed ${institution} affiliati var preprint_initiated = _('${user} made ${node} a ${preprint} on ${preprint_provider} Preprints'); var preprint_file_updated = _('${user} updated the primary file of this ${preprint} on ${preprint_provider} Preprints'); var preprint_license_updated = _('${user} updated the license of this ${preprint} on ${preprint_provider} Preprints ${license}'); -var subjects_updated = _('${user} updated the subjects on ${node} to ${subjects}'); +var subjects_updated = _('${user} updated the subjects on ${node}'); var view_only_link_added = _('${user} created ${anonymous_link} view-only link to ${node}'); var view_only_link_removed = _('${user} removed ${anonymous_link} view-only link to ${node}'); +var has_coi_updated = _('${user} changed the conflict of interest statement availability for ${preprint}.'); +var coi_statement_updated = _('${user} changed the conflict of interest statement for ${preprint}.'); +var has_data_links_updated = _('${user} has updated the has links to data field to ${value}'); +var data_links_updated = _('${user} has updated their data links'); +var why_no_data_updated = _('${user} has updated their data statement'); +var has_prereg_links_updated = _('${user} has updated their preregistration data link availability to ${value}'); +var prereg_links_updated = _('${user} has updated their preregistration data links'); +var why_no_prereg_updated = _('${user} has updated their preregistration data availability statement'); +var prereg_links_info_updated = _('${user} has updated their preregistration links to ${value}'); var timestamp_all_verified = _('${user} verified timestamp'); var timestamp_all_added = _('${user} requested trusted timestamp'); var timestamp_added = _('${user} requested trusted timestamp file ${path}'); @@ -96,23 +112,6 @@ var mapcore_map_group_not_created = _('[MAPCORE_SYNC:ERROR] ${user} cannot creat var mapcore_map_group_not_updated = _('[MAPCORE_SYNC:ERROR] mAP group for GRDM project <${node}> cannot be updated (See logs for details)'); var mapcore_rdm_project_not_updated = _('[MAPCORE_SYNC:ERROR] GRDM project <${node}> cannot be updated with mAP group (See logs for details)'); var mapcore_rdm_unknown_user = _('[MAPCORE_SYNC:NOTICE] Unknown (unregistered in GRDM) users belong to mAP group <${node}> (ignored) (See logs for details)'); -var azureblobstorage_bucket_linked = _('${user} linked the Azure Blob Storage container ${bucket} to ${node}'); -var azureblobstorage_bucket_unlinked = _('${user} unselected the Azure Blob Storage container ${bucket} in ${node}'); -var azureblobstorage_file_added = _('${user} added file ${path} to Azure Blob Storage container ${bucket} in ${node}'); -var azureblobstorage_file_removed = _('${user} removed ${path} in Azure Blob Storage container ${bucket} in ${node}'); -var azureblobstorage_file_updated = _('${user} updated file ${path} in Azure Blob Storage container ${bucket} in ${node}'); -var azureblobstorage_folder_created = _('${user} created folder ${path} in Azure Blob Storage container ${bucket} in ${node}'); -var azureblobstorage_node_authorized = _('${user} authorized the Azure Blob Storage addon for ${node}'); -var azureblobstorage_node_deauthorized = _('${user} deauthorized the Azure Blob Storage addon for ${node}'); -var azureblobstorage_node_deauthorized_no_user = _('Azure Blob Storage addon for ${node} deauthorized'); -var bitbucket_file_added = _('${user} added file ${path} to Bitbucket repo ${bitbucket_repo} in ${node}'); -var bitbucket_file_removed = _('${user} removed ${path_type} ${path} in Bitbucket repo ${bitbucket_repo} in ${node}'); -var bitbucket_file_updated = _('${user} updated file ${path} in Bitbucket repo ${bitbucket_repo} in ${node}'); -var bitbucket_folder_created = _('${user} created folder ${path} in Bitbucket repo ${bitbucket_repo} in ${node}'); -var bitbucket_node_authorized = _('${user} authorized the Bitbucket addon for ${node}'); -var bitbucket_node_deauthorized = _('${user} deauthorized the Bitbucket addon for ${node}'); -var bitbucket_node_deauthorized_no_user = _('Bitbucket addon for ${node} deauthorized'); -var bitbucket_repo_linked = _('${user} linked Bitbucket repo ${bitbucket_repo} to ${node}'); var box_file_added = _('${user} added file ${path} to Box in ${node}'); var box_file_removed = _('${user} removed ${path_type} ${path} from Box in ${node}'); var box_file_updated = _('${user} updated file ${path} in Box in ${node}'); @@ -121,9 +120,6 @@ var box_folder_selected = _('${user} linked Box folder ${box_folder} to ${node}' var box_node_authorized = _('${user} authorized the Box addon in ${node}'); var box_node_deauthorized = _('${user} deauthorized the Box addon for ${node}'); var box_node_deauthorized_no_user = _('Box addon for ${node} deauthorized'); -var citation_added = _('${user} added a citation ${citation} to ${node}'); -var citation_edited = _('${user} updated a citation ${citation} in ${node}'); -var citation_removed = _('${user} removed a citation ${citation} in ${node}'); var dataverse_file_added = _('${user} added file ${filename} to Dataverse dataset ${dataset} in ${node}'); var dataverse_file_removed = _('${user} removed file ${filename} from Dataverse dataset ${dataset} in ${node}'); var dataverse_dataset_linked = _('${user} linked Dataverse dataset ${dataset} to ${node}'); @@ -141,14 +137,6 @@ var dropbox_folder_selected = _('${user} linked Dropbox folder ${dropbox_folder} var dropbox_node_authorized = _('${user} authorized the Dropbox addon for ${node}'); var dropbox_node_deauthorized = _('${user} deauthorized the Dropbox addon for ${node}'); var dropbox_node_deauthorized_no_user = _('Dropbox addon for ${node} deauthorized'); -var dropboxbusiness_file_added = _('${user} added file ${path} to Dropbox Business in ${node}'); -var dropboxbusiness_file_removed = _('${user} removed ${path_type} ${path} from Dropbox Business in ${node}'); -var dropboxbusiness_file_updated = _('${user} updated file ${path} in Dropbox Business in ${node}'); -var dropboxbusiness_folder_created = _('${user} created folder ${path} in Dropbox Business in ${node}'); -var dropboxbusiness_folder_selected = _('${user} linked Dropbox Business folder ${dropboxbusiness_folder} to ${node}'); -var dropboxbusiness_node_authorized = _('${user} authorized the Dropbox Business addon for ${node}'); -var dropboxbusiness_node_deauthorized = _('${user} deauthorized the Dropbox Business addon for ${node}'); -var dropboxbusiness_node_deauthorized_no_user = _('Dropbox Business addon for ${node} deauthorized'); var figshare_folder_selected = _('${user} linked figshare ${folder} ${folder_name} to ${node}'); var figshare_content_unlinked = _('${user} unlinked content from figshare in ${node}'); var figshare_file_added = _('${user} added file ${path} to figshare in ${node}'); @@ -174,6 +162,38 @@ var gitlab_node_authorized = _('${user} authorized the GitLab addon for ${node}' var gitlab_node_deauthorized = _('${user} deauthorized the GitLab addon for ${node}'); var gitlab_node_deauthorized_no_user = _('GitLab addon for ${node} deauthorized'); var gitlab_repo_linked = _('${user} linked GitLab repo ${gitlab_repo} to ${node}'); +var mendeley_folder_selected = _('${user} linked Mendeley folder ${folder_name} to ${node}'); +var mendeley_node_authorized = _('${user} authorized the Mendeley addon for ${node}'); +var mendeley_node_deauthorized = _('${user} deauthorized the Mendeley addon for ${node}'); +var zotero_folder_selected = _('${user} linked Zotero folder ${folder_name} to ${node}'); +var zotero_library_selected = _('${user} linked Zotero library ${library_name} to ${node}'); +var zotero_node_authorized = _('${user} authorized the Zotero addon for ${node}'); +var zotero_node_deauthorized = _('${user} deauthorized the Zotero addon for ${node}'); +var owncloud_file_added = _('${user} added file ${path} to ownCloud in ${node}'); +var owncloud_file_removed = _('${user} removed ${path_type} ${path} from ownCloud in ${node}'); +var owncloud_file_updated = _('${user} updated file ${path} in ownCloud in ${node}'); +var owncloud_folder_created = _('${user} created folder ${path} in ownCloud in ${node}'); +var owncloud_folder_selected = _('${user} linked ownCloud folder ${folder} to ${node}'); +var owncloud_node_authorized = _('${user} authorized the ownCloud addon for ${node}'); +var owncloud_node_deauthorized = _('${user} deauthorized the ownCloud addon for ${node}'); +var owncloud_node_deauthorized_no_user = _('ownCloud addon for ${node} deauthorized'); +var onedrive_file_added = _('${user} added file ${path} to Microsoft OneDrive in ${node}'); +var onedrive_file_removed = _('${user} removed ${path_type} ${path} from Microsoft OneDrive in ${node}'); +var onedrive_file_updated = _('${user} updated file ${path} in Microsoft OneDrive in ${node}'); +var onedrive_folder_created = _('${user} created folder ${path} in Microsoft OneDrive in ${node}'); +var onedrive_folder_selected = _('${user} linked Microsoft OneDrive folder ${onedrive_folder} to ${node}'); +var onedrive_node_authorized = _('${user} authorized the Microsoft OneDrive addon for ${node}'); +var onedrive_node_deauthorized = _('${user} deauthorized the Microsoft OneDrive addon for ${node}'); +var onedrive_node_deauthorized_no_user = _('Microsoft OneDrive addon for ${node} deauthorized'); +var s3_bucket_linked = _('${user} linked the Amazon S3 bucket ${bucket} to ${node}'); +var s3_bucket_unlinked = _('${user} unselected the Amazon S3 bucket ${bucket} in ${node}'); +var s3_file_added = _('${user} added file ${path} to Amazon S3 bucket ${bucket} in ${node}'); +var s3_file_removed = _('${user} removed ${path} in Amazon S3 bucket ${bucket} in ${node}'); +var s3_file_updated = _('${user} updated file ${path} in Amazon S3 bucket ${bucket} in ${node}'); +var s3_folder_created = _('${user} created folder ${path} in Amazon S3 bucket ${bucket} in ${node}'); +var s3_node_authorized = _('${user} authorized the Amazon S3 addon for ${node}'); +var s3_node_deauthorized = _('${user} deauthorized the Amazon S3 addon for ${node}'); +var s3_node_deauthorized_no_user = _('Amazon S3 addon for ${node} deauthorized'); var googledrive_file_added = _('${user} added file ${googledrive_path} to Google Drive in ${node}'); var googledrive_file_removed = _('${user} removed ${path_type} ${googledrive_path} from Google Drive in ${node}'); var googledrive_file_updated = _('${user} updated file ${googledrive_path} in Google Drive in ${node}'); @@ -182,6 +202,90 @@ var googledrive_folder_selected = _('${user} linked Google Drive folder ${google var googledrive_node_authorized = _('${user} authorized the Google Drive addon for ${node}'); var googledrive_node_deauthorized = _('${user} deauthorized the Google Drive addon for ${node}'); var googledrive_node_deauthorized_no_user = _('Google Drive addon for ${node} deauthorized'); +var bitbucket_file_added = _('${user} added file ${path} to Bitbucket repo ${bitbucket_repo} in ${node}'); +var bitbucket_file_removed = _('${user} removed ${path_type} ${path} in Bitbucket repo ${bitbucket_repo} in ${node}'); +var bitbucket_file_updated = _('${user} updated file ${path} in Bitbucket repo ${bitbucket_repo} in ${node}'); +var bitbucket_folder_created = _('${user} created folder ${path} in Bitbucket repo ${bitbucket_repo} in ${node}'); +var bitbucket_node_authorized = _('${user} authorized the Bitbucket addon for ${node}'); +var bitbucket_node_deauthorized = _('${user} deauthorized the Bitbucket addon for ${node}'); +var bitbucket_node_deauthorized_no_user = _('Bitbucket addon for ${node} deauthorized'); +var bitbucket_repo_linked = _('${user} linked Bitbucket repo ${bitbucket_repo} to ${node}'); +var swift_bucket_linked = _('${user} linked the Swift container ${bucket} to ${node}'); +var swift_bucket_unlinked = _('${user} unselected the Swift container ${bucket} in ${node}'); +var swift_file_added = _('${user} added file ${path} to Swift container ${bucket} in ${node}'); +var swift_file_removed = _('${user} removed ${path} in Swift container ${bucket} in ${node}'); +var swift_file_updated = _('${user} updated file ${path} in Swift container ${bucket} in ${node}'); +var swift_folder_created = _('${user} created folder ${path} in Swift container ${bucket} in ${node}'); +var swift_node_authorized = _('${user} authorized the Swift addon for ${node}'); +var swift_node_deauthorized = _('${user} deauthorized the Swift addon for ${node}'); +var swift_node_deauthorized_no_user = _('Swift addon for ${node} deauthorized'); +var azureblobstorage_bucket_linked = _('${user} linked the Azure Blob Storage container ${bucket} to ${node}'); +var azureblobstorage_bucket_unlinked = _('${user} unselected the Azure Blob Storage container ${bucket} in ${node}'); +var azureblobstorage_file_added = _('${user} added file ${path} to Azure Blob Storage container ${bucket} in ${node}'); +var azureblobstorage_file_removed = _('${user} removed ${path} in Azure Blob Storage container ${bucket} in ${node}'); +var azureblobstorage_file_updated = _('${user} updated file ${path} in Azure Blob Storage container ${bucket} in ${node}'); +var azureblobstorage_folder_created = _('${user} created folder ${path} in Azure Blob Storage container ${bucket} in ${node}'); +var azureblobstorage_node_authorized = _('${user} authorized the Azure Blob Storage addon for ${node}'); +var azureblobstorage_node_deauthorized = _('${user} deauthorized the Azure Blob Storage addon for ${node}'); +var azureblobstorage_node_deauthorized_no_user = _('Azure Blob Storage addon for ${node} deauthorized'); +var weko_file_added = _('${user} added draft file ${filename} to WEKO index ${dataset} in ${node}'); +var weko_file_removed = _('${user} removed draft file ${filename} from WEKO index ${dataset} in ${node}'); +var weko_index_linked = _('${user} linked WEKO index ${dataset} to ${node}'); +var weko_folder_created = _('${user} created draft folder ${filename} in WEKO index ${dataset} in ${node}'); +var weko_item_deposited = _('${user} deposit item ${path} in WEKO index ${dataset} in ${node}'); +var weko_node_authorized = _('${user} authorized the WEKO addon for ${node}'); +var weko_node_deauthorized = _('${user} deauthorized the WEKO addon for ${node}'); +var weko_node_deauthorized_no_user = _('WEKO addon for ${node} deauthorized'); +var s3compat_bucket_linked = _('${user} linked the S3 Compatible Storage bucket ${bucket} to ${node}'); +var s3compat_bucket_unlinked = _('${user} unselected the S3 Compatible Storage bucket ${bucket} in ${node}'); +var s3compat_file_added = _('${user} added file ${path} to S3 Compatible Storage bucket ${bucket} in ${node}'); +var s3compat_file_removed = _('${user} removed ${path} in S3 Compatible Storage bucket ${bucket} in ${node}'); +var s3compat_file_updated = _('${user} updated file ${path} in S3 Compatible Storage bucket ${bucket} in ${node}'); +var s3compat_folder_created = _('${user} created folder ${path} in S3 Compatible Storage bucket ${bucket} in ${node}'); +var s3compat_node_authorized = _('${user} authorized the S3 Compatible Storage addon for ${node}'); +var s3compat_node_deauthorized = _('${user} deauthorized the S3 Compatible Storage addon for ${node}'); +var s3compat_node_deauthorized_no_user = _('S3 Compatible Storage addon for ${node} deauthorized'); +var s3compatinstitutions_file_added = _('${user} added file ${path} to S3 Compatible Storage for Institutions in ${node}'); +var s3compatinstitutions_file_removed = _('${user} removed ${path_type} ${path} from S3 Compatible Storage for Institutions in ${node}'); +var s3compatinstitutions_file_updated = _('${user} updated file ${path} in S3 Compatible Storage for Institutions in ${node}'); +var s3compatinstitutions_folder_created = _('${user} created folder ${path} in S3 Compatible Storage for Institutions in ${node}'); +var s3compatinstitutions_folder_selected = _('${user} linked S3 Compatible Storage for Institutions folder ${folder} to ${node}'); +var s3compatinstitutions_node_authorized = _('${user} authorized the S3 Compatible Storage for Institutions addon for ${node}'); +var s3compatinstitutions_node_deauthorized = _('${user} deauthorized the S3 Compatible Storage for Institutions addon for ${node}'); +var s3compatinstitutions_node_deauthorized_no_user = _('S3 Compatible Storage for Institutions addon for ${node} deauthorized'); +var s3compatb3_bucket_linked = _('${user} linked the Oracle Cloud Infrastructure Object Storage bucket ${bucket} to ${node}'); +var s3compatb3_bucket_unlinked = _('${user} unselected the Oracle Cloud Infrastructure Object Storage bucket ${bucket} in ${node}'); +var s3compatb3_file_added = _('${user} added file ${path} to Oracle Cloud Infrastructure Object Storage bucket ${bucket} in ${node}'); +var s3compatb3_file_removed = _('${user} removed ${path} in Oracle Cloud Infrastructure Object Storage bucket ${bucket} in ${node}'); +var s3compatb3_file_updated = _('${user} updated file ${path} in Oracle Cloud Infrastructure Object Storage bucket ${bucket} in ${node}'); +var s3compatb3_folder_created = _('${user} created folder ${path} in Oracle Cloud Infrastructure Object Storage bucket ${bucket} in ${node}'); +var s3compatb3_node_authorized = _('${user} authorized the Oracle Cloud Infrastructure Object Storage addon for ${node}'); +var s3compatb3_node_deauthorized = _('${user} deauthorized the Oracle Cloud Infrastructure Object Storage addon for ${node}'); +var s3compatb3_node_deauthorized_no_user = _('Oracle Cloud Infrastructure Object Storage addon for ${node} deauthorized'); +var ociinstitutions_file_added = _('${user} added file ${path} to Oracle Cloud Infrastructure for Institutions in ${node}'); +var ociinstitutions_file_removed = _('${user} removed ${path_type} ${path} from Oracle Cloud Infrastructure for Institutions in ${node}'); +var ociinstitutions_file_updated = _('${user} updated file ${path} in Oracle Cloud Infrastructure for Institutions in ${node}'); +var ociinstitutions_folder_created = _('${user} created folder ${path} in Oracle Cloud Infrastructure for Institutions in ${node}'); +var ociinstitutions_folder_selected = _('${user} linked Oracle Cloud Infrastructure for Institutions folder ${folder} to ${node}'); +var ociinstitutions_node_authorized = _('${user} authorized the Oracle Cloud Infrastructure for Institutions addon for ${node}'); +var ociinstitutions_node_deauthorized = _('${user} deauthorized the Oracle Cloud Infrastructure for Institutions addon for ${node}'); +var ociinstitutions_node_deauthorized_no_user = _('Oracle Cloud Infrastructure for Institutions addon for ${node} deauthorized'); +var nextcloud_file_added = _('${user} added file ${path} to Nextcloud in ${node}'); +var nextcloud_file_removed = _('${user} removed ${path_type} ${path} from Nextcloud in ${node}'); +var nextcloud_file_updated = _('${user} updated file ${path} in Nextcloud in ${node}'); +var nextcloud_folder_created = _('${user} created folder ${path} in Nextcloud in ${node}'); +var nextcloud_folder_selected = _('${user} linked Nextcloud folder ${folder} to ${node}'); +var nextcloud_node_authorized = _('${user} authorized the Nextcloud addon for ${node}'); +var nextcloud_node_deauthorized = _('${user} deauthorized the Nextcloud addon for ${node}'); +var nextcloud_node_deauthorized_no_user = _('Nextcloud addon for ${node} deauthorized'); +var nextcloudinstitutions_file_added = _('${user} added file ${path} to Nextcloud (for Institutions) in ${node}'); +var nextcloudinstitutions_file_removed = _('${user} removed ${path_type} ${path} from Nextcloud (for Institutions) in ${node}'); +var nextcloudinstitutions_file_updated = _('${user} updated file ${path} in Nextcloud (for Institutions) in ${node}'); +var nextcloudinstitutions_folder_created = _('${user} created folder ${path} in Nextcloud (for Institutions) in ${node}'); +var nextcloudinstitutions_folder_selected = _('${user} linked Nextcloud (for Institutions) folder ${folder} to ${node}'); +var nextcloudinstitutions_node_authorized = _('${user} authorized the Nextcloud (for Institutions) addon for ${node}'); +var nextcloudinstitutions_node_deauthorized = _('${user} deauthorized the Nextcloud (for Institutions) addon for ${node}'); +var nextcloudinstitutions_node_deauthorized_no_user = _('Nextcloud (for Institutions) addon for ${node} deauthorized'); var iqbrims_file_added = _('${user} added file ${iqbrims_path} to IQB-RIMS in ${node}'); var iqbrims_file_removed = _('${user} removed ${path_type} ${iqbrims_path} from IQB-RIMS in ${node}'); var iqbrims_file_updated = _('${user} updated file ${iqbrims_path} in IQB-RIMS in ${node}'); @@ -284,3 +388,25 @@ var ociinstitutions_folder_selected = _('${user} linked Oracle Cloud Infrastruct var ociinstitutions_node_authorized = _('${user} authorized the Oracle Cloud Infrastructure for Institutions addon for ${node}'); var ociinstitutions_node_deauthorized = _('${user} deauthorized the Oracle Cloud Infrastructure for Institutions addon for ${node}'); var ociinstitutions_node_deauthorized_no_user = _('Oracle Cloud Infrastructure for Institutions addon for ${node} deauthorized'); +var dropboxbusiness_file_added = _('${user} added file ${path} to Dropbox Business in ${node}'); +var dropboxbusiness_file_removed = _('${user} removed ${path_type} ${path} from Dropbox Business in ${node}'); +var dropboxbusiness_file_updated = _('${user} updated file ${path} in Dropbox Business in ${node}'); +var dropboxbusiness_folder_created = _('${user} created folder ${path} in Dropbox Business in ${node}'); +var dropboxbusiness_folder_selected = _('${user} linked Dropbox Business folder ${dropboxbusiness_folder} to ${node}'); +var dropboxbusiness_node_authorized = _('${user} authorized the Dropbox Business addon for ${node}'); +var dropboxbusiness_node_deauthorized = _('${user} deauthorized the Dropbox Business addon for ${node}'); +var dropboxbusiness_node_deauthorized_no_user = _('Dropbox Business addon for ${node} deauthorized'); +var onedrivebusiness_file_added = _('${user} added file ${path} to the OneDrive team folder ${folder} in ${node}'); +var onedrivebusiness_file_removed = _('${user} removed ${path} in the OneDrive team folder ${folder} in ${node}'); +var onedrivebusiness_file_updated = _('${user} updated file ${path} in the OneDrive team folder ${folder} in ${node}'); +var onedrivebusiness_folder_created = _('${user} created folder ${path} in the OneDrive team folder ${folder} in ${node}'); +var onedrivebusiness_node_authorized = _('${user} authorized the OneDrive for Office365 addon for ${node}'); +var onedrivebusiness_node_deauthorized = _('${user} deauthorized the OneDrive for Office365 addon for ${node}'); +var onedrivebusiness_node_deauthorized_no_user = _('OneDrive for Office365 addon for ${node} deauthorized'); +var metadata_added = _('${user} added metadata in ${node}'); +var metadata_file_added = _('${user} added metadata ${path} in ${node}'); +var metadata_file_updated = _('${user} updated metadata ${path} in ${node}'); +var metadata_file_deleted = _('${user} deleted metadata ${path} in ${node}'); +var workflow_file_added = _('${user} created a ${filename} workflow in ${node}'); +var workflow_file_updated = _('${user} updated a ${filename} workflow in ${node}'); +var workflow_file_deleted = _('${user} deleted a ${filename} workflow in ${node}'); diff --git a/website/static/js/logTextParser.js b/website/static/js/logTextParser.js index ec84b64cc5c..7c44d83dce2 100644 --- a/website/static/js/logTextParser.js +++ b/website/static/js/logTextParser.js @@ -495,6 +495,7 @@ var LogPieces = { var acceptableLinkedItems = ['osf_storage_file_added', 'osf_storage_file_updated', 'file_tag_added', 'file_tag_removed', 'github_file_added', 'github_file_updated', 'box_file_added', 'box_file_updated', 'dropbox_file_added', 'dropbox_file_updated', 's3_file_added', 's3_file_updated', 'figshare_file_added', 'checked_in', 'checked_out', + 'locked', 'unlocked', 'nextcloud_file_added', 'nextcloud_file_updated', 'nextcloudinstitutions_file_added', 'nextcloudinstitutions_file_updated', 'dropboxbusiness_file_added', 'dropboxbusiness_file_updated', diff --git a/website/templates/project/project.mako b/website/templates/project/project.mako index e2eaa056a0e..312150f0519 100644 --- a/website/templates/project/project.mako +++ b/website/templates/project/project.mako @@ -313,7 +313,6 @@ - <%def name="title()">${node['title']} <%include file="project/modal_add_pointer.mako"/> @@ -427,7 +426,6 @@ % endfor -
@@ -469,14 +467,15 @@
- % if addons: % for addon in addons_enabled: % if addons[addon]['has_widget']: - %if addon != 'wiki' and addon != 'iqbrims': ## We already show the wiki widget at the top + + %if addon != 'wiki' and addon != 'iqbrims' and addon != 'workflow': ## We already show the wiki widget at the top + ${ render_addon_widget.render_addon_widget(addon, addons_widget_data[addon]) } %endif % endif @@ -489,6 +488,9 @@
+ % if 'workflow' in addons_enabled and addons['workflow']['has_widget']: + ${ render_addon_widget.render_addon_widget('workflow', addons_widget_data['workflow']) } + % endif % if addons: % for addon in addons_enabled: @@ -586,7 +588,6 @@ ${children()} % endif - %if node['tags'] or permissions.WRITE in user['permissions']:
diff --git a/website/templates/project/project_header.mako b/website/templates/project/project_header.mako index 79f51a2d6e3..c3e3d741ec8 100644 --- a/website/templates/project/project_header.mako +++ b/website/templates/project/project_header.mako @@ -47,7 +47,7 @@ % for addon in addons_enabled: - % if addon not in ['binderhub', 'metadata'] and addons[addon]['has_page']: + % if addon not in ['binderhub', 'metadata', 'workflow'] and addons[addon]['has_page']:
  • @@ -92,6 +92,18 @@
  • % endif + % if 'workflow' in addons_enabled and addons['workflow']['has_page']: +
  • + + + % if addons['workflow']['icon'] and addons['workflow']['has_page_icon']: + + % endif + ${addons['workflow']['full_name']} + +
  • + % endif + % if project_analytics: % if node['is_public'] or user['is_contributor_or_group_member']:
  • ${ _("Statistics") }
  • diff --git a/website/templates/project/view_file.mako b/website/templates/project/view_file.mako index 1cae4ae7768..e12cb616be2 100644 --- a/website/templates/project/view_file.mako +++ b/website/templates/project/view_file.mako @@ -205,6 +205,7 @@ guid: ${file_guid | sjson, n}, id: ${file_id | sjson, n}, checkoutUser: ${checkout_user if checkout_user else None | sjson, n}, + lockedUser: ${locked_user if locked_user else None | sjson, n}, versionNames: ${version_names if version_names else [] | sjson, n}, urls: { %if error is None: diff --git a/website/templates/util/render_addon_widget.mako b/website/templates/util/render_addon_widget.mako index 40cc89657fc..ffc8eccea60 100644 --- a/website/templates/util/render_addon_widget.mako +++ b/website/templates/util/render_addon_widget.mako @@ -232,7 +232,26 @@
    % endif + % if addon_name == 'workflow': +
    + +
    ${_("Loading")}
    + + +
    ${_("Error occurred")}
    + + +
    + % if permissions.READ in user['permissions'] and permissions.WRITE in user['permissions']: + ${_("Manage Workflow")} + % endif +
    + +
    + % endif +
    + % else:
    ${addon_data['full_name']} add-on is not configured properly. diff --git a/website/translations/en/LC_MESSAGES/js_messages.po b/website/translations/en/LC_MESSAGES/js_messages.po index 0cffe6d54a4..0c88a713501 100644 --- a/website/translations/en/LC_MESSAGES/js_messages.po +++ b/website/translations/en/LC_MESSAGES/js_messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.6.0\n" "Report-Msgid-Bugs-To: rocs-office@nii.ac.jp\n" -"POT-Creation-Date: 2024-02-21 06:53+0000\n" +"POT-Creation-Date: 2025-03-28 07:48+0000\n" "PO-Revision-Date: 2020-11-16 20:17+0900\n" "Last-Translator: Hiroki Ohashi\n" "Language: en\n" @@ -16,209 +16,226 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.5.1\n" + +#: addons/datasteward/static/datastewardUserConfig.js:96 +#: addons/datasteward/static/datastewardUserConfig.js:97 +msgid "You do not have permission to perform this action." +msgstr "" + +#: addons/datasteward/static/datastewardUserConfig.js:130 +#: addons/datasteward/static/datastewardUserConfig.js:131 +msgid "Cannot disable DataSteward add-on" +msgstr "" + +#: addons/datasteward/static/datastewardUserConfig.js:167 +#: addons/datasteward/static/datastewardUserConfig.js:168 +msgid "Cannot get DataSteward add-on settings" +msgstr "" #: addons/jupyterhub/static/files.js:96 msgid "Launch" msgstr "" -#: addons/metadata/static/files.js:331 +#: addons/metadata/static/files.js:337 msgid "Metadata Schema:" msgstr "" -#: addons/metadata/static/files.js:528 +#: addons/metadata/static/files.js:534 msgid "Paste from Clipboard" msgstr "" -#: addons/metadata/static/files.js:637 addons/metadata/static/files.js:651 -#: website/static/js/fangorn.js:1853 +#: addons/metadata/static/files.js:645 addons/metadata/static/files.js:646 +#: addons/metadata/static/files.js:660 addons/metadata/static/files.js:661 +#: website/static/js/fangorn.js:1860 msgid "Could not copy text" msgstr "" -#: addons/metadata/static/files.js:649 website/static/js/clipboard.js:27 -#: website/static/js/fangorn.js:1847 website/static/js/fangorn.js:1851 +#: addons/metadata/static/files.js:658 website/static/js/clipboard.js:27 +#: website/static/js/fangorn.js:1854 website/static/js/fangorn.js:1858 msgid "Copied!" msgstr "" -#: addons/metadata/static/files.js:675 addons/metadata/static/files.js:690 +#: addons/metadata/static/files.js:685 addons/metadata/static/files.js:686 +#: addons/metadata/static/files.js:705 addons/metadata/static/files.js:706 msgid "Could not paste text" msgstr "" -#: addons/metadata/static/files.js:740 addons/metadata/static/files.js:754 -#: addons/metadata/static/files.js:1095 +#: addons/metadata/static/files.js:756 addons/metadata/static/files.js:770 +#: addons/metadata/static/files.js:1119 msgid "Loading..." msgstr "" -#: addons/metadata/static/files.js:752 +#: addons/metadata/static/files.js:768 msgid "Select the destination of the file metadata." msgstr "" -#: addons/metadata/static/files.js:757 +#: addons/metadata/static/files.js:773 msgid "Current Metadata:" msgstr "" -#: addons/metadata/static/files.js:813 +#: addons/metadata/static/files.js:829 msgid "Delete metadata" msgstr "" -#: addons/metadata/static/files.js:816 +#: addons/metadata/static/files.js:832 addons/metadata/static/files.js:833 msgid "Could not list hashes" msgstr "" -#: addons/metadata/static/files.js:824 -#: addons/metadata/static/metadata-fields.js:1041 +#: addons/metadata/static/files.js:841 addons/metadata/static/files.js:842 +#: addons/metadata/static/metadata-fields.js:1159 msgid "Could not list files" msgstr "" -#: addons/metadata/static/files.js:913 addons/metadata/static/files.js:920 +#: addons/metadata/static/files.js:937 addons/metadata/static/files.js:944 msgid "No name" msgstr "" -#: addons/metadata/static/files.js:1005 +#: addons/metadata/static/files.js:1029 msgid "" "There is no draft project metadata compliant with the schema. Create new " "draft project metadata from the Metadata tab:" msgstr "" -#: addons/metadata/static/files.js:1007 addons/metadata/static/files.js:1175 -#: addons/metadata/static/files.js:1189 +#: addons/metadata/static/files.js:1031 addons/metadata/static/files.js:1199 +#: addons/metadata/static/files.js:1213 msgid "Open" msgstr "" -#: addons/metadata/static/files.js:1070 +#: addons/metadata/static/files.js:1094 msgid "There are errors in some fields." msgstr "" -#: addons/metadata/static/files.js:1106 addons/metadata/static/files.js:2149 -#: addons/metadata/static/files.js:2175 website/static/js/folderpicker.js:105 +#: addons/metadata/static/files.js:1130 addons/metadata/static/files.js:2297 +#: addons/metadata/static/files.js:2323 website/static/js/folderpicker.js:105 msgid "Select" msgstr "" -#: addons/metadata/static/files.js:1110 +#: addons/metadata/static/files.js:1134 msgid "Select the destination for the file metadata." msgstr "" -#: addons/metadata/static/files.js:1161 +#: addons/metadata/static/files.js:1185 msgid "Registering..." msgstr "" -#: addons/metadata/static/files.js:1161 +#: addons/metadata/static/files.js:1185 msgid "Deleting..." msgstr "" -#: addons/metadata/static/files.js:1255 addons/metadata/static/files.js:1994 -#: addons/metadata/static/files.js:2072 addons/metadata/static/files.js:2119 -#: addons/metadata/static/files.js:2147 addons/metadata/static/files.js:2173 -#: addons/metadata/static/files.js:2229 -#: addons/metadata/static/metadataImportDatasetButton.js:23 -#: website/static/js/accountSettings.js:267 website/static/js/fangorn.js:2777 +#: addons/metadata/static/files.js:1279 addons/metadata/static/files.js:2138 +#: addons/metadata/static/files.js:2216 addons/metadata/static/files.js:2263 +#: addons/metadata/static/files.js:2295 addons/metadata/static/files.js:2321 +#: addons/metadata/static/files.js:2377 +#: addons/metadata/static/metadataImportDatasetButton.js:24 +#: website/static/js/accountSettings.js:267 website/static/js/fangorn.js:2811 #: website/static/js/folderPickerNodeConfig.js:591 #: website/static/js/pages/profile-settings-addons-page.js:72 #: website/static/js/pages/project-settings-page.js:118 msgid "Close" msgstr "" -#: addons/metadata/static/files.js:1321 +#: addons/metadata/static/files.js:1346 msgid "View Metadata" msgstr "" -#: addons/metadata/static/files.js:1332 +#: addons/metadata/static/files.js:1357 msgid "Edit Metadata" msgstr "" -#: addons/metadata/static/files.js:1343 +#: addons/metadata/static/files.js:1368 msgid "Register Metadata" msgstr "" -#: addons/metadata/static/files.js:1353 +#: addons/metadata/static/files.js:1378 msgid "Delete Metadata" msgstr "" -#: addons/metadata/static/files.js:1407 +#: addons/metadata/static/files.js:1432 msgid "Edit Multiple Metadata" msgstr "" -#: addons/metadata/static/files.js:1417 +#: addons/metadata/static/files.js:1442 msgid "Loading Metadata" msgstr "" -#: addons/metadata/static/files.js:1556 +#: addons/metadata/static/files.js:1584 msgid "Metadata is defined" msgstr "" -#: addons/metadata/static/files.js:1565 +#: addons/metadata/static/files.js:1592 msgid "Some of the children have metadata." msgstr "" -#: addons/metadata/static/files.js:1575 +#: addons/metadata/static/files.js:1602 msgid "File not found: " msgstr "" -#: addons/metadata/static/files.js:1998 addons/metadata/static/files.js:2074 +#: addons/metadata/static/files.js:2142 addons/metadata/static/files.js:2218 #: website/static/js/contribManager.js:440 #: website/static/js/filepage/editor.js:180 msgid "Save" msgstr "" -#: addons/metadata/static/files.js:2010 addons/metadata/static/files.js:2195 +#: addons/metadata/static/files.js:2154 addons/metadata/static/files.js:2343 msgid "Copy to clipboard" msgstr "" -#: addons/metadata/static/files.js:2026 +#: addons/metadata/static/files.js:2170 msgid "" "Renaming, moving the file/directory, or changing the directory hierarchy " "can break the association of the metadata you have added." msgstr "" -#: addons/metadata/static/files.js:2032 +#: addons/metadata/static/files.js:2176 msgid "Edit File Metadata" msgstr "" -#: addons/metadata/static/files.js:2032 +#: addons/metadata/static/files.js:2176 msgid "View File Metadata" msgstr "" -#: addons/metadata/static/files.js:2053 addons/metadata/static/files.js:2106 +#: addons/metadata/static/files.js:2197 addons/metadata/static/files.js:2250 #: website/static/js/saveManager.js:24 msgid "You have unsaved changes." msgstr "" -#: addons/metadata/static/files.js:2089 +#: addons/metadata/static/files.js:2233 msgid "Edit Multiple File Metadata" msgstr "" -#: addons/metadata/static/files.js:2121 website/static/js/fangorn.js:1551 -#: website/static/js/fangorn.js:1574 website/static/js/fangorn.js:2469 -#: website/static/js/fangorn.js:2505 website/static/js/filepage/index.js:204 -#: website/static/js/filepage/index.js:519 website/static/js/myProjects.js:1637 +#: addons/metadata/static/files.js:2269 website/static/js/fangorn.js:1558 +#: website/static/js/fangorn.js:1581 website/static/js/fangorn.js:2476 +#: website/static/js/fangorn.js:2512 website/static/js/filepage/index.js:204 +#: website/static/js/filepage/index.js:736 website/static/js/myProjects.js:1637 msgid "Delete" msgstr "" -#: addons/metadata/static/files.js:2134 +#: addons/metadata/static/files.js:2282 msgid "Delete File Metadata" msgstr "" -#: addons/metadata/static/files.js:2139 +#: addons/metadata/static/files.js:2287 msgid "Do you want to delete metadata? This operation cannot be undone." msgstr "" -#: addons/metadata/static/files.js:2156 +#: addons/metadata/static/files.js:2304 msgid "Select a destination for file metadata registration" msgstr "" -#: addons/metadata/static/files.js:2205 +#: addons/metadata/static/files.js:2353 msgid "Fix file metadata" msgstr "" -#: addons/metadata/static/files.js:2234 +#: addons/metadata/static/files.js:2382 msgid "Paste Metadata" msgstr "" -#: addons/metadata/static/files.js:2239 +#: addons/metadata/static/files.js:2387 msgid "Press Ctrl-V (Command-V) to paste." msgstr "" -#: addons/metadata/static/files.js:2241 +#: addons/metadata/static/files.js:2389 msgid "" "[Why is this needed?] In this browser, retrieving clipboard values with " "button operations is prohibited. Therefore, you must explicitly indicate " @@ -226,141 +243,116 @@ msgid "" "browser menu." msgstr "" -#: addons/metadata/static/metadata-fields.js:896 -#, python-format -msgid "One of this field or \"%s\" field must be filled." -msgstr "" - -msgid "File size exceeds the maximum allowed size." -msgstr "" - -#: addons/metadata/static/metadata-fields.js:911 -msgid "This field can't be blank." -msgstr "" - -#: addons/metadata/static/metadata-fields.js:875 -msgid "Please enter the correct value. " -msgstr "" - -#: addons/metadata/static/metadata-fields.js:252 -msgid "" -"Contacts of data manager can't be blank. Please fill mail address, or " -"organization name, address and phone number." -msgstr "" - -#: addons/metadata/static/metadata-fields.js:577 -msgid "(Not Modified)" +#: addons/metadata/static/metadata-fields.js:243 +#: addons/metadata/static/metadata-fields.js:253 +msgid "Show Items" msgstr "" -#: addons/metadata/static/metadata-fields.js:580 -msgid "Choose..." +#: addons/metadata/static/metadata-fields.js:250 +msgid "Hide Items" msgstr "" -#: addons/metadata/static/metadata-fields.js:213 +#: addons/metadata/static/metadata-fields.js:271 msgid "Clear" msgstr "" -#: addons/metadata/static/metadata-fields.js:235 -#: addons/metadata/static/metadata-fields.js:244 +#: addons/metadata/static/metadata-fields.js:293 +#: addons/metadata/static/metadata-fields.js:302 msgid "Show example" msgstr "" -#: addons/metadata/static/metadata-fields.js:248 +#: addons/metadata/static/metadata-fields.js:306 msgid "Hide example" msgstr "" -#: addons/metadata/static/metadata-fields.js:564 -msgid "Calculate" -msgstr "" - -#: addons/metadata/static/metadata-fields.js:624 -#: addons/metadata/static/metadata-fields.js:672 -msgid "Fill" +#: addons/metadata/static/metadata-fields.js:642 +msgid "(Not Modified)" msgstr "" -#: addons/metadata/static/metadata-fields.js:694 -msgid "Could not generate Data No." +#: addons/metadata/static/metadata-fields.js:645 +msgid "Choose..." msgstr "" -#: addons/metadata/static/metadata-fields.js:728 -msgid "No members" +#: addons/metadata/static/metadata-fields.js:738 +msgid "No data" msgstr "" -#: addons/metadata/static/metadata-fields.js:795 -msgid "e-Rad Researcher Number" +#: addons/metadata/static/metadata-fields.js:749 +#: website/static/js/myProjects.js:1565 +msgid "Add" msgstr "" -#: addons/metadata/static/metadata-fields.js:796 -msgid "Name (Japanese)" +#: addons/metadata/static/metadata-fields.js:980 +msgid "Please enter the correct value. " msgstr "" -#: addons/metadata/static/metadata-fields.js:797 -msgid "Name (English)" +#: addons/metadata/static/metadata-fields.js:1004 +#, python-format +msgid "One of this field or \"%s\" field must be filled." msgstr "" -#: addons/metadata/static/metadata-fields.js:656 -msgid "No data" +#: addons/metadata/static/metadata-fields.js:1019 +msgid "This field can't be blank." msgstr "" -#: addons/metadata/static/metadata-fields.js:667 -#: website/static/js/myProjects.js:1565 -msgid "Add" +#: addons/metadata/static/metadata-fields.js:1135 +msgid "Overwrite already entered value?" msgstr "" -#: addons/metadata/static/metadata-fields.js:1027 -msgid "Overwrite already entered value?" +#: addons/metadata/static/metadata-fields.js:1151 +msgid "File size exceeds the maximum allowed size." msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:25 -#: addons/metadata/static/metadataImportDatasetButton.js:56 -#: addons/metadata/static/metadataImportDatasetButton.js:234 +#: addons/metadata/static/metadataImportDatasetButton.js:26 +#: addons/metadata/static/metadataImportDatasetButton.js:57 +#: addons/metadata/static/metadataImportDatasetButton.js:261 msgid "Import Dataset" msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:41 +#: addons/metadata/static/metadataImportDatasetButton.js:42 msgid "Enter URL to import dataset" msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:44 +#: addons/metadata/static/metadataImportDatasetButton.js:45 msgid "Importing..." msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:48 -#: addons/metadata/static/metadataImportDatasetButton.js:164 -#: addons/metadata/static/metadataImportDatasetButton.js:189 +#: addons/metadata/static/metadataImportDatasetButton.js:49 +#: addons/metadata/static/metadataImportDatasetButton.js:165 +#: addons/metadata/static/metadataImportDatasetButton.js:190 msgid "Error importing dataset: " msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:58 +#: addons/metadata/static/metadataImportDatasetButton.js:59 msgid "Enter the URL of the dataset you would like to import." msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:126 +#: addons/metadata/static/metadataImportDatasetButton.js:127 msgid "Downloaded!" msgstr "" -#: addons/metadata/static/metadataNodeConfig.js:112 +#: addons/metadata/static/metadataNodeConfig.js:113 msgid "Could not GET metadata settings" msgstr "" -#: addons/metadata/static/metadataNodeConfig.js:155 +#: addons/metadata/static/metadataNodeConfig.js:156 msgid "Add-on settings configured." msgstr "" -#: addons/metadata/static/metadataNodeConfig.js:161 +#: addons/metadata/static/metadataNodeConfig.js:162 msgid "Failed to configure add-on settings." msgstr "" #: addons/twofactor/static/twoFactorUserConfig.js:148 #: addons/twofactor/static/twoFactorUserConfig.js:190 -#: addons/weko/static/wekoFangornConfig.js:611 +#: addons/weko/static/wekoFangornConfig.js:621 #: admin/static/js/rdm_addons/rdm-addons-page.js:80 #: website/static/js/accountSettings.js:249 #: website/static/js/accountSettings.js:327 #: website/static/js/accountSettings.js:392 #: website/static/js/accountSettings.js:518 #: website/static/js/accountSettings.js:590 -#: website/static/js/addProjectPlugin.js:346 +#: website/static/js/addProjectPlugin.js:347 #: website/static/js/addonPermissions.js:55 #: website/static/js/addonSettings.js:71 website/static/js/addonSettings.js:134 #: website/static/js/apiApplication.js:249 @@ -371,11 +363,12 @@ msgstr "" #: website/static/js/apiPersonalToken.js:438 #: website/static/js/citationsNodeConfig.js:169 #: website/static/js/citationsNodeConfig.js:187 -#: website/static/js/contribManager.js:444 website/static/js/fangorn.js:562 -#: website/static/js/fangorn.js:567 website/static/js/fangorn.js:1553 -#: website/static/js/fangorn.js:1576 website/static/js/fangorn.js:1629 -#: website/static/js/fangorn.js:1648 website/static/js/fangorn.js:2457 +#: website/static/js/contribManager.js:444 website/static/js/fangorn.js:566 +#: website/static/js/fangorn.js:571 website/static/js/fangorn.js:1557 +#: website/static/js/fangorn.js:1580 website/static/js/fangorn.js:1633 +#: website/static/js/fangorn.js:1652 website/static/js/fangorn.js:2486 #: website/static/js/filepage/index.js:208 +#: website/static/js/filepage/index.js:302 #: website/static/js/folderPickerNodeConfig.js:510 #: website/static/js/folderPickerNodeConfig.js:566 #: website/static/js/institutionProjectSettings.js:102 @@ -413,70 +406,70 @@ msgstr "" msgid "Enable" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:42 -#: addons/weko/static/wekoFangornConfig.js:62 website/static/js/fangorn.js:2367 -#: website/static/js/fangorn.js:2459 website/static/js/filepage/index.js:542 -#: website/static/js/filepage/index.js:544 +#: addons/weko/static/wekoFangornConfig.js:40 +#: addons/weko/static/wekoFangornConfig.js:60 website/static/js/fangorn.js:2466 +#: website/static/js/filepage/index.js:761 msgid "View" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:86 -#: addons/weko/static/wekoFangornConfig.js:788 +#: addons/weko/static/wekoFangornConfig.js:87 +#: addons/weko/static/wekoFangornConfig.js:743 msgid "Deposit" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:255 -#: addons/weko/static/wekoFangornConfig.js:276 -#: addons/weko/static/wekoFangornConfig.js:316 +#: addons/weko/static/wekoFangornConfig.js:265 +#: addons/weko/static/wekoFangornConfig.js:286 +#: addons/weko/static/wekoFangornConfig.js:326 msgid "Error occurred: " msgstr "" -#: addons/weko/static/wekoFangornConfig.js:289 +#: addons/weko/static/wekoFangornConfig.js:299 msgid "Deposit was successful." msgstr "" -#: addons/weko/static/wekoFangornConfig.js:550 +#: addons/weko/static/wekoFangornConfig.js:553 msgid "Error occurred while " msgstr "" -#: addons/weko/static/wekoFangornConfig.js:574 +#: addons/weko/static/wekoFangornConfig.js:564 +msgid "" +"No file metadata is defined for the schema available for depositting to " +"WEKO." +msgstr "" + +#: addons/weko/static/wekoFangornConfig.js:584 msgid "Schema" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:577 +#: addons/weko/static/wekoFangornConfig.js:587 msgid "Select a schema for the file." msgstr "" -#: addons/weko/static/wekoFangornConfig.js:579 +#: addons/weko/static/wekoFangornConfig.js:589 msgid "Project Metadata" msgstr "" -msgid "No file metadata is defined for the schema available for depositting to WEKO." -msgstr "" - -#: addons/weko/static/wekoFangornConfig.js:583 -msgid "Select a registration for the file. You can also select a draft registration." -msgstr "" - -#: addons/weko/static/wekoFangornConfig.js:583 -msgid "Select a registration for the file." +#: addons/weko/static/wekoFangornConfig.js:593 +msgid "" +"Select a registration for the file. You can also select a draft " +"registration." msgstr "" -#: addons/weko/static/wekoFangornConfig.js:607 +#: addons/weko/static/wekoFangornConfig.js:617 msgid "" "Do you want to deposit the file/folder \"%1$s\" to WEKO? This operation " "is irreversible." msgstr "" -#: addons/weko/static/wekoFangornConfig.js:617 +#: addons/weko/static/wekoFangornConfig.js:627 msgid "OK" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:631 +#: addons/weko/static/wekoFangornConfig.js:642 msgid "Deposit files" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:880 +#: addons/weko/static/wekoFangornConfig.js:837 msgid "Save and Deposit to WEKO" msgstr "" @@ -574,7 +567,7 @@ msgstr "" #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:155 #: admin/static/js/rdm_addons/figshare/rdm-cfg.js:34 #: admin/static/js/rdm_addons/s3/s3RdmConfig.js:124 -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:116 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:118 #: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:469 #: website/static/js/addonSettings.js:130 #: website/static/js/folderPickerNodeConfig.js:562 @@ -742,23 +735,20 @@ msgstr "" msgid "Modify Collection Provider" msgstr "" -#: admin/static/js/rdm_addons/rdm-addons-page.js:64 -#, python-format -msgid "Disallow %s?" -msgstr "" - -#: admin/static/js/rdm_addons/rdm-addons-page.js:65 +#: admin/static/js/rdm_addons/rdm-addons-page.js:63 +#: admin/static/js/rdm_addons/rdm-addons-page.js:68 msgid "Are you sure you want to disallow the %1$s?
    " msgstr "" -#: admin/static/js/rdm_addons/rdm-addons-page.js:66 +#: admin/static/js/rdm_addons/rdm-addons-page.js:64 msgid "" "This will revoke access to %1$s for all projects using the " "accounts.

    " msgstr "" -#: admin/static/js/rdm_addons/rdm-addons-page.js:67 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:491 +#: admin/static/js/rdm_addons/rdm-addons-page.js:65 +#: admin/static/js/rdm_addons/rdm-addons-page.js:71 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:453 msgid "Type the following to continue: %1$s

    " msgstr "" @@ -774,27 +764,17 @@ msgid "" "until you reallow it.

    " msgstr "" -#: admin/static/js/rdm_addons/rdm-addons-page.js:74 -msgid "Disallow" -msgstr "" - -#: admin/static/js/rdm_addons/rdm-addons-page.js:85 -msgid "Strings did not match" -msgstr "" - -#: addons/datasteward/static/datastewardUserConfig.js:88 -#: addons/datasteward/static/datastewardUserConfig.js:89 -msgid "You do not have permission to perform this action." +#: admin/static/js/rdm_addons/rdm-addons-page.js:75 +#, python-format +msgid "Disallow %s?" msgstr "" -#: addons/datasteward/static/datastewardUserConfig.js:120 -#: addons/datasteward/static/datastewardUserConfig.js:121 -msgid "Cannot disable DataSteward add-on" +#: admin/static/js/rdm_addons/rdm-addons-page.js:83 +msgid "Disallow" msgstr "" -#: addons/datasteward/static/datastewardUserConfig.js:157 -#: addons/datasteward/static/datastewardUserConfig.js:158 -msgid "Cannot get DataSteward add-on settings" +#: admin/static/js/rdm_addons/rdm-addons-page.js:94 +msgid "Strings did not match" msgstr "" #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:26 @@ -837,7 +817,7 @@ msgstr "" #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:173 #: admin/static/js/rdm_addons/s3/s3RdmConfig.js:142 -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:134 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:136 #: website/static/js/addonSettings.js:150 msgid "Error while removing addon authorization for %1$s" msgstr "" @@ -985,30 +965,30 @@ msgid "" "account." msgstr "" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:68 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:70 msgid "Error while retrieving addon account" msgstr "" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:89 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:91 msgid "Could not set accounts for WEKO" msgstr "" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:105 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:107 msgid "Delete WEKO Application?" msgstr "" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:107 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:109 msgid "" "Are you sure you want to delete the WEKO application " -"%1$s? WEKO add-on connections already set up for " -"the projects will be preserved." +"%1$s? WEKO add-on connections already set up for the " +"projects will be preserved." msgstr "" #: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:84 msgid "Are you sure you want to change institutional storage?" msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:93 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:85 msgid "" "

    The previous storage will no longer be available to all contributors " "on the project.

    " @@ -1021,18 +1001,13 @@ msgstr "" msgid "Change" msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:120 -msgid "Are you sure you want to add this Export Data Storage Location?" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:358 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:592 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:726 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:832 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:322 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:554 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:688 msgid "Some errors occurred" msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:405 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:369 msgid "Institutional Storage set successfully" msgstr "" @@ -1042,113 +1017,12 @@ msgid "" "%2$s?
    " msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:490 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:452 msgid "" "This will revoke access to %1$s for all projects using this " "account.

    " msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:775 -msgid "Unable to delete location %1$s" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:784 -msgid "Are you sure you want to delete this export data storage location?" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:970 -msgid "Export Data" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:971 -msgid "Stop Export Data" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:974 -msgid "Export data successfully." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:975 -msgid "Cannot export data." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:976 -msgid "Error occurred while exporting data." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:977 -msgid "Export data failed." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:978 -msgid "Export data in background." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:979 -msgid "Stop exporting successfully." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:980 -msgid "Cannot stop exporting data." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:981 -msgid "Error occurred while stopping export data." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:982 -msgid "Stop exporting in background." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1442 -msgid "Are you sure you want to permanently delete these export data?" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1448 -msgid "Delete Permanently" -msgstr "Delete" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1597 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1599 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1612 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1668 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1720 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1727 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1740 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1775 -msgid "Restore Export Data" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1612 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1646 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1731 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1775 -msgid "message" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1634 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1638 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1646 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1706 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1729 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1742 -msgid "Stop Restore Export Data" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1634 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1706 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1722 -msgid "Stopped restoring data process." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1668 -msgid "Restore completed." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1744 -msgid "result" -msgstr "" - #: scripts/translations/messages_addonsJson.js:3 msgid "" "\n" @@ -1752,6 +1626,7 @@ msgid "" msgstr "" #: scripts/translations/messages_addonsJson.js:23 +#: scripts/translations/messages_addonsJson.js:25 msgid "" "\n" "\n" @@ -1815,7 +1690,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:25 +#: scripts/translations/messages_addonsJson.js:27 msgid "" "\n" "\n" @@ -1880,7 +1755,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:27 +#: scripts/translations/messages_addonsJson.js:29 msgid "" "\n" "\n" @@ -1945,7 +1820,8 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:29 +#: scripts/translations/messages_addonsJson.js:31 +#: scripts/translations/messages_addonsJson.js:37 msgid "" "\n" "\n" @@ -2008,7 +1884,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:31 +#: scripts/translations/messages_addonsJson.js:33 msgid "" "\n" "\n" @@ -2074,10 +1950,11 @@ msgid "" msgstr "" #: scripts/translations/messages_addonsJson.js:35 +#: scripts/translations/messages_addonsJson.js:51 msgid "" "\n" "\n" -"

    JupyterHub Add-on Terms

    \n" +"

    Nextcloud Add-on Terms

    \n" "\n" "\n" "\n" @@ -2089,36 +1966,40 @@ msgid "" " \n" "\n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" " \n" " \n" -" \n" +" \n" " \n" " \n" "\n" @@ -2135,7 +2016,8 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:37 +#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:47 msgid "" "\n" "\n" @@ -2201,7 +2083,8 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:41 +#: scripts/translations/messages_addonsJson.js:49 msgid "" "\n" "\n" @@ -2269,7 +2152,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:43 msgid "" "\n" "\n" @@ -2317,11 +2200,11 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:41 +#: scripts/translations/messages_addonsJson.js:45 msgid "" "\n" "\n" -"

    Nextcloud Add-on Terms

    \n" +"

    JupyterHub Add-on Terms

    \n" "\n" "
    PermissionsThe GakuNin RDM does not affect the permissions of " -"JupyterHub.Making a GakuNin RDM project public or private is " +"independent of Nextcloud privacy. The GakuNin RDM does not alter the " +"permissions of linked Nextcloud folders.
    View / download file versionsThe JupyterHub add-on does not provide Storage " -"Features.Nextcloud files can be viewed/downloaded via GakuNin " +"RDM, but version history is not supported by the Nextcloud WebDAV " +"API.
    Add / update filesThe JupyterHub add-on does not provide Storage " -"Features.Adding/updating files in the project via GakuNin RDM " +"will be reflected in Nextcloud.
    Delete filesThe JupyterHub add-on does not provide Storage " -"Features.Files deleted via GakuNin RDM will be deleted in " +"Nextcloud.
    LogsThe JupyterHub add-on does not provide Storage " -"Features.GakuNin RDM keeps track of changes you make to your " +"Nextcloud content through GakuNin RDM, but not for changes made using " +"Nextcloud directly.
    ForkingForking a project or component copies information " -"about linked JupyterHub but the GakuNin RDM does not affect " -"authentication of JupyterHub.Forking a project or component does not copy " +"Nextcloud authorization unless the user forking the project is the same " +"user who authorized the Nextcloud add-on in the source project being " +"forked.
    \n" "\n" @@ -2333,40 +2216,36 @@ msgid "" " \n" "\n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" " \n" " \n" -" \n" +" \n" " \n" " \n" "\n" @@ -2383,7 +2262,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:43 +#: scripts/translations/messages_addonsJson.js:53 msgid "" "\n" "\n" @@ -2448,7 +2327,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:45 +#: scripts/translations/messages_addonsJson.js:55 msgid "" "\n" "\n" @@ -2511,7 +2390,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:47 +#: scripts/translations/messages_addonsJson.js:57 msgid "" "\n" "\n" @@ -2621,11 +2500,11 @@ msgstr "" "\n" "
    PermissionsMaking a GakuNin RDM project public or private is " -"independent of Nextcloud privacy. The GakuNin RDM does not alter the " -"permissions of linked Nextcloud folders.The GakuNin RDM does not affect the permissions of " +"JupyterHub.
    View / download file versionsNextcloud files can be viewed/downloaded via GakuNin " -"RDM, but version history is not supported by the Nextcloud WebDAV " -"API.The JupyterHub add-on does not provide Storage " +"Features.
    Add / update filesAdding/updating files in the project via GakuNin RDM " -"will be reflected in Nextcloud.The JupyterHub add-on does not provide Storage " +"Features.
    Delete filesFiles deleted via GakuNin RDM will be deleted in " -"Nextcloud.The JupyterHub add-on does not provide Storage " +"Features.
    LogsGakuNin RDM keeps track of changes you make to your " -"Nextcloud content through GakuNin RDM, but not for changes made using " -"Nextcloud directly.The JupyterHub add-on does not provide Storage " +"Features.
    ForkingForking a project or component does not copy " -"Nextcloud authorization unless the user forking the project is the same " -"user who authorized the Nextcloud add-on in the source project being " -"forked.Forking a project or component copies information " +"about linked JupyterHub but the GakuNin RDM does not affect " +"authentication of JupyterHub.
    \n" -#: scripts/translations/messages_addonsJson.js:49 +#: scripts/translations/messages_addonsJson.js:59 msgid "" "\n" "\n" -"

    ONLYOFFICE Add-on Terms

    \n" +"

    Onlyoffice Add-on Terms

    \n" "\n" "\n" "\n" @@ -2640,33 +2519,33 @@ msgid "" " \n" " \n" " \n" +"Onlyoffice.\n" " \n" " \n" " \n" -" \n" " \n" " \n" " \n" -" \n" " \n" " \n" " \n" -" \n" " \n" " \n" " \n" -" \n" " \n" " \n" " \n" " \n" +"about linked Onlyoffice but the GakuNin RDM does not affect " +"authentication of Onlyoffice.\n" " \n" " \n" "\n" @@ -3026,84 +2905,88 @@ msgstr "" msgid " This component will inherit the same license as " msgstr "" -#: website/static/js/addProjectPlugin.js:281 +#: website/static/js/addProjectPlugin.js:273 +msgid "Learn more." +msgstr "" + +#: website/static/js/addProjectPlugin.js:282 msgid " More" msgstr "" -#: website/static/js/addProjectPlugin.js:285 +#: website/static/js/addProjectPlugin.js:286 msgid "Description" msgstr "" -#: website/static/js/addProjectPlugin.js:294 +#: website/static/js/addProjectPlugin.js:295 msgid "Enter %1$s description" msgstr "" -#: website/static/js/addProjectPlugin.js:298 website/static/js/conference.js:31 +#: website/static/js/addProjectPlugin.js:299 website/static/js/conference.js:31 msgid "Category" msgstr "" -#: website/static/js/addProjectPlugin.js:299 +#: website/static/js/addProjectPlugin.js:300 msgid " (for descriptive purposes)" msgstr "" -#: website/static/js/addProjectPlugin.js:306 +#: website/static/js/addProjectPlugin.js:307 msgid "Uncategorized" msgstr "" -#: website/static/js/addProjectPlugin.js:319 +#: website/static/js/addProjectPlugin.js:320 msgid "(Empty category)" msgstr "" -#: website/static/js/addProjectPlugin.js:329 +#: website/static/js/addProjectPlugin.js:330 msgid "Template (optional)" msgstr "" -#: website/static/js/addProjectPlugin.js:330 +#: website/static/js/addProjectPlugin.js:331 msgid "" "Start typing to search your projects. Selecting project as template will " "duplicate its " msgstr "" -#: website/static/js/addProjectPlugin.js:331 +#: website/static/js/addProjectPlugin.js:332 msgid "" "structure in the new project without importing the content of that " "project." msgstr "" -#: website/static/js/addProjectPlugin.js:350 +#: website/static/js/addProjectPlugin.js:351 #: website/static/js/nodeControl.js:224 #: website/static/js/privateLinkManager.js:31 website/static/js/project.js:140 msgid "Create" msgstr "" -#: website/static/js/addProjectPlugin.js:361 +#: website/static/js/addProjectPlugin.js:362 #, python-format msgid "Saving your %s..." msgstr "" -#: website/static/js/addProjectPlugin.js:375 +#: website/static/js/addProjectPlugin.js:376 msgid "New %1$s created successfully!" msgstr "" -#: website/static/js/addProjectPlugin.js:385 -#: website/static/js/addProjectPlugin.js:433 website/static/js/project.js:62 +#: website/static/js/addProjectPlugin.js:386 +#: website/static/js/addProjectPlugin.js:434 website/static/js/project.js:62 msgid "Keep working here" msgstr "" -#: website/static/js/addProjectPlugin.js:391 -#: website/static/js/addProjectPlugin.js:436 +#: website/static/js/addProjectPlugin.js:392 +#: website/static/js/addProjectPlugin.js:437 msgid "Go to new %1$s" msgstr "" -#: website/static/js/addProjectPlugin.js:404 +#: website/static/js/addProjectPlugin.js:405 msgid "Couldn't create your %1$s" msgstr "" -#: website/static/js/addProjectPlugin.js:423 +#: website/static/js/addProjectPlugin.js:424 msgid "Could not add institution affiliation to your new %1$s" msgstr "" -#: website/static/js/addProjectPlugin.js:470 +#: website/static/js/addProjectPlugin.js:471 msgid "Select a project to use as a template" msgstr "" @@ -3192,7 +3075,7 @@ msgid "Could not fetch alerts for this page. Please refresh page and try again." msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:2 -#: website/static/js/anonymousLogActionsList_extract.js:75 +#: website/static/js/anonymousLogActionsList_extract.js:77 msgid "A user created a project" msgstr "" @@ -3399,974 +3282,990 @@ msgid "A user checked in a file to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:53 -msgid "A user added a comment to a project" +msgid "A user locked a file in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:54 -msgid "A user deleted a comment from a project" +msgid "A user unlocked a file in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:55 -msgid "A user restored a comment in a project" +msgid "A user added a comment to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:56 -msgid "A user updated a comment on a project" +msgid "A user deleted a comment from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:57 -msgid "A user initiated an embargoed registration of a project" +msgid "A user restored a comment in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:58 -msgid "A user approved an embargoed registration of a project" +msgid "A user updated a comment on a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:59 -msgid "Embargo of registration of a project approved" +msgid "A user initiated an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:60 -msgid "A user cancelled an embargoed registration of a project" +msgid "A user approved an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:61 -msgid "A user completed an embargo of a project" +msgid "Embargo of registration of a project approved" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:62 -msgid "Embargo for a project completed" +msgid "A user cancelled an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:63 -msgid "Embargo for a project ended" +msgid "A user completed an embargo of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:64 -msgid "A user initiated a withdrawal of a registration of a project" +msgid "Embargo for a project completed" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:65 -msgid "A withdrawal of a registration of a project was proposed" +msgid "Embargo for a project ended" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:66 -msgid "A user approved a withdrawal of a registration of a project" +msgid "A user initiated a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:67 -#: website/static/js/logActionsList_extract.js:68 -msgid "A withdrawal of a registration of ${node} was approved" +msgid "A withdrawal of a registration of a project was proposed" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:68 -msgid "A user cancelled a withdrawal of a registration of a project" +msgid "A user approved a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:69 -msgid "Registration was created on an external registry." +#: website/static/js/logActionsList_extract.js:70 +msgid "A withdrawal of a registration of ${node} was approved" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:70 -msgid "Registration was imported to OSF from an external registry." +msgid "A user cancelled a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:71 -msgid "A user initiated a registration of a project" +msgid "Registration was created on an external registry." msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:72 -msgid "A user approved a registration of a project" +msgid "Registration was imported to OSF from an external registry." msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:73 -msgid "Registration of a project was approved" +msgid "A user initiated a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:74 -msgid "A user cancelled a registration of a project" +msgid "A user approved a registration of a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:76 -msgid "A user created fork from a project" +#: website/static/js/anonymousLogActionsList_extract.js:75 +msgid "Registration of a project was approved" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:77 -msgid "A user removed a project" +#: website/static/js/anonymousLogActionsList_extract.js:76 +msgid "A user cancelled a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:78 -msgid "A user enabled access requests for a project" +msgid "A user created fork from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:79 -msgid "A user disabled access requests for a project" +msgid "A user removed a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:80 -msgid "A user updated the license of a project" +msgid "A user enabled access requests for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:81 -msgid "A user added a tag to a file in NII Storage in a project" +msgid "A user disabled access requests for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:82 -msgid "A user removed tag from a file in NII Storage in a project" +msgid "A user updated the license of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:83 -msgid "A user added a file to NII Storage in a project" +msgid "A user added a tag to a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:84 -msgid "A user created a folder in NII Storage in a project" +msgid "A user removed tag from a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:85 -msgid "A user updated a file in NII Storage in a project" +msgid "A user added a file to NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:86 -msgid "A user removed a file from NII Storage in a project" +msgid "A user created a folder in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:87 -msgid "A user added an affiliation to a project" +msgid "A user updated a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:88 -msgid "A user removed an affiliation from a project" +msgid "A user removed a file from NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:89 -msgid "A user made a project a preprint" +msgid "A user added an affiliation to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:90 -msgid "A user updated the primary file of a preprint" +msgid "A user removed an affiliation from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:91 -msgid "A user updated the license of a preprint" +msgid "A user made a project a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:92 -msgid "A user updated the subjects" +msgid "A user updated the primary file of a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:93 -msgid "A user created a view-only link to a project" +msgid "A user updated the license of a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:94 -msgid "A user removed a view-only link to a project" +msgid "A user updated the subjects" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:95 -msgid "A user added a file to Box in a project" +msgid "A user created a view-only link to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:96 -msgid "A user removed a file from Box in a project" +msgid "A user removed a view-only link to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:97 -msgid "A user updated a file in Box in a project" +msgid "A user added a file to Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:98 -msgid "A user created a folder in Box in a project" +msgid "A user removed a file from Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:99 -msgid "A user linked a Box folder to a project" +msgid "A user updated a file in Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:100 -msgid "A user authorized the Box addon for a project" +msgid "A user created a folder in Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:101 -msgid "A user deauthorized the Box addon for a project" +msgid "A user linked a Box folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:102 -msgid "Box addon for a project deauthorized" +msgid "A user authorized the Box addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:103 -msgid "A user added a file to a Dataverse dataset in a project" +msgid "A user deauthorized the Box addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:104 -msgid "A user removed a file from a Dataverse dataset in a project" +msgid "Box addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:105 +msgid "A user added a file to a Dataverse dataset in a project" +msgstr "" + #: website/static/js/anonymousLogActionsList_extract.js:106 -msgid "A user linked a Dataverse dataset to a project" +msgid "A user removed a file from a Dataverse dataset in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:107 #: website/static/js/anonymousLogActionsList_extract.js:108 -msgid "A user published a new version of a Dataverse dataset to a project" +msgid "A user linked a Dataverse dataset to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:109 -msgid "A user authorized the Dataverse addon for a project" -msgstr "" - #: website/static/js/anonymousLogActionsList_extract.js:110 -msgid "A user deauthorized the Dataverse addon for a project" +msgid "A user published a new version of a Dataverse dataset to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:111 -msgid "Dataverse addon for a project deauthorized" +msgid "A user authorized the Dataverse addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:112 -msgid "A user added a file to Dropbox in a project" +msgid "A user deauthorized the Dataverse addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:113 -msgid "A user removed a file from Dropbox in a project" +msgid "Dataverse addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:114 -msgid "A user updated a file in Dropbox in a project" +msgid "A user added a file to Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:115 -msgid "A user created a folder in Dropbox in a project" +msgid "A user removed a file from Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:116 -msgid "A user linked a Dropbox folder in a project" +msgid "A user updated a file in Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:117 -msgid "A user authorized the Dropbox addon for a project" +msgid "A user created a folder in Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:118 -msgid "A user deauthorized the Dropbox addon for a project" +msgid "A user linked a Dropbox folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:119 -msgid "Dropbox addon for a project deauthorized" +msgid "A user authorized the Dropbox addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:120 -msgid "A user linked content from figshare in a project" +msgid "A user deauthorized the Dropbox addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:121 -msgid "A user unlinked content from figshare in a project" +msgid "Dropbox addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:122 -msgid "A user added a file to figshare in a project" +msgid "A user linked content from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:123 -msgid "A user removed a file or folder from figshare in a project" +msgid "A user unlinked content from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:124 -msgid "A user created a folder in figshare in a project" +msgid "A user added a file to figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:125 -msgid "A user authorized the figshare addon for a project" +msgid "A user removed a file or folder from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:126 -msgid "A user deauthorized the figshare addon for a project" +msgid "A user created a folder in figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:127 -msgid "figshare addon for a project deauthorized" +msgid "A user authorized the figshare addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:128 -msgid "A user changed the forward URL in a project" +msgid "A user deauthorized the figshare addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:129 -msgid "A user added a file to a GitHub repo in a project" +msgid "figshare addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:130 -msgid "A user removed a file in a GitHub repo in a project" +msgid "A user changed the forward URL in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:131 -msgid "A user updated a file in a GitHub repo in a project" +msgid "A user added a file to a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:132 -msgid "A user created a folder in a GitHub repo in a project" +msgid "A user removed a file in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:133 -msgid "A user authorized the GitHub addon for a project" +msgid "A user updated a file in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:134 -msgid "A user deauthorized the GitHub addon for a project" +msgid "A user created a folder in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:135 -msgid "GitHub addon for a project deauthorized" +msgid "A user authorized the GitHub addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:136 -msgid "A user linked a GitHub repo in a project" +msgid "A user deauthorized the GitHub addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:137 -msgid "A user selected a folder in Mendeley in a project" +msgid "GitHub addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:138 -msgid "A user authorized the Mendeley addon for a project" +msgid "A user linked a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:139 -msgid "A user deauthorized the Mendeley addon for a project" +msgid "A user selected a folder in Mendeley in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:140 -msgid "A user linked a Zotero folder to a project" +msgid "A user authorized the Mendeley addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:141 -msgid "A user linked a Zotero library to a project" +msgid "A user deauthorized the Mendeley addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:142 -msgid "A user authorized the Zotero addon for a project" +msgid "A user linked a Zotero folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:143 -msgid "A user deauthorized the Zotero addon for a project" +msgid "A user linked a Zotero library to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:144 -msgid "A user added a file to ownCloud in a project" +msgid "A user authorized the Zotero addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:145 -msgid "A user removed a file from ownCloud in a project" +msgid "A user deauthorized the Zotero addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:146 -msgid "A user updated a file in ownCloud in a project" +msgid "A user added a file to ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:147 -msgid "A user created a folder in ownCloud in a project" +msgid "A user removed a file from ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:148 -msgid "A user linked a ownCloud folder in a project" +msgid "A user updated a file in ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:149 -msgid "A user authorized the ownCloud addon for a project" +msgid "A user created a folder in ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:150 -msgid "A user deauthorized the ownCloud addon for a project" +msgid "A user linked a ownCloud folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:151 -msgid "ownCloud addon for a project deauthorized" +msgid "A user authorized the ownCloud addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:152 -msgid "A user added a file to Microsoft OneDrive in a project" +msgid "A user deauthorized the ownCloud addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:153 -msgid "A user removed a file from Microsoft OneDrive in a project" +msgid "ownCloud addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:154 -msgid "A user updated a file in Microsoft OneDrive in a project" +msgid "A user added a file to Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:155 -msgid "A user created a folder in Microsoft OneDrive in a project" +msgid "A user removed a file from Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:156 -msgid "A user linked a Microsoft OneDrive folder to a project" +msgid "A user updated a file in Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:157 -msgid "A user authorized the Microsoft OneDrive addon for a project" +msgid "A user created a folder in Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:158 -msgid "A user deauthorized the Microsoft OneDrive addon for a project" +msgid "A user linked a Microsoft OneDrive folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:159 -msgid "Microsoft OneDrive addon for a project deauthorized" +msgid "A user authorized the Microsoft OneDrive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:160 -msgid "A user linked an Amazon S3 bucket to a project" +msgid "A user deauthorized the Microsoft OneDrive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:161 -msgid "A user unselected an Amazon S3 bucket in a project" +msgid "Microsoft OneDrive addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:162 -msgid "A user added a file to an Amazon S3 bucket in a project" +msgid "A user linked an Amazon S3 bucket to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:163 -msgid "A user removed a file in an Amazon S3 bucket in a project" +msgid "A user unselected an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:164 -msgid "A user updated a file in an Amazon S3 bucket in a project" +msgid "A user added a file to an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:165 -msgid "A user created a folder in an Amazon S3 in a project" +msgid "A user removed a file in an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:166 -msgid "A user authorized the Amazon S3 addon for a project" +msgid "A user updated a file in an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:167 -msgid "A user deauthorized the Amazon S3 addon for a project" +msgid "A user created a folder in an Amazon S3 in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:168 -msgid "Amazon S3 addon for a project deauthorized" +msgid "A user authorized the Amazon S3 addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:169 -msgid "A user added a file to Google Drive in a project" +msgid "A user deauthorized the Amazon S3 addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:170 -msgid "A user removed a file from Google Drive in a project" +msgid "Amazon S3 addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:171 -msgid "A user updated a file in Google Drive in a project" +msgid "A user added a file to Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:172 -msgid "A user created a folder in Google Drive in a project" +msgid "A user removed a file from Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:173 -msgid "A user linked a Google Drive folder to a project" +msgid "A user updated a file in Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:174 -msgid "A user authorized the Google Drive addon for a project" +msgid "A user created a folder in Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:175 -msgid "A user deauthorized the Google Drive addon for a project" +msgid "A user linked a Google Drive folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:176 -msgid "Google Drive addon for a project deauthorized" +msgid "A user authorized the Google Drive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:177 -msgid "A user added a file to a Bitbucket repo in a project" +msgid "A user deauthorized the Google Drive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:178 -msgid "A user removed a file in a Bitbucket repo in a project" +msgid "Google Drive addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:179 -msgid "A user updated a file in a Bitbucket repo in a project" +msgid "A user added a file to a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:180 -msgid "A user created a folder in a Bitbucket repo in a project" +msgid "A user removed a file in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:181 -msgid "A user authorized the Bitbucket addon for a project" +msgid "A user updated a file in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:182 -msgid "A user deauthorized the Bitbucket addon for a project" +msgid "A user created a folder in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:183 -msgid "Bitbucket addon for a project deauthorized" +msgid "A user authorized the Bitbucket addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:184 -msgid "A user linked a Bitbucket repo in a project" +msgid "A user deauthorized the Bitbucket addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:185 -msgid "A user linked an Swift container to a project" +msgid "Bitbucket addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:186 -msgid "A user unselected an Swift container in a project" +msgid "A user linked a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:187 -msgid "A user added a file to an Swift container in a project" +msgid "A user linked an Swift container to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:188 -msgid "A user removed a file in an Swift container in a project" +msgid "A user unselected an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:189 -msgid "A user updated a file in an Swift container in a project" +msgid "A user added a file to an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:190 -msgid "A user created a folder in an Swift in a project" +msgid "A user removed a file in an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:191 -msgid "A user authorized the Swift addon for a project" +msgid "A user updated a file in an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:192 -msgid "A user deauthorized the Swift addon for a project" +msgid "A user created a folder in an Swift in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:193 -msgid "Swift addon for a project deauthorized" +msgid "A user authorized the Swift addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:194 -msgid "A user linked an Azure Blob Storage container to a project" +msgid "A user deauthorized the Swift addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:195 -msgid "A user unselected an Azure Blob Storage container in a project" +msgid "Swift addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:196 -msgid "A user added a file to an Azure Blob Storage container in a project" +msgid "A user linked an Azure Blob Storage container to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:197 -msgid "A user removed a file in an Azure Blob Storage container in a project" +msgid "A user unselected an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:198 -msgid "A user updated a file in an Azure Blob Storage container in a project" +msgid "A user added a file to an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:199 -msgid "A user created a folder in an Azure Blob Storage in a project" +msgid "A user removed a file in an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:200 -msgid "A user authorized the Azure Blob Storage addon for a project" +msgid "A user updated a file in an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:201 -msgid "A user deauthorized the Azure Blob Storage addon for a project" +msgid "A user created a folder in an Azure Blob Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:202 -msgid "Azure Blob Storage addon for a project deauthorized" +msgid "A user authorized the Azure Blob Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:203 -msgid "A user added a file to a WEKO index in a project" +msgid "A user deauthorized the Azure Blob Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:204 -msgid "A user removed a file from a WEKO index in a project" +msgid "Azure Blob Storage addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:205 -msgid "A user linked a WEKO index to a project" +msgid "A user added a draft file to a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:206 -msgid "A user created an index to a project" +msgid "A user removed a draft file from a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:207 -msgid "A user created an item to a project" +msgid "A user linked a WEKO index to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:208 -msgid "A user created a folder in WEKO in a project" +msgid "A user created a draft folder in WEKO in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:209 -msgid "A user authorized the WEKO addon for a project" +msgid "A user deposit item in a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:210 -msgid "A user deauthorized the WEKO addon for a project" +msgid "A user authorized the WEKO addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:211 -msgid "WEKO addon for a project deauthorized" +msgid "A user deauthorized the WEKO addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:212 -msgid "A user linked an S3 Compatible Storage bucket to a project" +msgid "WEKO addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:213 -msgid "A user unselected an S3 Compatible Storage bucket in a project" +msgid "A user linked an S3 Compatible Storage bucket to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:214 -msgid "A user added a file to an S3 Compatible Storage bucket in a project" +msgid "A user unselected an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:215 -msgid "A user removed a file in an S3 Compatible Storage bucket in a project" +msgid "A user added a file to an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:216 -msgid "A user updated a file in an S3 Compatible Storage bucket in a project" +msgid "A user removed a file in an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:217 -msgid "A user created a folder in an S3 Compatible Storage in a project" +msgid "A user updated a file in an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:218 -msgid "A user authorized the S3 Compatible Storage addon for a project" +msgid "A user created a folder in an S3 Compatible Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:219 -msgid "A user deauthorized the S3 Compatible Storage addon for a project" +msgid "A user authorized the S3 Compatible Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:220 -msgid "S3 Compatible Storage addon for a project deauthorized" +msgid "A user deauthorized the S3 Compatible Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:221 -msgid "A user added a file to S3compat (for Institutions) in a project" +msgid "S3 Compatible Storage addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:222 -msgid "A user removed a file from S3compat (for Institutions) in a project" +msgid "A user added a file to S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:223 -msgid "A user updated a file in S3compat (for Institutions) in a project" +msgid "A user removed a file from S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:224 -msgid "A user created a folder in S3compat (for Institutions) in a project" +msgid "A user updated a file in S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:225 -msgid "A user linked a S3compat (for Institutions) folder in a project" +msgid "A user created a folder in S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:226 -msgid "A user authorized the S3compat (for Institutions) addon for a project" +msgid "A user linked a S3compat (for Institutions) folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:227 -msgid "A user deauthorized the S3compat (for Institutions) addon for a project" +msgid "A user authorized the S3compat (for Institutions) addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:228 -msgid "S3compat (for Institutions) addon for a project deauthorized" +msgid "A user deauthorized the S3compat (for Institutions) addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:229 +msgid "S3compat (for Institutions) addon for a project deauthorized" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:230 msgid "" "A user linked an Oracle Cloud Infrastructure Object Storage bucket to a " "project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:230 +#: website/static/js/anonymousLogActionsList_extract.js:231 msgid "" "A user unselected an Oracle Cloud Infrastructure Object Storage bucket in" " a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:231 +#: website/static/js/anonymousLogActionsList_extract.js:232 msgid "" "A user added a file to an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:232 +#: website/static/js/anonymousLogActionsList_extract.js:233 msgid "" "A user removed a file in an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:233 +#: website/static/js/anonymousLogActionsList_extract.js:234 msgid "" "A user updated a file in an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:234 +#: website/static/js/anonymousLogActionsList_extract.js:235 msgid "" "A user created a folder in an Oracle Cloud Infrastructure Object Storage " "in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:235 +#: website/static/js/anonymousLogActionsList_extract.js:236 msgid "" "A user authorized the Oracle Cloud Infrastructure Object Storage addon " "for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:236 +#: website/static/js/anonymousLogActionsList_extract.js:237 msgid "" "A user deauthorized the Oracle Cloud Infrastructure Object Storage addon " "for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:237 +#: website/static/js/anonymousLogActionsList_extract.js:238 msgid "" "Oracle Cloud Infrastructure Object Storage addon for a project " "deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:238 +#: website/static/js/anonymousLogActionsList_extract.js:239 msgid "" "A user added a file to Oracle Cloud Infrastructure (for Institutions) in " "a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:239 +#: website/static/js/anonymousLogActionsList_extract.js:240 msgid "" "A user removed a file from Oracle Cloud Infrastructure (for Institutions)" " in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:240 +#: website/static/js/anonymousLogActionsList_extract.js:241 msgid "" "A user updated a file in Oracle Cloud Infrastructure (for Institutions) " "in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:241 +#: website/static/js/anonymousLogActionsList_extract.js:242 msgid "" "A user created a folder in Oracle Cloud Infrastructure (for Institutions)" " in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:242 +#: website/static/js/anonymousLogActionsList_extract.js:243 msgid "" "A user linked a Oracle Cloud Infrastructure (for Institutions) folder in " "a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:243 +#: website/static/js/anonymousLogActionsList_extract.js:244 msgid "" "A user authorized the Oracle Cloud Infrastructure (for Institutions) " "addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:244 +#: website/static/js/anonymousLogActionsList_extract.js:245 msgid "" "A user deauthorized the Oracle Cloud Infrastructure (for Institutions) " "addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:245 +#: website/static/js/anonymousLogActionsList_extract.js:246 msgid "" "Oracle Cloud Infrastructure (for Institutions) addon for a project " "deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:246 +#: website/static/js/anonymousLogActionsList_extract.js:247 msgid "A user added a file to Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:247 +#: website/static/js/anonymousLogActionsList_extract.js:248 msgid "A user removed a file from Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:248 +#: website/static/js/anonymousLogActionsList_extract.js:249 msgid "A user updated a file in Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:249 +#: website/static/js/anonymousLogActionsList_extract.js:250 msgid "A user created a folder in Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:250 +#: website/static/js/anonymousLogActionsList_extract.js:251 msgid "A user linked a Nextcloud folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:251 +#: website/static/js/anonymousLogActionsList_extract.js:252 msgid "A user authorized the Nextcloud addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:252 +#: website/static/js/anonymousLogActionsList_extract.js:253 msgid "A user deauthorized the Nextcloud addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:253 +#: website/static/js/anonymousLogActionsList_extract.js:254 msgid "Nextcloud addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:254 +#: website/static/js/anonymousLogActionsList_extract.js:255 msgid "A user added a file to Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:255 +#: website/static/js/anonymousLogActionsList_extract.js:256 msgid "A user removed a file from Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:256 +#: website/static/js/anonymousLogActionsList_extract.js:257 msgid "A user updated a file in Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:257 +#: website/static/js/anonymousLogActionsList_extract.js:258 msgid "A user created a folder in Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:258 +#: website/static/js/anonymousLogActionsList_extract.js:259 msgid "A user linked a Nextcloud (for Institutions) folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:259 +#: website/static/js/anonymousLogActionsList_extract.js:260 msgid "A user authorized the Nextcloud (for Institutions) addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:260 +#: website/static/js/anonymousLogActionsList_extract.js:261 msgid "A user deauthorized the Nextcloud (for Institutions) addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:261 +#: website/static/js/anonymousLogActionsList_extract.js:262 msgid "Nextcloud (for Institutions) addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:262 +#: website/static/js/anonymousLogActionsList_extract.js:263 msgid "A user added a file to IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:263 +#: website/static/js/anonymousLogActionsList_extract.js:264 msgid "A user removed a file from IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:264 +#: website/static/js/anonymousLogActionsList_extract.js:265 msgid "A user updated a file in IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:265 +#: website/static/js/anonymousLogActionsList_extract.js:266 msgid "A user created a folder in IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:266 +#: website/static/js/anonymousLogActionsList_extract.js:267 msgid "A user linked a IQB-RIMS folder to a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:267 +#: website/static/js/anonymousLogActionsList_extract.js:268 msgid "A user authorized the IQB-RIMS addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:268 +#: website/static/js/anonymousLogActionsList_extract.js:269 msgid "A user deauthorized the IQB-RIMS addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:269 +#: website/static/js/anonymousLogActionsList_extract.js:270 msgid "IQB-RIMS addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:270 +#: website/static/js/anonymousLogActionsList_extract.js:271 msgid "A user added a file to Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:271 +#: website/static/js/anonymousLogActionsList_extract.js:272 msgid "A user removed a file from Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:272 +#: website/static/js/anonymousLogActionsList_extract.js:273 msgid "A user updated a file in Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:273 +#: website/static/js/anonymousLogActionsList_extract.js:274 msgid "A user created a folder in Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:274 +#: website/static/js/anonymousLogActionsList_extract.js:275 msgid "A user linked a Dropbox Business folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:275 +#: website/static/js/anonymousLogActionsList_extract.js:276 msgid "A user authorized the Dropbox Business addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:276 +#: website/static/js/anonymousLogActionsList_extract.js:277 msgid "A user deauthorized the Dropbox Business addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:277 +#: website/static/js/anonymousLogActionsList_extract.js:278 msgid "Dropbox Business addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:278 +#: website/static/js/anonymousLogActionsList_extract.js:279 msgid "A user added a file to an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:279 +#: website/static/js/anonymousLogActionsList_extract.js:280 msgid "A user removed a file in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:280 +#: website/static/js/anonymousLogActionsList_extract.js:281 msgid "A user updated a file in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:281 +#: website/static/js/anonymousLogActionsList_extract.js:282 msgid "A user created a folder in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:282 +#: website/static/js/anonymousLogActionsList_extract.js:283 msgid "A user authorized the OneDrive for Office365 addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:283 +#: website/static/js/anonymousLogActionsList_extract.js:284 msgid "A user deauthorized the OneDrive for Office365 addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:284 +#: website/static/js/anonymousLogActionsList_extract.js:285 msgid "OneDrive for Office365 addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:285 +#: website/static/js/anonymousLogActionsList_extract.js:286 msgid "A user added a metadata in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:286 +#: website/static/js/anonymousLogActionsList_extract.js:287 msgid "A user added a metadata to a ${path} in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:287 +#: website/static/js/anonymousLogActionsList_extract.js:288 msgid "A user updated a metadata for a ${path} in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:288 +#: website/static/js/anonymousLogActionsList_extract.js:289 msgid "A user deleted a metadata for a ${path} in a project" msgstr "" +#: website/static/js/anonymousLogActionsList_extract.js:290 +msgid "A user created a workflow" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:291 +msgid "A user updated a workflow" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:292 +msgid "A user deleted a workflow" +msgstr "" + #: website/static/js/apiApplication.js:215 msgid "Error fetching list of registered applications" msgstr "" @@ -4456,7 +4355,7 @@ msgstr "" msgid "View original document" msgstr "" -#: website/static/js/citationGrid.js:202 website/static/js/fangorn.js:2492 +#: website/static/js/citationGrid.js:202 website/static/js/fangorn.js:2521 msgid "View on %1$s" msgstr "" @@ -4649,7 +4548,7 @@ msgstr "" msgid "Date Created" msgstr "" -#: website/static/js/conference.js:43 website/static/js/fangorn.js:2083 +#: website/static/js/conference.js:43 website/static/js/fangorn.js:2112 msgid "Downloads" msgstr "" @@ -4813,258 +4712,258 @@ msgstr "" msgid "Renaming " msgstr "" -#: website/static/js/fangorn.js:473 +#: website/static/js/fangorn.js:477 msgid "Not allowed: Private folder" msgstr "" -#: website/static/js/fangorn.js:517 website/static/js/fangorn.js:547 +#: website/static/js/fangorn.js:521 website/static/js/fangorn.js:551 msgid "You cannot replace the Wiki images folder" msgstr "" -#: website/static/js/fangorn.js:522 website/static/js/fangorn.js:555 +#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:559 msgid "An item named \"%1$s\" already exists in this location." msgstr "" -#: website/static/js/fangorn.js:524 website/static/js/fangorn.js:533 -#: website/static/js/fangorn.js:557 +#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:537 +#: website/static/js/fangorn.js:561 msgid "Keep Both" msgstr "" -#: website/static/js/fangorn.js:524 website/static/js/fangorn.js:557 +#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:561 msgid " will retain both files (and their version histories) in this location." msgstr "" -#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:534 -#: website/static/js/fangorn.js:559 +#: website/static/js/fangorn.js:530 website/static/js/fangorn.js:538 +#: website/static/js/fangorn.js:563 msgid "Replace" msgstr "" -#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:559 +#: website/static/js/fangorn.js:530 website/static/js/fangorn.js:563 msgid " will overwrite the existing file in this location. " msgstr "" -#: website/static/js/fangorn.js:527 website/static/js/fangorn.js:560 +#: website/static/js/fangorn.js:531 website/static/js/fangorn.js:564 msgid "You will lose previous versions of the overwritten file. " msgstr "" -#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:561 +#: website/static/js/fangorn.js:532 website/static/js/fangorn.js:565 msgid "You will keep previous versions of the moved file." msgstr "" -#: website/static/js/fangorn.js:529 +#: website/static/js/fangorn.js:533 msgid "\"Skip\" will skip the current file." msgstr "" -#: website/static/js/fangorn.js:530 +#: website/static/js/fangorn.js:534 msgid "\"Stop\" will only move files with no conflicts." msgstr "" -#: website/static/js/fangorn.js:535 +#: website/static/js/fangorn.js:539 msgid "Skip" msgstr "" -#: website/static/js/fangorn.js:536 +#: website/static/js/fangorn.js:540 msgid "Stop" msgstr "" -#: website/static/js/fangorn.js:538 +#: website/static/js/fangorn.js:542 #, python-format msgid "Replace \"%s\"?" msgstr "" -#: website/static/js/fangorn.js:562 +#: website/static/js/fangorn.js:566 msgid " will cancel the move." msgstr "" -#: website/static/js/fangorn.js:571 +#: website/static/js/fangorn.js:575 msgid "Replace \"%1$s\"?" msgstr "" -#: website/static/js/fangorn.js:601 +#: website/static/js/fangorn.js:605 msgid "%1$s conflicts left to resolve." msgid_plural "%1$s conflict left to resolve." msgstr[0] "" -#: website/static/js/fangorn.js:686 +#: website/static/js/fangorn.js:690 msgid "Successfully %1$s." msgstr "" -#: website/static/js/fangorn.js:734 +#: website/static/js/fangorn.js:738 msgid "Please refresh the page or contact %1$s if the problem persists." msgstr "" -#: website/static/js/fangorn.js:739 +#: website/static/js/fangorn.js:743 msgid "Failed to move or copy file" msgstr "" -#: website/static/js/fangorn.js:1034 +#: website/static/js/fangorn.js:1038 msgid "Could not upload file. The file may be invalid " msgstr "" -#: website/static/js/fangorn.js:1035 +#: website/static/js/fangorn.js:1039 msgid "or the file folder has been deleted." msgstr "" -#: website/static/js/fangorn.js:1043 website/static/js/fangorn.js:1048 +#: website/static/js/fangorn.js:1047 website/static/js/fangorn.js:1052 msgid "Cannot upload folders." msgstr "" -#: website/static/js/fangorn.js:1050 +#: website/static/js/fangorn.js:1054 msgid "Cannot upload file due to insufficient storage." msgstr "" -#: website/static/js/fangorn.js:1055 +#: website/static/js/fangorn.js:1059 msgid "Could not upload file. Possible reasons:
    " msgstr "" -#: website/static/js/fangorn.js:1056 +#: website/static/js/fangorn.js:1060 msgid "1. Cannot upload folders.
    2. " msgstr "" -#: website/static/js/fangorn.js:1058 +#: website/static/js/fangorn.js:1062 msgid "Unable to reach the provider, please try again later. " msgstr "" -#: website/static/js/fangorn.js:1059 +#: website/static/js/fangorn.js:1063 msgid "If the problem persists, please contact %1$s." msgstr "" -#: website/static/js/fangorn.js:1172 +#: website/static/js/fangorn.js:1176 msgid "The folder that wants to upload is empty." msgstr "" -#: website/static/js/fangorn.js:1204 +#: website/static/js/fangorn.js:1208 msgid "Not enough quota to upload. The total size of the folder %1$s." msgstr "" -#: website/static/js/fangorn.js:1348 website/static/js/fangorn.js:1426 +#: website/static/js/fangorn.js:1352 website/static/js/fangorn.js:1430 msgid "Folder creation failed." msgstr "" -#: website/static/js/fangorn.js:1390 +#: website/static/js/fangorn.js:1394 msgid "Please enter a folder name." msgstr "" -#: website/static/js/fangorn.js:1394 +#: website/static/js/fangorn.js:1398 msgid "Folder name contains illegal characters." msgstr "" -#: website/static/js/fangorn.js:1417 +#: website/static/js/fangorn.js:1421 msgid "New folder created!" msgstr "" -#: website/static/js/fangorn.js:1440 +#: website/static/js/fangorn.js:1444 msgid "Please enter a file name." msgstr "" -#: website/static/js/fangorn.js:1444 +#: website/static/js/fangorn.js:1448 msgid "File name contains illegal characters." msgstr "" -#: website/static/js/fangorn.js:1473 +#: website/static/js/fangorn.js:1477 msgid "New file created!" msgstr "" -#: website/static/js/fangorn.js:1486 +#: website/static/js/fangorn.js:1490 msgid "File creation failed." msgstr "" -#: website/static/js/fangorn.js:1506 +#: website/static/js/fangorn.js:1510 msgid " Deleting..." msgstr "" -#: website/static/js/fangorn.js:1528 +#: website/static/js/fangorn.js:1532 msgid "Delete failed." msgstr "" -#: website/static/js/fangorn.js:1543 +#: website/static/js/fangorn.js:1547 msgid "" "This folder and all of its contents will be deleted. This folder is " "linked to " msgstr "" -#: website/static/js/fangorn.js:1544 +#: website/static/js/fangorn.js:1548 msgid "your wiki(s). Deleting it will remove images embedded in your wiki(s). " msgstr "" -#: website/static/js/fangorn.js:1545 website/static/js/fangorn.js:1573 -#: website/static/js/fangorn.js:1596 website/static/js/pages/base-page.js:132 +#: website/static/js/fangorn.js:1549 website/static/js/fangorn.js:1577 +#: website/static/js/fangorn.js:1600 website/static/js/pages/base-page.js:132 msgid "This action is irreversible." msgstr "" -#: website/static/js/fangorn.js:1548 +#: website/static/js/fangorn.js:1552 msgid "" "This folder and ALL its contents will be deleted. This action is " "irreversible." msgstr "" -#: website/static/js/fangorn.js:1556 website/static/js/fangorn.js:1581 +#: website/static/js/fangorn.js:1560 website/static/js/fangorn.js:1585 msgid "Delete \"%1$s\"?" msgstr "" -#: website/static/js/fangorn.js:1558 +#: website/static/js/fangorn.js:1562 msgid "You don't have permission to delete this file." msgstr "" -#: website/static/js/fangorn.js:1566 +#: website/static/js/fangorn.js:1570 msgid "This file may be linked to your wiki(s). Deleting it will remove the" msgstr "" -#: website/static/js/fangorn.js:1567 +#: website/static/js/fangorn.js:1571 msgid " image embedded in your wiki(s). " msgstr "" -#: website/static/js/fangorn.js:1607 +#: website/static/js/fangorn.js:1611 msgid "" "Some of the selected items are folders. This will delete the folder(s) " "and ALL of their content." msgstr "" -#: website/static/js/fangorn.js:1621 +#: website/static/js/fangorn.js:1625 msgid " may be linked to" msgstr "" -#: website/static/js/fangorn.js:1622 +#: website/static/js/fangorn.js:1626 msgid " your wiki(s). Deleting them will remove images embedded in your wiki(s). " msgstr "" -#: website/static/js/fangorn.js:1630 +#: website/static/js/fangorn.js:1634 msgid "Delete All" msgstr "" -#: website/static/js/fangorn.js:1634 +#: website/static/js/fangorn.js:1638 msgid "" "Some of these files can't be deleted but you can delete the ones " "highlighted with green. This action is irreversible." msgstr "" -#: website/static/js/fangorn.js:1649 +#: website/static/js/fangorn.js:1653 msgid "Delete Some" msgstr "" -#: website/static/js/fangorn.js:1652 +#: website/static/js/fangorn.js:1656 msgid "Delete multiple files?" msgstr "" -#: website/static/js/fangorn.js:1678 +#: website/static/js/fangorn.js:1682 msgid "" "Unable to check out file. This is most likely due to the file being " "already checked-out" msgstr "" -#: website/static/js/fangorn.js:1679 +#: website/static/js/fangorn.js:1683 msgid " by another user." msgstr "" -#: website/static/js/fangorn.js:1994 +#: website/static/js/fangorn.js:2001 msgid "%1$s is not configured" msgstr "" -#: website/static/js/fangorn.js:1997 +#: website/static/js/fangorn.js:2004 msgid " Restore Add-ons" msgstr " Configure" -#: website/static/js/fangorn.js:2008 website/static/js/fileViewTreebeard.js:63 +#: website/static/js/fangorn.js:2099 website/static/js/fileViewTreebeard.js:63 #: website/static/js/filesWidget.js:34 website/static/js/meetings.js:18 #: website/static/js/pages/project-dashboard-page.js:549 #: website/static/js/project-organizer.js:192 @@ -5072,232 +4971,232 @@ msgstr " Configure" msgid "Name" msgstr "" -#: website/static/js/fangorn.js:2075 +#: website/static/js/fangorn.js:2104 msgid "Size" msgstr "" -#: website/static/js/fangorn.js:2079 +#: website/static/js/fangorn.js:2108 msgid "Version" msgstr "" -#: website/static/js/fangorn.js:2087 +#: website/static/js/fangorn.js:2116 #: website/static/js/pages/project-dashboard-page.js:555 #: website/static/js/project-organizer.js:201 msgid "Modified" msgstr "" -#: website/static/js/fangorn.js:2198 +#: website/static/js/fangorn.js:2227 msgid "Unable to retrieve components." msgstr "" -#: website/static/js/fangorn.js:2200 +#: website/static/js/fangorn.js:2229 msgid "Unable to retrieve components for node %1$s" msgstr "" -#: website/static/js/fangorn.js:2282 +#: website/static/js/fangorn.js:2311 msgid "You cannot rename your Wiki images folder." msgstr "" -#: website/static/js/fangorn.js:2392 +#: website/static/js/fangorn.js:2421 msgid "Upload Folder" msgstr "" -#: website/static/js/fangorn.js:2397 +#: website/static/js/fangorn.js:2426 msgid "Upload" msgstr "" -#: website/static/js/fangorn.js:2404 +#: website/static/js/fangorn.js:2433 msgid "Create Folder" msgstr "" -#: website/static/js/fangorn.js:2406 +#: website/static/js/fangorn.js:2440 msgid "Create File" msgstr "" -#: website/static/js/fangorn.js:2348 +#: website/static/js/fangorn.js:2447 msgid "Delete Folder" msgstr "" -#: website/static/js/fangorn.js:2427 website/static/js/filepage/index.js:522 +#: website/static/js/fangorn.js:2456 website/static/js/filepage/index.js:739 #: website/static/js/filepage/revisions.js:111 msgid "Download" msgstr "" -#: website/static/js/fangorn.js:2383 website/static/js/filepage/index.js:216 +#: website/static/js/fangorn.js:2482 website/static/js/filepage/index.js:216 msgid "This would mean " msgstr "" -#: website/static/js/fangorn.js:2454 website/static/js/filepage/index.js:217 +#: website/static/js/fangorn.js:2483 website/static/js/filepage/index.js:217 msgid "" "other contributors cannot edit, delete or upload new versions of this " "file " msgstr "" -#: website/static/js/fangorn.js:2455 +#: website/static/js/fangorn.js:2484 msgid "as long as it is checked-out. You can check it back in at anytime." msgstr "" -#: website/static/js/fangorn.js:2460 website/static/js/fangorn.js:2465 +#: website/static/js/fangorn.js:2489 website/static/js/fangorn.js:2494 #: website/static/js/filepage/index.js:243 msgid "Check out file" msgstr "" -#: website/static/js/fangorn.js:2461 +#: website/static/js/fangorn.js:2490 msgid "Confirm file check-out?" msgstr "" -#: website/static/js/fangorn.js:2474 +#: website/static/js/fangorn.js:2503 msgid "Check in file" msgstr "" -#: website/static/js/fangorn.js:2502 +#: website/static/js/fangorn.js:2531 msgid "Download as zip" msgstr "" -#: website/static/js/fangorn.js:2513 website/static/js/myProjects.js:1613 +#: website/static/js/fangorn.js:2542 website/static/js/myProjects.js:1613 msgid "Rename" msgstr "" -#: website/static/js/fangorn.js:2522 +#: website/static/js/fangorn.js:2551 msgid "copy link" msgstr "" -#: website/static/js/fangorn.js:2607 +#: website/static/js/fangorn.js:2636 msgid "New folder name" msgstr "" -#: website/static/js/fangorn.js:2635 +#: website/static/js/fangorn.js:2664 msgid "Enter name" msgstr "" -#: website/static/js/fangorn.js:2660 +#: website/static/js/fangorn.js:2694 msgid "New file name" msgstr "" -#: website/static/js/fangorn.js:2599 +#: website/static/js/fangorn.js:2756 msgid "Cancel Pending Uploads" msgstr "" -#: website/static/js/fangorn.js:2756 +#: website/static/js/fangorn.js:2785 msgid "Delete Multiple" msgstr "" -#: website/static/js/fangorn.js:2768 website/static/js/fangorn.js:3616 +#: website/static/js/fangorn.js:2797 website/static/js/fangorn.js:3648 msgid "Filter" msgstr "" -#: website/static/js/fangorn.js:2773 +#: website/static/js/fangorn.js:2802 msgid "Select rows:" msgstr "" -#: website/static/js/fangorn.js:2773 +#: website/static/js/fangorn.js:2802 msgid "" " Click on a row (outside the add-on, file, or folder name) to show " "further actions in the toolbar. Use Command or Shift keys to select " "multiple files." msgstr "" -#: website/static/js/fangorn.js:2774 +#: website/static/js/fangorn.js:2803 msgid "Open files:" msgstr "" -#: website/static/js/fangorn.js:2774 +#: website/static/js/fangorn.js:2803 msgid " Click a file name to go to view the file in the GakuNin RDM." msgstr "" -#: website/static/js/fangorn.js:2775 +#: website/static/js/fangorn.js:2804 msgid "Open files in new tab:" msgstr "" -#: website/static/js/fangorn.js:2775 +#: website/static/js/fangorn.js:2804 msgid "" " Press Command (Ctrl in Windows) and click a file name to open it in a " "new tab." msgstr "" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid "Download as zip:" msgstr "" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid "" " Click on the row of an add-on or folder and click the Download as Zip " "button in the toolbar." msgstr "" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid " Not available for all storage add-ons." msgstr "" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid "Copy files:" msgstr "" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid "" " Press Option (Alt in Windows) while dragging a file to a new folder or " "component." msgstr "" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid " Only for contributors with write access." msgstr "" -#: website/static/js/fangorn.js:2783 +#: website/static/js/fangorn.js:2812 msgid "How to Use the File Browser" msgstr "" -#: website/static/js/fangorn.js:2847 +#: website/static/js/fangorn.js:2876 msgid "Please wait for current action to complete" msgstr "" -#: website/static/js/fangorn.js:3028 +#: website/static/js/fangorn.js:3057 msgid "Upload Status" msgstr "" -#: website/static/js/fangorn.js:3028 +#: website/static/js/fangorn.js:3057 msgid " files succeeded." msgstr "" -#: website/static/js/fangorn.js:3139 +#: website/static/js/fangorn.js:3168 msgid "Done" msgstr "" -#: website/static/js/fangorn.js:3141 +#: website/static/js/fangorn.js:3170 msgid "Move Status" msgstr "" -#: website/static/js/fangorn.js:3143 +#: website/static/js/fangorn.js:3172 msgid " files successfully moved." msgstr "" -#: website/static/js/fangorn.js:3144 +#: website/static/js/fangorn.js:3173 msgid " Skipped %1$s/%2$s files." msgstr "" -#: website/static/js/fangorn.js:3530 +#: website/static/js/fangorn.js:3562 msgid "You have pending uploads, if you leave this page they may not complete." msgstr "" -#: website/static/js/fangorn.js:3533 +#: website/static/js/fangorn.js:3565 msgid "" "You have pending file operations, if you leave this page they may not " "complete." msgstr "" -#: website/static/js/fangorn.js:3577 +#: website/static/js/fangorn.js:3609 msgid "This file is too large (%1$s). Max file size is %2$s." msgstr "" -#: website/static/js/fangorn.js:3593 +#: website/static/js/fangorn.js:3625 msgid "Not enough quota to upload the file." msgstr "" -#: website/static/js/fangorn.js:3600 +#: website/static/js/fangorn.js:3632 msgid "Quota usage alert" msgstr "" -#: website/static/js/fangorn.js:3601 +#: website/static/js/fangorn.js:3633 #, python-format msgid "You have used more than %1$s% of your quota." msgstr "" @@ -5897,7 +5796,7 @@ msgid "Code - Other:" msgstr "" #: website/static/js/logActionsList_extract.js:3 -#: website/static/js/logActionsList_extract.js:76 +#: website/static/js/logActionsList_extract.js:78 msgid "${user} created ${node}" msgstr "" @@ -6108,1172 +6007,1172 @@ msgid "${user} checked in ${kind} ${path} to ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:54 -msgid "${user} added a comment ${comment_location} in ${node}" +msgid "${user} locked ${kind} ${path} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:55 -msgid "${user} deleted a comment ${comment_location} in ${node}" +msgid "${user} unlocked ${kind} ${path} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:56 -msgid "${user} restored a comment ${comment_location} in ${node}" +msgid "${user} added a comment ${comment_location} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:57 -msgid "${user} updated a comment ${comment_location} in ${node}" +msgid "${user} deleted a comment ${comment_location} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:58 -msgid "${user} initiated an embargoed registration of ${node}" +msgid "${user} restored a comment ${comment_location} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:59 -msgid "${user} approved embargoed registration of ${node}" +msgid "${user} updated a comment ${comment_location} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:60 -msgid "Embargo of registration of ${node} approved" +msgid "${user} initiated an embargoed registration of ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:61 -msgid "${user} cancelled embargoed registration of ${node}" +msgid "${user} approved embargoed registration of ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:62 -msgid "${user} completed embargo of ${node}" +msgid "Embargo of registration of ${node} approved" msgstr "" #: website/static/js/logActionsList_extract.js:63 -msgid "Embargo for ${node} completed" +msgid "${user} cancelled embargoed registration of ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:64 -msgid "Embargo for ${node} ended" +msgid "${user} completed embargo of ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:65 -msgid "${user} initiated withdrawal of a registration of ${node}" +msgid "Embargo for ${node} completed" msgstr "" #: website/static/js/logActionsList_extract.js:66 -msgid "A withdrawal of a registration of ${node} was proposed" +msgid "Embargo for ${node} ended" msgstr "" #: website/static/js/logActionsList_extract.js:67 -msgid "${user} approved a withdrawal of a registration of ${node}" +msgid "${user} initiated withdrawal of a registration of ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:68 +msgid "A withdrawal of a registration of ${node} was proposed" msgstr "" #: website/static/js/logActionsList_extract.js:69 +msgid "${user} approved a withdrawal of a registration of ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:71 msgid "${user} cancelled withdrawal of a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:70 +#: website/static/js/logActionsList_extract.js:72 msgid "A registration of ${node} was created on an external registry." msgstr "" -#: website/static/js/logActionsList_extract.js:71 +#: website/static/js/logActionsList_extract.js:73 msgid "A registration of ${node} was imported to OSF from an external registry." msgstr "" -#: website/static/js/logActionsList_extract.js:72 +#: website/static/js/logActionsList_extract.js:74 msgid "${user} initiated a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:73 +#: website/static/js/logActionsList_extract.js:75 msgid "${user} approved a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:74 +#: website/static/js/logActionsList_extract.js:76 msgid "Registration of ${node} was approved" msgstr "" -#: website/static/js/logActionsList_extract.js:75 +#: website/static/js/logActionsList_extract.js:77 msgid "${user} cancelled a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:77 +#: website/static/js/logActionsList_extract.js:79 msgid "${user} created fork from ${forked_from}" msgstr "" -#: website/static/js/logActionsList_extract.js:78 +#: website/static/js/logActionsList_extract.js:80 msgid "${user} removed ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:79 +#: website/static/js/logActionsList_extract.js:81 msgid "${user} enabled access requests for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:80 +#: website/static/js/logActionsList_extract.js:82 msgid "${user} disabled access requests for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:81 +#: website/static/js/logActionsList_extract.js:83 msgid "${user} updated the license of ${node} ${license}" msgstr "" -#: website/static/js/logActionsList_extract.js:82 +#: website/static/js/logActionsList_extract.js:84 msgid "${user} added tag ${tag} to ${path} in ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:83 +#: website/static/js/logActionsList_extract.js:85 msgid "${user} removed tag ${tag} from ${path} in ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:84 +#: website/static/js/logActionsList_extract.js:86 msgid "${user} added file ${path} to ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:85 +#: website/static/js/logActionsList_extract.js:87 msgid "${user} created folder ${path} in ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:86 +#: website/static/js/logActionsList_extract.js:88 msgid "${user} updated file ${path} in ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:87 +#: website/static/js/logActionsList_extract.js:89 msgid "${user} removed ${path_type} ${path} from ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:88 +#: website/static/js/logActionsList_extract.js:90 msgid "${user} added ${institution} affiliation to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:89 +#: website/static/js/logActionsList_extract.js:91 msgid "${user} removed ${institution} affiliation from ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:90 +#: website/static/js/logActionsList_extract.js:92 msgid "${user} made ${node} a ${preprint} on ${preprint_provider} Preprints" msgstr "" -#: website/static/js/logActionsList_extract.js:91 +#: website/static/js/logActionsList_extract.js:93 msgid "" "${user} updated the primary file of this ${preprint} on " "${preprint_provider} Preprints" msgstr "" -#: website/static/js/logActionsList_extract.js:92 +#: website/static/js/logActionsList_extract.js:94 msgid "" "${user} updated the license of this ${preprint} on ${preprint_provider} " "Preprints ${license}" msgstr "" -#: website/static/js/logActionsList_extract.js:93 +#: website/static/js/logActionsList_extract.js:95 msgid "${user} updated the subjects on ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:94 +#: website/static/js/logActionsList_extract.js:96 msgid "${user} created ${anonymous_link} view-only link to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:95 +#: website/static/js/logActionsList_extract.js:97 msgid "${user} removed ${anonymous_link} view-only link to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:96 +#: website/static/js/logActionsList_extract.js:98 msgid "" "${user} changed the conflict of interest statement availability for " "${preprint}." msgstr "" -#: website/static/js/logActionsList_extract.js:97 +#: website/static/js/logActionsList_extract.js:99 msgid "${user} changed the conflict of interest statement for ${preprint}." msgstr "" -#: website/static/js/logActionsList_extract.js:98 +#: website/static/js/logActionsList_extract.js:100 msgid "${user} has updated the has links to data field to ${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:99 +#: website/static/js/logActionsList_extract.js:101 msgid "${user} has updated their data links" msgstr "" -#: website/static/js/logActionsList_extract.js:100 +#: website/static/js/logActionsList_extract.js:102 msgid "${user} has updated their data statement" msgstr "" -#: website/static/js/logActionsList_extract.js:101 +#: website/static/js/logActionsList_extract.js:103 msgid "" "${user} has updated their preregistration data link availability to " "${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:102 +#: website/static/js/logActionsList_extract.js:104 msgid "${user} has updated their preregistration data links" msgstr "" -#: website/static/js/logActionsList_extract.js:103 +#: website/static/js/logActionsList_extract.js:105 msgid "${user} has updated their preregistration data availability statement" msgstr "" -#: website/static/js/logActionsList_extract.js:104 +#: website/static/js/logActionsList_extract.js:106 msgid "${user} has updated their preregistration links to ${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:105 +#: website/static/js/logActionsList_extract.js:107 msgid "${user} verified timestamp" msgstr "" -#: website/static/js/logActionsList_extract.js:106 +#: website/static/js/logActionsList_extract.js:108 msgid "${user} requested trusted timestamp" msgstr "" -#: website/static/js/logActionsList_extract.js:107 +#: website/static/js/logActionsList_extract.js:109 msgid "${user} requested trusted timestamp file ${path}" msgstr "" -#: website/static/js/logActionsList_extract.js:108 +#: website/static/js/logActionsList_extract.js:110 msgid "" "${user} downloaded a file of timestamp errors as a " "${timestamp_errors_file_format}" msgstr "" -#: website/static/js/logActionsList_extract.js:109 +#: website/static/js/logActionsList_extract.js:111 msgid "" "[MAPCORE_SYNC:ERROR] ${user} cannot create a new mAP group for GRDM " "project <${node}> (See logs for details)" msgstr "" -#: website/static/js/logActionsList_extract.js:110 +#: website/static/js/logActionsList_extract.js:112 msgid "" "[MAPCORE_SYNC:ERROR] mAP group for GRDM project <${node}> cannot be " "updated (See logs for details)" msgstr "" -#: website/static/js/logActionsList_extract.js:111 +#: website/static/js/logActionsList_extract.js:113 msgid "" "[MAPCORE_SYNC:ERROR] GRDM project <${node}> cannot be updated with mAP " "group (See logs for details)" msgstr "" -#: website/static/js/logActionsList_extract.js:112 +#: website/static/js/logActionsList_extract.js:114 msgid "" "[MAPCORE_SYNC:NOTICE] Unknown (unregistered in GRDM) users belong to mAP " "group <${node}> (ignored) (See logs for details)" msgstr "" -#: website/static/js/logActionsList_extract.js:113 +#: website/static/js/logActionsList_extract.js:115 msgid "${user} added file ${path} to Box in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:114 +#: website/static/js/logActionsList_extract.js:116 msgid "${user} removed ${path_type} ${path} from Box in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:115 +#: website/static/js/logActionsList_extract.js:117 msgid "${user} updated file ${path} in Box in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:116 +#: website/static/js/logActionsList_extract.js:118 msgid "${user} created folder ${path} in Box in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:117 +#: website/static/js/logActionsList_extract.js:119 msgid "${user} linked Box folder ${box_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:118 +#: website/static/js/logActionsList_extract.js:120 msgid "${user} authorized the Box addon in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:119 +#: website/static/js/logActionsList_extract.js:121 msgid "${user} deauthorized the Box addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:120 +#: website/static/js/logActionsList_extract.js:122 msgid "Box addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:121 +#: website/static/js/logActionsList_extract.js:123 msgid "${user} added file ${filename} to Dataverse dataset ${dataset} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:122 +#: website/static/js/logActionsList_extract.js:124 msgid "" "${user} removed file ${filename} from Dataverse dataset ${dataset} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:123 +#: website/static/js/logActionsList_extract.js:125 msgid "${user} linked Dataverse dataset ${dataset} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:124 +#: website/static/js/logActionsList_extract.js:126 msgid "${user} linked Dataverse dataset ${study} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:125 +#: website/static/js/logActionsList_extract.js:127 msgid "${user} published a new version of Dataverse dataset ${dataset} on ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:126 +#: website/static/js/logActionsList_extract.js:128 msgid "${user} published a new version of Dataverse dataset ${study} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:127 +#: website/static/js/logActionsList_extract.js:129 msgid "${user} authorized the Dataverse addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:128 +#: website/static/js/logActionsList_extract.js:130 msgid "${user} deauthorized the Dataverse addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:129 +#: website/static/js/logActionsList_extract.js:131 msgid "Dataverse addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:130 +#: website/static/js/logActionsList_extract.js:132 msgid "${user} added file ${path} to Dropbox in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:131 +#: website/static/js/logActionsList_extract.js:133 msgid "${user} removed ${path_type} ${path} from Dropbox in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:132 +#: website/static/js/logActionsList_extract.js:134 msgid "${user} updated file ${path} in Dropbox in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:133 +#: website/static/js/logActionsList_extract.js:135 msgid "${user} created folder ${path} in Dropbox in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:134 +#: website/static/js/logActionsList_extract.js:136 msgid "${user} linked Dropbox folder ${dropbox_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:135 +#: website/static/js/logActionsList_extract.js:137 msgid "${user} authorized the Dropbox addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:136 +#: website/static/js/logActionsList_extract.js:138 msgid "${user} deauthorized the Dropbox addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:137 +#: website/static/js/logActionsList_extract.js:139 msgid "Dropbox addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:138 +#: website/static/js/logActionsList_extract.js:140 msgid "${user} linked figshare ${folder} ${folder_name} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:139 +#: website/static/js/logActionsList_extract.js:141 msgid "${user} unlinked content from figshare in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:140 +#: website/static/js/logActionsList_extract.js:142 msgid "${user} added file ${path} to figshare in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:141 +#: website/static/js/logActionsList_extract.js:143 msgid "${user} removed ${path_type} ${path} from figshare in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:142 +#: website/static/js/logActionsList_extract.js:144 msgid "${user} created folder ${path} in figshare in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:143 +#: website/static/js/logActionsList_extract.js:145 msgid "${user} authorized the figshare addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:144 +#: website/static/js/logActionsList_extract.js:146 msgid "${user} deauthorized the figshare addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:145 +#: website/static/js/logActionsList_extract.js:147 msgid "figshare addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:146 +#: website/static/js/logActionsList_extract.js:148 msgid "${user} changed external link to ${forward_url} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:147 +#: website/static/js/logActionsList_extract.js:149 msgid "${user} added file ${path} to GitHub repo ${repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:148 +#: website/static/js/logActionsList_extract.js:150 msgid "${user} removed ${path_type} ${path} in GitHub repo ${repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:149 +#: website/static/js/logActionsList_extract.js:151 msgid "${user} updated file ${path} in GitHub repo ${repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:150 +#: website/static/js/logActionsList_extract.js:152 msgid "${user} created folder ${path} in GitHub repo ${repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:151 +#: website/static/js/logActionsList_extract.js:153 msgid "${user} authorized the GitHub addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:152 +#: website/static/js/logActionsList_extract.js:154 msgid "${user} deauthorized the GitHub addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:153 +#: website/static/js/logActionsList_extract.js:155 msgid "GitHub addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:154 +#: website/static/js/logActionsList_extract.js:156 msgid "${user} linked GitHub repo ${repo} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:155 +#: website/static/js/logActionsList_extract.js:157 msgid "${user} added file ${path} to GitLab repo ${gitlab_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:156 +#: website/static/js/logActionsList_extract.js:158 msgid "${user} removed file ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:157 +#: website/static/js/logActionsList_extract.js:159 msgid "${user} updated file ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:158 +#: website/static/js/logActionsList_extract.js:160 msgid "${user} created folder ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:159 +#: website/static/js/logActionsList_extract.js:161 msgid "${user} authorized the GitLab addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:160 +#: website/static/js/logActionsList_extract.js:162 msgid "${user} deauthorized the GitLab addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:161 +#: website/static/js/logActionsList_extract.js:163 msgid "GitLab addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:162 +#: website/static/js/logActionsList_extract.js:164 msgid "${user} linked GitLab repo ${gitlab_repo} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:163 +#: website/static/js/logActionsList_extract.js:165 msgid "${user} linked Mendeley folder ${folder_name} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:164 +#: website/static/js/logActionsList_extract.js:166 msgid "${user} authorized the Mendeley addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:165 +#: website/static/js/logActionsList_extract.js:167 msgid "${user} deauthorized the Mendeley addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:166 +#: website/static/js/logActionsList_extract.js:168 msgid "${user} linked Zotero folder ${folder_name} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:167 +#: website/static/js/logActionsList_extract.js:169 msgid "${user} linked Zotero library ${library_name} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:168 +#: website/static/js/logActionsList_extract.js:170 msgid "${user} authorized the Zotero addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:169 +#: website/static/js/logActionsList_extract.js:171 msgid "${user} deauthorized the Zotero addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:170 +#: website/static/js/logActionsList_extract.js:172 msgid "${user} added file ${path} to ownCloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:171 +#: website/static/js/logActionsList_extract.js:173 msgid "${user} removed ${path_type} ${path} from ownCloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:172 +#: website/static/js/logActionsList_extract.js:174 msgid "${user} updated file ${path} in ownCloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:173 +#: website/static/js/logActionsList_extract.js:175 msgid "${user} created folder ${path} in ownCloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:174 +#: website/static/js/logActionsList_extract.js:176 msgid "${user} linked ownCloud folder ${folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:175 +#: website/static/js/logActionsList_extract.js:177 msgid "${user} authorized the ownCloud addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:176 +#: website/static/js/logActionsList_extract.js:178 msgid "${user} deauthorized the ownCloud addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:177 +#: website/static/js/logActionsList_extract.js:179 msgid "ownCloud addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:178 +#: website/static/js/logActionsList_extract.js:180 msgid "${user} added file ${path} to Microsoft OneDrive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:179 +#: website/static/js/logActionsList_extract.js:181 msgid "${user} removed ${path_type} ${path} from Microsoft OneDrive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:180 +#: website/static/js/logActionsList_extract.js:182 msgid "${user} updated file ${path} in Microsoft OneDrive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:181 +#: website/static/js/logActionsList_extract.js:183 msgid "${user} created folder ${path} in Microsoft OneDrive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:182 +#: website/static/js/logActionsList_extract.js:184 msgid "${user} linked Microsoft OneDrive folder ${onedrive_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:183 +#: website/static/js/logActionsList_extract.js:185 msgid "${user} authorized the Microsoft OneDrive addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:184 +#: website/static/js/logActionsList_extract.js:186 msgid "${user} deauthorized the Microsoft OneDrive addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:185 +#: website/static/js/logActionsList_extract.js:187 msgid "Microsoft OneDrive addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:186 +#: website/static/js/logActionsList_extract.js:188 msgid "${user} linked the Amazon S3 bucket ${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:187 +#: website/static/js/logActionsList_extract.js:189 msgid "${user} unselected the Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:188 +#: website/static/js/logActionsList_extract.js:190 msgid "${user} added file ${path} to Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:189 +#: website/static/js/logActionsList_extract.js:191 msgid "${user} removed ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:190 +#: website/static/js/logActionsList_extract.js:192 msgid "${user} updated file ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:191 +#: website/static/js/logActionsList_extract.js:193 msgid "${user} created folder ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:192 +#: website/static/js/logActionsList_extract.js:194 msgid "${user} authorized the Amazon S3 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:193 +#: website/static/js/logActionsList_extract.js:195 msgid "${user} deauthorized the Amazon S3 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:194 +#: website/static/js/logActionsList_extract.js:196 msgid "Amazon S3 addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:195 +#: website/static/js/logActionsList_extract.js:197 msgid "${user} added file ${googledrive_path} to Google Drive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:196 +#: website/static/js/logActionsList_extract.js:198 msgid "" "${user} removed ${path_type} ${googledrive_path} from Google Drive in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:197 +#: website/static/js/logActionsList_extract.js:199 msgid "${user} updated file ${googledrive_path} in Google Drive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:198 +#: website/static/js/logActionsList_extract.js:200 msgid "${user} created folder ${googledrive_path} in Google Drive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:199 +#: website/static/js/logActionsList_extract.js:201 msgid "${user} linked Google Drive folder ${googledrive_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:200 +#: website/static/js/logActionsList_extract.js:202 msgid "${user} authorized the Google Drive addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:201 +#: website/static/js/logActionsList_extract.js:203 msgid "${user} deauthorized the Google Drive addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:202 +#: website/static/js/logActionsList_extract.js:204 msgid "Google Drive addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:203 +#: website/static/js/logActionsList_extract.js:205 msgid "${user} added file ${path} to Bitbucket repo ${bitbucket_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:204 +#: website/static/js/logActionsList_extract.js:206 msgid "" "${user} removed ${path_type} ${path} in Bitbucket repo ${bitbucket_repo} " "in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:205 +#: website/static/js/logActionsList_extract.js:207 msgid "" "${user} updated file ${path} in Bitbucket repo ${bitbucket_repo} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:206 +#: website/static/js/logActionsList_extract.js:208 msgid "" "${user} created folder ${path} in Bitbucket repo ${bitbucket_repo} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:207 +#: website/static/js/logActionsList_extract.js:209 msgid "${user} authorized the Bitbucket addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:208 +#: website/static/js/logActionsList_extract.js:210 msgid "${user} deauthorized the Bitbucket addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:209 +#: website/static/js/logActionsList_extract.js:211 msgid "Bitbucket addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:210 +#: website/static/js/logActionsList_extract.js:212 msgid "${user} linked Bitbucket repo ${bitbucket_repo} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:211 +#: website/static/js/logActionsList_extract.js:213 msgid "${user} linked the Swift container ${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:212 +#: website/static/js/logActionsList_extract.js:214 msgid "${user} unselected the Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:213 +#: website/static/js/logActionsList_extract.js:215 msgid "${user} added file ${path} to Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:214 +#: website/static/js/logActionsList_extract.js:216 msgid "${user} removed ${path} in Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:215 +#: website/static/js/logActionsList_extract.js:217 msgid "${user} updated file ${path} in Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:216 +#: website/static/js/logActionsList_extract.js:218 msgid "${user} created folder ${path} in Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:217 +#: website/static/js/logActionsList_extract.js:219 msgid "${user} authorized the Swift addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:218 +#: website/static/js/logActionsList_extract.js:220 msgid "${user} deauthorized the Swift addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:219 +#: website/static/js/logActionsList_extract.js:221 msgid "Swift addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:220 +#: website/static/js/logActionsList_extract.js:222 msgid "${user} linked the Azure Blob Storage container ${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:221 +#: website/static/js/logActionsList_extract.js:223 msgid "${user} unselected the Azure Blob Storage container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:222 +#: website/static/js/logActionsList_extract.js:224 msgid "" "${user} added file ${path} to Azure Blob Storage container ${bucket} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:223 +#: website/static/js/logActionsList_extract.js:225 msgid "" "${user} removed ${path} in Azure Blob Storage container ${bucket} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:224 +#: website/static/js/logActionsList_extract.js:226 msgid "" "${user} updated file ${path} in Azure Blob Storage container ${bucket} in" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:225 +#: website/static/js/logActionsList_extract.js:227 msgid "" "${user} created folder ${path} in Azure Blob Storage container ${bucket} " "in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:226 -msgid "${user} authorized the Azure Blob Storage addon for ${node}" -msgstr "" - -#: website/static/js/logActionsList_extract.js:227 -msgid "${user} deauthorized the Azure Blob Storage addon for ${node}" -msgstr "" - #: website/static/js/logActionsList_extract.js:228 -msgid "Azure Blob Storage addon for ${node} deauthorized" +msgid "${user} authorized the Azure Blob Storage addon for ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:229 -msgid "${user} added file ${filename} to WEKO index ${dataset} in ${node}" +msgid "${user} deauthorized the Azure Blob Storage addon for ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:230 -msgid "${user} removed file ${filename} from WEKO index ${dataset} in ${node}" +msgid "Azure Blob Storage addon for ${node} deauthorized" msgstr "" #: website/static/js/logActionsList_extract.js:231 -msgid "${user} linked WEKO index ${dataset} to ${node}" +msgid "${user} added draft file ${filename} to WEKO index ${dataset} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:232 -msgid "${user} created an index ${filename} on ${node}" +msgid "" +"${user} removed draft file ${filename} from WEKO index ${dataset} in " +"${node}" msgstr "" #: website/static/js/logActionsList_extract.js:233 -msgid "${user} created an item ${filename} on ${node}" +msgid "${user} linked WEKO index ${dataset} to ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:234 -msgid "${user} created folder ${filename} in WEKO index ${dataset} in ${node}" +msgid "" +"${user} created draft folder ${filename} in WEKO index ${dataset} in " +"${node}" msgstr "" #: website/static/js/logActionsList_extract.js:235 -msgid "${user} authorized the WEKO addon for ${node}" +msgid "${user} deposit item ${path} in WEKO index ${dataset} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:236 -msgid "${user} deauthorized the WEKO addon for ${node}" +msgid "${user} authorized the WEKO addon for ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:237 -msgid "WEKO addon for ${node} deauthorized" +msgid "${user} deauthorized the WEKO addon for ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:238 -msgid "${user} linked the S3 Compatible Storage bucket ${bucket} to ${node}" +msgid "WEKO addon for ${node} deauthorized" msgstr "" #: website/static/js/logActionsList_extract.js:239 -msgid "${user} unselected the S3 Compatible Storage bucket ${bucket} in ${node}" +msgid "${user} linked the S3 Compatible Storage bucket ${bucket} to ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:240 +msgid "${user} unselected the S3 Compatible Storage bucket ${bucket} in ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:241 msgid "" "${user} added file ${path} to S3 Compatible Storage bucket ${bucket} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:241 +#: website/static/js/logActionsList_extract.js:242 msgid "" "${user} removed ${path} in S3 Compatible Storage bucket ${bucket} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:242 +#: website/static/js/logActionsList_extract.js:243 msgid "" "${user} updated file ${path} in S3 Compatible Storage bucket ${bucket} in" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:243 +#: website/static/js/logActionsList_extract.js:244 msgid "" "${user} created folder ${path} in S3 Compatible Storage bucket ${bucket} " "in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:244 +#: website/static/js/logActionsList_extract.js:245 msgid "${user} authorized the S3 Compatible Storage addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:245 +#: website/static/js/logActionsList_extract.js:246 msgid "${user} deauthorized the S3 Compatible Storage addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:246 +#: website/static/js/logActionsList_extract.js:247 msgid "S3 Compatible Storage addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:229 -msgid "${user} added draft file ${filename} to WEKO index ${dataset} in ${node}" -msgstr "" - -#: website/static/js/logActionsList_extract.js:230 -msgid "" -"${user} removed draft file ${filename} from WEKO index ${dataset} in " -"${node}" -msgstr "" - -#: website/static/js/logActionsList_extract.js:232 -msgid "" -"${user} created draft folder ${filename} in WEKO index ${dataset} in " -"${node}" -msgstr "" - -#: website/static/js/logActionsList_extract.js:233 -msgid "${user} deposit item ${path} in WEKO index ${dataset} in ${node}" -msgstr "" - -#: website/static/js/logActionsList_extract.js:272 +#: website/static/js/logActionsList_extract.js:248 msgid "" "${user} added file ${path} to S3 Compatible Storage for Institutions in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:248 +#: website/static/js/logActionsList_extract.js:249 msgid "" "${user} removed ${path_type} ${path} from S3 Compatible Storage for " "Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:249 +#: website/static/js/logActionsList_extract.js:250 msgid "" "${user} updated file ${path} in S3 Compatible Storage for Institutions in" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:250 +#: website/static/js/logActionsList_extract.js:251 msgid "" "${user} created folder ${path} in S3 Compatible Storage for Institutions " "in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:251 +#: website/static/js/logActionsList_extract.js:252 msgid "" "${user} linked S3 Compatible Storage for Institutions folder ${folder} to" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:252 +#: website/static/js/logActionsList_extract.js:253 msgid "" "${user} authorized the S3 Compatible Storage for Institutions addon for " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:253 +#: website/static/js/logActionsList_extract.js:254 msgid "" "${user} deauthorized the S3 Compatible Storage for Institutions addon for" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:254 +#: website/static/js/logActionsList_extract.js:255 msgid "S3 Compatible Storage for Institutions addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:255 +#: website/static/js/logActionsList_extract.js:256 msgid "" "${user} linked the Oracle Cloud Infrastructure Object Storage bucket " "${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:256 +#: website/static/js/logActionsList_extract.js:257 msgid "" "${user} unselected the Oracle Cloud Infrastructure Object Storage bucket " "${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:257 +#: website/static/js/logActionsList_extract.js:258 msgid "" "${user} added file ${path} to Oracle Cloud Infrastructure Object Storage " "bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:258 +#: website/static/js/logActionsList_extract.js:259 msgid "" "${user} removed ${path} in Oracle Cloud Infrastructure Object Storage " "bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:259 +#: website/static/js/logActionsList_extract.js:260 msgid "" "${user} updated file ${path} in Oracle Cloud Infrastructure Object " "Storage bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:260 +#: website/static/js/logActionsList_extract.js:261 msgid "" "${user} created folder ${path} in Oracle Cloud Infrastructure Object " "Storage bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:261 +#: website/static/js/logActionsList_extract.js:262 msgid "" "${user} authorized the Oracle Cloud Infrastructure Object Storage addon " "for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:262 +#: website/static/js/logActionsList_extract.js:263 msgid "" "${user} deauthorized the Oracle Cloud Infrastructure Object Storage addon" " for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:263 +#: website/static/js/logActionsList_extract.js:264 msgid "Oracle Cloud Infrastructure Object Storage addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:264 +#: website/static/js/logActionsList_extract.js:265 msgid "" "${user} added file ${path} to Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:265 +#: website/static/js/logActionsList_extract.js:266 msgid "" "${user} removed ${path_type} ${path} from Oracle Cloud Infrastructure for" " Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:266 +#: website/static/js/logActionsList_extract.js:267 msgid "" "${user} updated file ${path} in Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:267 +#: website/static/js/logActionsList_extract.js:268 msgid "" "${user} created folder ${path} in Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:268 +#: website/static/js/logActionsList_extract.js:269 msgid "" "${user} linked Oracle Cloud Infrastructure for Institutions folder " "${folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:269 +#: website/static/js/logActionsList_extract.js:270 msgid "" "${user} authorized the Oracle Cloud Infrastructure for Institutions addon" " for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:270 +#: website/static/js/logActionsList_extract.js:271 msgid "" "${user} deauthorized the Oracle Cloud Infrastructure for Institutions " "addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:271 +#: website/static/js/logActionsList_extract.js:272 msgid "" "Oracle Cloud Infrastructure for Institutions addon for ${node} " "deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:272 +#: website/static/js/logActionsList_extract.js:273 msgid "${user} added file ${path} to Nextcloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:273 +#: website/static/js/logActionsList_extract.js:274 msgid "${user} removed ${path_type} ${path} from Nextcloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:274 +#: website/static/js/logActionsList_extract.js:275 msgid "${user} updated file ${path} in Nextcloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:275 +#: website/static/js/logActionsList_extract.js:276 msgid "${user} created folder ${path} in Nextcloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:276 +#: website/static/js/logActionsList_extract.js:277 msgid "${user} linked Nextcloud folder ${folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:277 +#: website/static/js/logActionsList_extract.js:278 msgid "${user} authorized the Nextcloud addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:278 +#: website/static/js/logActionsList_extract.js:279 msgid "${user} deauthorized the Nextcloud addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:279 +#: website/static/js/logActionsList_extract.js:280 msgid "Nextcloud addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:280 +#: website/static/js/logActionsList_extract.js:281 msgid "${user} added file ${path} to Nextcloud (for Institutions) in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:281 +#: website/static/js/logActionsList_extract.js:282 msgid "" "${user} removed ${path_type} ${path} from Nextcloud (for Institutions) in" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:282 +#: website/static/js/logActionsList_extract.js:283 msgid "${user} updated file ${path} in Nextcloud (for Institutions) in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:283 +#: website/static/js/logActionsList_extract.js:284 msgid "${user} created folder ${path} in Nextcloud (for Institutions) in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:284 +#: website/static/js/logActionsList_extract.js:285 msgid "${user} linked Nextcloud (for Institutions) folder ${folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:285 +#: website/static/js/logActionsList_extract.js:286 msgid "${user} authorized the Nextcloud (for Institutions) addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:286 +#: website/static/js/logActionsList_extract.js:287 msgid "${user} deauthorized the Nextcloud (for Institutions) addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:287 +#: website/static/js/logActionsList_extract.js:288 msgid "Nextcloud (for Institutions) addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:288 +#: website/static/js/logActionsList_extract.js:289 msgid "${user} added file ${iqbrims_path} to IQB-RIMS in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:289 +#: website/static/js/logActionsList_extract.js:290 msgid "${user} removed ${path_type} ${iqbrims_path} from IQB-RIMS in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:290 +#: website/static/js/logActionsList_extract.js:291 msgid "${user} updated file ${iqbrims_path} in IQB-RIMS in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:291 +#: website/static/js/logActionsList_extract.js:292 msgid "${user} created folder ${iqbrims_path} in IQB-RIMS in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:292 +#: website/static/js/logActionsList_extract.js:293 msgid "${user} linked IQB-RIMS folder ${iqbrims_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:293 +#: website/static/js/logActionsList_extract.js:294 msgid "${user} authorized the IQB-RIMS addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:294 +#: website/static/js/logActionsList_extract.js:295 msgid "${user} deauthorized the IQB-RIMS addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:295 +#: website/static/js/logActionsList_extract.js:296 msgid "IQB-RIMS addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:296 -#: website/static/js/logActionsList_extract.js:298 +#: website/static/js/logActionsList_extract.js:297 +#: website/static/js/logActionsList_extract.js:299 msgid "${user} started IQB-RIMS workflow for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:297 -#: website/static/js/logActionsList_extract.js:299 +#: website/static/js/logActionsList_extract.js:298 +#: website/static/js/logActionsList_extract.js:300 msgid "Finished workflow of ${user} for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:300 +#: website/static/js/logActionsList_extract.js:301 msgid "${user} added file ${path} to Dropbox Business in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:301 +#: website/static/js/logActionsList_extract.js:302 msgid "${user} removed ${path_type} ${path} from Dropbox Business in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:302 +#: website/static/js/logActionsList_extract.js:303 msgid "${user} updated file ${path} in Dropbox Business in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:303 +#: website/static/js/logActionsList_extract.js:304 msgid "${user} created folder ${path} in Dropbox Business in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:304 +#: website/static/js/logActionsList_extract.js:305 msgid "" "${user} linked Dropbox Business folder ${dropboxbusiness_folder} to " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:305 +#: website/static/js/logActionsList_extract.js:306 msgid "${user} authorized the Dropbox Business addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:306 +#: website/static/js/logActionsList_extract.js:307 msgid "${user} deauthorized the Dropbox Business addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:307 +#: website/static/js/logActionsList_extract.js:308 msgid "Dropbox Business addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:308 +#: website/static/js/logActionsList_extract.js:309 msgid "" "${user} added file ${path} to the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:309 +#: website/static/js/logActionsList_extract.js:310 msgid "${user} removed ${path} in the OneDrive team folder ${folder} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:310 +#: website/static/js/logActionsList_extract.js:311 msgid "" "${user} updated file ${path} in the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:311 +#: website/static/js/logActionsList_extract.js:312 msgid "" "${user} created folder ${path} in the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:312 +#: website/static/js/logActionsList_extract.js:313 msgid "${user} authorized the OneDrive for Office365 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:313 +#: website/static/js/logActionsList_extract.js:314 msgid "${user} deauthorized the OneDrive for Office365 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:314 +#: website/static/js/logActionsList_extract.js:315 msgid "OneDrive for Office365 addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:315 +#: website/static/js/logActionsList_extract.js:316 msgid "${user} added metadata in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:316 +#: website/static/js/logActionsList_extract.js:317 msgid "${user} added metadata ${path} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:317 +#: website/static/js/logActionsList_extract.js:318 msgid "${user} updated metadata ${path} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:318 +#: website/static/js/logActionsList_extract.js:319 msgid "${user} deleted metadata ${path} in ${node}" msgstr "" -#: website/static/js/logTextParser.js:828 +#: website/static/js/logActionsList_extract.js:320 +msgid "${user} created a ${filename} workflow in ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:321 +msgid "${user} updated a ${filename} workflow in ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:322 +msgid "${user} deleted a ${filename} workflow in ${node}" +msgstr "" + +#: website/static/js/logTextParser.js:830 msgid "unknown format" msgstr "" @@ -8613,74 +8512,131 @@ msgstr "" msgid "Unable to check out file" msgstr "" +#: website/static/js/filepage/index.js:253 +msgid "Workflow Project ID" +msgstr "" + +#: website/static/js/filepage/index.js:255 +msgid "Workflow Process Project ID" +msgstr "" + +#: website/static/js/filepage/index.js:257 +msgid "Workflow User ID" +msgstr "" + +#: website/static/js/filepage/index.js:259 +msgid "Workflow Valid User ID" +msgstr "" + +#: website/static/js/filepage/index.js:261 +msgid "Workfllow Startup User ID" +msgstr "" + +#: website/static/js/filepage/index.js:263 +msgid "File Path" +msgstr "" + #: website/static/js/filepage/index.js:265 +msgid "Admin Mail Address" +msgstr "" + +#: website/static/js/filepage/index.js:267 +msgid "Researcher Mail Address" +msgstr "" + +#: website/static/js/filepage/index.js:294 +#: website/static/js/filepage/index.js:298 +msgid "Workflow Start" +msgstr "" + +#: website/static/js/filepage/index.js:320 +msgid "Check the workflow data again." +msgstr "" + +#: website/static/js/filepage/index.js:325 +msgid "Processing..." +msgstr "" + +#: website/static/js/filepage/index.js:451 +msgid "The workflow process is complete." +msgstr "" + +#: website/static/js/filepage/index.js:455 +msgid "The workflow process has failed." +msgstr "" + +#: website/static/js/filepage/index.js:482 msgid "Unable to check in file" msgstr "" -#: website/static/js/filepage/index.js:270 +#: website/static/js/filepage/index.js:487 msgid "Force check in file?" msgstr "" -#: website/static/js/filepage/index.js:271 +#: website/static/js/filepage/index.js:488 msgid "" "This will check in the file for all users, allowing it to be edited. Are " "you sure?" msgstr "" -#: website/static/js/filepage/index.js:274 +#: website/static/js/filepage/index.js:491 msgid "Force check in" msgstr "" -#: website/static/js/filepage/index.js:297 +#: website/static/js/filepage/index.js:514 msgid "Unable to force check in file. Make sure you have admin privileges." msgstr "" -#: website/static/js/filepage/index.js:338 +#: website/static/js/filepage/index.js:555 msgid "Live editing mode " msgstr "" -#: website/static/js/filepage/index.js:339 +#: website/static/js/filepage/index.js:556 msgid "Attempting to connect " msgstr "" -#: website/static/js/filepage/index.js:340 +#: website/static/js/filepage/index.js:557 msgid "Unsupported browser " msgstr "" -#: website/static/js/filepage/index.js:341 +#: website/static/js/filepage/index.js:558 msgid "Saving... " msgstr "" -#: website/static/js/filepage/index.js:342 +#: website/static/js/filepage/index.js:559 msgid "Unavailable: Live editing " msgstr "" -#: website/static/js/filepage/index.js:465 +#: website/static/js/filepage/index.js:682 msgid "View this file on " msgstr "" -#: website/static/js/filepage/index.js:502 +#: website/static/js/filepage/index.js:719 msgid "Check out" msgstr "" -#: website/static/js/filepage/index.js:505 +#: website/static/js/filepage/index.js:722 msgid "Check in" msgstr "" -#: website/static/js/filepage/index.js:511 +#: website/static/js/filepage/index.js:728 msgid "Request Trusted Timestamp" msgstr "" -#: website/static/js/filepage/index.js:528 +#: website/static/js/filepage/index.js:745 msgid "Toggle view: " msgstr "" -#: website/static/js/filepage/index.js:567 +#: website/static/js/filepage/index.js:784 #: website/static/js/filepage/revisions.js:173 msgid "Revisions" msgstr "" -#: website/static/js/filepage/index.js:572 +#: website/static/js/filepage/index.js:788 +msgid "Request for administrator approval to publish" +msgstr "" + +#: website/static/js/filepage/index.js:794 msgid "Edit(ONLYOFFICE)" msgstr "" @@ -9231,3 +9187,204 @@ msgstr "" #~ msgid "${user} removed a citation ${citation} in ${node}" #~ msgstr "" + +#~ msgid "" +#~ "Contacts of data manager can't be " +#~ "blank. Please fill mail address, or " +#~ "organization name, address and phone " +#~ "number." +#~ msgstr "" + +#~ msgid "Calculate" +#~ msgstr "" + +#~ msgid "Fill" +#~ msgstr "" + +#~ msgid "Could not generate Data No." +#~ msgstr "" + +#~ msgid "No members" +#~ msgstr "" + +#~ msgid "e-Rad Researcher Number" +#~ msgstr "" + +#~ msgid "Name (Japanese)" +#~ msgstr "" + +#~ msgid "Name (English)" +#~ msgstr "" + +#~ msgid "Select a registration for the file." +#~ msgstr "" + +#~ msgid "Are you sure you want to add this Export Data Storage Location?" +#~ msgstr "" + +#~ msgid "Unable to delete location %1$s" +#~ msgstr "" + +#~ msgid "Are you sure you want to delete this export data storage location?" +#~ msgstr "" + +#~ msgid "Export Data" +#~ msgstr "" + +#~ msgid "Stop Export Data" +#~ msgstr "" + +#~ msgid "Export data successfully." +#~ msgstr "" + +#~ msgid "Cannot export data." +#~ msgstr "" + +#~ msgid "Error occurred while exporting data." +#~ msgstr "" + +#~ msgid "Export data failed." +#~ msgstr "" + +#~ msgid "Export data in background." +#~ msgstr "" + +#~ msgid "Stop exporting successfully." +#~ msgstr "" + +#~ msgid "Cannot stop exporting data." +#~ msgstr "" + +#~ msgid "Error occurred while stopping export data." +#~ msgstr "" + +#~ msgid "Stop exporting in background." +#~ msgstr "" + +#~ msgid "Are you sure you want to permanently delete these export data?" +#~ msgstr "" + +#~ msgid "Delete Permanently" +#~ msgstr "Delete" + +#~ msgid "Restore Export Data" +#~ msgstr "" + +#~ msgid "message" +#~ msgstr "" + +#~ msgid "Stop Restore Export Data" +#~ msgstr "" + +#~ msgid "Stopped restoring data process." +#~ msgstr "" + +#~ msgid "Restore completed." +#~ msgstr "" + +#~ msgid "result" +#~ msgstr "" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "

    ONLYOFFICE Add-on Terms

    \n" +#~ "\n" +#~ "
    PermissionsThe GakuNin RDM does not affect the permissions of " -"ONLYOFFICE.
    View / download file versionsThe ONLYOFFICE add-on does not provide Storage " +" The Onlyoffice add-on does not provide Storage " "Features.
    Add / update filesThe ONLYOFFICE add-on does not provide Storage " +" The Onlyoffice add-on does not provide Storage " "Features.
    Delete filesThe ONLYOFFICE add-on does not provide Storage " +" The Onlyoffice add-on does not provide Storage " "Features.
    LogsThe ONLYOFFICE add-on does not provide Storage " +" The Onlyoffice add-on does not provide Storage " "Features.
    ForkingForking a project or component copies information " -"about linked ONLYOFFICE but the GakuNin RDM does not affect " -"authentication of ONLYOFFICE.
    \n" +#~ "\n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "\n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " " +#~ "\n" +#~ " \n" +#~ " \n" +#~ "\n" +#~ "
    FunctionStatus
    PermissionsThe GakuNin RDM does " +#~ "not affect the permissions of " +#~ "ONLYOFFICE.
    View / download file versionsThe ONLYOFFICE add-on " +#~ "does not provide Storage Features.
    Add / update filesThe ONLYOFFICE add-on " +#~ "does not provide Storage Features.
    Delete filesThe ONLYOFFICE add-on " +#~ "does not provide Storage Features.
    LogsThe ONLYOFFICE add-on " +#~ "does not provide Storage Features.
    ForkingForking a project or " +#~ "component copies information about linked " +#~ "ONLYOFFICE but the GakuNin RDM does " +#~ "not affect authentication of ONLYOFFICE.
    \n" +#~ "\n" +#~ "
      \n" +#~ "
    • This add-on connects your" +#~ " GakuNin RDM project to an external" +#~ " service. Use of this service is " +#~ "bound by its terms and conditions. " +#~ "The GakuNin RDM is not responsible " +#~ "for the service or for your use" +#~ " thereof.
    • \n" +#~ "
    • This add-on allows you " +#~ "to store files using an external " +#~ "service. Files added to this add-" +#~ "on are not stored within the " +#~ "GakuNin RDM.
    • \n" +#~ "
    \n" +#~ msgstr "" + +#~ msgid "A user added a file to a WEKO index in a project" +#~ msgstr "" + +#~ msgid "A user removed a file from a WEKO index in a project" +#~ msgstr "" + +#~ msgid "A user created an index to a project" +#~ msgstr "" + +#~ msgid "A user created an item to a project" +#~ msgstr "" + +#~ msgid "A user created a folder in WEKO in a project" +#~ msgstr "" + +#~ msgid "${user} added file ${filename} to WEKO index ${dataset} in ${node}" +#~ msgstr "" + +#~ msgid "${user} removed file ${filename} from WEKO index ${dataset} in ${node}" +#~ msgstr "" + +#~ msgid "${user} created an index ${filename} on ${node}" +#~ msgstr "" + +#~ msgid "${user} created an item ${filename} on ${node}" +#~ msgstr "" + +#~ msgid "${user} created folder ${filename} in WEKO index ${dataset} in ${node}" +#~ msgstr "" + diff --git a/website/translations/ja/LC_MESSAGES/js_messages.po b/website/translations/ja/LC_MESSAGES/js_messages.po index fddca4c03f6..173f4f7de32 100644 --- a/website/translations/ja/LC_MESSAGES/js_messages.po +++ b/website/translations/ja/LC_MESSAGES/js_messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.6.0\n" "Report-Msgid-Bugs-To: rocs-office@nii.ac.jp\n" -"POT-Creation-Date: 2024-02-21 06:53+0000\n" +"POT-Creation-Date: 2025-03-28 07:48+0000\n" "PO-Revision-Date: 2020-11-23 09:30+0900\n" "Last-Translator: Hidetoshi Yoshimoto\n" "Language: ja\n" @@ -16,217 +16,226 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.5.1\n" + +#: addons/datasteward/static/datastewardUserConfig.js:96 +#: addons/datasteward/static/datastewardUserConfig.js:97 +msgid "You do not have permission to perform this action." +msgstr "このアクションを実行する権限がありません。" + +#: addons/datasteward/static/datastewardUserConfig.js:130 +#: addons/datasteward/static/datastewardUserConfig.js:131 +msgid "Cannot disable DataSteward add-on" +msgstr "データ管理責任者アドオンを無効にできません" + +#: addons/datasteward/static/datastewardUserConfig.js:167 +#: addons/datasteward/static/datastewardUserConfig.js:168 +msgid "Cannot get DataSteward add-on settings" +msgstr "データ管理責任者アドオン設定を取得できません" #: addons/jupyterhub/static/files.js:96 msgid "Launch" msgstr "起動" -#: addons/metadata/static/files.js:331 +#: addons/metadata/static/files.js:337 msgid "Metadata Schema:" msgstr "メタデータ様式:" -#: addons/metadata/static/files.js:528 +#: addons/metadata/static/files.js:534 msgid "Paste from Clipboard" msgstr "クリップボードから貼り付け" -#: addons/metadata/static/files.js:637 addons/metadata/static/files.js:651 -#: website/static/js/fangorn.js:1853 +#: addons/metadata/static/files.js:645 addons/metadata/static/files.js:646 +#: addons/metadata/static/files.js:660 addons/metadata/static/files.js:661 +#: website/static/js/fangorn.js:1860 msgid "Could not copy text" msgstr "テキストをコピーできませんでした" -#: addons/metadata/static/files.js:649 website/static/js/clipboard.js:27 -#: website/static/js/fangorn.js:1847 website/static/js/fangorn.js:1851 +#: addons/metadata/static/files.js:658 website/static/js/clipboard.js:27 +#: website/static/js/fangorn.js:1854 website/static/js/fangorn.js:1858 msgid "Copied!" msgstr "コピーされました!" -#: addons/metadata/static/files.js:675 addons/metadata/static/files.js:690 +#: addons/metadata/static/files.js:685 addons/metadata/static/files.js:686 +#: addons/metadata/static/files.js:705 addons/metadata/static/files.js:706 msgid "Could not paste text" msgstr "テキストを貼り付けできませんでした" -#: addons/metadata/static/files.js:740 addons/metadata/static/files.js:754 -#: addons/metadata/static/files.js:1095 +#: addons/metadata/static/files.js:756 addons/metadata/static/files.js:770 +#: addons/metadata/static/files.js:1119 msgid "Loading..." msgstr "読み込み中..." -#: addons/metadata/static/files.js:752 +#: addons/metadata/static/files.js:768 msgid "Select the destination of the file metadata." msgstr "ファイルメタデータの移動先を選択してください。" -#: addons/metadata/static/files.js:757 +#: addons/metadata/static/files.js:773 msgid "Current Metadata:" msgstr "現在のメタデータ:" -#: addons/metadata/static/files.js:813 +#: addons/metadata/static/files.js:829 msgid "Delete metadata" msgstr "メタデータを削除" -#: addons/metadata/static/files.js:816 +#: addons/metadata/static/files.js:832 addons/metadata/static/files.js:833 msgid "Could not list hashes" msgstr "ハッシュ情報の一覧を取得できませんでした" -#: addons/metadata/static/files.js:824 -#: addons/metadata/static/metadata-fields.js:1041 +#: addons/metadata/static/files.js:841 addons/metadata/static/files.js:842 +#: addons/metadata/static/metadata-fields.js:1159 msgid "Could not list files" msgstr "ファイルの一覧を取得できませんでした" -#: addons/metadata/static/files.js:913 addons/metadata/static/files.js:920 +#: addons/metadata/static/files.js:937 addons/metadata/static/files.js:944 msgid "No name" msgstr "名称未設定" -#: addons/metadata/static/files.js:1005 +#: addons/metadata/static/files.js:1029 msgid "" "There is no draft project metadata compliant with the schema. Create new " "draft project metadata from the Metadata tab:" msgstr "スキーマに対応するプロジェクトメタデータの下書きがありません。メタデータ タブから新規プロジェクトメタデータを作成してください:" -#: addons/metadata/static/files.js:1007 addons/metadata/static/files.js:1175 -#: addons/metadata/static/files.js:1189 +#: addons/metadata/static/files.js:1031 addons/metadata/static/files.js:1199 +#: addons/metadata/static/files.js:1213 msgid "Open" msgstr "開く" -#: addons/metadata/static/files.js:1070 +#: addons/metadata/static/files.js:1094 msgid "There are errors in some fields." msgstr "いくつかのフィールドにエラーがあります。" -#: addons/metadata/static/files.js:1106 addons/metadata/static/files.js:2149 -#: addons/metadata/static/files.js:2175 website/static/js/folderpicker.js:105 +#: addons/metadata/static/files.js:1130 addons/metadata/static/files.js:2297 +#: addons/metadata/static/files.js:2323 website/static/js/folderpicker.js:105 msgid "Select" msgstr "選択" -#: addons/metadata/static/files.js:1110 +#: addons/metadata/static/files.js:1134 msgid "Select the destination for the file metadata." msgstr "ファイルメタデータの登録先を選択してください。" -#: addons/metadata/static/files.js:1161 +#: addons/metadata/static/files.js:1185 msgid "Registering..." msgstr "登録中..." -#: addons/metadata/static/files.js:1161 +#: addons/metadata/static/files.js:1185 msgid "Deleting..." msgstr "削除中..." -#: addons/metadata/static/files.js:1255 addons/metadata/static/files.js:1994 -#: addons/metadata/static/files.js:2072 addons/metadata/static/files.js:2119 -#: addons/metadata/static/files.js:2147 addons/metadata/static/files.js:2173 -#: addons/metadata/static/files.js:2229 -#: addons/metadata/static/metadataImportDatasetButton.js:23 -#: website/static/js/accountSettings.js:267 website/static/js/fangorn.js:2777 +#: addons/metadata/static/files.js:1279 addons/metadata/static/files.js:2138 +#: addons/metadata/static/files.js:2216 addons/metadata/static/files.js:2263 +#: addons/metadata/static/files.js:2295 addons/metadata/static/files.js:2321 +#: addons/metadata/static/files.js:2377 +#: addons/metadata/static/metadataImportDatasetButton.js:24 +#: website/static/js/accountSettings.js:267 website/static/js/fangorn.js:2811 #: website/static/js/folderPickerNodeConfig.js:591 #: website/static/js/pages/profile-settings-addons-page.js:72 #: website/static/js/pages/project-settings-page.js:118 msgid "Close" msgstr "閉じる" -#: addons/metadata/static/files.js:1321 +#: addons/metadata/static/files.js:1346 msgid "View Metadata" msgstr "メタデータ確認" -#: addons/metadata/static/files.js:1332 +#: addons/metadata/static/files.js:1357 msgid "Edit Metadata" msgstr "メタデータ編集" -#: addons/metadata/static/files.js:1343 +#: addons/metadata/static/files.js:1368 msgid "Register Metadata" msgstr "メタデータ登録" -#: addons/metadata/static/files.js:1353 +#: addons/metadata/static/files.js:1378 msgid "Delete Metadata" msgstr "メタデータ削除" -#: addons/metadata/static/files.js:1407 +#: addons/metadata/static/files.js:1432 msgid "Edit Multiple Metadata" msgstr "メタデータ複数編集" -#: addons/metadata/static/files.js:1417 +#: addons/metadata/static/files.js:1442 msgid "Loading Metadata" msgstr "メタデータ読み込み中" -#: addons/metadata/static/files.js:1556 +#: addons/metadata/static/files.js:1584 msgid "Metadata is defined" msgstr "メタデータが定義されています" -#: addons/metadata/static/files.js:1565 +#: addons/metadata/static/files.js:1592 msgid "Some of the children have metadata." msgstr "いくつかの子ファイルにメタデータが定義されています。" -#: addons/metadata/static/files.js:1575 +#: addons/metadata/static/files.js:1602 msgid "File not found: " msgstr "ファイルが見つかりません:" -#: addons/metadata/static/files.js:1998 addons/metadata/static/files.js:2074 +#: addons/metadata/static/files.js:2142 addons/metadata/static/files.js:2218 #: website/static/js/contribManager.js:440 #: website/static/js/filepage/editor.js:180 msgid "Save" msgstr "保存" -#: addons/metadata/static/files.js:2010 addons/metadata/static/files.js:2195 +#: addons/metadata/static/files.js:2154 addons/metadata/static/files.js:2343 msgid "Copy to clipboard" msgstr "クリップボードにコピー" -#: addons/metadata/static/files.js:2026 +#: addons/metadata/static/files.js:2170 msgid "" "Renaming, moving the file/directory, or changing the directory hierarchy " "can break the association of the metadata you have added." msgstr "ファイルのリネーム、ファイルやディレクトリの移動、ディレクトリ階層の変更を行うと、入力したメタデータの関連付けが解除される場合があります。" -#: addons/metadata/static/files.js:245 -msgid "Hide Items" -msgstr "項目を非表示" - -#: addons/metadata/static/files.js:248 -msgid "Show Items" -msgstr "項目を表示" - -#: addons/metadata/static/files.js:2032 +#: addons/metadata/static/files.js:2176 msgid "Edit File Metadata" msgstr "ファイルメタデータの編集" -#: addons/metadata/static/files.js:2032 +#: addons/metadata/static/files.js:2176 msgid "View File Metadata" msgstr "ファイルメタデータの参照" -#: addons/metadata/static/files.js:2053 addons/metadata/static/files.js:2106 +#: addons/metadata/static/files.js:2197 addons/metadata/static/files.js:2250 #: website/static/js/saveManager.js:24 msgid "You have unsaved changes." msgstr "未保存の変更があります。" -#: addons/metadata/static/files.js:2089 +#: addons/metadata/static/files.js:2233 msgid "Edit Multiple File Metadata" msgstr "ファイルメタデータの複数編集" -#: addons/metadata/static/files.js:2121 website/static/js/fangorn.js:1551 -#: website/static/js/fangorn.js:1574 website/static/js/fangorn.js:2469 -#: website/static/js/fangorn.js:2505 website/static/js/filepage/index.js:204 -#: website/static/js/filepage/index.js:519 website/static/js/myProjects.js:1637 +#: addons/metadata/static/files.js:2269 website/static/js/fangorn.js:1558 +#: website/static/js/fangorn.js:1581 website/static/js/fangorn.js:2476 +#: website/static/js/fangorn.js:2512 website/static/js/filepage/index.js:204 +#: website/static/js/filepage/index.js:736 website/static/js/myProjects.js:1637 msgid "Delete" msgstr "削除" -#: addons/metadata/static/files.js:2134 +#: addons/metadata/static/files.js:2282 msgid "Delete File Metadata" msgstr "ファイルメタデータの削除" -#: addons/metadata/static/files.js:2139 +#: addons/metadata/static/files.js:2287 msgid "Do you want to delete metadata? This operation cannot be undone." msgstr "メタデータを削除してよろしいですか?この操作は元に戻せません。" -#: addons/metadata/static/files.js:2156 +#: addons/metadata/static/files.js:2304 msgid "Select a destination for file metadata registration" msgstr "ファイルメタデータ登録先の選択" -#: addons/metadata/static/files.js:2205 +#: addons/metadata/static/files.js:2353 msgid "Fix file metadata" msgstr "ファイルメタデータの修正" -#: addons/metadata/static/files.js:2234 +#: addons/metadata/static/files.js:2382 msgid "Paste Metadata" msgstr "メタデータ貼り付け" -#: addons/metadata/static/files.js:2239 +#: addons/metadata/static/files.js:2387 msgid "Press Ctrl-V (Command-V) to paste." msgstr "クリップボードから貼り付けるために Ctrl-V (Command-V) を押してください。" -#: addons/metadata/static/files.js:2241 +#: addons/metadata/static/files.js:2389 msgid "" "[Why is this needed?] In this browser, retrieving clipboard values with " "button operations is prohibited. Therefore, you must explicitly indicate " @@ -236,141 +245,116 @@ msgstr "" "[この操作が必要な理由] " "このブラウザでは、ボタン操作でのクリップボードの値取得が禁止されています。そのため、ショートカットキーまたはブラウザメニューの貼り付けにより明示的にクリップボード操作を指示する必要があります。" -#: addons/metadata/static/metadata-fields.js:896 -#, python-format -msgid "One of this field or \"%s\" field must be filled." -msgstr "このフィールドか「%s」フィールドのいずれかを入力する必要があります。" - -msgid "File size exceeds the maximum allowed size." -msgstr "ファイルサイズが最大許容サイズを超えていますので自動取得することができません。" - -#: addons/metadata/static/metadata-fields.js:911 -msgid "This field can't be blank." -msgstr "このフィールドは必須項目です。" - -#: addons/metadata/static/metadata-fields.js:875 -msgid "Please enter the correct value. " -msgstr "正しい値を入力してください。 " - -#: addons/metadata/static/metadata-fields.js:252 -msgid "" -"Contacts of data manager can't be blank. Please fill mail address, or " -"organization name, address and phone number." -msgstr "データ管理者は必須項目です。メールアドレスを入力するか、所属機関名・連絡先住所・連絡先電話番号を入力してください。" - -#: addons/metadata/static/metadata-fields.js:577 -msgid "(Not Modified)" -msgstr "(変更なし)" +#: addons/metadata/static/metadata-fields.js:243 +#: addons/metadata/static/metadata-fields.js:253 +msgid "Show Items" +msgstr "項目を表示" -#: addons/metadata/static/metadata-fields.js:580 -msgid "Choose..." -msgstr "選択..." +#: addons/metadata/static/metadata-fields.js:250 +msgid "Hide Items" +msgstr "項目を非表示" -#: addons/metadata/static/metadata-fields.js:213 +#: addons/metadata/static/metadata-fields.js:271 msgid "Clear" msgstr "クリア" -#: addons/metadata/static/metadata-fields.js:235 -#: addons/metadata/static/metadata-fields.js:244 +#: addons/metadata/static/metadata-fields.js:293 +#: addons/metadata/static/metadata-fields.js:302 msgid "Show example" msgstr "サンプル表示" -#: addons/metadata/static/metadata-fields.js:248 +#: addons/metadata/static/metadata-fields.js:306 msgid "Hide example" msgstr "サンプル非表示" -#: addons/metadata/static/metadata-fields.js:564 -msgid "Calculate" -msgstr "集計" - -#: addons/metadata/static/metadata-fields.js:624 -#: addons/metadata/static/metadata-fields.js:672 -msgid "Fill" -msgstr "入力" - -#: addons/metadata/static/metadata-fields.js:694 -msgid "Could not generate Data No." -msgstr "データ No. を生成できませんでした" - -#: addons/metadata/static/metadata-fields.js:728 -msgid "No members" -msgstr "作成者が設定されていません" - -#: addons/metadata/static/metadata-fields.js:795 -msgid "e-Rad Researcher Number" -msgstr "e-Rad研究者番号" - -#: addons/metadata/static/metadata-fields.js:796 -msgid "Name (Japanese)" -msgstr "名前 (日本語)" +#: addons/metadata/static/metadata-fields.js:642 +msgid "(Not Modified)" +msgstr "(変更なし)" -#: addons/metadata/static/metadata-fields.js:797 -msgid "Name (English)" -msgstr "" +#: addons/metadata/static/metadata-fields.js:645 +msgid "Choose..." +msgstr "選択..." -#: addons/metadata/static/metadata-fields.js:656 +#: addons/metadata/static/metadata-fields.js:738 msgid "No data" msgstr "データはありません" -#: addons/metadata/static/metadata-fields.js:667 +#: addons/metadata/static/metadata-fields.js:749 #: website/static/js/myProjects.js:1565 msgid "Add" msgstr "追加" -#: addons/metadata/static/metadata-fields.js:1027 +#: addons/metadata/static/metadata-fields.js:980 +msgid "Please enter the correct value. " +msgstr "正しい値を入力してください。 " + +#: addons/metadata/static/metadata-fields.js:1004 +#, python-format +msgid "One of this field or \"%s\" field must be filled." +msgstr "このフィールドか「%s」フィールドのいずれかを入力する必要があります。" + +#: addons/metadata/static/metadata-fields.js:1019 +msgid "This field can't be blank." +msgstr "このフィールドは必須項目です。" + +#: addons/metadata/static/metadata-fields.js:1135 msgid "Overwrite already entered value?" msgstr "すでに入力されている値を上書きしますか?" -#: addons/metadata/static/metadataImportDatasetButton.js:25 -#: addons/metadata/static/metadataImportDatasetButton.js:56 -#: addons/metadata/static/metadataImportDatasetButton.js:234 +#: addons/metadata/static/metadata-fields.js:1151 +msgid "File size exceeds the maximum allowed size." +msgstr "ファイルサイズが最大許容サイズを超えていますので自動取得することができません。" + +#: addons/metadata/static/metadataImportDatasetButton.js:26 +#: addons/metadata/static/metadataImportDatasetButton.js:57 +#: addons/metadata/static/metadataImportDatasetButton.js:261 msgid "Import Dataset" msgstr "データセットのインポート" -#: addons/metadata/static/metadataImportDatasetButton.js:41 +#: addons/metadata/static/metadataImportDatasetButton.js:42 msgid "Enter URL to import dataset" msgstr "インポートするデータセットのURLを入力してください" -#: addons/metadata/static/metadataImportDatasetButton.js:44 +#: addons/metadata/static/metadataImportDatasetButton.js:45 msgid "Importing..." msgstr "インポート中..." -#: addons/metadata/static/metadataImportDatasetButton.js:48 -#: addons/metadata/static/metadataImportDatasetButton.js:164 -#: addons/metadata/static/metadataImportDatasetButton.js:189 +#: addons/metadata/static/metadataImportDatasetButton.js:49 +#: addons/metadata/static/metadataImportDatasetButton.js:165 +#: addons/metadata/static/metadataImportDatasetButton.js:190 msgid "Error importing dataset: " msgstr "データセットのインポート中にエラーが発生しました: " -#: addons/metadata/static/metadataImportDatasetButton.js:58 +#: addons/metadata/static/metadataImportDatasetButton.js:59 msgid "Enter the URL of the dataset you would like to import." msgstr "インポートしたいデータセットのURLを入力してください。" -#: addons/metadata/static/metadataImportDatasetButton.js:126 +#: addons/metadata/static/metadataImportDatasetButton.js:127 msgid "Downloaded!" msgstr "ダウンロードされました!" -#: addons/metadata/static/metadataNodeConfig.js:112 +#: addons/metadata/static/metadataNodeConfig.js:113 msgid "Could not GET metadata settings" msgstr "メタデータ設定を取得できませんでした" -#: addons/metadata/static/metadataNodeConfig.js:155 +#: addons/metadata/static/metadataNodeConfig.js:156 msgid "Add-on settings configured." msgstr "アドオンが設定されました。" -#: addons/metadata/static/metadataNodeConfig.js:161 +#: addons/metadata/static/metadataNodeConfig.js:162 msgid "Failed to configure add-on settings." msgstr "アドオンの設定に失敗しました。" #: addons/twofactor/static/twoFactorUserConfig.js:148 #: addons/twofactor/static/twoFactorUserConfig.js:190 -#: addons/weko/static/wekoFangornConfig.js:611 +#: addons/weko/static/wekoFangornConfig.js:621 #: admin/static/js/rdm_addons/rdm-addons-page.js:80 #: website/static/js/accountSettings.js:249 #: website/static/js/accountSettings.js:327 #: website/static/js/accountSettings.js:392 #: website/static/js/accountSettings.js:518 #: website/static/js/accountSettings.js:590 -#: website/static/js/addProjectPlugin.js:346 +#: website/static/js/addProjectPlugin.js:347 #: website/static/js/addonPermissions.js:55 #: website/static/js/addonSettings.js:71 website/static/js/addonSettings.js:134 #: website/static/js/apiApplication.js:249 @@ -381,11 +365,12 @@ msgstr "アドオンの設定に失敗しました。" #: website/static/js/apiPersonalToken.js:438 #: website/static/js/citationsNodeConfig.js:169 #: website/static/js/citationsNodeConfig.js:187 -#: website/static/js/contribManager.js:444 website/static/js/fangorn.js:562 -#: website/static/js/fangorn.js:567 website/static/js/fangorn.js:1553 -#: website/static/js/fangorn.js:1576 website/static/js/fangorn.js:1629 -#: website/static/js/fangorn.js:1648 website/static/js/fangorn.js:2457 +#: website/static/js/contribManager.js:444 website/static/js/fangorn.js:566 +#: website/static/js/fangorn.js:571 website/static/js/fangorn.js:1557 +#: website/static/js/fangorn.js:1580 website/static/js/fangorn.js:1633 +#: website/static/js/fangorn.js:1652 website/static/js/fangorn.js:2486 #: website/static/js/filepage/index.js:208 +#: website/static/js/filepage/index.js:302 #: website/static/js/folderPickerNodeConfig.js:510 #: website/static/js/folderPickerNodeConfig.js:566 #: website/static/js/institutionProjectSettings.js:102 @@ -425,70 +410,70 @@ msgstr "" msgid "Enable" msgstr "有効にする" -#: addons/weko/static/wekoFangornConfig.js:42 -#: addons/weko/static/wekoFangornConfig.js:62 website/static/js/fangorn.js:2367 -#: website/static/js/fangorn.js:2459 website/static/js/filepage/index.js:542 -#: website/static/js/filepage/index.js:544 +#: addons/weko/static/wekoFangornConfig.js:40 +#: addons/weko/static/wekoFangornConfig.js:60 website/static/js/fangorn.js:2466 +#: website/static/js/filepage/index.js:761 msgid "View" msgstr "プレビュー" -#: addons/weko/static/wekoFangornConfig.js:86 -#: addons/weko/static/wekoFangornConfig.js:788 +#: addons/weko/static/wekoFangornConfig.js:87 +#: addons/weko/static/wekoFangornConfig.js:743 msgid "Deposit" msgstr "登録" -#: addons/weko/static/wekoFangornConfig.js:255 -#: addons/weko/static/wekoFangornConfig.js:276 -#: addons/weko/static/wekoFangornConfig.js:316 +#: addons/weko/static/wekoFangornConfig.js:265 +#: addons/weko/static/wekoFangornConfig.js:286 +#: addons/weko/static/wekoFangornConfig.js:326 msgid "Error occurred: " msgstr "エラーが発生しました: " -#: addons/weko/static/wekoFangornConfig.js:289 +#: addons/weko/static/wekoFangornConfig.js:299 msgid "Deposit was successful." msgstr "登録が成功しました。" -#: addons/weko/static/wekoFangornConfig.js:550 +#: addons/weko/static/wekoFangornConfig.js:553 msgid "Error occurred while " msgstr "エラーが発生しました: " -#: addons/weko/static/wekoFangornConfig.js:574 +#: addons/weko/static/wekoFangornConfig.js:564 +msgid "" +"No file metadata is defined for the schema available for depositting to " +"WEKO." +msgstr "WEKOに登録可能なスキーマに関するファイルメタデータが定義されていません。" + +#: addons/weko/static/wekoFangornConfig.js:584 msgid "Schema" msgstr "メタデータ様式" -#: addons/weko/static/wekoFangornConfig.js:577 +#: addons/weko/static/wekoFangornConfig.js:587 msgid "Select a schema for the file." msgstr "送信するファイルメタデータのメタデータ様式を選択してください。" -#: addons/weko/static/wekoFangornConfig.js:579 +#: addons/weko/static/wekoFangornConfig.js:589 msgid "Project Metadata" msgstr "プロジェクトメタデータ" -msgid "No file metadata is defined for the schema available for depositting to WEKO." -msgstr "WEKOに登録可能なスキーマに関するファイルメタデータが定義されていません。" - -#: addons/weko/static/wekoFangornConfig.js:583 -msgid "Select a registration for the file. You can also select a draft registration." +#: addons/weko/static/wekoFangornConfig.js:593 +msgid "" +"Select a registration for the file. You can also select a draft " +"registration." msgstr "送信するプロジェクトメタデータを選択してください。下書きも指定可能です。" -#: addons/weko/static/wekoFangornConfig.js:583 -msgid "Select a registration for the file." -msgstr "送信するプロジェクトメタデータを選択してください。" - -#: addons/weko/static/wekoFangornConfig.js:607 +#: addons/weko/static/wekoFangornConfig.js:617 msgid "" "Do you want to deposit the file/folder \"%1$s\" to WEKO? This operation " "is irreversible." msgstr "ファイル(フォルダ) \"%1$s\" をWEKOに登録しますか?この操作は元に戻せません。" -#: addons/weko/static/wekoFangornConfig.js:617 +#: addons/weko/static/wekoFangornConfig.js:627 msgid "OK" msgstr "OK" -#: addons/weko/static/wekoFangornConfig.js:631 +#: addons/weko/static/wekoFangornConfig.js:642 msgid "Deposit files" msgstr "ファイルの登録" -#: addons/weko/static/wekoFangornConfig.js:880 +#: addons/weko/static/wekoFangornConfig.js:837 msgid "Save and Deposit to WEKO" msgstr "保存してWEKOに登録" @@ -588,7 +573,7 @@ msgstr "%1$sアカウントを切断しますか?" #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:155 #: admin/static/js/rdm_addons/figshare/rdm-cfg.js:34 #: admin/static/js/rdm_addons/s3/s3RdmConfig.js:124 -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:116 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:118 #: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:469 #: website/static/js/addonSettings.js:130 #: website/static/js/folderPickerNodeConfig.js:562 @@ -762,23 +747,20 @@ msgstr "フォームを隠す" msgid "Modify Collection Provider" msgstr "コレクションプロバイダを変更" -#: admin/static/js/rdm_addons/rdm-addons-page.js:64 -#, python-format -msgid "Disallow %s?" -msgstr "%sを禁止しますか?" - -#: admin/static/js/rdm_addons/rdm-addons-page.js:65 +#: admin/static/js/rdm_addons/rdm-addons-page.js:63 +#: admin/static/js/rdm_addons/rdm-addons-page.js:68 msgid "Are you sure you want to disallow the %1$s?
    " msgstr "%1$sを禁止してもよろしいですか?
    " -#: admin/static/js/rdm_addons/rdm-addons-page.js:66 +#: admin/static/js/rdm_addons/rdm-addons-page.js:64 msgid "" "This will revoke access to %1$s for all projects using the " "accounts.

    " msgstr "これにより、アカウントを使用するすべてのプロジェクトの%1$sへのアクセスが取り消されます。

    " -#: admin/static/js/rdm_addons/rdm-addons-page.js:67 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:491 +#: admin/static/js/rdm_addons/rdm-addons-page.js:65 +#: admin/static/js/rdm_addons/rdm-addons-page.js:71 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:453 msgid "Type the following to continue: %1$s

    " msgstr "次を入力して続行します。%1$s

    " @@ -794,29 +776,19 @@ msgid "" "until you reallow it.

    " msgstr "ただし、許可するまで、アカウントは%1$s設定を表示および変更できません。

    " -#: admin/static/js/rdm_addons/rdm-addons-page.js:74 +#: admin/static/js/rdm_addons/rdm-addons-page.js:75 +#, python-format +msgid "Disallow %s?" +msgstr "%sを禁止しますか?" + +#: admin/static/js/rdm_addons/rdm-addons-page.js:83 msgid "Disallow" msgstr "禁止" -#: admin/static/js/rdm_addons/rdm-addons-page.js:85 +#: admin/static/js/rdm_addons/rdm-addons-page.js:94 msgid "Strings did not match" msgstr "文字列が一致しませんでした" -#: addons/datasteward/static/datastewardUserConfig.js:88 -#: addons/datasteward/static/datastewardUserConfig.js:89 -msgid "You do not have permission to perform this action." -msgstr "このアクションを実行する権限がありません。" - -#: addons/datasteward/static/datastewardUserConfig.js:120 -#: addons/datasteward/static/datastewardUserConfig.js:121 -msgid "Cannot disable DataSteward add-on" -msgstr "データ管理責任者アドオンを無効にできません" - -#: addons/datasteward/static/datastewardUserConfig.js:157 -#: addons/datasteward/static/datastewardUserConfig.js:158 -msgid "Cannot get DataSteward add-on settings" -msgstr "データ管理責任者アドオン設定を取得できません" - #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:26 #: admin/static/js/rdm_addons/owncloud/owncloudRdmConfig.js:19 msgid "Other (Please Specify)" @@ -859,7 +831,7 @@ msgstr "" #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:173 #: admin/static/js/rdm_addons/s3/s3RdmConfig.js:142 -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:134 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:136 #: website/static/js/addonSettings.js:150 msgid "Error while removing addon authorization for %1$s" msgstr "%1$sのアドオン認証を削除中にエラーが発生しました" @@ -1009,23 +981,23 @@ msgstr "" "S3アカウント%1$sを切断してもよろしいですか?これにより、このアカウントに関連付けられているすべてのプロジェクトのS3へのアクセスが取り消されます。" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:68 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:70 msgid "Error while retrieving addon account" msgstr "アドオン情報の取得に失敗しました" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:89 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:91 msgid "Could not set accounts for WEKO" msgstr "WEKOのアカウント設定に失敗しました" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:105 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:107 msgid "Delete WEKO Application?" msgstr "WEKOアプリケーションを削除しますか?" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:107 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:109 msgid "" "Are you sure you want to delete the WEKO application " -"%1$s? WEKO add-on connections already set up for " -"the projects will be preserved." +"%1$s? WEKO add-on connections already set up for the " +"projects will be preserved." msgstr "" "本当にWEKOアプリケーション %1$s " "を削除してもよろしいですか?すでにプロジェクトに設定されているWEKOアドオンの接続は維持されます。" @@ -1034,7 +1006,7 @@ msgstr "" msgid "Are you sure you want to change institutional storage?" msgstr "機関のストレージを変更してもよろしいですか?" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:93 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:85 msgid "" "

    The previous storage will no longer be available to all contributors " "on the project.

    " @@ -1047,18 +1019,13 @@ msgstr "

    以前のストレージは、プロジェクトのすべてのメン msgid "Change" msgstr "変更" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:120 -msgid "Are you sure you want to add this Export Data Storage Location?" -msgstr "このストレージをエクスポートデータ保存場所として追加してもよろしいですか?" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:358 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:592 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:726 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:832 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:322 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:554 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:688 msgid "Some errors occurred" msgstr "いくつかのエラーが発生しました" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:405 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:369 msgid "Institutional Storage set successfully" msgstr "機関ストレージが正常に設定されました" @@ -1068,113 +1035,12 @@ msgid "" "%2$s?
    " msgstr "1$sアカウント%2$sを切断してもよろしいですか?" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:490 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:452 msgid "" "This will revoke access to %1$s for all projects using this " "account.

    " msgstr "これにより、このアカウントを使用するすべてのプロジェクトの%1$sへのアクセスが取り消されます。" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:775 -msgid "Unable to delete location %1$s" -msgstr "場所%1$sを削除できません" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:784 -msgid "Are you sure you want to delete this export data storage location?" -msgstr "エクスポートデータ保存場所を削除してよろしいですか?" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:970 -msgid "Export Data" -msgstr "エクスポートデータ" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:971 -msgid "Stop Export Data" -msgstr "エクスポートデータ処理を停止する" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:974 -msgid "Export data successfully." -msgstr "エクスポートデータに成功した" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:975 -msgid "Cannot export data." -msgstr "データをエクスポートできません" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:976 -msgid "Error occurred while exporting data." -msgstr "エクスポートデータにエラーが発生された" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:977 -msgid "Export data failed." -msgstr "エクスポートデータに失敗した" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:978 -msgid "Export data in background." -msgstr "バックグラウンドでデータをエクスポートする" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:979 -msgid "Stop exporting successfully." -msgstr "エクスポートデータ処理の停止に成功した" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:980 -msgid "Cannot stop exporting data." -msgstr "エクスポートデータ処理を停止できません" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:981 -msgid "Error occurred while stopping export data." -msgstr "エクスポートデータ処理の停止にエラーが発生された" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:982 -msgid "Stop exporting in background." -msgstr "バックグラウンドでエクスポートデータ処理を停止する" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1442 -msgid "Are you sure you want to permanently delete these export data?" -msgstr "エクスポートデータを恒久的に削除してよろしいですか?" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1448 -msgid "Delete Permanently" -msgstr "削除" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1597 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1599 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1612 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1668 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1720 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1727 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1740 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1775 -msgid "Restore Export Data" -msgstr "エクスポートデータを復元する" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1612 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1646 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1731 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1775 -msgid "message" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1634 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1638 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1646 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1706 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1729 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1742 -msgid "Stop Restore Export Data" -msgstr "エクスポートデータの復元を停止する" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1634 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1706 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1722 -msgid "Stopped restoring data process." -msgstr "エクスポートデータの復元が停止されました" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1668 -msgid "Restore completed." -msgstr "復元に成功した" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1744 -msgid "result" -msgstr "" - #: scripts/translations/messages_addonsJson.js:3 msgid "" "\n" @@ -2306,6 +2172,7 @@ msgstr "" "\n" #: scripts/translations/messages_addonsJson.js:23 +#: scripts/translations/messages_addonsJson.js:25 msgid "" "\n" "\n" @@ -2426,7 +2293,7 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:25 +#: scripts/translations/messages_addonsJson.js:27 msgid "" "\n" "\n" @@ -2548,7 +2415,7 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:27 +#: scripts/translations/messages_addonsJson.js:29 msgid "" "\n" "\n" @@ -2669,7 +2536,8 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:29 +#: scripts/translations/messages_addonsJson.js:31 +#: scripts/translations/messages_addonsJson.js:37 msgid "" "\n" "\n" @@ -2787,7 +2655,7 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:31 +#: scripts/translations/messages_addonsJson.js:33 msgid "" "\n" "\n" @@ -2910,7 +2778,8 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:31 +#: scripts/translations/messages_addonsJson.js:35 +#: scripts/translations/messages_addonsJson.js:51 msgid "" "\n" "\n" @@ -3033,121 +2902,8 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:35 -msgid "" -"\n" -"\n" -"

    JupyterHub Add-on Terms

    \n" -"\n" -"\n" -"\n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -"\n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -"\n" -"
    FunctionStatus
    PermissionsThe GakuNin RDM does not affect the permissions of " -"JupyterHub.
    View / download file versionsThe JupyterHub add-on does not provide Storage " -"Features.
    Add / update filesThe JupyterHub add-on does not provide Storage " -"Features.
    Delete filesThe JupyterHub add-on does not provide Storage " -"Features.
    LogsThe JupyterHub add-on does not provide Storage " -"Features.
    ForkingForking a project or component copies information " -"about linked JupyterHub but the GakuNin RDM does not affect " -"authentication of JupyterHub.
    \n" -"\n" -"
      \n" -"
    • This add-on connects your GakuNin RDM project to an external " -"service. Use of this service is bound by its terms and conditions. The " -"GakuNin RDM is not responsible for the service or for your use " -"thereof.
    • \n" -"
    • This add-on allows you to store files using an external " -"service. Files added to this add-on are not stored within the GakuNin " -"RDM.
    • \n" -"
    \n" -msgstr "" -"\n" -"\n" -"

    JupyterHub アドオン規約

    \n" -"\n" -"\n" -"\n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -"\n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" " -"\n" -" \n" -" \n" -"\n" -"
    機能ステータス
    権限GakuNin RDMは、JupyterHubの権限に影響を及ぼしません。
    ファイルバージョンの閲覧/ダウンロードJupyterHubアドオンはストレージ機能を提供しません。
    ファイルの追加/更新JupyterHubアドオンはストレージ機能を提供しません。
    ファイルの削除JupyterHubアドオンはストレージ機能を提供しません。
    ログJupyterHubアドオンはストレージ機能を提供しません。
    フォークプロジェクトまたはコンポーネントのフォークを行うと、リンクされたJupyterHubに関する情報がコピーされますが、GakuNin " -"RDMはJupyterHubの認証に影響を及ぼしません。
    \n" -"\n" -"
      \n" -"
    • このアドオンにより、GakuNin " -"RDMプロジェクトは外部サービスに接続されます。このサービスを利用することで、それら外部サービスの利用規約に拘束されます。GakuNin " -"RDMは、それらサービスまたはユーザーによるその利用に対して責任を負いません。
    • \n" -" " -"
    • このアドオンにより、外部サービスを使ってファイルを保存することが可能となります。このアドオンに追加されたファイルは、GakuNin " -"RDM内には保存されません。
    • \n" -"
    \n" - -#: scripts/translations/messages_addonsJson.js:37 +#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:47 msgid "" "\n" "\n" @@ -3272,7 +3028,8 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:41 +#: scripts/translations/messages_addonsJson.js:49 msgid "" "\n" "\n" @@ -3376,8 +3133,8 @@ msgstr "" " \n" " \n" " ログ\n" -" GakuNin RDMは、GakuNin RDMからOracle Cloud " -"Infrastructure のバケットに行った変更を追跡しますが、Oracle Cloud Infrastructure " +" GakuNin RDMは、GakuNin RDMからOracle Cloud Infrastructure" +" のバケットに行った変更を追跡しますが、Oracle Cloud Infrastructure " "を使って直接行った変更については追跡しません。\n" " \n" " \n" @@ -3399,7 +3156,7 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:43 msgid "" "\n" "\n" @@ -3489,11 +3246,11 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:43 +#: scripts/translations/messages_addonsJson.js:45 msgid "" "\n" "\n" -"

    IQB-RIMS Add-on Terms

    \n" +"

    JupyterHub Add-on Terms

    \n" "\n" "\n" "\n" @@ -3505,13 +3262,127 @@ msgid "" " \n" "\n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"
    PermissionsMaking an GakuNin RDM project public or private is " -"independent of Google Drive privacy. The GakuNin RDM does not alter the " -"permissions of linked Google Drive folders.The GakuNin RDM does not affect the permissions of " +"JupyterHub.
    View / download file versionsThe JupyterHub add-on does not provide Storage " +"Features.
    Add / update filesThe JupyterHub add-on does not provide Storage " +"Features.
    Delete filesThe JupyterHub add-on does not provide Storage " +"Features.
    LogsThe JupyterHub add-on does not provide Storage " +"Features.
    ForkingForking a project or component copies information " +"about linked JupyterHub but the GakuNin RDM does not affect " +"authentication of JupyterHub.
    \n" +"\n" +"
      \n" +"
    • This add-on connects your GakuNin RDM project to an external " +"service. Use of this service is bound by its terms and conditions. The " +"GakuNin RDM is not responsible for the service or for your use " +"thereof.
    • \n" +"
    • This add-on allows you to store files using an external " +"service. Files added to this add-on are not stored within the GakuNin " +"RDM.
    • \n" +"
    \n" +msgstr "" +"\n" +"\n" +"

    JupyterHub アドオン規約

    \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" " +"\n" +" \n" +" \n" +"\n" +"
    機能ステータス
    権限GakuNin RDMは、JupyterHubの権限に影響を及ぼしません。
    ファイルバージョンの閲覧/ダウンロードJupyterHubアドオンはストレージ機能を提供しません。
    ファイルの追加/更新JupyterHubアドオンはストレージ機能を提供しません。
    ファイルの削除JupyterHubアドオンはストレージ機能を提供しません。
    ログJupyterHubアドオンはストレージ機能を提供しません。
    フォークプロジェクトまたはコンポーネントのフォークを行うと、リンクされたJupyterHubに関する情報がコピーされますが、GakuNin " +"RDMはJupyterHubの認証に影響を及ぼしません。
    \n" +"\n" +"
      \n" +"
    • このアドオンにより、GakuNin " +"RDMプロジェクトは外部サービスに接続されます。このサービスを利用することで、それら外部サービスの利用規約に拘束されます。GakuNin " +"RDMは、それらサービスまたはユーザーによるその利用に対して責任を負いません。
    • \n" +" " +"
    • このアドオンにより、外部サービスを使ってファイルを保存することが可能となります。このアドオンに追加されたファイルは、GakuNin " +"RDM内には保存されません。
    • \n" +"
    \n" + +#: scripts/translations/messages_addonsJson.js:53 +msgid "" +"\n" +"\n" +"

    IQB-RIMS Add-on Terms

    \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" " \n" " \n" @@ -3611,7 +3482,7 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:45 +#: scripts/translations/messages_addonsJson.js:55 msgid "" "\n" "\n" @@ -3731,7 +3602,7 @@ msgstr "" "RDM内には保存されません。\n" "\n" -#: scripts/translations/messages_addonsJson.js:47 +#: scripts/translations/messages_addonsJson.js:57 msgid "" "\n" "\n" @@ -3836,11 +3707,11 @@ msgstr "" "
    FunctionStatus
    PermissionsMaking an GakuNin RDM project public or private is " +"independent of Google Drive privacy. The GakuNin RDM does not alter the " +"permissions of linked Google Drive folders.
    View / download file versionsIQB-RIMS files and their versions can be " "viewed/downloaded via GakuNin RDM.
    \n" "\n" -#: scripts/translations/messages_addonsJson.js:49 +#: scripts/translations/messages_addonsJson.js:59 msgid "" "\n" "\n" -"

    ONLYOFFICE Add-on Terms

    \n" +"

    Onlyoffice Add-on Terms

    \n" "\n" "\n" "\n" @@ -3855,33 +3726,33 @@ msgid "" " \n" " \n" " \n" +"Onlyoffice.\n" " \n" " \n" " \n" -" \n" " \n" " \n" " \n" -" \n" " \n" " \n" " \n" -" \n" " \n" " \n" " \n" -" \n" " \n" " \n" " \n" " \n" +"about linked Onlyoffice but the GakuNin RDM does not affect " +"authentication of Onlyoffice.\n" " \n" " \n" "\n" @@ -4243,84 +4114,88 @@ msgstr "ライセンス" msgid " This component will inherit the same license as " msgstr "このコンポーネントは、次と同じライセンスを継承します:" -#: website/static/js/addProjectPlugin.js:281 +#: website/static/js/addProjectPlugin.js:273 +msgid "Learn more." +msgstr "" + +#: website/static/js/addProjectPlugin.js:282 msgid " More" msgstr "詳細" -#: website/static/js/addProjectPlugin.js:285 +#: website/static/js/addProjectPlugin.js:286 msgid "Description" msgstr "説明" -#: website/static/js/addProjectPlugin.js:294 +#: website/static/js/addProjectPlugin.js:295 msgid "Enter %1$s description" msgstr "%1$sの説明を入力する" -#: website/static/js/addProjectPlugin.js:298 website/static/js/conference.js:31 +#: website/static/js/addProjectPlugin.js:299 website/static/js/conference.js:31 msgid "Category" msgstr "カテゴリ" -#: website/static/js/addProjectPlugin.js:299 +#: website/static/js/addProjectPlugin.js:300 msgid " (for descriptive purposes)" msgstr "(説明のため)" -#: website/static/js/addProjectPlugin.js:306 +#: website/static/js/addProjectPlugin.js:307 msgid "Uncategorized" msgstr "未分類" -#: website/static/js/addProjectPlugin.js:319 +#: website/static/js/addProjectPlugin.js:320 msgid "(Empty category)" msgstr "(空のカテゴリ)" -#: website/static/js/addProjectPlugin.js:329 +#: website/static/js/addProjectPlugin.js:330 msgid "Template (optional)" msgstr "テンプレート(オプション)" -#: website/static/js/addProjectPlugin.js:330 +#: website/static/js/addProjectPlugin.js:331 msgid "" "Start typing to search your projects. Selecting project as template will " "duplicate its " msgstr "入力を開始してプロジェクトを検索します。 プロジェクトをテンプレートとして選択すると、" -#: website/static/js/addProjectPlugin.js:331 +#: website/static/js/addProjectPlugin.js:332 msgid "" "structure in the new project without importing the content of that " "project." msgstr "そのプロジェクトのコンテンツをインポートすることなく、新しいプロジェクトでその構造が複製されます。" -#: website/static/js/addProjectPlugin.js:350 +#: website/static/js/addProjectPlugin.js:351 #: website/static/js/nodeControl.js:224 #: website/static/js/privateLinkManager.js:31 website/static/js/project.js:140 msgid "Create" msgstr "作成" -#: website/static/js/addProjectPlugin.js:361 +#: website/static/js/addProjectPlugin.js:362 #, python-format msgid "Saving your %s..." msgstr "%sを保存中..." -#: website/static/js/addProjectPlugin.js:375 +#: website/static/js/addProjectPlugin.js:376 msgid "New %1$s created successfully!" msgstr "新しい%1$sが作成されました!" -#: website/static/js/addProjectPlugin.js:385 -#: website/static/js/addProjectPlugin.js:433 website/static/js/project.js:62 +#: website/static/js/addProjectPlugin.js:386 +#: website/static/js/addProjectPlugin.js:434 website/static/js/project.js:62 msgid "Keep working here" msgstr "このページに留まる" -#: website/static/js/addProjectPlugin.js:391 -#: website/static/js/addProjectPlugin.js:436 +#: website/static/js/addProjectPlugin.js:392 +#: website/static/js/addProjectPlugin.js:437 msgid "Go to new %1$s" msgstr "新しい%1$sへ移動する" -#: website/static/js/addProjectPlugin.js:404 +#: website/static/js/addProjectPlugin.js:405 msgid "Couldn't create your %1$s" msgstr "%1$sが作成できませんでした。" -#: website/static/js/addProjectPlugin.js:423 +#: website/static/js/addProjectPlugin.js:424 msgid "Could not add institution affiliation to your new %1$s" msgstr "新しい%1$sに所属機関を追加できませんでした" -#: website/static/js/addProjectPlugin.js:470 +#: website/static/js/addProjectPlugin.js:471 msgid "Select a project to use as a template" msgstr "テンプレートとして使用するプロジェクトを選択します" @@ -4419,7 +4294,7 @@ msgid "Could not fetch alerts for this page. Please refresh page and try again." msgstr "このページのアラートを取得できませんでした。 ページを更新してもう一度お試しください。" #: website/static/js/anonymousLogActionsList_extract.js:2 -#: website/static/js/anonymousLogActionsList_extract.js:75 +#: website/static/js/anonymousLogActionsList_extract.js:77 msgid "A user created a project" msgstr "" @@ -4626,974 +4501,990 @@ msgid "A user checked in a file to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:53 -msgid "A user added a comment to a project" +msgid "A user locked a file in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:54 -msgid "A user deleted a comment from a project" +msgid "A user unlocked a file in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:55 -msgid "A user restored a comment in a project" +msgid "A user added a comment to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:56 -msgid "A user updated a comment on a project" +msgid "A user deleted a comment from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:57 -msgid "A user initiated an embargoed registration of a project" +msgid "A user restored a comment in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:58 -msgid "A user approved an embargoed registration of a project" +msgid "A user updated a comment on a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:59 -msgid "Embargo of registration of a project approved" +msgid "A user initiated an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:60 -msgid "A user cancelled an embargoed registration of a project" +msgid "A user approved an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:61 -msgid "A user completed an embargo of a project" +msgid "Embargo of registration of a project approved" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:62 -msgid "Embargo for a project completed" +msgid "A user cancelled an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:63 -msgid "Embargo for a project ended" +msgid "A user completed an embargo of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:64 -msgid "A user initiated a withdrawal of a registration of a project" +msgid "Embargo for a project completed" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:65 -msgid "A withdrawal of a registration of a project was proposed" +msgid "Embargo for a project ended" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:66 -msgid "A user approved a withdrawal of a registration of a project" +msgid "A user initiated a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:67 -#: website/static/js/logActionsList_extract.js:68 -msgid "A withdrawal of a registration of ${node} was approved" +msgid "A withdrawal of a registration of a project was proposed" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:68 -msgid "A user cancelled a withdrawal of a registration of a project" +msgid "A user approved a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:69 -msgid "Registration was created on an external registry." +#: website/static/js/logActionsList_extract.js:70 +msgid "A withdrawal of a registration of ${node} was approved" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:70 -msgid "Registration was imported to OSF from an external registry." +msgid "A user cancelled a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:71 -msgid "A user initiated a registration of a project" +msgid "Registration was created on an external registry." msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:72 -msgid "A user approved a registration of a project" +msgid "Registration was imported to OSF from an external registry." msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:73 -msgid "Registration of a project was approved" +msgid "A user initiated a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:74 -msgid "A user cancelled a registration of a project" +msgid "A user approved a registration of a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:76 -msgid "A user created fork from a project" +#: website/static/js/anonymousLogActionsList_extract.js:75 +msgid "Registration of a project was approved" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:77 -msgid "A user removed a project" +#: website/static/js/anonymousLogActionsList_extract.js:76 +msgid "A user cancelled a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:78 -msgid "A user enabled access requests for a project" +msgid "A user created fork from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:79 -msgid "A user disabled access requests for a project" +msgid "A user removed a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:80 -msgid "A user updated the license of a project" +msgid "A user enabled access requests for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:81 -msgid "A user added a tag to a file in NII Storage in a project" +msgid "A user disabled access requests for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:82 -msgid "A user removed tag from a file in NII Storage in a project" +msgid "A user updated the license of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:83 -msgid "A user added a file to NII Storage in a project" +msgid "A user added a tag to a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:84 -msgid "A user created a folder in NII Storage in a project" +msgid "A user removed tag from a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:85 -msgid "A user updated a file in NII Storage in a project" +msgid "A user added a file to NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:86 -msgid "A user removed a file from NII Storage in a project" +msgid "A user created a folder in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:87 -msgid "A user added an affiliation to a project" +msgid "A user updated a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:88 -msgid "A user removed an affiliation from a project" +msgid "A user removed a file from NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:89 -msgid "A user made a project a preprint" +msgid "A user added an affiliation to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:90 -msgid "A user updated the primary file of a preprint" +msgid "A user removed an affiliation from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:91 -msgid "A user updated the license of a preprint" +msgid "A user made a project a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:92 -msgid "A user updated the subjects" +msgid "A user updated the primary file of a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:93 -msgid "A user created a view-only link to a project" +msgid "A user updated the license of a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:94 -msgid "A user removed a view-only link to a project" +msgid "A user updated the subjects" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:95 -msgid "A user added a file to Box in a project" +msgid "A user created a view-only link to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:96 -msgid "A user removed a file from Box in a project" +msgid "A user removed a view-only link to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:97 -msgid "A user updated a file in Box in a project" +msgid "A user added a file to Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:98 -msgid "A user created a folder in Box in a project" +msgid "A user removed a file from Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:99 -msgid "A user linked a Box folder to a project" +msgid "A user updated a file in Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:100 -msgid "A user authorized the Box addon for a project" +msgid "A user created a folder in Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:101 -msgid "A user deauthorized the Box addon for a project" +msgid "A user linked a Box folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:102 -msgid "Box addon for a project deauthorized" +msgid "A user authorized the Box addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:103 -msgid "A user added a file to a Dataverse dataset in a project" +msgid "A user deauthorized the Box addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:104 -msgid "A user removed a file from a Dataverse dataset in a project" +msgid "Box addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:105 +msgid "A user added a file to a Dataverse dataset in a project" +msgstr "" + #: website/static/js/anonymousLogActionsList_extract.js:106 -msgid "A user linked a Dataverse dataset to a project" +msgid "A user removed a file from a Dataverse dataset in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:107 #: website/static/js/anonymousLogActionsList_extract.js:108 -msgid "A user published a new version of a Dataverse dataset to a project" +msgid "A user linked a Dataverse dataset to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:109 -msgid "A user authorized the Dataverse addon for a project" -msgstr "" - #: website/static/js/anonymousLogActionsList_extract.js:110 -msgid "A user deauthorized the Dataverse addon for a project" +msgid "A user published a new version of a Dataverse dataset to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:111 -msgid "Dataverse addon for a project deauthorized" +msgid "A user authorized the Dataverse addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:112 -msgid "A user added a file to Dropbox in a project" +msgid "A user deauthorized the Dataverse addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:113 -msgid "A user removed a file from Dropbox in a project" +msgid "Dataverse addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:114 -msgid "A user updated a file in Dropbox in a project" +msgid "A user added a file to Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:115 -msgid "A user created a folder in Dropbox in a project" +msgid "A user removed a file from Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:116 -msgid "A user linked a Dropbox folder in a project" +msgid "A user updated a file in Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:117 -msgid "A user authorized the Dropbox addon for a project" +msgid "A user created a folder in Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:118 -msgid "A user deauthorized the Dropbox addon for a project" +msgid "A user linked a Dropbox folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:119 -msgid "Dropbox addon for a project deauthorized" +msgid "A user authorized the Dropbox addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:120 -msgid "A user linked content from figshare in a project" +msgid "A user deauthorized the Dropbox addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:121 -msgid "A user unlinked content from figshare in a project" +msgid "Dropbox addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:122 -msgid "A user added a file to figshare in a project" +msgid "A user linked content from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:123 -msgid "A user removed a file or folder from figshare in a project" +msgid "A user unlinked content from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:124 -msgid "A user created a folder in figshare in a project" +msgid "A user added a file to figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:125 -msgid "A user authorized the figshare addon for a project" +msgid "A user removed a file or folder from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:126 -msgid "A user deauthorized the figshare addon for a project" +msgid "A user created a folder in figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:127 -msgid "figshare addon for a project deauthorized" +msgid "A user authorized the figshare addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:128 -msgid "A user changed the forward URL in a project" +msgid "A user deauthorized the figshare addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:129 -msgid "A user added a file to a GitHub repo in a project" +msgid "figshare addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:130 -msgid "A user removed a file in a GitHub repo in a project" +msgid "A user changed the forward URL in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:131 -msgid "A user updated a file in a GitHub repo in a project" +msgid "A user added a file to a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:132 -msgid "A user created a folder in a GitHub repo in a project" +msgid "A user removed a file in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:133 -msgid "A user authorized the GitHub addon for a project" +msgid "A user updated a file in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:134 -msgid "A user deauthorized the GitHub addon for a project" +msgid "A user created a folder in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:135 -msgid "GitHub addon for a project deauthorized" +msgid "A user authorized the GitHub addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:136 -msgid "A user linked a GitHub repo in a project" +msgid "A user deauthorized the GitHub addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:137 -msgid "A user selected a folder in Mendeley in a project" +msgid "GitHub addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:138 -msgid "A user authorized the Mendeley addon for a project" +msgid "A user linked a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:139 -msgid "A user deauthorized the Mendeley addon for a project" +msgid "A user selected a folder in Mendeley in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:140 -msgid "A user linked a Zotero folder to a project" +msgid "A user authorized the Mendeley addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:141 -msgid "A user linked a Zotero library to a project" +msgid "A user deauthorized the Mendeley addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:142 -msgid "A user authorized the Zotero addon for a project" +msgid "A user linked a Zotero folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:143 -msgid "A user deauthorized the Zotero addon for a project" +msgid "A user linked a Zotero library to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:144 -msgid "A user added a file to ownCloud in a project" +msgid "A user authorized the Zotero addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:145 -msgid "A user removed a file from ownCloud in a project" +msgid "A user deauthorized the Zotero addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:146 -msgid "A user updated a file in ownCloud in a project" +msgid "A user added a file to ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:147 -msgid "A user created a folder in ownCloud in a project" +msgid "A user removed a file from ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:148 -msgid "A user linked a ownCloud folder in a project" +msgid "A user updated a file in ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:149 -msgid "A user authorized the ownCloud addon for a project" +msgid "A user created a folder in ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:150 -msgid "A user deauthorized the ownCloud addon for a project" +msgid "A user linked a ownCloud folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:151 -msgid "ownCloud addon for a project deauthorized" +msgid "A user authorized the ownCloud addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:152 -msgid "A user added a file to Microsoft OneDrive in a project" +msgid "A user deauthorized the ownCloud addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:153 -msgid "A user removed a file from Microsoft OneDrive in a project" +msgid "ownCloud addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:154 -msgid "A user updated a file in Microsoft OneDrive in a project" +msgid "A user added a file to Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:155 -msgid "A user created a folder in Microsoft OneDrive in a project" +msgid "A user removed a file from Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:156 -msgid "A user linked a Microsoft OneDrive folder to a project" +msgid "A user updated a file in Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:157 -msgid "A user authorized the Microsoft OneDrive addon for a project" +msgid "A user created a folder in Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:158 -msgid "A user deauthorized the Microsoft OneDrive addon for a project" +msgid "A user linked a Microsoft OneDrive folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:159 -msgid "Microsoft OneDrive addon for a project deauthorized" +msgid "A user authorized the Microsoft OneDrive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:160 -msgid "A user linked an Amazon S3 bucket to a project" +msgid "A user deauthorized the Microsoft OneDrive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:161 -msgid "A user unselected an Amazon S3 bucket in a project" +msgid "Microsoft OneDrive addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:162 -msgid "A user added a file to an Amazon S3 bucket in a project" +msgid "A user linked an Amazon S3 bucket to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:163 -msgid "A user removed a file in an Amazon S3 bucket in a project" +msgid "A user unselected an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:164 -msgid "A user updated a file in an Amazon S3 bucket in a project" +msgid "A user added a file to an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:165 -msgid "A user created a folder in an Amazon S3 in a project" +msgid "A user removed a file in an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:166 -msgid "A user authorized the Amazon S3 addon for a project" +msgid "A user updated a file in an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:167 -msgid "A user deauthorized the Amazon S3 addon for a project" +msgid "A user created a folder in an Amazon S3 in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:168 -msgid "Amazon S3 addon for a project deauthorized" +msgid "A user authorized the Amazon S3 addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:169 -msgid "A user added a file to Google Drive in a project" +msgid "A user deauthorized the Amazon S3 addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:170 -msgid "A user removed a file from Google Drive in a project" +msgid "Amazon S3 addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:171 -msgid "A user updated a file in Google Drive in a project" +msgid "A user added a file to Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:172 -msgid "A user created a folder in Google Drive in a project" +msgid "A user removed a file from Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:173 -msgid "A user linked a Google Drive folder to a project" +msgid "A user updated a file in Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:174 -msgid "A user authorized the Google Drive addon for a project" +msgid "A user created a folder in Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:175 -msgid "A user deauthorized the Google Drive addon for a project" +msgid "A user linked a Google Drive folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:176 -msgid "Google Drive addon for a project deauthorized" +msgid "A user authorized the Google Drive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:177 -msgid "A user added a file to a Bitbucket repo in a project" +msgid "A user deauthorized the Google Drive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:178 -msgid "A user removed a file in a Bitbucket repo in a project" +msgid "Google Drive addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:179 -msgid "A user updated a file in a Bitbucket repo in a project" +msgid "A user added a file to a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:180 -msgid "A user created a folder in a Bitbucket repo in a project" +msgid "A user removed a file in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:181 -msgid "A user authorized the Bitbucket addon for a project" +msgid "A user updated a file in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:182 -msgid "A user deauthorized the Bitbucket addon for a project" +msgid "A user created a folder in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:183 -msgid "Bitbucket addon for a project deauthorized" +msgid "A user authorized the Bitbucket addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:184 -msgid "A user linked a Bitbucket repo in a project" +msgid "A user deauthorized the Bitbucket addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:185 -msgid "A user linked an Swift container to a project" +msgid "Bitbucket addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:186 -msgid "A user unselected an Swift container in a project" +msgid "A user linked a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:187 -msgid "A user added a file to an Swift container in a project" +msgid "A user linked an Swift container to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:188 -msgid "A user removed a file in an Swift container in a project" +msgid "A user unselected an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:189 -msgid "A user updated a file in an Swift container in a project" +msgid "A user added a file to an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:190 -msgid "A user created a folder in an Swift in a project" +msgid "A user removed a file in an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:191 -msgid "A user authorized the Swift addon for a project" +msgid "A user updated a file in an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:192 -msgid "A user deauthorized the Swift addon for a project" +msgid "A user created a folder in an Swift in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:193 -msgid "Swift addon for a project deauthorized" +msgid "A user authorized the Swift addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:194 -msgid "A user linked an Azure Blob Storage container to a project" +msgid "A user deauthorized the Swift addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:195 -msgid "A user unselected an Azure Blob Storage container in a project" +msgid "Swift addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:196 -msgid "A user added a file to an Azure Blob Storage container in a project" +msgid "A user linked an Azure Blob Storage container to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:197 -msgid "A user removed a file in an Azure Blob Storage container in a project" +msgid "A user unselected an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:198 -msgid "A user updated a file in an Azure Blob Storage container in a project" +msgid "A user added a file to an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:199 -msgid "A user created a folder in an Azure Blob Storage in a project" +msgid "A user removed a file in an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:200 -msgid "A user authorized the Azure Blob Storage addon for a project" +msgid "A user updated a file in an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:201 -msgid "A user deauthorized the Azure Blob Storage addon for a project" +msgid "A user created a folder in an Azure Blob Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:202 -msgid "Azure Blob Storage addon for a project deauthorized" +msgid "A user authorized the Azure Blob Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:203 -msgid "A user added a file to a WEKO index in a project" +msgid "A user deauthorized the Azure Blob Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:204 -msgid "A user removed a file from a WEKO index in a project" +msgid "Azure Blob Storage addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:205 -msgid "A user linked a WEKO index to a project" +msgid "A user added a draft file to a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:206 -msgid "A user created an index to a project" +msgid "A user removed a draft file from a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:207 -msgid "A user created an item to a project" +msgid "A user linked a WEKO index to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:208 -msgid "A user created a folder in WEKO in a project" +msgid "A user created a draft folder in WEKO in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:209 -msgid "A user authorized the WEKO addon for a project" +msgid "A user deposit item in a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:210 -msgid "A user deauthorized the WEKO addon for a project" +msgid "A user authorized the WEKO addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:211 -msgid "WEKO addon for a project deauthorized" +msgid "A user deauthorized the WEKO addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:212 -msgid "A user linked an S3 Compatible Storage bucket to a project" +msgid "WEKO addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:213 -msgid "A user unselected an S3 Compatible Storage bucket in a project" +msgid "A user linked an S3 Compatible Storage bucket to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:214 -msgid "A user added a file to an S3 Compatible Storage bucket in a project" +msgid "A user unselected an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:215 -msgid "A user removed a file in an S3 Compatible Storage bucket in a project" +msgid "A user added a file to an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:216 -msgid "A user updated a file in an S3 Compatible Storage bucket in a project" +msgid "A user removed a file in an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:217 -msgid "A user created a folder in an S3 Compatible Storage in a project" +msgid "A user updated a file in an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:218 -msgid "A user authorized the S3 Compatible Storage addon for a project" +msgid "A user created a folder in an S3 Compatible Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:219 -msgid "A user deauthorized the S3 Compatible Storage addon for a project" +msgid "A user authorized the S3 Compatible Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:220 -msgid "S3 Compatible Storage addon for a project deauthorized" +msgid "A user deauthorized the S3 Compatible Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:221 -msgid "A user added a file to S3compat (for Institutions) in a project" +msgid "S3 Compatible Storage addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:222 -msgid "A user removed a file from S3compat (for Institutions) in a project" +msgid "A user added a file to S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:223 -msgid "A user updated a file in S3compat (for Institutions) in a project" +msgid "A user removed a file from S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:224 -msgid "A user created a folder in S3compat (for Institutions) in a project" +msgid "A user updated a file in S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:225 -msgid "A user linked a S3compat (for Institutions) folder in a project" +msgid "A user created a folder in S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:226 -msgid "A user authorized the S3compat (for Institutions) addon for a project" +msgid "A user linked a S3compat (for Institutions) folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:227 -msgid "A user deauthorized the S3compat (for Institutions) addon for a project" +msgid "A user authorized the S3compat (for Institutions) addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:228 -msgid "S3compat (for Institutions) addon for a project deauthorized" +msgid "A user deauthorized the S3compat (for Institutions) addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:229 +msgid "S3compat (for Institutions) addon for a project deauthorized" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:230 msgid "" "A user linked an Oracle Cloud Infrastructure Object Storage bucket to a " "project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:230 +#: website/static/js/anonymousLogActionsList_extract.js:231 msgid "" "A user unselected an Oracle Cloud Infrastructure Object Storage bucket in" " a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:231 +#: website/static/js/anonymousLogActionsList_extract.js:232 msgid "" "A user added a file to an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:232 +#: website/static/js/anonymousLogActionsList_extract.js:233 msgid "" "A user removed a file in an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:233 +#: website/static/js/anonymousLogActionsList_extract.js:234 msgid "" "A user updated a file in an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:234 +#: website/static/js/anonymousLogActionsList_extract.js:235 msgid "" "A user created a folder in an Oracle Cloud Infrastructure Object Storage " "in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:235 +#: website/static/js/anonymousLogActionsList_extract.js:236 msgid "" "A user authorized the Oracle Cloud Infrastructure Object Storage addon " "for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:236 +#: website/static/js/anonymousLogActionsList_extract.js:237 msgid "" "A user deauthorized the Oracle Cloud Infrastructure Object Storage addon " "for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:237 +#: website/static/js/anonymousLogActionsList_extract.js:238 msgid "" "Oracle Cloud Infrastructure Object Storage addon for a project " "deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:238 +#: website/static/js/anonymousLogActionsList_extract.js:239 msgid "" "A user added a file to Oracle Cloud Infrastructure (for Institutions) in " "a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:239 +#: website/static/js/anonymousLogActionsList_extract.js:240 msgid "" "A user removed a file from Oracle Cloud Infrastructure (for Institutions)" " in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:240 +#: website/static/js/anonymousLogActionsList_extract.js:241 msgid "" "A user updated a file in Oracle Cloud Infrastructure (for Institutions) " "in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:241 +#: website/static/js/anonymousLogActionsList_extract.js:242 msgid "" "A user created a folder in Oracle Cloud Infrastructure (for Institutions)" " in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:242 +#: website/static/js/anonymousLogActionsList_extract.js:243 msgid "" "A user linked a Oracle Cloud Infrastructure (for Institutions) folder in " "a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:243 +#: website/static/js/anonymousLogActionsList_extract.js:244 msgid "" "A user authorized the Oracle Cloud Infrastructure (for Institutions) " "addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:244 +#: website/static/js/anonymousLogActionsList_extract.js:245 msgid "" "A user deauthorized the Oracle Cloud Infrastructure (for Institutions) " "addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:245 +#: website/static/js/anonymousLogActionsList_extract.js:246 msgid "" "Oracle Cloud Infrastructure (for Institutions) addon for a project " "deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:246 +#: website/static/js/anonymousLogActionsList_extract.js:247 msgid "A user added a file to Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:247 +#: website/static/js/anonymousLogActionsList_extract.js:248 msgid "A user removed a file from Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:248 +#: website/static/js/anonymousLogActionsList_extract.js:249 msgid "A user updated a file in Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:249 +#: website/static/js/anonymousLogActionsList_extract.js:250 msgid "A user created a folder in Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:250 +#: website/static/js/anonymousLogActionsList_extract.js:251 msgid "A user linked a Nextcloud folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:251 +#: website/static/js/anonymousLogActionsList_extract.js:252 msgid "A user authorized the Nextcloud addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:252 +#: website/static/js/anonymousLogActionsList_extract.js:253 msgid "A user deauthorized the Nextcloud addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:253 +#: website/static/js/anonymousLogActionsList_extract.js:254 msgid "Nextcloud addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:254 +#: website/static/js/anonymousLogActionsList_extract.js:255 msgid "A user added a file to Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:255 +#: website/static/js/anonymousLogActionsList_extract.js:256 msgid "A user removed a file from Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:256 +#: website/static/js/anonymousLogActionsList_extract.js:257 msgid "A user updated a file in Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:257 +#: website/static/js/anonymousLogActionsList_extract.js:258 msgid "A user created a folder in Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:258 +#: website/static/js/anonymousLogActionsList_extract.js:259 msgid "A user linked a Nextcloud (for Institutions) folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:259 +#: website/static/js/anonymousLogActionsList_extract.js:260 msgid "A user authorized the Nextcloud (for Institutions) addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:260 +#: website/static/js/anonymousLogActionsList_extract.js:261 msgid "A user deauthorized the Nextcloud (for Institutions) addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:261 +#: website/static/js/anonymousLogActionsList_extract.js:262 msgid "Nextcloud (for Institutions) addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:262 +#: website/static/js/anonymousLogActionsList_extract.js:263 msgid "A user added a file to IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:263 +#: website/static/js/anonymousLogActionsList_extract.js:264 msgid "A user removed a file from IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:264 +#: website/static/js/anonymousLogActionsList_extract.js:265 msgid "A user updated a file in IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:265 +#: website/static/js/anonymousLogActionsList_extract.js:266 msgid "A user created a folder in IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:266 +#: website/static/js/anonymousLogActionsList_extract.js:267 msgid "A user linked a IQB-RIMS folder to a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:267 +#: website/static/js/anonymousLogActionsList_extract.js:268 msgid "A user authorized the IQB-RIMS addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:268 +#: website/static/js/anonymousLogActionsList_extract.js:269 msgid "A user deauthorized the IQB-RIMS addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:269 +#: website/static/js/anonymousLogActionsList_extract.js:270 msgid "IQB-RIMS addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:270 +#: website/static/js/anonymousLogActionsList_extract.js:271 msgid "A user added a file to Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:271 +#: website/static/js/anonymousLogActionsList_extract.js:272 msgid "A user removed a file from Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:272 +#: website/static/js/anonymousLogActionsList_extract.js:273 msgid "A user updated a file in Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:273 +#: website/static/js/anonymousLogActionsList_extract.js:274 msgid "A user created a folder in Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:274 +#: website/static/js/anonymousLogActionsList_extract.js:275 msgid "A user linked a Dropbox Business folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:275 +#: website/static/js/anonymousLogActionsList_extract.js:276 msgid "A user authorized the Dropbox Business addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:276 +#: website/static/js/anonymousLogActionsList_extract.js:277 msgid "A user deauthorized the Dropbox Business addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:277 +#: website/static/js/anonymousLogActionsList_extract.js:278 msgid "Dropbox Business addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:278 +#: website/static/js/anonymousLogActionsList_extract.js:279 msgid "A user added a file to an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:279 +#: website/static/js/anonymousLogActionsList_extract.js:280 msgid "A user removed a file in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:280 +#: website/static/js/anonymousLogActionsList_extract.js:281 msgid "A user updated a file in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:281 +#: website/static/js/anonymousLogActionsList_extract.js:282 msgid "A user created a folder in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:282 +#: website/static/js/anonymousLogActionsList_extract.js:283 msgid "A user authorized the OneDrive for Office365 addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:283 +#: website/static/js/anonymousLogActionsList_extract.js:284 msgid "A user deauthorized the OneDrive for Office365 addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:284 +#: website/static/js/anonymousLogActionsList_extract.js:285 msgid "OneDrive for Office365 addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:285 +#: website/static/js/anonymousLogActionsList_extract.js:286 msgid "A user added a metadata in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:286 +#: website/static/js/anonymousLogActionsList_extract.js:287 msgid "A user added a metadata to a ${path} in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:287 +#: website/static/js/anonymousLogActionsList_extract.js:288 msgid "A user updated a metadata for a ${path} in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:288 +#: website/static/js/anonymousLogActionsList_extract.js:289 msgid "A user deleted a metadata for a ${path} in a project" msgstr "" +#: website/static/js/anonymousLogActionsList_extract.js:290 +msgid "A user created a workflow" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:291 +msgid "A user updated a workflow" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:292 +msgid "A user deleted a workflow" +msgstr "" + #: website/static/js/apiApplication.js:215 msgid "Error fetching list of registered applications" msgstr "登録済みアプリケーションのリストの取得エラー" @@ -5683,7 +5574,7 @@ msgstr "サイテーションをコピー" msgid "View original document" msgstr "元のドキュメントを表示" -#: website/static/js/citationGrid.js:202 website/static/js/fangorn.js:2492 +#: website/static/js/citationGrid.js:202 website/static/js/fangorn.js:2521 msgid "View on %1$s" msgstr "%1$sで表示" @@ -5876,7 +5767,7 @@ msgstr "著者" msgid "Date Created" msgstr "作成日時" -#: website/static/js/conference.js:43 website/static/js/fangorn.js:2083 +#: website/static/js/conference.js:43 website/static/js/fangorn.js:2112 msgid "Downloads" msgstr "ダウンロード" @@ -6040,262 +5931,262 @@ msgstr "移動中" msgid "Renaming " msgstr "名前を変更中" -#: website/static/js/fangorn.js:473 +#: website/static/js/fangorn.js:477 msgid "Not allowed: Private folder" msgstr "許可されない:非公開フォルダ" -#: website/static/js/fangorn.js:517 website/static/js/fangorn.js:547 +#: website/static/js/fangorn.js:521 website/static/js/fangorn.js:551 msgid "You cannot replace the Wiki images folder" msgstr "Wiki画像フォルダーを置き換えることはできません" -#: website/static/js/fangorn.js:522 website/static/js/fangorn.js:555 +#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:559 msgid "An item named \"%1$s\" already exists in this location." msgstr "\"%1$s\"という名前のアイテムはこの場所に既に存在します" -#: website/static/js/fangorn.js:524 website/static/js/fangorn.js:533 -#: website/static/js/fangorn.js:557 +#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:537 +#: website/static/js/fangorn.js:561 msgid "Keep Both" msgstr "両方を保持" -#: website/static/js/fangorn.js:524 website/static/js/fangorn.js:557 +#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:561 msgid " will retain both files (and their version histories) in this location." msgstr "はこの場所に両方のファイル(およびそれらのバージョン履歴)が保持されます。" -#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:534 -#: website/static/js/fangorn.js:559 +#: website/static/js/fangorn.js:530 website/static/js/fangorn.js:538 +#: website/static/js/fangorn.js:563 msgid "Replace" msgstr "置換" -#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:559 +#: website/static/js/fangorn.js:530 website/static/js/fangorn.js:563 msgid " will overwrite the existing file in this location. " msgstr "はこの場所にある既存のファイルを上書きします。" -#: website/static/js/fangorn.js:527 website/static/js/fangorn.js:560 +#: website/static/js/fangorn.js:531 website/static/js/fangorn.js:564 msgid "You will lose previous versions of the overwritten file. " msgstr "上書きされたファイルの以前のバージョンは失われます。" -#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:561 +#: website/static/js/fangorn.js:532 website/static/js/fangorn.js:565 msgid "You will keep previous versions of the moved file." msgstr "移動したファイルの以前のバージョンを保持します。" -#: website/static/js/fangorn.js:529 +#: website/static/js/fangorn.js:533 msgid "\"Skip\" will skip the current file." msgstr "\"スキップ\"は現在のファイルをスキップします。" -#: website/static/js/fangorn.js:530 +#: website/static/js/fangorn.js:534 msgid "\"Stop\" will only move files with no conflicts." msgstr "\"停止\"は、競合のないファイルのみを移動します。" -#: website/static/js/fangorn.js:535 +#: website/static/js/fangorn.js:539 msgid "Skip" msgstr "スキップ" -#: website/static/js/fangorn.js:536 +#: website/static/js/fangorn.js:540 msgid "Stop" msgstr "停止" -#: website/static/js/fangorn.js:538 +#: website/static/js/fangorn.js:542 #, python-format msgid "Replace \"%s\"?" msgstr "\"%s\"を置換しますか?" -#: website/static/js/fangorn.js:562 +#: website/static/js/fangorn.js:566 msgid " will cancel the move." msgstr "は移動をキャンセルします。" -#: website/static/js/fangorn.js:571 +#: website/static/js/fangorn.js:575 msgid "Replace \"%1$s\"?" msgstr "\"%1$s\"を置換しますか?" -#: website/static/js/fangorn.js:601 +#: website/static/js/fangorn.js:605 msgid "%1$s conflicts left to resolve." msgid_plural "%1$s conflict left to resolve." msgstr[0] "%1$sの競合が残っています。" -#: website/static/js/fangorn.js:686 +#: website/static/js/fangorn.js:690 msgid "Successfully %1$s." msgstr "%1$sに成功しました。" -#: website/static/js/fangorn.js:734 +#: website/static/js/fangorn.js:738 msgid "Please refresh the page or contact %1$s if the problem persists." msgstr "問題が解決しない場合は、ページを更新するか%1$sに連絡してください。" -#: website/static/js/fangorn.js:739 +#: website/static/js/fangorn.js:743 msgid "Failed to move or copy file" msgstr "ファイルの移動またはコピーに失敗しました" -#: website/static/js/fangorn.js:1034 +#: website/static/js/fangorn.js:1038 msgid "Could not upload file. The file may be invalid " msgstr "ファイルをアップロードできませんでした。 ファイルが無効である" -#: website/static/js/fangorn.js:1035 +#: website/static/js/fangorn.js:1039 msgid "or the file folder has been deleted." msgstr "か、ファイルフォルダーが削除されている可能性があります。" -#: website/static/js/fangorn.js:1043 website/static/js/fangorn.js:1048 +#: website/static/js/fangorn.js:1047 website/static/js/fangorn.js:1052 msgid "Cannot upload folders." msgstr "フォルダーをアップロードできません。" -#: website/static/js/fangorn.js:1050 +#: website/static/js/fangorn.js:1054 msgid "Cannot upload file due to insufficient storage." msgstr "ストレージが不十分なため、ファイルをアップロードできません。" -#: website/static/js/fangorn.js:1055 +#: website/static/js/fangorn.js:1059 msgid "Could not upload file. Possible reasons:
    " msgstr "ファイルをアップロードできませんでした。 考えられる理由:
    " -#: website/static/js/fangorn.js:1056 +#: website/static/js/fangorn.js:1060 msgid "1. Cannot upload folders.
    2. " msgstr "1.フォルダーをアップロードできません。
    2." -#: website/static/js/fangorn.js:1058 +#: website/static/js/fangorn.js:1062 msgid "Unable to reach the provider, please try again later. " msgstr "プロバイダーに到達できません。しばらくしてからもう一度お試しください。" -#: website/static/js/fangorn.js:1059 +#: website/static/js/fangorn.js:1063 msgid "If the problem persists, please contact %1$s." msgstr "問題が解決しない場合は、%1$sにお問い合わせください" -#: website/static/js/fangorn.js:1172 +#: website/static/js/fangorn.js:1176 msgid "The folder that wants to upload is empty." msgstr "" -#: website/static/js/fangorn.js:1204 +#: website/static/js/fangorn.js:1208 msgid "Not enough quota to upload. The total size of the folder %1$s." msgstr "アップロードするための空き容量が足りません。フォルダのサイズは%1$sです。" -#: website/static/js/fangorn.js:1348 website/static/js/fangorn.js:1426 +#: website/static/js/fangorn.js:1352 website/static/js/fangorn.js:1430 msgid "Folder creation failed." msgstr "フォルダ作成に失敗しました。" -#: website/static/js/fangorn.js:1390 +#: website/static/js/fangorn.js:1394 msgid "Please enter a folder name." msgstr "フォルダー名を入力してください。" -#: website/static/js/fangorn.js:1394 +#: website/static/js/fangorn.js:1398 msgid "Folder name contains illegal characters." msgstr "フォルダー名に無効な文字が含まれています。" -#: website/static/js/fangorn.js:1417 +#: website/static/js/fangorn.js:1421 msgid "New folder created!" msgstr "新しいフォルダが作成されました。" -#: website/static/js/fangorn.js:1440 +#: website/static/js/fangorn.js:1444 #, fuzzy msgid "Please enter a file name." msgstr "ファイル名を入力してください。" -#: website/static/js/fangorn.js:1444 +#: website/static/js/fangorn.js:1448 #, fuzzy msgid "File name contains illegal characters." msgstr "ファイル名に無効な文字が含まれています。" -#: website/static/js/fangorn.js:1473 +#: website/static/js/fangorn.js:1477 #, fuzzy msgid "New file created!" msgstr "新しいファイルが作成されました。" -#: website/static/js/fangorn.js:1486 +#: website/static/js/fangorn.js:1490 #, fuzzy msgid "File creation failed." msgstr "ファイル作成に失敗しました。" -#: website/static/js/fangorn.js:1506 +#: website/static/js/fangorn.js:1510 msgid " Deleting..." msgstr " 削除中..." -#: website/static/js/fangorn.js:1528 +#: website/static/js/fangorn.js:1532 msgid "Delete failed." msgstr "削除に失敗しました。" -#: website/static/js/fangorn.js:1543 +#: website/static/js/fangorn.js:1547 msgid "" "This folder and all of its contents will be deleted. This folder is " "linked to " msgstr "このフォルダーとその内容はすべて削除されます。 このフォルダーは、" -#: website/static/js/fangorn.js:1544 +#: website/static/js/fangorn.js:1548 msgid "your wiki(s). Deleting it will remove images embedded in your wiki(s). " msgstr "Wikiにリンクされています。 削除すると、Wikiに埋め込まれた画像が削除されます。" -#: website/static/js/fangorn.js:1545 website/static/js/fangorn.js:1573 -#: website/static/js/fangorn.js:1596 website/static/js/pages/base-page.js:132 +#: website/static/js/fangorn.js:1549 website/static/js/fangorn.js:1577 +#: website/static/js/fangorn.js:1600 website/static/js/pages/base-page.js:132 msgid "This action is irreversible." msgstr "このアクションは元に戻せません。" -#: website/static/js/fangorn.js:1548 +#: website/static/js/fangorn.js:1552 msgid "" "This folder and ALL its contents will be deleted. This action is " "irreversible." msgstr "このフォルダーとその内容はすべて削除されます。 このアクションは元に戻せません。" -#: website/static/js/fangorn.js:1556 website/static/js/fangorn.js:1581 +#: website/static/js/fangorn.js:1560 website/static/js/fangorn.js:1585 msgid "Delete \"%1$s\"?" msgstr "\"%1$s\"を削除しますか?" -#: website/static/js/fangorn.js:1558 +#: website/static/js/fangorn.js:1562 msgid "You don't have permission to delete this file." msgstr "このファイルを削除する権限がありません。" -#: website/static/js/fangorn.js:1566 +#: website/static/js/fangorn.js:1570 msgid "This file may be linked to your wiki(s). Deleting it will remove the" msgstr "このファイルはWikiにリンクされている場合があります。 削除すると、" -#: website/static/js/fangorn.js:1567 +#: website/static/js/fangorn.js:1571 msgid " image embedded in your wiki(s). " msgstr "Wikiに埋め込まれた画像が削除されます" -#: website/static/js/fangorn.js:1607 +#: website/static/js/fangorn.js:1611 msgid "" "Some of the selected items are folders. This will delete the folder(s) " "and ALL of their content." msgstr "選択したアイテムの一部はフォルダーです。 これにより、フォルダーとそのすべてのコンテンツが削除されます。" -#: website/static/js/fangorn.js:1621 +#: website/static/js/fangorn.js:1625 msgid " may be linked to" msgstr "ウィキにリンクされている可能性があります。" -#: website/static/js/fangorn.js:1622 +#: website/static/js/fangorn.js:1626 msgid " your wiki(s). Deleting them will remove images embedded in your wiki(s). " msgstr "れらを削除すると、ウィキに埋め込まれた画像が削除されます。" -#: website/static/js/fangorn.js:1630 +#: website/static/js/fangorn.js:1634 msgid "Delete All" msgstr "全て削除" -#: website/static/js/fangorn.js:1634 +#: website/static/js/fangorn.js:1638 msgid "" "Some of these files can't be deleted but you can delete the ones " "highlighted with green. This action is irreversible." msgstr "これらのファイルの一部は削除できませんが、削除できます" -#: website/static/js/fangorn.js:1649 +#: website/static/js/fangorn.js:1653 msgid "Delete Some" msgstr "一部を削除" -#: website/static/js/fangorn.js:1652 +#: website/static/js/fangorn.js:1656 msgid "Delete multiple files?" msgstr "複数のファイルを削除しますか?" -#: website/static/js/fangorn.js:1678 +#: website/static/js/fangorn.js:1682 msgid "" "Unable to check out file. This is most likely due to the file being " "already checked-out" msgstr "ファイルをチェックアウトできません。 これは、ファイルが別のユーザーによって既にチェックアウトされていることが原因" -#: website/static/js/fangorn.js:1679 +#: website/static/js/fangorn.js:1683 msgid " by another user." msgstr "である可能性があります。" -#: website/static/js/fangorn.js:1994 +#: website/static/js/fangorn.js:2001 msgid "%1$s is not configured" msgstr "%1$sが未設定です" -#: website/static/js/fangorn.js:1997 +#: website/static/js/fangorn.js:2004 msgid " Restore Add-ons" msgstr " 設定" -#: website/static/js/fangorn.js:2008 website/static/js/fileViewTreebeard.js:63 +#: website/static/js/fangorn.js:2099 website/static/js/fileViewTreebeard.js:63 #: website/static/js/filesWidget.js:34 website/static/js/meetings.js:18 #: website/static/js/pages/project-dashboard-page.js:549 #: website/static/js/project-organizer.js:192 @@ -6303,127 +6194,127 @@ msgstr " 設定" msgid "Name" msgstr "名前" -#: website/static/js/fangorn.js:2075 +#: website/static/js/fangorn.js:2104 msgid "Size" msgstr "サイズ" -#: website/static/js/fangorn.js:2079 +#: website/static/js/fangorn.js:2108 msgid "Version" msgstr "バージョン" -#: website/static/js/fangorn.js:2087 +#: website/static/js/fangorn.js:2116 #: website/static/js/pages/project-dashboard-page.js:555 #: website/static/js/project-organizer.js:201 msgid "Modified" msgstr "最終更新日時" -#: website/static/js/fangorn.js:2198 +#: website/static/js/fangorn.js:2227 msgid "Unable to retrieve components." msgstr "コンポーネントを取得できません。" -#: website/static/js/fangorn.js:2200 +#: website/static/js/fangorn.js:2229 msgid "Unable to retrieve components for node %1$s" msgstr "ノード%1$sのコンポーネントを取得できません" -#: website/static/js/fangorn.js:2282 +#: website/static/js/fangorn.js:2311 msgid "You cannot rename your Wiki images folder." msgstr "Wiki画像フォルダの名前を変更することはできません。" -#: website/static/js/fangorn.js:2392 +#: website/static/js/fangorn.js:2421 msgid "Upload Folder" msgstr "フォルダのアップロード" -#: website/static/js/fangorn.js:2397 +#: website/static/js/fangorn.js:2426 msgid "Upload" msgstr "アップロード" -#: website/static/js/fangorn.js:2404 +#: website/static/js/fangorn.js:2433 msgid "Create Folder" msgstr "新規フォルダ作成" -#: website/static/js/fangorn.js:2411 +#: website/static/js/fangorn.js:2440 #, fuzzy msgid "Create File" msgstr "新規ファイル作成" -#: website/static/js/fangorn.js:2418 +#: website/static/js/fangorn.js:2447 msgid "Delete Folder" msgstr "フォルダを削除" -#: website/static/js/fangorn.js:2427 website/static/js/filepage/index.js:522 +#: website/static/js/fangorn.js:2456 website/static/js/filepage/index.js:739 #: website/static/js/filepage/revisions.js:111 msgid "Download" msgstr "ダウンロード" -#: website/static/js/fangorn.js:2383 website/static/js/filepage/index.js:216 +#: website/static/js/fangorn.js:2482 website/static/js/filepage/index.js:216 msgid "This would mean " msgstr "これは、" -#: website/static/js/fangorn.js:2454 website/static/js/filepage/index.js:217 +#: website/static/js/fangorn.js:2483 website/static/js/filepage/index.js:217 msgid "" "other contributors cannot edit, delete or upload new versions of this " "file " msgstr "チェックアウトされている限り他のメンバーがこのファイルの新しいバージョンを編集、削除、またはアップロードできないことを意味します。" -#: website/static/js/fangorn.js:2455 +#: website/static/js/fangorn.js:2484 msgid "as long as it is checked-out. You can check it back in at anytime." msgstr "いつでもチェックインできます。" -#: website/static/js/fangorn.js:2460 website/static/js/fangorn.js:2465 +#: website/static/js/fangorn.js:2489 website/static/js/fangorn.js:2494 #: website/static/js/filepage/index.js:243 msgid "Check out file" msgstr "ファイルをチェックアウト" -#: website/static/js/fangorn.js:2461 +#: website/static/js/fangorn.js:2490 msgid "Confirm file check-out?" msgstr "ファイルのチェックアウトを確認しますか?" -#: website/static/js/fangorn.js:2474 +#: website/static/js/fangorn.js:2503 msgid "Check in file" msgstr "ファイルをチェックイン" -#: website/static/js/fangorn.js:2502 +#: website/static/js/fangorn.js:2531 msgid "Download as zip" msgstr "ZIPでダウンロード" -#: website/static/js/fangorn.js:2513 website/static/js/myProjects.js:1613 +#: website/static/js/fangorn.js:2542 website/static/js/myProjects.js:1613 msgid "Rename" msgstr "名前を変更" -#: website/static/js/fangorn.js:2522 +#: website/static/js/fangorn.js:2551 msgid "copy link" msgstr "リンクをコピー" -#: website/static/js/fangorn.js:2607 +#: website/static/js/fangorn.js:2636 msgid "New folder name" msgstr "新しいフォルダ名" -#: website/static/js/fangorn.js:2635 +#: website/static/js/fangorn.js:2664 msgid "Enter name" msgstr "名前を入力" -#: website/static/js/fangorn.js:2660 +#: website/static/js/fangorn.js:2694 #, fuzzy msgid "New file name" msgstr "新しいファイル名" -#: website/static/js/fangorn.js:2727 +#: website/static/js/fangorn.js:2756 msgid "Cancel Pending Uploads" msgstr "保留中のアップロードをキャンセル" -#: website/static/js/fangorn.js:2756 +#: website/static/js/fangorn.js:2785 msgid "Delete Multiple" msgstr "複数削除" -#: website/static/js/fangorn.js:2768 website/static/js/fangorn.js:3616 +#: website/static/js/fangorn.js:2797 website/static/js/fangorn.js:3648 msgid "Filter" msgstr "フィルタ" -#: website/static/js/fangorn.js:2773 +#: website/static/js/fangorn.js:2802 msgid "Select rows:" msgstr "行を選択:" -#: website/static/js/fangorn.js:2773 +#: website/static/js/fangorn.js:2802 msgid "" " Click on a row (outside the add-on, file, or folder name) to show " "further actions in the toolbar. Use Command or Shift keys to select " @@ -6432,107 +6323,107 @@ msgstr "" "行(アドオン、ファイル、またはフォルダー名の外側)をクリックして、ツールバーにさらにアクションを表示します。 " "複数のファイルを選択するには、コマンドまたはShiftキーを使用します。" -#: website/static/js/fangorn.js:2774 +#: website/static/js/fangorn.js:2803 msgid "Open files:" msgstr "ファイルを開く:" -#: website/static/js/fangorn.js:2774 +#: website/static/js/fangorn.js:2803 msgid " Click a file name to go to view the file in the GakuNin RDM." msgstr "ファイル名をクリックして、GakuNin RDMでファイルを表示します。" -#: website/static/js/fangorn.js:2775 +#: website/static/js/fangorn.js:2804 msgid "Open files in new tab:" msgstr "新しいタブでファイルを開く:" -#: website/static/js/fangorn.js:2775 +#: website/static/js/fangorn.js:2804 msgid "" " Press Command (Ctrl in Windows) and click a file name to open it in a " "new tab." msgstr "コマンド(WindowsではCtrl)を押し、ファイル名をクリックして新しいタブで開きます。" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid "Download as zip:" msgstr "ZIPでダウンロード:" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid "" " Click on the row of an add-on or folder and click the Download as Zip " "button in the toolbar." msgstr "アドオンまたはフォルダーの行をクリックし、ツールバーの [ZIPでダウンロード] ボタンをクリックします。" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid " Not available for all storage add-ons." msgstr "すべてのストレージアドオンで利用できるわけではありません。" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid "Copy files:" msgstr "ファイルをコピー:" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid "" " Press Option (Alt in Windows) while dragging a file to a new folder or " "component." msgstr "オプション(WindowsではAlt)を押しながら、ファイルを新しいフォルダーまたはコンポーネントにドラッグします。" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid " Only for contributors with write access." msgstr "書き込みアクセス権を持つメンバーのみ。" -#: website/static/js/fangorn.js:2783 +#: website/static/js/fangorn.js:2812 msgid "How to Use the File Browser" msgstr "ファイルブラウザの使用方法" -#: website/static/js/fangorn.js:2847 +#: website/static/js/fangorn.js:2876 msgid "Please wait for current action to complete" msgstr "現在のアクションが完了するまでお待ちください" -#: website/static/js/fangorn.js:3028 +#: website/static/js/fangorn.js:3057 msgid "Upload Status" msgstr "ステータスをアップロード" -#: website/static/js/fangorn.js:3028 +#: website/static/js/fangorn.js:3057 msgid " files succeeded." msgstr "ファイルが成功しました。" -#: website/static/js/fangorn.js:3139 +#: website/static/js/fangorn.js:3168 msgid "Done" msgstr "完了" -#: website/static/js/fangorn.js:3141 +#: website/static/js/fangorn.js:3170 msgid "Move Status" msgstr "移動ステータス" -#: website/static/js/fangorn.js:3143 +#: website/static/js/fangorn.js:3172 msgid " files successfully moved." msgstr "ファイルが移動成功しました。" -#: website/static/js/fangorn.js:3144 +#: website/static/js/fangorn.js:3173 msgid " Skipped %1$s/%2$s files." msgstr "%1$s/%2$sファイルをスキップしました。" -#: website/static/js/fangorn.js:3530 +#: website/static/js/fangorn.js:3562 msgid "You have pending uploads, if you leave this page they may not complete." msgstr "保留中のアップロードがあります。このページを離れると、アップロードが完了しない場合があります。" -#: website/static/js/fangorn.js:3533 +#: website/static/js/fangorn.js:3565 msgid "" "You have pending file operations, if you leave this page they may not " "complete." msgstr "保留中のファイル操作があります。このページを離れると、完了しない場合があります。" -#: website/static/js/fangorn.js:3577 +#: website/static/js/fangorn.js:3609 msgid "This file is too large (%1$s). Max file size is %2$s." msgstr "このファイルは大きすぎます(%1$s)。 最大ファイルサイズは%2$sです。" -#: website/static/js/fangorn.js:3593 +#: website/static/js/fangorn.js:3625 msgid "Not enough quota to upload the file." msgstr "ファイルをアップロードするのに十分なクォータがありません。" -#: website/static/js/fangorn.js:3600 +#: website/static/js/fangorn.js:3632 msgid "Quota usage alert" msgstr "クォータ使用量アラート" -#: website/static/js/fangorn.js:3601 +#: website/static/js/fangorn.js:3633 #, python-format msgid "You have used more than %1$s% of your quota." msgstr "割り当ての%1$s%%以上を使用しました。" @@ -7136,7 +7027,7 @@ msgid "Code - Other:" msgstr "コード用 - その他" #: website/static/js/logActionsList_extract.js:3 -#: website/static/js/logActionsList_extract.js:76 +#: website/static/js/logActionsList_extract.js:78 msgid "${user} created ${node}" msgstr "${user}が${node}を作成しました" @@ -7347,228 +7238,236 @@ msgid "${user} checked in ${kind} ${path} to ${node}" msgstr "${user}が${kind} ${path}を${node}にチェックインしました" #: website/static/js/logActionsList_extract.js:54 +msgid "${user} locked ${kind} ${path} in ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:55 +msgid "${user} unlocked ${kind} ${path} in ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:56 msgid "${user} added a comment ${comment_location} in ${node}" msgstr "${user}が${node}にコメント${comment_location}を追加しました" -#: website/static/js/logActionsList_extract.js:55 +#: website/static/js/logActionsList_extract.js:57 msgid "${user} deleted a comment ${comment_location} in ${node}" msgstr "${user}が${node}のコメント${comment_location}を削除しました" -#: website/static/js/logActionsList_extract.js:56 +#: website/static/js/logActionsList_extract.js:58 msgid "${user} restored a comment ${comment_location} in ${node}" msgstr "${user}が${node}のコメント${comment_location}を復元しました" -#: website/static/js/logActionsList_extract.js:57 +#: website/static/js/logActionsList_extract.js:59 msgid "${user} updated a comment ${comment_location} in ${node}" msgstr "${user}が${node}のコメント${comment_location}を更新しました" -#: website/static/js/logActionsList_extract.js:58 +#: website/static/js/logActionsList_extract.js:60 msgid "${user} initiated an embargoed registration of ${node}" msgstr "${user}が${node}の禁止登録を開始しました" -#: website/static/js/logActionsList_extract.js:59 +#: website/static/js/logActionsList_extract.js:61 msgid "${user} approved embargoed registration of ${node}" msgstr "${user}が${node}の禁止登録を承認しました" -#: website/static/js/logActionsList_extract.js:60 +#: website/static/js/logActionsList_extract.js:62 msgid "Embargo of registration of ${node} approved" msgstr "${node}の登録の禁止が承認されました" -#: website/static/js/logActionsList_extract.js:61 +#: website/static/js/logActionsList_extract.js:63 msgid "${user} cancelled embargoed registration of ${node}" msgstr "${user}が${node}の禁止登録をキャンセルしました" -#: website/static/js/logActionsList_extract.js:62 +#: website/static/js/logActionsList_extract.js:64 msgid "${user} completed embargo of ${node}" msgstr "${user}が${node}の禁止を完了しました" -#: website/static/js/logActionsList_extract.js:63 +#: website/static/js/logActionsList_extract.js:65 msgid "Embargo for ${node} completed" msgstr "${node}の禁止が完了しました" -#: website/static/js/logActionsList_extract.js:64 +#: website/static/js/logActionsList_extract.js:66 msgid "Embargo for ${node} ended" msgstr "${node}の禁止が終了しました" -#: website/static/js/logActionsList_extract.js:65 +#: website/static/js/logActionsList_extract.js:67 msgid "${user} initiated withdrawal of a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:66 +#: website/static/js/logActionsList_extract.js:68 msgid "A withdrawal of a registration of ${node} was proposed" msgstr "" -#: website/static/js/logActionsList_extract.js:67 +#: website/static/js/logActionsList_extract.js:69 msgid "${user} approved a withdrawal of a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:69 +#: website/static/js/logActionsList_extract.js:71 msgid "${user} cancelled withdrawal of a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:70 +#: website/static/js/logActionsList_extract.js:72 msgid "A registration of ${node} was created on an external registry." msgstr "" -#: website/static/js/logActionsList_extract.js:71 +#: website/static/js/logActionsList_extract.js:73 msgid "A registration of ${node} was imported to OSF from an external registry." msgstr "" -#: website/static/js/logActionsList_extract.js:72 +#: website/static/js/logActionsList_extract.js:74 msgid "${user} initiated a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:73 +#: website/static/js/logActionsList_extract.js:75 msgid "${user} approved a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:74 +#: website/static/js/logActionsList_extract.js:76 msgid "Registration of ${node} was approved" msgstr "" -#: website/static/js/logActionsList_extract.js:75 +#: website/static/js/logActionsList_extract.js:77 msgid "${user} cancelled a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:77 +#: website/static/js/logActionsList_extract.js:79 msgid "${user} created fork from ${forked_from}" msgstr "${user}が${forked_from}からフォークを作成しました" -#: website/static/js/logActionsList_extract.js:78 +#: website/static/js/logActionsList_extract.js:80 msgid "${user} removed ${node}" msgstr "${user}が${node}を削除しました" -#: website/static/js/logActionsList_extract.js:79 +#: website/static/js/logActionsList_extract.js:81 msgid "${user} enabled access requests for ${node}" msgstr "${user}が${node}のアクセス要求を有効にしました" -#: website/static/js/logActionsList_extract.js:80 +#: website/static/js/logActionsList_extract.js:82 msgid "${user} disabled access requests for ${node}" msgstr "${user}が${node}のアクセス要求を無効にしました" -#: website/static/js/logActionsList_extract.js:81 +#: website/static/js/logActionsList_extract.js:83 msgid "${user} updated the license of ${node} ${license}" msgstr "${user}が${node} ${license}のライセンスを更新しました" -#: website/static/js/logActionsList_extract.js:82 +#: website/static/js/logActionsList_extract.js:84 msgid "${user} added tag ${tag} to ${path} in ${storage_name} in ${node}" msgstr "${user}が${node}の${storage_name}の${path}にタグ${tag}を追加しました" -#: website/static/js/logActionsList_extract.js:83 +#: website/static/js/logActionsList_extract.js:85 msgid "${user} removed tag ${tag} from ${path} in ${storage_name} in ${node}" msgstr "${user}が${node}の${storage_name}の${path}からタグ${tag}を削除しました" -#: website/static/js/logActionsList_extract.js:84 +#: website/static/js/logActionsList_extract.js:86 msgid "${user} added file ${path} to ${storage_name} in ${node}" msgstr "${user}が${node}の${storage_name}にファイル${path}を追加しました" -#: website/static/js/logActionsList_extract.js:85 +#: website/static/js/logActionsList_extract.js:87 msgid "${user} created folder ${path} in ${storage_name} in ${node}" msgstr "${user}が${node}の${storage_name}にフォルダ${path}を作成しました" -#: website/static/js/logActionsList_extract.js:86 +#: website/static/js/logActionsList_extract.js:88 msgid "${user} updated file ${path} in ${storage_name} in ${node}" msgstr "${user}が${node}の${storage_name}のファイル${path}を更新しました" -#: website/static/js/logActionsList_extract.js:87 +#: website/static/js/logActionsList_extract.js:89 msgid "${user} removed ${path_type} ${path} from ${storage_name} in ${node}" msgstr "${user}は${node}の${storage_name}から${path_type} ${path}を削除しました" -#: website/static/js/logActionsList_extract.js:88 +#: website/static/js/logActionsList_extract.js:90 msgid "${user} added ${institution} affiliation to ${node}" msgstr "${user}が${institution}の所属を${node}に追加しました" -#: website/static/js/logActionsList_extract.js:89 +#: website/static/js/logActionsList_extract.js:91 msgid "${user} removed ${institution} affiliation from ${node}" msgstr "${user}が${institution}の所属を${node}から削除しました" -#: website/static/js/logActionsList_extract.js:90 +#: website/static/js/logActionsList_extract.js:92 msgid "${user} made ${node} a ${preprint} on ${preprint_provider} Preprints" msgstr "${user}が${preprint_provider}プレプリントで${node}を${preprint}にしました" -#: website/static/js/logActionsList_extract.js:91 +#: website/static/js/logActionsList_extract.js:93 msgid "" "${user} updated the primary file of this ${preprint} on " "${preprint_provider} Preprints" msgstr "$ß{user}が${preprint_provider}プレプリントでこの${preprint}のプライマリファイルを更新しました" -#: website/static/js/logActionsList_extract.js:92 +#: website/static/js/logActionsList_extract.js:94 msgid "" "${user} updated the license of this ${preprint} on ${preprint_provider} " "Preprints ${license}" msgstr "${user}が${preprint_provider}プレプリント${license}でこの${preprint}のライセンスを更新しました" -#: website/static/js/logActionsList_extract.js:93 +#: website/static/js/logActionsList_extract.js:95 msgid "${user} updated the subjects on ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:94 +#: website/static/js/logActionsList_extract.js:96 msgid "${user} created ${anonymous_link} view-only link to ${node}" msgstr "${user}が${node}への${anonymous_link}参照専用リンクを作成しました" -#: website/static/js/logActionsList_extract.js:95 +#: website/static/js/logActionsList_extract.js:97 msgid "${user} removed ${anonymous_link} view-only link to ${node}" msgstr "${user}が${node}への${anonymous_link}参照専用リンクを削除しました" -#: website/static/js/logActionsList_extract.js:96 +#: website/static/js/logActionsList_extract.js:98 msgid "" "${user} changed the conflict of interest statement availability for " "${preprint}." msgstr "" -#: website/static/js/logActionsList_extract.js:97 +#: website/static/js/logActionsList_extract.js:99 msgid "${user} changed the conflict of interest statement for ${preprint}." msgstr "" -#: website/static/js/logActionsList_extract.js:98 +#: website/static/js/logActionsList_extract.js:100 msgid "${user} has updated the has links to data field to ${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:99 +#: website/static/js/logActionsList_extract.js:101 msgid "${user} has updated their data links" msgstr "" -#: website/static/js/logActionsList_extract.js:100 +#: website/static/js/logActionsList_extract.js:102 msgid "${user} has updated their data statement" msgstr "" -#: website/static/js/logActionsList_extract.js:101 +#: website/static/js/logActionsList_extract.js:103 msgid "" "${user} has updated their preregistration data link availability to " "${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:102 +#: website/static/js/logActionsList_extract.js:104 msgid "${user} has updated their preregistration data links" msgstr "" -#: website/static/js/logActionsList_extract.js:103 +#: website/static/js/logActionsList_extract.js:105 msgid "${user} has updated their preregistration data availability statement" msgstr "" -#: website/static/js/logActionsList_extract.js:104 +#: website/static/js/logActionsList_extract.js:106 msgid "${user} has updated their preregistration links to ${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:105 +#: website/static/js/logActionsList_extract.js:107 msgid "${user} verified timestamp" msgstr "${user}がタイムスタンプ確認をしました" -#: website/static/js/logActionsList_extract.js:106 +#: website/static/js/logActionsList_extract.js:108 msgid "${user} requested trusted timestamp" msgstr "${user}がタイムスタンプを打ちました" -#: website/static/js/logActionsList_extract.js:107 +#: website/static/js/logActionsList_extract.js:109 msgid "${user} requested trusted timestamp file ${path}" msgstr "${user}がファイル${path}にタイムスタンプを打ちました" -#: website/static/js/logActionsList_extract.js:108 +#: website/static/js/logActionsList_extract.js:110 msgid "" "${user} downloaded a file of timestamp errors as a " "${timestamp_errors_file_format}" msgstr "${user}がタイムスタンプエラーのファイルを${timestamp_errors_file_format}でダウンロードしました" -#: website/static/js/logActionsList_extract.js:109 +#: website/static/js/logActionsList_extract.js:111 msgid "" "[MAPCORE_SYNC:ERROR] ${user} cannot create a new mAP group for GRDM " "project <${node}> (See logs for details)" @@ -7576,711 +7475,691 @@ msgstr "" "[MAPCORE_SYNC:ERROR] " "${user}はGRDMプロジェクト<${node}>の新しいmAPグループを作成できません(詳細はログを参照してください)" -#: website/static/js/logActionsList_extract.js:110 +#: website/static/js/logActionsList_extract.js:112 msgid "" "[MAPCORE_SYNC:ERROR] mAP group for GRDM project <${node}> cannot be " "updated (See logs for details)" msgstr "[MAPCORE_SYNC:ERROR] GRDMプロジェクト<${node}>のmAPグループを更新できません(詳細はログを参照してください)" -#: website/static/js/logActionsList_extract.js:111 +#: website/static/js/logActionsList_extract.js:113 msgid "" "[MAPCORE_SYNC:ERROR] GRDM project <${node}> cannot be updated with mAP " "group (See logs for details)" msgstr "[MAPCORE_SYNC:ERROR] GRDMプロジェクト<${node}>はmAPグループで更新できません(詳細はログを参照してください)" -#: website/static/js/logActionsList_extract.js:112 +#: website/static/js/logActionsList_extract.js:114 msgid "" "[MAPCORE_SYNC:NOTICE] Unknown (unregistered in GRDM) users belong to mAP " "group <${node}> (ignored) (See logs for details)" msgstr "不明(GRDMに登録されていない)ユーザーはmAPグループ<${node}>に属しています(無視されます)(詳細についてはログを参照してください)" -#: website/static/js/logActionsList_extract.js:113 +#: website/static/js/logActionsList_extract.js:115 msgid "${user} added file ${path} to Box in ${node}" msgstr "${user}がファイル${path}を${node}のBoxに追加しました" -#: website/static/js/logActionsList_extract.js:114 +#: website/static/js/logActionsList_extract.js:116 msgid "${user} removed ${path_type} ${path} from Box in ${node}" msgstr "${user}が${node}のBoxから${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:115 +#: website/static/js/logActionsList_extract.js:117 msgid "${user} updated file ${path} in Box in ${node}" msgstr "${user}が${node}のBoxのファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:116 +#: website/static/js/logActionsList_extract.js:118 msgid "${user} created folder ${path} in Box in ${node}" msgstr "${user}が${node}のBoxにフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:117 +#: website/static/js/logActionsList_extract.js:119 msgid "${user} linked Box folder ${box_folder} to ${node}" msgstr "${user}がBoxフォルダ(${box_folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:118 +#: website/static/js/logActionsList_extract.js:120 msgid "${user} authorized the Box addon in ${node}" msgstr "${user}が${node}のBoxアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:119 +#: website/static/js/logActionsList_extract.js:121 msgid "${user} deauthorized the Box addon for ${node}" msgstr "${user}が${node}のBoxアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:120 +#: website/static/js/logActionsList_extract.js:122 msgid "Box addon for ${node} deauthorized" msgstr "${node}のBoxアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:121 +#: website/static/js/logActionsList_extract.js:123 msgid "${user} added file ${filename} to Dataverse dataset ${dataset} in ${node}" msgstr "${user}がファイル(${filename})を${node}のDataverseデータセット(${dataset})に追加しました" -#: website/static/js/logActionsList_extract.js:122 +#: website/static/js/logActionsList_extract.js:124 msgid "" "${user} removed file ${filename} from Dataverse dataset ${dataset} in " "${node}" msgstr "${user}が${node}のDataverseデータセット(${dataset})からファイル(${filename})を削除しました" -#: website/static/js/logActionsList_extract.js:123 +#: website/static/js/logActionsList_extract.js:125 msgid "${user} linked Dataverse dataset ${dataset} to ${node}" msgstr "${user}がDataverseデータセット(${dataset})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:124 +#: website/static/js/logActionsList_extract.js:126 msgid "${user} linked Dataverse dataset ${study} to ${node}" msgstr "${user}がDataverseデータセット(${study})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:125 +#: website/static/js/logActionsList_extract.js:127 msgid "${user} published a new version of Dataverse dataset ${dataset} on ${node}" msgstr "${user}がDataverseデータセット(${dataset})の新しいバージョンを${node}に公開しました" -#: website/static/js/logActionsList_extract.js:126 +#: website/static/js/logActionsList_extract.js:128 msgid "${user} published a new version of Dataverse dataset ${study} to ${node}" msgstr "${user}がDataverseデータセット(${study})の新しいバージョンを${node}に公開しました" -#: website/static/js/logActionsList_extract.js:127 +#: website/static/js/logActionsList_extract.js:129 msgid "${user} authorized the Dataverse addon for ${node}" msgstr "${user}が${node}のDataverseアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:128 +#: website/static/js/logActionsList_extract.js:130 msgid "${user} deauthorized the Dataverse addon for ${node}" msgstr "${user}が${node}のDataverseアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:129 +#: website/static/js/logActionsList_extract.js:131 msgid "Dataverse addon for ${node} deauthorized" msgstr "${node}のDataverseアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:130 +#: website/static/js/logActionsList_extract.js:132 msgid "${user} added file ${path} to Dropbox in ${node}" msgstr "${user}がファイル${path}を${node}のDropboxに追加しました" -#: website/static/js/logActionsList_extract.js:131 +#: website/static/js/logActionsList_extract.js:133 msgid "${user} removed ${path_type} ${path} from Dropbox in ${node}" msgstr "${user}が${node}のDropboxから${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:132 +#: website/static/js/logActionsList_extract.js:134 msgid "${user} updated file ${path} in Dropbox in ${node}" msgstr "${user}が${node}のDropboxのファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:133 +#: website/static/js/logActionsList_extract.js:135 msgid "${user} created folder ${path} in Dropbox in ${node}" msgstr "${user}が${node}のDropboxにフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:134 +#: website/static/js/logActionsList_extract.js:136 msgid "${user} linked Dropbox folder ${dropbox_folder} to ${node}" msgstr "${user}がDropboxフォルダ(${dropbox_folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:135 +#: website/static/js/logActionsList_extract.js:137 msgid "${user} authorized the Dropbox addon for ${node}" msgstr "${user}が${node}のDropboxアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:136 +#: website/static/js/logActionsList_extract.js:138 msgid "${user} deauthorized the Dropbox addon for ${node}" msgstr "${user}が${node}のDropboxアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:137 +#: website/static/js/logActionsList_extract.js:139 msgid "Dropbox addon for ${node} deauthorized" msgstr "${node}のDropboxアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:138 +#: website/static/js/logActionsList_extract.js:140 msgid "${user} linked figshare ${folder} ${folder_name} to ${node}" msgstr "${user}がfigshare ${folder}(${folder_name})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:139 +#: website/static/js/logActionsList_extract.js:141 msgid "${user} unlinked content from figshare in ${node}" msgstr "${user}が${node}のfigshareからコンテンツのリンクを解除しました。" -#: website/static/js/logActionsList_extract.js:140 +#: website/static/js/logActionsList_extract.js:142 msgid "${user} added file ${path} to figshare in ${node}" msgstr "${user}がファイル${path}を${node}のfigshareに追加しました" -#: website/static/js/logActionsList_extract.js:141 +#: website/static/js/logActionsList_extract.js:143 msgid "${user} removed ${path_type} ${path} from figshare in ${node}" msgstr "${user}が${node}のfigshareから${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:142 +#: website/static/js/logActionsList_extract.js:144 msgid "${user} created folder ${path} in figshare in ${node}" msgstr "${user}が${node}のfigshareにフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:143 +#: website/static/js/logActionsList_extract.js:145 msgid "${user} authorized the figshare addon for ${node}" msgstr "${user}が${node}のfigshareアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:144 +#: website/static/js/logActionsList_extract.js:146 msgid "${user} deauthorized the figshare addon for ${node}" msgstr "${user}が${node}のfigshareアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:145 +#: website/static/js/logActionsList_extract.js:147 msgid "figshare addon for ${node} deauthorized" msgstr "${node}のfigshareアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:146 +#: website/static/js/logActionsList_extract.js:148 msgid "${user} changed external link to ${forward_url} in ${node}" msgstr "${user}が${node}の外部リンクを${forward_url}に変更しました" -#: website/static/js/logActionsList_extract.js:147 +#: website/static/js/logActionsList_extract.js:149 msgid "${user} added file ${path} to GitHub repo ${repo} in ${node}" msgstr "${user}がファイル${path}を${node}のGitHubリポジトリ(${repo})に追加しました" -#: website/static/js/logActionsList_extract.js:148 +#: website/static/js/logActionsList_extract.js:150 msgid "${user} removed ${path_type} ${path} in GitHub repo ${repo} in ${node}" msgstr "${user}が${node}のGitHubリポジトリ(${repo})で${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:149 +#: website/static/js/logActionsList_extract.js:151 msgid "${user} updated file ${path} in GitHub repo ${repo} in ${node}" msgstr "${user}が${node}のGitHubリポジトリ(${repo})のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:150 +#: website/static/js/logActionsList_extract.js:152 msgid "${user} created folder ${path} in GitHub repo ${repo} in ${node}" msgstr "${user}が${node}のGitHubリポジトリ(${repo})にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:151 +#: website/static/js/logActionsList_extract.js:153 msgid "${user} authorized the GitHub addon for ${node}" msgstr "${user}が${node}のGitHubアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:152 +#: website/static/js/logActionsList_extract.js:154 msgid "${user} deauthorized the GitHub addon for ${node}" msgstr "${user}が${node}のGitHubアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:153 +#: website/static/js/logActionsList_extract.js:155 msgid "GitHub addon for ${node} deauthorized" msgstr "${node}のGitHubアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:154 +#: website/static/js/logActionsList_extract.js:156 msgid "${user} linked GitHub repo ${repo} to ${node}" msgstr "${user}がGitHubリポジトリ${repo}を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:155 +#: website/static/js/logActionsList_extract.js:157 msgid "${user} added file ${path} to GitLab repo ${gitlab_repo} in ${node}" msgstr "${user}がファイル(${path})を${node}のGitLabリポジトリ(${gitlab_repo})に追加しました" -#: website/static/js/logActionsList_extract.js:156 +#: website/static/js/logActionsList_extract.js:158 msgid "${user} removed file ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "${user}が${node}のGitLabリポジトリ(${gitlab_repo})のファイル(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:157 +#: website/static/js/logActionsList_extract.js:159 msgid "${user} updated file ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "${user}が${node}のGitLabリポジトリ(${gitlab_repo})のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:158 +#: website/static/js/logActionsList_extract.js:160 msgid "${user} created folder ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "${user}が${node}のGitLabリポジトリ(${gitlab_repo})にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:159 +#: website/static/js/logActionsList_extract.js:161 msgid "${user} authorized the GitLab addon for ${node}" msgstr "${user}が${node}のGitLabアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:160 +#: website/static/js/logActionsList_extract.js:162 msgid "${user} deauthorized the GitLab addon for ${node}" msgstr "${user}が${node}のGitLabアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:161 +#: website/static/js/logActionsList_extract.js:163 msgid "GitLab addon for ${node} deauthorized" msgstr "${node}のGitLabアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:162 +#: website/static/js/logActionsList_extract.js:164 msgid "${user} linked GitLab repo ${gitlab_repo} to ${node}" msgstr "${user}がGitLabリポジトリ(${gitlab_repo})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:163 +#: website/static/js/logActionsList_extract.js:165 msgid "${user} linked Mendeley folder ${folder_name} to ${node}" msgstr "${user}がMendeleyフォルダ(${folder_name})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:164 +#: website/static/js/logActionsList_extract.js:166 msgid "${user} authorized the Mendeley addon for ${node}" msgstr "${user}が${node}のMendeleyアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:165 +#: website/static/js/logActionsList_extract.js:167 msgid "${user} deauthorized the Mendeley addon for ${node}" msgstr "${user}が${node}のMendeleyアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:166 +#: website/static/js/logActionsList_extract.js:168 msgid "${user} linked Zotero folder ${folder_name} to ${node}" msgstr "${user}がZoteroフォルダ(${folder_name})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:167 +#: website/static/js/logActionsList_extract.js:169 msgid "${user} linked Zotero library ${library_name} to ${node}" msgstr "${user}がZoteroライブラリ(${library_name})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:168 +#: website/static/js/logActionsList_extract.js:170 msgid "${user} authorized the Zotero addon for ${node}" msgstr "${user}が${node}のZoteroアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:169 +#: website/static/js/logActionsList_extract.js:171 msgid "${user} deauthorized the Zotero addon for ${node}" msgstr "${user}が${node}のZoteroアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:170 +#: website/static/js/logActionsList_extract.js:172 msgid "${user} added file ${path} to ownCloud in ${node}" msgstr "${user}がファイル${path}を${node}のownCloudに追加しました" -#: website/static/js/logActionsList_extract.js:171 +#: website/static/js/logActionsList_extract.js:173 msgid "${user} removed ${path_type} ${path} from ownCloud in ${node}" msgstr "${user}が${node}のownCloudから${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:172 +#: website/static/js/logActionsList_extract.js:174 msgid "${user} updated file ${path} in ownCloud in ${node}" msgstr "${user}が${node}のownCloudのファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:173 +#: website/static/js/logActionsList_extract.js:175 msgid "${user} created folder ${path} in ownCloud in ${node}" msgstr "${user}が${node}のownCloudにフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:174 +#: website/static/js/logActionsList_extract.js:176 msgid "${user} linked ownCloud folder ${folder} to ${node}" msgstr "${user}がownCloudフォルダ(${folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:175 +#: website/static/js/logActionsList_extract.js:177 msgid "${user} authorized the ownCloud addon for ${node}" msgstr "${user}が${node}のownCloudアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:176 +#: website/static/js/logActionsList_extract.js:178 msgid "${user} deauthorized the ownCloud addon for ${node}" msgstr "${user}が${node}のownCloudアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:177 +#: website/static/js/logActionsList_extract.js:179 msgid "ownCloud addon for ${node} deauthorized" msgstr "${node}のownCloudアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:178 +#: website/static/js/logActionsList_extract.js:180 msgid "${user} added file ${path} to Microsoft OneDrive in ${node}" msgstr "${user}が${node}のMicrosoft OneDriveにファイル(${path})を追加しました" -#: website/static/js/logActionsList_extract.js:179 +#: website/static/js/logActionsList_extract.js:181 msgid "${user} removed ${path_type} ${path} from Microsoft OneDrive in ${node}" msgstr "${user}が${node}のMicrosoft OneDriveから${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:180 +#: website/static/js/logActionsList_extract.js:182 msgid "${user} updated file ${path} in Microsoft OneDrive in ${node}" msgstr "${user}が${node}のMicrosoft OneDriveのファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:181 +#: website/static/js/logActionsList_extract.js:183 msgid "${user} created folder ${path} in Microsoft OneDrive in ${node}" msgstr "${user}がMicrosoft OneDriveの${node}にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:182 +#: website/static/js/logActionsList_extract.js:184 msgid "${user} linked Microsoft OneDrive folder ${onedrive_folder} to ${node}" msgstr "${user}がMicrosoft OneDriveフォルダ(${onedrive_folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:183 +#: website/static/js/logActionsList_extract.js:185 msgid "${user} authorized the Microsoft OneDrive addon for ${node}" msgstr "${user}が${node}のMicrosoft OneDriveアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:184 +#: website/static/js/logActionsList_extract.js:186 msgid "${user} deauthorized the Microsoft OneDrive addon for ${node}" msgstr "${user}が${node}のMicrosoft OneDriveアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:185 +#: website/static/js/logActionsList_extract.js:187 msgid "Microsoft OneDrive addon for ${node} deauthorized" msgstr "${node}のMicrosoft OneDriveアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:186 +#: website/static/js/logActionsList_extract.js:188 msgid "${user} linked the Amazon S3 bucket ${bucket} to ${node}" msgstr "${user}がAmazon S3バケット(${bucket})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:187 +#: website/static/js/logActionsList_extract.js:189 msgid "${user} unselected the Amazon S3 bucket ${bucket} in ${node}" msgstr "${user}が${node}のAmazon S3バケット(${bucket})を選択解除しました" -#: website/static/js/logActionsList_extract.js:188 +#: website/static/js/logActionsList_extract.js:190 msgid "${user} added file ${path} to Amazon S3 bucket ${bucket} in ${node}" msgstr "${user}がファイル(${path})を${node}のAmazon S3バケット(${bucket})に追加しました" -#: website/static/js/logActionsList_extract.js:189 +#: website/static/js/logActionsList_extract.js:191 msgid "${user} removed ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "${user}が${node}のAmazon S3バケット(${bucket})で${path}を削除しました" -#: website/static/js/logActionsList_extract.js:190 +#: website/static/js/logActionsList_extract.js:192 msgid "${user} updated file ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "${user}が${node}のAmazon S3バケット(${bucket}の)ファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:191 +#: website/static/js/logActionsList_extract.js:193 msgid "${user} created folder ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "${user}が${node}のAmazon S3バケット$({bucket})にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:192 +#: website/static/js/logActionsList_extract.js:194 msgid "${user} authorized the Amazon S3 addon for ${node}" msgstr "${user}が${node}のAmazon S3アドオンを承認しました" -#: website/static/js/logActionsList_extract.js:193 +#: website/static/js/logActionsList_extract.js:195 msgid "${user} deauthorized the Amazon S3 addon for ${node}" msgstr "${user}が${node}のAmazon S3アドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:194 +#: website/static/js/logActionsList_extract.js:196 msgid "Amazon S3 addon for ${node} deauthorized" msgstr "${node}のAmazon S3アドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:195 +#: website/static/js/logActionsList_extract.js:197 msgid "${user} added file ${googledrive_path} to Google Drive in ${node}" msgstr "${user}がファイル(${googledrive_path})を${node}のGoogle Driveに追加しました" -#: website/static/js/logActionsList_extract.js:196 +#: website/static/js/logActionsList_extract.js:198 msgid "" "${user} removed ${path_type} ${googledrive_path} from Google Drive in " "${node}" msgstr "${user}が${node}のGoogle Driveから${path_type}(${googledrive_path})を削除しました" -#: website/static/js/logActionsList_extract.js:197 +#: website/static/js/logActionsList_extract.js:199 msgid "${user} updated file ${googledrive_path} in Google Drive in ${node}" msgstr "${user}が${node}のGoogle Driveのファイル(${googledrive_path})を更新しました" -#: website/static/js/logActionsList_extract.js:198 +#: website/static/js/logActionsList_extract.js:200 msgid "${user} created folder ${googledrive_path} in Google Drive in ${node}" msgstr "${user}が${node}のGoogle Driveにフォルダ(${googledrive_path})を作成しました" -#: website/static/js/logActionsList_extract.js:199 +#: website/static/js/logActionsList_extract.js:201 msgid "${user} linked Google Drive folder ${googledrive_folder} to ${node}" msgstr "${user}がGoogle Driveフォルダ(${googledrive_folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:200 +#: website/static/js/logActionsList_extract.js:202 msgid "${user} authorized the Google Drive addon for ${node}" msgstr "${user}が${node}のGoogle Driveアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:201 +#: website/static/js/logActionsList_extract.js:203 msgid "${user} deauthorized the Google Drive addon for ${node}" msgstr "${user}が${node}のGoogle Driveアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:202 +#: website/static/js/logActionsList_extract.js:204 msgid "Google Drive addon for ${node} deauthorized" msgstr "${node}のGoogle Driveアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:203 +#: website/static/js/logActionsList_extract.js:205 msgid "${user} added file ${path} to Bitbucket repo ${bitbucket_repo} in ${node}" msgstr "${user}がファイル${path}を${node}のBitbucketリポジトリ(${bitbucket_repo})に追加しました" -#: website/static/js/logActionsList_extract.js:204 +#: website/static/js/logActionsList_extract.js:206 msgid "" "${user} removed ${path_type} ${path} in Bitbucket repo ${bitbucket_repo} " "in ${node}" msgstr "${user}が${node}のBitbucketリポジトリ(${bitbucket_repo})で${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:205 +#: website/static/js/logActionsList_extract.js:207 msgid "" "${user} updated file ${path} in Bitbucket repo ${bitbucket_repo} in " "${node}" msgstr "${user}が${node}のBitbucketレポジトリ(${bitbucket_repo})のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:206 +#: website/static/js/logActionsList_extract.js:208 msgid "" "${user} created folder ${path} in Bitbucket repo ${bitbucket_repo} in " "${node}" msgstr "${user}が${node}のBitbucketリポジトリ(${bitbucket_repo})のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:207 +#: website/static/js/logActionsList_extract.js:209 msgid "${user} authorized the Bitbucket addon for ${node}" msgstr "${user}が${node}のBitbucketアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:208 +#: website/static/js/logActionsList_extract.js:210 msgid "${user} deauthorized the Bitbucket addon for ${node}" msgstr "${user}が${node}のBitbucketアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:209 +#: website/static/js/logActionsList_extract.js:211 msgid "Bitbucket addon for ${node} deauthorized" msgstr "${node}のBitbucketドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:210 +#: website/static/js/logActionsList_extract.js:212 msgid "${user} linked Bitbucket repo ${bitbucket_repo} to ${node}" msgstr "${user}がBitbucketリポジトリ(${bitbucket_repo})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:211 +#: website/static/js/logActionsList_extract.js:213 msgid "${user} linked the Swift container ${bucket} to ${node}" msgstr "${user}がSwiftコンテナ(${bucket})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:212 +#: website/static/js/logActionsList_extract.js:214 msgid "${user} unselected the Swift container ${bucket} in ${node}" msgstr "${user}が${node}のSwiftコンテナ(${bucket})の選択を解除しました" -#: website/static/js/logActionsList_extract.js:213 +#: website/static/js/logActionsList_extract.js:215 msgid "${user} added file ${path} to Swift container ${bucket} in ${node}" msgstr "${user}がファイル(${path})を${node}のSwiftコンテナ(${bucket})に追加しました" -#: website/static/js/logActionsList_extract.js:214 +#: website/static/js/logActionsList_extract.js:216 msgid "${user} removed ${path} in Swift container ${bucket} in ${node}" msgstr "${user}が${node}のSwiftコンテナ(${bucket})で${path}を削除しました" -#: website/static/js/logActionsList_extract.js:215 +#: website/static/js/logActionsList_extract.js:217 msgid "${user} updated file ${path} in Swift container ${bucket} in ${node}" msgstr "${user}が${node}のSwiftコンテナ(${bucket})のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:216 +#: website/static/js/logActionsList_extract.js:218 msgid "${user} created folder ${path} in Swift container ${bucket} in ${node}" msgstr "${user}が${node}のSwiftコンテナ(${bucket})にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:217 +#: website/static/js/logActionsList_extract.js:219 msgid "${user} authorized the Swift addon for ${node}" msgstr "${user}が${node}のSwiftアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:218 +#: website/static/js/logActionsList_extract.js:220 msgid "${user} deauthorized the Swift addon for ${node}" msgstr "${user}が${node}のSwiftアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:219 +#: website/static/js/logActionsList_extract.js:221 msgid "Swift addon for ${node} deauthorized" msgstr "${node}のSwiftアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:220 +#: website/static/js/logActionsList_extract.js:222 msgid "${user} linked the Azure Blob Storage container ${bucket} to ${node}" msgstr "${user}がAzure Blob Storageコンテナ${bucket}を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:221 +#: website/static/js/logActionsList_extract.js:223 msgid "${user} unselected the Azure Blob Storage container ${bucket} in ${node}" msgstr "${user}が${node}のAzure Blob Storageコンテナ${bucket}の選択を解除しました" -#: website/static/js/logActionsList_extract.js:222 +#: website/static/js/logActionsList_extract.js:224 msgid "" "${user} added file ${path} to Azure Blob Storage container ${bucket} in " "${node}" msgstr "${user}がファイル${path}を${node}のAzure Blob Storageコンテナ${bucket}に追加しました" -#: website/static/js/logActionsList_extract.js:223 +#: website/static/js/logActionsList_extract.js:225 msgid "" "${user} removed ${path} in Azure Blob Storage container ${bucket} in " "${node}" msgstr "${user}が${node}のAzure Blob Storageコンテナ${bucket}の${path}を削除しました" -#: website/static/js/logActionsList_extract.js:224 +#: website/static/js/logActionsList_extract.js:226 msgid "" "${user} updated file ${path} in Azure Blob Storage container ${bucket} in" " ${node}" msgstr "${user}が${node}のAzure Blob Storageコンテナ${bucket}のファイル${path}を更新しました" -#: website/static/js/logActionsList_extract.js:225 +#: website/static/js/logActionsList_extract.js:227 msgid "" "${user} created folder ${path} in Azure Blob Storage container ${bucket} " "in ${node}" msgstr "${user}が${node}のAzure Blob Storageコンテナ${bucket}にフォルダ${path}を作成しました" -#: website/static/js/logActionsList_extract.js:226 +#: website/static/js/logActionsList_extract.js:228 msgid "${user} authorized the Azure Blob Storage addon for ${node}" msgstr "${user}が${node}のAzure Blob Storageアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:227 +#: website/static/js/logActionsList_extract.js:229 msgid "${user} deauthorized the Azure Blob Storage addon for ${node}" msgstr "${user}が${node}のAzure Blob Storageアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:228 +#: website/static/js/logActionsList_extract.js:230 msgid "Azure Blob Storage addon for ${node} deauthorized" msgstr "${node}のAzure Blob Storageアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:229 -msgid "${user} added file ${filename} to WEKO index ${dataset} in ${node}" -msgstr "${user}が${node}のWEKOインデックス(${dataset})にファイル(${filename})を追加しました" - -#: website/static/js/logActionsList_extract.js:230 -msgid "${user} removed file ${filename} from WEKO index ${dataset} in ${node}" -msgstr "${user}が${node}のWEKOインデックス(${dataset})からファイル(${filename})を削除しました" - #: website/static/js/logActionsList_extract.js:231 -msgid "${user} linked WEKO index ${dataset} to ${node}" -msgstr "${user}がWEKOインデックス(${dataset})を${node}にリンクしました" +msgid "${user} added draft file ${filename} to WEKO index ${dataset} in ${node}" +msgstr "${user}が${node}のWEKOインデックス(${dataset})にドラフトファイル(${filename})を追加しました" #: website/static/js/logActionsList_extract.js:232 -msgid "${user} created an index ${filename} on ${node}" -msgstr "${user}が${node}にインデックス(${filename})を作成しました" +msgid "" +"${user} removed draft file ${filename} from WEKO index ${dataset} in " +"${node}" +msgstr "${user}が${node}のWEKOインデックス(${dataset})からドラフトファイル(${filename})を削除しました" #: website/static/js/logActionsList_extract.js:233 -msgid "${user} created an item ${filename} on ${node}" -msgstr "${user}が${node}にアイテム(${filename})を作成しました" +msgid "${user} linked WEKO index ${dataset} to ${node}" +msgstr "${user}がWEKOインデックス(${dataset})を${node}にリンクしました" #: website/static/js/logActionsList_extract.js:234 -msgid "${user} created folder ${filename} in WEKO index ${dataset} in ${node}" -msgstr "${user}が${node}のWEKOインデックス(${dataset})にフォルダ(${filename})を作成しました" +msgid "" +"${user} created draft folder ${filename} in WEKO index ${dataset} in " +"${node}" +msgstr "${user}が${node}のWEKOインデックス(${dataset})にドラフトフォルダ(${filename})を作成しました" #: website/static/js/logActionsList_extract.js:235 +msgid "${user} deposit item ${path} in WEKO index ${dataset} in ${node}" +msgstr "${user}が${node}のWEKOインデックス(${dataset})にアイテムを登録しました" + +#: website/static/js/logActionsList_extract.js:236 msgid "${user} authorized the WEKO addon for ${node}" msgstr "${user}が${node}のWEKOアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:236 +#: website/static/js/logActionsList_extract.js:237 msgid "${user} deauthorized the WEKO addon for ${node}" msgstr "${user}が${node}のWEKOアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:237 +#: website/static/js/logActionsList_extract.js:238 msgid "WEKO addon for ${node} deauthorized" msgstr "${node}のWEKOアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:238 +#: website/static/js/logActionsList_extract.js:239 msgid "${user} linked the S3 Compatible Storage bucket ${bucket} to ${node}" msgstr "${user}がS3互換ストレージバケット(${bucket})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:239 +#: website/static/js/logActionsList_extract.js:240 msgid "${user} unselected the S3 Compatible Storage bucket ${bucket} in ${node}" msgstr "${user}が${node}のS3互換ストレージバケット(${bucket})の選択を解除しました" -#: website/static/js/logActionsList_extract.js:240 +#: website/static/js/logActionsList_extract.js:241 msgid "" "${user} added file ${path} to S3 Compatible Storage bucket ${bucket} in " "${node}" msgstr "${user}がファイル(${path})を${node}のS3互換ストレージバケット(${bucket})に追加しました" -#: website/static/js/logActionsList_extract.js:241 +#: website/static/js/logActionsList_extract.js:242 msgid "" "${user} removed ${path} in S3 Compatible Storage bucket ${bucket} in " "${node}" msgstr "${user}が${node}のS3互換ストレージバケット(${bucket})で${path}を削除しました" -#: website/static/js/logActionsList_extract.js:242 +#: website/static/js/logActionsList_extract.js:243 msgid "" "${user} updated file ${path} in S3 Compatible Storage bucket ${bucket} in" " ${node}" msgstr "${user}が${node}のS3互換ストレージバケット(${bucket})のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:243 +#: website/static/js/logActionsList_extract.js:244 msgid "" "${user} created folder ${path} in S3 Compatible Storage bucket ${bucket} " "in ${node}" msgstr "${user}が${node}のS3互換ストレージバケット(${bucket})にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:244 +#: website/static/js/logActionsList_extract.js:245 msgid "${user} authorized the S3 Compatible Storage addon for ${node}" msgstr "${user}が${node}のS3互換ストレージアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:245 +#: website/static/js/logActionsList_extract.js:246 msgid "${user} deauthorized the S3 Compatible Storage addon for ${node}" msgstr "${user}が${node}のS3互換ストレージアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:246 +#: website/static/js/logActionsList_extract.js:247 msgid "S3 Compatible Storage addon for ${node} deauthorized" msgstr "${node}のS3互換ストレージアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:229 -msgid "${user} added draft file ${filename} to WEKO index ${dataset} in ${node}" -msgstr "${user}が${node}のWEKOインデックス(${dataset})にドラフトファイル(${filename})を追加しました" - -#: website/static/js/logActionsList_extract.js:230 -msgid "" -"${user} removed draft file ${filename} from WEKO index ${dataset} in " -"${node}" -msgstr "${user}が${node}のWEKOインデックス(${dataset})からドラフトファイル(${filename})を削除しました" - -#: website/static/js/logActionsList_extract.js:232 -msgid "" -"${user} created draft folder ${filename} in WEKO index ${dataset} in " -"${node}" -msgstr "${user}が${node}のWEKOインデックス(${dataset})にドラフトフォルダ(${filename})を作成しました" - -#: website/static/js/logActionsList_extract.js:233 -msgid "${user} deposit item ${path} in WEKO index ${dataset} in ${node}" -msgstr "${user}が${node}のWEKOインデックス(${dataset})にアイテムを登録しました" - -#: website/static/js/logActionsList_extract.js:272 +#: website/static/js/logActionsList_extract.js:248 msgid "" "${user} added file ${path} to S3 Compatible Storage for Institutions in " "${node}" msgstr "${user}が${node}のS3互換ストレージ(for Institutions)にファイル(${path})を追加しました" -#: website/static/js/logActionsList_extract.js:248 +#: website/static/js/logActionsList_extract.js:249 msgid "" "${user} removed ${path_type} ${path} from S3 Compatible Storage for " "Institutions in ${node}" msgstr "${user}が${node}のS3互換ストレージ(for Institutions)から${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:249 +#: website/static/js/logActionsList_extract.js:250 msgid "" "${user} updated file ${path} in S3 Compatible Storage for Institutions in" " ${node}" msgstr "${user}が${node}のS3互換ストレージ(for Institutions)のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:250 +#: website/static/js/logActionsList_extract.js:251 msgid "" "${user} created folder ${path} in S3 Compatible Storage for Institutions " "in ${node}" msgstr "${user}が${node}のS3互換ストレージ(for Institutions)にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:251 +#: website/static/js/logActionsList_extract.js:252 msgid "" "${user} linked S3 Compatible Storage for Institutions folder ${folder} to" " ${node}" msgstr "${user}がS3互換ストレージ(for Institutions)のフォルダ(${folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:252 +#: website/static/js/logActionsList_extract.js:253 msgid "" "${user} authorized the S3 Compatible Storage for Institutions addon for " "${node}" msgstr "${user}が${node}のS3互換ストレージ(for Institutions)アドオンを承認しました" -#: website/static/js/logActionsList_extract.js:253 +#: website/static/js/logActionsList_extract.js:254 msgid "" "${user} deauthorized the S3 Compatible Storage for Institutions addon for" " ${node}" msgstr "${user}が${node}のS3互換ストレージ(for Institutions)アドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:254 +#: website/static/js/logActionsList_extract.js:255 msgid "S3 Compatible Storage for Institutions addon for ${node} deauthorized" msgstr "${node}のS3互換ストレージ(for Institutions)アドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:255 +#: website/static/js/logActionsList_extract.js:256 msgid "" "${user} linked the Oracle Cloud Infrastructure Object Storage bucket " "${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:256 +#: website/static/js/logActionsList_extract.js:257 msgid "" "${user} unselected the Oracle Cloud Infrastructure Object Storage bucket " "${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:257 +#: website/static/js/logActionsList_extract.js:258 msgid "" "${user} added file ${path} to Oracle Cloud Infrastructure Object Storage " "bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:258 +#: website/static/js/logActionsList_extract.js:259 msgid "" "${user} removed ${path} in Oracle Cloud Infrastructure Object Storage " "bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:259 +#: website/static/js/logActionsList_extract.js:260 msgid "" "${user} updated file ${path} in Oracle Cloud Infrastructure Object " "Storage bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:260 +#: website/static/js/logActionsList_extract.js:261 msgid "" "${user} created folder ${path} in Oracle Cloud Infrastructure Object " "Storage bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:261 +#: website/static/js/logActionsList_extract.js:262 msgid "" "${user} authorized the Oracle Cloud Infrastructure Object Storage addon " "for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:262 +#: website/static/js/logActionsList_extract.js:263 msgid "" "${user} deauthorized the Oracle Cloud Infrastructure Object Storage addon" " for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:263 +#: website/static/js/logActionsList_extract.js:264 msgid "Oracle Cloud Infrastructure Object Storage addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:264 +#: website/static/js/logActionsList_extract.js:265 msgid "" "${user} added file ${path} to Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "${user}が${node}のOCIオブジェクトストレージ(for Institutions)にファイル(${path})を追加しました" -#: website/static/js/logActionsList_extract.js:265 +#: website/static/js/logActionsList_extract.js:266 msgid "" "${user} removed ${path_type} ${path} from Oracle Cloud Infrastructure for" " Institutions in ${node}" @@ -8288,235 +8167,247 @@ msgstr "" "${user}が${node}のOCIオブジェクトストレージ(for " "Institutions)から${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:266 +#: website/static/js/logActionsList_extract.js:267 msgid "" "${user} updated file ${path} in Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "${user}が${node}のOCIオブジェクトストレージ(for Institutions)のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:267 +#: website/static/js/logActionsList_extract.js:268 msgid "" "${user} created folder ${path} in Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "${user}が${node}のOCIオブジェクトストレージ(for Institutions)にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:268 +#: website/static/js/logActionsList_extract.js:269 msgid "" "${user} linked Oracle Cloud Infrastructure for Institutions folder " "${folder} to ${node}" msgstr "${user}がOCIオブジェクトストレージ(for Institutions)のフォルダ(${folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:269 +#: website/static/js/logActionsList_extract.js:270 msgid "" "${user} authorized the Oracle Cloud Infrastructure for Institutions addon" " for ${node}" msgstr "${user}が${node}のOCIオブジェクトストレージ(for Institutions)アドオンを承認しました" -#: website/static/js/logActionsList_extract.js:270 +#: website/static/js/logActionsList_extract.js:271 msgid "" "${user} deauthorized the Oracle Cloud Infrastructure for Institutions " "addon for ${node}" msgstr "${user}が${node}のOCIオブジェクトストレージ(for Institutions)アドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:271 +#: website/static/js/logActionsList_extract.js:272 msgid "" "Oracle Cloud Infrastructure for Institutions addon for ${node} " "deauthorized" msgstr "${node}のOCIオブジェクトストレージ(for Institutions)アドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:272 +#: website/static/js/logActionsList_extract.js:273 msgid "${user} added file ${path} to Nextcloud in ${node}" msgstr "${user}が${node}のNextcloudにファイル(${path})を追加しました" -#: website/static/js/logActionsList_extract.js:273 +#: website/static/js/logActionsList_extract.js:274 msgid "${user} removed ${path_type} ${path} from Nextcloud in ${node}" msgstr "${user}が${node}のNextcloudから${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:274 +#: website/static/js/logActionsList_extract.js:275 msgid "${user} updated file ${path} in Nextcloud in ${node}" msgstr "${user}が${node}のNextcloudのファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:275 +#: website/static/js/logActionsList_extract.js:276 msgid "${user} created folder ${path} in Nextcloud in ${node}" msgstr "${user}が${node}のNextcloudにフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:276 +#: website/static/js/logActionsList_extract.js:277 msgid "${user} linked Nextcloud folder ${folder} to ${node}" msgstr "${user}がNextcloudフォルダ(${folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:277 +#: website/static/js/logActionsList_extract.js:278 msgid "${user} authorized the Nextcloud addon for ${node}" msgstr "${user}が${node}のNextcloudアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:278 +#: website/static/js/logActionsList_extract.js:279 msgid "${user} deauthorized the Nextcloud addon for ${node}" msgstr "${user}が${node}のNextcloudアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:279 +#: website/static/js/logActionsList_extract.js:280 msgid "Nextcloud addon for ${node} deauthorized" msgstr "${node}のNextcloudアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:280 +#: website/static/js/logActionsList_extract.js:281 msgid "${user} added file ${path} to Nextcloud (for Institutions) in ${node}" msgstr "${user}が${node}のNextcloud(for Institutions)にファイル(${path})を追加しました" -#: website/static/js/logActionsList_extract.js:281 +#: website/static/js/logActionsList_extract.js:282 msgid "" "${user} removed ${path_type} ${path} from Nextcloud (for Institutions) in" " ${node}" msgstr "${user}が${node}のNextcloud(for Institutions)から${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:282 +#: website/static/js/logActionsList_extract.js:283 msgid "${user} updated file ${path} in Nextcloud (for Institutions) in ${node}" msgstr "${user}が${node}のNextcloud(for Institutions)のファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:283 +#: website/static/js/logActionsList_extract.js:284 msgid "${user} created folder ${path} in Nextcloud (for Institutions) in ${node}" msgstr "${user}が${node}のNextcloud(for Institutions)にフォルダ(${path})を作成しました" -#: website/static/js/logActionsList_extract.js:284 +#: website/static/js/logActionsList_extract.js:285 msgid "${user} linked Nextcloud (for Institutions) folder ${folder} to ${node}" msgstr "${user}がNextcloud(for Institutions)フォルダ(${folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:285 +#: website/static/js/logActionsList_extract.js:286 msgid "${user} authorized the Nextcloud (for Institutions) addon for ${node}" msgstr "${user}が${node}のNextcloud(for Institutions)アドオンを承認しました" -#: website/static/js/logActionsList_extract.js:286 +#: website/static/js/logActionsList_extract.js:287 msgid "${user} deauthorized the Nextcloud (for Institutions) addon for ${node}" msgstr "${user}が${node}のNextcloud(for Institutions)アドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:287 +#: website/static/js/logActionsList_extract.js:288 msgid "Nextcloud (for Institutions) addon for ${node} deauthorized" msgstr "${node}のNextcloud(for Institutions)アドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:288 +#: website/static/js/logActionsList_extract.js:289 msgid "${user} added file ${iqbrims_path} to IQB-RIMS in ${node}" msgstr "${user}が${node}のIQB-RIMSにファイル$({iqbrims_path})を追加しました" -#: website/static/js/logActionsList_extract.js:289 +#: website/static/js/logActionsList_extract.js:290 msgid "${user} removed ${path_type} ${iqbrims_path} from IQB-RIMS in ${node}" msgstr "${user}が${node}のIQB-RIMSから${path_type}(${iqbrims_path})を削除しました" -#: website/static/js/logActionsList_extract.js:290 +#: website/static/js/logActionsList_extract.js:291 msgid "${user} updated file ${iqbrims_path} in IQB-RIMS in ${node}" msgstr "${user}が${node}のIQB-RIMSのファイル(${iqbrims_path})を更新しました" -#: website/static/js/logActionsList_extract.js:291 +#: website/static/js/logActionsList_extract.js:292 msgid "${user} created folder ${iqbrims_path} in IQB-RIMS in ${node}" msgstr "${user}が${node}のIQB-RIMSにフォルダ(${iqbrims_path})を作成しました" -#: website/static/js/logActionsList_extract.js:292 +#: website/static/js/logActionsList_extract.js:293 msgid "${user} linked IQB-RIMS folder ${iqbrims_folder} to ${node}" msgstr "${user}がIQB-RIMSフォルダ(${iqbrims_folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:293 +#: website/static/js/logActionsList_extract.js:294 msgid "${user} authorized the IQB-RIMS addon for ${node}" msgstr "${user}が${node}のIQB-RIMSアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:294 +#: website/static/js/logActionsList_extract.js:295 msgid "${user} deauthorized the IQB-RIMS addon for ${node}" msgstr "${user}が${node}のIQB-RIMSアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:295 +#: website/static/js/logActionsList_extract.js:296 msgid "IQB-RIMS addon for ${node} deauthorized" msgstr "${node}のIQB-RIMSアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:296 -#: website/static/js/logActionsList_extract.js:298 +#: website/static/js/logActionsList_extract.js:297 +#: website/static/js/logActionsList_extract.js:299 msgid "${user} started IQB-RIMS workflow for ${node}" msgstr "${user}が${node}のIQB-RIMSワークフローを開始しました" -#: website/static/js/logActionsList_extract.js:297 -#: website/static/js/logActionsList_extract.js:299 +#: website/static/js/logActionsList_extract.js:298 +#: website/static/js/logActionsList_extract.js:300 msgid "Finished workflow of ${user} for ${node}" msgstr "${node}の${user}のワークフローが終了しました" -#: website/static/js/logActionsList_extract.js:300 +#: website/static/js/logActionsList_extract.js:301 msgid "${user} added file ${path} to Dropbox Business in ${node}" msgstr "${user}がファイル(${path})を${node}のDropbox Businessに追加しました" -#: website/static/js/logActionsList_extract.js:301 +#: website/static/js/logActionsList_extract.js:302 msgid "${user} removed ${path_type} ${path} from Dropbox Business in ${node}" msgstr "${user}が${node}のDropbox Businessから${path_type}(${path})を削除しました" -#: website/static/js/logActionsList_extract.js:302 +#: website/static/js/logActionsList_extract.js:303 msgid "${user} updated file ${path} in Dropbox Business in ${node}" msgstr "${user}が${node}のDropbox Businessのファイル(${path})を更新しました" -#: website/static/js/logActionsList_extract.js:303 +#: website/static/js/logActionsList_extract.js:304 msgid "${user} created folder ${path} in Dropbox Business in ${node}" msgstr "${user}が${node}のDropbox Businessにフォルダ${path}を作成しました" -#: website/static/js/logActionsList_extract.js:304 +#: website/static/js/logActionsList_extract.js:305 msgid "" "${user} linked Dropbox Business folder ${dropboxbusiness_folder} to " "${node}" msgstr "${user}がDropbox Businessフォルダ(${dropboxbusiness_folder})を${node}にリンクしました" -#: website/static/js/logActionsList_extract.js:305 +#: website/static/js/logActionsList_extract.js:306 msgid "${user} authorized the Dropbox Business addon for ${node}" msgstr "${user}が${node}のDropbox Businessアドオンを承認しました" -#: website/static/js/logActionsList_extract.js:306 +#: website/static/js/logActionsList_extract.js:307 msgid "${user} deauthorized the Dropbox Business addon for ${node}" msgstr "${user}が${node}のDropbox Businessアドオンの認証を解除しました" -#: website/static/js/logActionsList_extract.js:307 +#: website/static/js/logActionsList_extract.js:308 msgid "Dropbox Business addon for ${node} deauthorized" msgstr "${node}のDropbox Businessアドオンの認証が解除されました" -#: website/static/js/logActionsList_extract.js:308 +#: website/static/js/logActionsList_extract.js:309 msgid "" "${user} added file ${path} to the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:309 +#: website/static/js/logActionsList_extract.js:310 msgid "${user} removed ${path} in the OneDrive team folder ${folder} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:310 +#: website/static/js/logActionsList_extract.js:311 msgid "" "${user} updated file ${path} in the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:311 +#: website/static/js/logActionsList_extract.js:312 msgid "" "${user} created folder ${path} in the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:312 +#: website/static/js/logActionsList_extract.js:313 msgid "${user} authorized the OneDrive for Office365 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:313 +#: website/static/js/logActionsList_extract.js:314 msgid "${user} deauthorized the OneDrive for Office365 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:314 +#: website/static/js/logActionsList_extract.js:315 msgid "OneDrive for Office365 addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:315 +#: website/static/js/logActionsList_extract.js:316 msgid "${user} added metadata in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:316 +#: website/static/js/logActionsList_extract.js:317 msgid "${user} added metadata ${path} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:317 +#: website/static/js/logActionsList_extract.js:318 msgid "${user} updated metadata ${path} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:318 +#: website/static/js/logActionsList_extract.js:319 msgid "${user} deleted metadata ${path} in ${node}" msgstr "" -#: website/static/js/logTextParser.js:828 +#: website/static/js/logActionsList_extract.js:320 +msgid "${user} created a ${filename} workflow in ${node}" +msgstr "${user} が ${node} に ${filename} ワークフローを作成しました" + +#: website/static/js/logActionsList_extract.js:321 +msgid "${user} updated a ${filename} workflow in ${node}" +msgstr "${user} が ${node} の ${filename} ワークフローを更新しました" + +#: website/static/js/logActionsList_extract.js:322 +msgid "${user} deleted a ${filename} workflow in ${node}" +msgstr "${user} は ${node} の ${filename} ワークフローを削除しました" + +#: website/static/js/logTextParser.js:830 msgid "unknown format" msgstr "不明な形式" @@ -9871,74 +9762,131 @@ msgstr "いつでもチェックインできます。" msgid "Unable to check out file" msgstr "ファイルをチェックアウトできません" +#: website/static/js/filepage/index.js:253 +msgid "Workflow Project ID" +msgstr "ワークフローが所属するプロジェクトID" + +#: website/static/js/filepage/index.js:255 +msgid "Workflow Process Project ID" +msgstr "ワークフロープロセスが所属するプロジェクトID" + +#: website/static/js/filepage/index.js:257 +msgid "Workflow User ID" +msgstr "ワークフローを登録したユーザーID" + +#: website/static/js/filepage/index.js:259 +msgid "Workflow Valid User ID" +msgstr "ワークフローを有効化したユーザーID" + +#: website/static/js/filepage/index.js:261 +msgid "Workfllow Startup User ID" +msgstr "ワークフロープロセスを起動したユーザーID" + +#: website/static/js/filepage/index.js:263 +msgid "File Path" +msgstr "ファイルパス" + #: website/static/js/filepage/index.js:265 +msgid "Admin Mail Address" +msgstr "管理責任者メールアドレス" + +#: website/static/js/filepage/index.js:267 +msgid "Researcher Mail Address" +msgstr "研究者メールアドレス" + +#: website/static/js/filepage/index.js:294 +#: website/static/js/filepage/index.js:298 +msgid "Workflow Start" +msgstr "ワークフロー開始" + +#: website/static/js/filepage/index.js:320 +msgid "Check the workflow data again." +msgstr "" + +#: website/static/js/filepage/index.js:325 +msgid "Processing..." +msgstr "" + +#: website/static/js/filepage/index.js:451 +msgid "The workflow process is complete." +msgstr "" + +#: website/static/js/filepage/index.js:455 +msgid "The workflow process has failed." +msgstr "" + +#: website/static/js/filepage/index.js:482 msgid "Unable to check in file" msgstr "ファイルをチェックインできません" -#: website/static/js/filepage/index.js:270 +#: website/static/js/filepage/index.js:487 msgid "Force check in file?" msgstr "ファイルを強制的にチェックインしますか?" -#: website/static/js/filepage/index.js:271 +#: website/static/js/filepage/index.js:488 msgid "" "This will check in the file for all users, allowing it to be edited. Are " "you sure?" msgstr "これにより、すべてのユーザーのファイルがチェックインされ、編集できるようになります。 よろしいですか?" -#: website/static/js/filepage/index.js:274 +#: website/static/js/filepage/index.js:491 msgid "Force check in" msgstr "強制チェックイン" -#: website/static/js/filepage/index.js:297 +#: website/static/js/filepage/index.js:514 msgid "Unable to force check in file. Make sure you have admin privileges." msgstr "ファイルを強制的にチェックインできません。 管理者権限を持っていることを確認してください。" -#: website/static/js/filepage/index.js:338 +#: website/static/js/filepage/index.js:555 msgid "Live editing mode " msgstr "ライブ編集モード" -#: website/static/js/filepage/index.js:339 +#: website/static/js/filepage/index.js:556 msgid "Attempting to connect " msgstr "接続試行中" -#: website/static/js/filepage/index.js:340 +#: website/static/js/filepage/index.js:557 msgid "Unsupported browser " msgstr "サポートされていないブラウザ" -#: website/static/js/filepage/index.js:341 +#: website/static/js/filepage/index.js:558 msgid "Saving... " msgstr "保存中..." -#: website/static/js/filepage/index.js:342 +#: website/static/js/filepage/index.js:559 msgid "Unavailable: Live editing " msgstr "利用不可:ライブ編集" -#: website/static/js/filepage/index.js:465 +#: website/static/js/filepage/index.js:682 msgid "View this file on " msgstr "このファイルを次のアドオンで表示:" -#: website/static/js/filepage/index.js:502 +#: website/static/js/filepage/index.js:719 msgid "Check out" msgstr "チェックアウト" -#: website/static/js/filepage/index.js:505 +#: website/static/js/filepage/index.js:722 msgid "Check in" msgstr "チェックイン" -#: website/static/js/filepage/index.js:511 +#: website/static/js/filepage/index.js:728 msgid "Request Trusted Timestamp" msgstr "タイムスタンプを打つ" -#: website/static/js/filepage/index.js:528 +#: website/static/js/filepage/index.js:745 msgid "Toggle view: " msgstr "トグルビュー:" -#: website/static/js/filepage/index.js:567 +#: website/static/js/filepage/index.js:784 #: website/static/js/filepage/revisions.js:173 msgid "Revisions" msgstr "バージョン管理" -#: website/static/js/filepage/index.js:572 +#: website/static/js/filepage/index.js:788 +msgid "Request for administrator approval to publish" +msgstr "管理者への公開承認依頼" + +#: website/static/js/filepage/index.js:794 msgid "Edit(ONLYOFFICE)" msgstr "ONLYOFFICEで編集" @@ -10489,3 +10437,203 @@ msgstr "Wikiメニューページを取得できませんでした" #~ msgid "${user} removed a citation ${citation} in ${node}" #~ msgstr "${user}が${node}の引用(${citation})を削除しました" + +#~ msgid "" +#~ "Contacts of data manager can't be " +#~ "blank. Please fill mail address, or " +#~ "organization name, address and phone " +#~ "number." +#~ msgstr "データ管理者は必須項目です。メールアドレスを入力するか、所属機関名・連絡先住所・連絡先電話番号を入力してください。" + +#~ msgid "Calculate" +#~ msgstr "集計" + +#~ msgid "Fill" +#~ msgstr "入力" + +#~ msgid "Could not generate Data No." +#~ msgstr "データ No. を生成できませんでした" + +#~ msgid "No members" +#~ msgstr "作成者が設定されていません" + +#~ msgid "e-Rad Researcher Number" +#~ msgstr "e-Rad研究者番号" + +#~ msgid "Name (Japanese)" +#~ msgstr "名前 (日本語)" + +#~ msgid "Name (English)" +#~ msgstr "" + +#~ msgid "Select a registration for the file." +#~ msgstr "送信するプロジェクトメタデータを選択してください。" + +#~ msgid "Are you sure you want to add this Export Data Storage Location?" +#~ msgstr "このストレージをエクスポートデータ保存場所として追加してもよろしいですか?" + +#~ msgid "Unable to delete location %1$s" +#~ msgstr "場所%1$sを削除できません" + +#~ msgid "Are you sure you want to delete this export data storage location?" +#~ msgstr "エクスポートデータ保存場所を削除してよろしいですか?" + +#~ msgid "Export Data" +#~ msgstr "エクスポートデータ" + +#~ msgid "Stop Export Data" +#~ msgstr "エクスポートデータ処理を停止する" + +#~ msgid "Export data successfully." +#~ msgstr "エクスポートデータに成功した" + +#~ msgid "Cannot export data." +#~ msgstr "データをエクスポートできません" + +#~ msgid "Error occurred while exporting data." +#~ msgstr "エクスポートデータにエラーが発生された" + +#~ msgid "Export data failed." +#~ msgstr "エクスポートデータに失敗した" + +#~ msgid "Export data in background." +#~ msgstr "バックグラウンドでデータをエクスポートする" + +#~ msgid "Stop exporting successfully." +#~ msgstr "エクスポートデータ処理の停止に成功した" + +#~ msgid "Cannot stop exporting data." +#~ msgstr "エクスポートデータ処理を停止できません" + +#~ msgid "Error occurred while stopping export data." +#~ msgstr "エクスポートデータ処理の停止にエラーが発生された" + +#~ msgid "Stop exporting in background." +#~ msgstr "バックグラウンドでエクスポートデータ処理を停止する" + +#~ msgid "Are you sure you want to permanently delete these export data?" +#~ msgstr "エクスポートデータを恒久的に削除してよろしいですか?" + +#~ msgid "Delete Permanently" +#~ msgstr "削除" + +#~ msgid "Restore Export Data" +#~ msgstr "エクスポートデータを復元する" + +#~ msgid "message" +#~ msgstr "" + +#~ msgid "Stop Restore Export Data" +#~ msgstr "エクスポートデータの復元を停止する" + +#~ msgid "Stopped restoring data process." +#~ msgstr "エクスポートデータの復元が停止されました" + +#~ msgid "Restore completed." +#~ msgstr "復元に成功した" + +#~ msgid "result" +#~ msgstr "" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "

    ONLYOFFICE Add-on Terms

    \n" +#~ "\n" +#~ "
    PermissionsThe GakuNin RDM does not affect the permissions of " -"ONLYOFFICE.
    View / download file versionsThe ONLYOFFICE add-on does not provide Storage " +" The Onlyoffice add-on does not provide Storage " "Features.
    Add / update filesThe ONLYOFFICE add-on does not provide Storage " +" The Onlyoffice add-on does not provide Storage " "Features.
    Delete filesThe ONLYOFFICE add-on does not provide Storage " +" The Onlyoffice add-on does not provide Storage " "Features.
    LogsThe ONLYOFFICE add-on does not provide Storage " +" The Onlyoffice add-on does not provide Storage " "Features.
    ForkingForking a project or component copies information " -"about linked ONLYOFFICE but the GakuNin RDM does not affect " -"authentication of ONLYOFFICE.
    \n" +#~ "\n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "\n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "" +#~ " \n" +#~ " \n" +#~ " \n" +#~ " " +#~ "\n" +#~ " \n" +#~ " \n" +#~ "\n" +#~ "
    FunctionStatus
    PermissionsThe GakuNin RDM does " +#~ "not affect the permissions of " +#~ "ONLYOFFICE.
    View / download file versionsThe ONLYOFFICE add-on " +#~ "does not provide Storage Features.
    Add / update filesThe ONLYOFFICE add-on " +#~ "does not provide Storage Features.
    Delete filesThe ONLYOFFICE add-on " +#~ "does not provide Storage Features.
    LogsThe ONLYOFFICE add-on " +#~ "does not provide Storage Features.
    ForkingForking a project or " +#~ "component copies information about linked " +#~ "ONLYOFFICE but the GakuNin RDM does " +#~ "not affect authentication of ONLYOFFICE.
    \n" +#~ "\n" +#~ "
      \n" +#~ "
    • This add-on connects your" +#~ " GakuNin RDM project to an external" +#~ " service. Use of this service is " +#~ "bound by its terms and conditions. " +#~ "The GakuNin RDM is not responsible " +#~ "for the service or for your use" +#~ " thereof.
    • \n" +#~ "
    • This add-on allows you " +#~ "to store files using an external " +#~ "service. Files added to this add-" +#~ "on are not stored within the " +#~ "GakuNin RDM.
    • \n" +#~ "
    \n" +#~ msgstr "" + +#~ msgid "A user added a file to a WEKO index in a project" +#~ msgstr "" + +#~ msgid "A user removed a file from a WEKO index in a project" +#~ msgstr "" + +#~ msgid "A user created an index to a project" +#~ msgstr "" + +#~ msgid "A user created an item to a project" +#~ msgstr "" + +#~ msgid "A user created a folder in WEKO in a project" +#~ msgstr "" + +#~ msgid "${user} added file ${filename} to WEKO index ${dataset} in ${node}" +#~ msgstr "${user}が${node}のWEKOインデックス(${dataset})にファイル(${filename})を追加しました" + +#~ msgid "${user} removed file ${filename} from WEKO index ${dataset} in ${node}" +#~ msgstr "${user}が${node}のWEKOインデックス(${dataset})からファイル(${filename})を削除しました" + +#~ msgid "${user} created an index ${filename} on ${node}" +#~ msgstr "${user}が${node}にインデックス(${filename})を作成しました" + +#~ msgid "${user} created an item ${filename} on ${node}" +#~ msgstr "${user}が${node}にアイテム(${filename})を作成しました" + +#~ msgid "${user} created folder ${filename} in WEKO index ${dataset} in ${node}" +#~ msgstr "${user}が${node}のWEKOインデックス(${dataset})にフォルダ(${filename})を作成しました" diff --git a/website/translations/js_messages.pot b/website/translations/js_messages.pot index 7c07f0e52a7..dd0cd8afad7 100644 --- a/website/translations/js_messages.pot +++ b/website/translations/js_messages.pot @@ -1,223 +1,240 @@ # Translations template for PROJECT. -# Copyright (C) 2024 ORGANIZATION +# Copyright (C) 2025 ORGANIZATION # This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR , 2024. +# FIRST AUTHOR , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-02-21 06:53+0000\n" +"POT-Creation-Date: 2025-03-28 07:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.5.1\n" + +#: addons/datasteward/static/datastewardUserConfig.js:96 +#: addons/datasteward/static/datastewardUserConfig.js:97 +msgid "You do not have permission to perform this action." +msgstr "" + +#: addons/datasteward/static/datastewardUserConfig.js:130 +#: addons/datasteward/static/datastewardUserConfig.js:131 +msgid "Cannot disable DataSteward add-on" +msgstr "" + +#: addons/datasteward/static/datastewardUserConfig.js:167 +#: addons/datasteward/static/datastewardUserConfig.js:168 +msgid "Cannot get DataSteward add-on settings" +msgstr "" #: addons/jupyterhub/static/files.js:96 msgid "Launch" msgstr "" -#: addons/metadata/static/files.js:331 +#: addons/metadata/static/files.js:337 msgid "Metadata Schema:" msgstr "" -#: addons/metadata/static/files.js:528 +#: addons/metadata/static/files.js:534 msgid "Paste from Clipboard" msgstr "" -#: addons/metadata/static/files.js:637 addons/metadata/static/files.js:651 -#: website/static/js/fangorn.js:1853 +#: addons/metadata/static/files.js:645 addons/metadata/static/files.js:646 +#: addons/metadata/static/files.js:660 addons/metadata/static/files.js:661 +#: website/static/js/fangorn.js:1860 msgid "Could not copy text" msgstr "" -#: addons/metadata/static/files.js:649 website/static/js/clipboard.js:27 -#: website/static/js/fangorn.js:1847 website/static/js/fangorn.js:1851 +#: addons/metadata/static/files.js:658 website/static/js/clipboard.js:27 +#: website/static/js/fangorn.js:1854 website/static/js/fangorn.js:1858 msgid "Copied!" msgstr "" -#: addons/metadata/static/files.js:675 addons/metadata/static/files.js:690 +#: addons/metadata/static/files.js:685 addons/metadata/static/files.js:686 +#: addons/metadata/static/files.js:705 addons/metadata/static/files.js:706 msgid "Could not paste text" msgstr "" -#: addons/metadata/static/files.js:740 addons/metadata/static/files.js:754 -#: addons/metadata/static/files.js:1095 +#: addons/metadata/static/files.js:756 addons/metadata/static/files.js:770 +#: addons/metadata/static/files.js:1119 msgid "Loading..." msgstr "" -#: addons/metadata/static/files.js:752 +#: addons/metadata/static/files.js:768 msgid "Select the destination of the file metadata." msgstr "" -#: addons/metadata/static/files.js:757 +#: addons/metadata/static/files.js:773 msgid "Current Metadata:" msgstr "" -#: addons/metadata/static/files.js:813 +#: addons/metadata/static/files.js:829 msgid "Delete metadata" msgstr "" -#: addons/metadata/static/files.js:816 +#: addons/metadata/static/files.js:832 addons/metadata/static/files.js:833 msgid "Could not list hashes" msgstr "" -#: addons/metadata/static/files.js:824 -#: addons/metadata/static/metadata-fields.js:1041 +#: addons/metadata/static/files.js:841 addons/metadata/static/files.js:842 +#: addons/metadata/static/metadata-fields.js:1159 msgid "Could not list files" msgstr "" -#: addons/metadata/static/files.js:913 addons/metadata/static/files.js:920 +#: addons/metadata/static/files.js:937 addons/metadata/static/files.js:944 msgid "No name" msgstr "" -#: addons/metadata/static/files.js:1005 +#: addons/metadata/static/files.js:1029 msgid "" "There is no draft project metadata compliant with the schema. Create new " "draft project metadata from the Metadata tab:" msgstr "" -#: addons/metadata/static/files.js:1007 addons/metadata/static/files.js:1175 -#: addons/metadata/static/files.js:1189 +#: addons/metadata/static/files.js:1031 addons/metadata/static/files.js:1199 +#: addons/metadata/static/files.js:1213 msgid "Open" msgstr "" -#: addons/metadata/static/files.js:1070 +#: addons/metadata/static/files.js:1094 msgid "There are errors in some fields." msgstr "" -#: addons/metadata/static/files.js:1106 addons/metadata/static/files.js:2149 -#: addons/metadata/static/files.js:2175 website/static/js/folderpicker.js:105 +#: addons/metadata/static/files.js:1130 addons/metadata/static/files.js:2297 +#: addons/metadata/static/files.js:2323 website/static/js/folderpicker.js:105 msgid "Select" msgstr "" -#: addons/metadata/static/files.js:1110 +#: addons/metadata/static/files.js:1134 msgid "Select the destination for the file metadata." msgstr "" -#: addons/metadata/static/files.js:1161 +#: addons/metadata/static/files.js:1185 msgid "Registering..." msgstr "" -#: addons/metadata/static/files.js:1161 +#: addons/metadata/static/files.js:1185 msgid "Deleting..." msgstr "" -#: addons/metadata/static/files.js:1255 addons/metadata/static/files.js:1994 -#: addons/metadata/static/files.js:2072 addons/metadata/static/files.js:2119 -#: addons/metadata/static/files.js:2147 addons/metadata/static/files.js:2173 -#: addons/metadata/static/files.js:2229 -#: addons/metadata/static/metadataImportDatasetButton.js:23 -#: website/static/js/accountSettings.js:267 website/static/js/fangorn.js:2777 +#: addons/metadata/static/files.js:1279 addons/metadata/static/files.js:2138 +#: addons/metadata/static/files.js:2216 addons/metadata/static/files.js:2263 +#: addons/metadata/static/files.js:2295 addons/metadata/static/files.js:2321 +#: addons/metadata/static/files.js:2377 +#: addons/metadata/static/metadataImportDatasetButton.js:24 +#: website/static/js/accountSettings.js:267 website/static/js/fangorn.js:2811 #: website/static/js/folderPickerNodeConfig.js:591 #: website/static/js/pages/profile-settings-addons-page.js:72 #: website/static/js/pages/project-settings-page.js:118 msgid "Close" msgstr "" -#: addons/metadata/static/files.js:1321 +#: addons/metadata/static/files.js:1346 msgid "View Metadata" msgstr "" -#: addons/metadata/static/files.js:1332 +#: addons/metadata/static/files.js:1357 msgid "Edit Metadata" msgstr "" -#: addons/metadata/static/files.js:1343 +#: addons/metadata/static/files.js:1368 msgid "Register Metadata" msgstr "" -#: addons/metadata/static/files.js:1353 +#: addons/metadata/static/files.js:1378 msgid "Delete Metadata" msgstr "" -#: addons/metadata/static/files.js:1407 +#: addons/metadata/static/files.js:1432 msgid "Edit Multiple Metadata" msgstr "" -#: addons/metadata/static/files.js:1417 +#: addons/metadata/static/files.js:1442 msgid "Loading Metadata" msgstr "" -#: addons/metadata/static/files.js:1556 +#: addons/metadata/static/files.js:1584 msgid "Metadata is defined" msgstr "" -#: addons/metadata/static/files.js:1565 +#: addons/metadata/static/files.js:1592 msgid "Some of the children have metadata." msgstr "" -#: addons/metadata/static/files.js:1575 +#: addons/metadata/static/files.js:1602 msgid "File not found: " msgstr "" -#: addons/metadata/static/files.js:1998 addons/metadata/static/files.js:2074 +#: addons/metadata/static/files.js:2142 addons/metadata/static/files.js:2218 #: website/static/js/contribManager.js:440 #: website/static/js/filepage/editor.js:180 msgid "Save" msgstr "" -#: addons/metadata/static/files.js:2010 addons/metadata/static/files.js:2195 +#: addons/metadata/static/files.js:2154 addons/metadata/static/files.js:2343 msgid "Copy to clipboard" msgstr "" -#: addons/metadata/static/files.js:2026 +#: addons/metadata/static/files.js:2170 msgid "" "Renaming, moving the file/directory, or changing the directory hierarchy " "can break the association of the metadata you have added." msgstr "" -#: addons/metadata/static/files.js:2032 +#: addons/metadata/static/files.js:2176 msgid "Edit File Metadata" msgstr "" -#: addons/metadata/static/files.js:2032 +#: addons/metadata/static/files.js:2176 msgid "View File Metadata" msgstr "" -#: addons/metadata/static/files.js:2053 addons/metadata/static/files.js:2106 +#: addons/metadata/static/files.js:2197 addons/metadata/static/files.js:2250 #: website/static/js/saveManager.js:24 msgid "You have unsaved changes." msgstr "" -#: addons/metadata/static/files.js:2089 +#: addons/metadata/static/files.js:2233 msgid "Edit Multiple File Metadata" msgstr "" -#: addons/metadata/static/files.js:2121 website/static/js/fangorn.js:1551 -#: website/static/js/fangorn.js:1574 website/static/js/fangorn.js:2469 -#: website/static/js/fangorn.js:2505 website/static/js/filepage/index.js:204 -#: website/static/js/filepage/index.js:519 website/static/js/myProjects.js:1637 +#: addons/metadata/static/files.js:2269 website/static/js/fangorn.js:1558 +#: website/static/js/fangorn.js:1581 website/static/js/fangorn.js:2476 +#: website/static/js/fangorn.js:2512 website/static/js/filepage/index.js:204 +#: website/static/js/filepage/index.js:736 website/static/js/myProjects.js:1637 msgid "Delete" msgstr "" -#: addons/metadata/static/files.js:2134 +#: addons/metadata/static/files.js:2282 msgid "Delete File Metadata" msgstr "" -#: addons/metadata/static/files.js:2139 +#: addons/metadata/static/files.js:2287 msgid "Do you want to delete metadata? This operation cannot be undone." msgstr "" -#: addons/metadata/static/files.js:2156 +#: addons/metadata/static/files.js:2304 msgid "Select a destination for file metadata registration" msgstr "" -#: addons/metadata/static/files.js:2205 +#: addons/metadata/static/files.js:2353 msgid "Fix file metadata" msgstr "" -#: addons/metadata/static/files.js:2234 +#: addons/metadata/static/files.js:2382 msgid "Paste Metadata" msgstr "" -#: addons/metadata/static/files.js:2239 +#: addons/metadata/static/files.js:2387 msgid "Press Ctrl-V (Command-V) to paste." msgstr "" -#: addons/metadata/static/files.js:2241 +#: addons/metadata/static/files.js:2389 msgid "" "[Why is this needed?] In this browser, retrieving clipboard values with " "button operations is prohibited. Therefore, you must explicitly indicate " @@ -225,138 +242,116 @@ msgid "" "browser menu." msgstr "" -#: addons/metadata/static/metadata-fields.js:896 -#, python-format -msgid "One of this field or \"%s\" field must be filled." -msgstr "" - -#: addons/metadata/static/metadata-fields.js:911 -msgid "This field can't be blank." -msgstr "" - -#: addons/metadata/static/metadata-fields.js:875 -msgid "Please enter the correct value. " -msgstr "" - -#: addons/metadata/static/metadata-fields.js:252 -msgid "" -"Contacts of data manager can't be blank. Please fill mail address, or " -"organization name, address and phone number." +#: addons/metadata/static/metadata-fields.js:243 +#: addons/metadata/static/metadata-fields.js:253 +msgid "Show Items" msgstr "" -#: addons/metadata/static/metadata-fields.js:577 -msgid "(Not Modified)" -msgstr "" - -#: addons/metadata/static/metadata-fields.js:580 -msgid "Choose..." +#: addons/metadata/static/metadata-fields.js:250 +msgid "Hide Items" msgstr "" -#: addons/metadata/static/metadata-fields.js:213 +#: addons/metadata/static/metadata-fields.js:271 msgid "Clear" msgstr "" -#: addons/metadata/static/metadata-fields.js:235 -#: addons/metadata/static/metadata-fields.js:244 +#: addons/metadata/static/metadata-fields.js:293 +#: addons/metadata/static/metadata-fields.js:302 msgid "Show example" msgstr "" -#: addons/metadata/static/metadata-fields.js:248 +#: addons/metadata/static/metadata-fields.js:306 msgid "Hide example" msgstr "" -#: addons/metadata/static/metadata-fields.js:564 -msgid "Calculate" -msgstr "" - -#: addons/metadata/static/metadata-fields.js:624 -#: addons/metadata/static/metadata-fields.js:672 -msgid "Fill" +#: addons/metadata/static/metadata-fields.js:642 +msgid "(Not Modified)" msgstr "" -#: addons/metadata/static/metadata-fields.js:694 -msgid "Could not generate Data No." +#: addons/metadata/static/metadata-fields.js:645 +msgid "Choose..." msgstr "" -#: addons/metadata/static/metadata-fields.js:728 -msgid "No members" +#: addons/metadata/static/metadata-fields.js:738 +msgid "No data" msgstr "" -#: addons/metadata/static/metadata-fields.js:795 -msgid "e-Rad Researcher Number" +#: addons/metadata/static/metadata-fields.js:749 +#: website/static/js/myProjects.js:1565 +msgid "Add" msgstr "" -#: addons/metadata/static/metadata-fields.js:796 -msgid "Name (Japanese)" +#: addons/metadata/static/metadata-fields.js:980 +msgid "Please enter the correct value. " msgstr "" -#: addons/metadata/static/metadata-fields.js:797 -msgid "Name (English)" +#: addons/metadata/static/metadata-fields.js:1004 +#, python-format +msgid "One of this field or \"%s\" field must be filled." msgstr "" -#: addons/metadata/static/metadata-fields.js:656 -msgid "No data" +#: addons/metadata/static/metadata-fields.js:1019 +msgid "This field can't be blank." msgstr "" -#: addons/metadata/static/metadata-fields.js:667 -#: website/static/js/myProjects.js:1565 -msgid "Add" +#: addons/metadata/static/metadata-fields.js:1135 +msgid "Overwrite already entered value?" msgstr "" -#: addons/metadata/static/metadata-fields.js:1027 -msgid "Overwrite already entered value?" +#: addons/metadata/static/metadata-fields.js:1151 +msgid "File size exceeds the maximum allowed size." msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:25 -#: addons/metadata/static/metadataImportDatasetButton.js:56 -#: addons/metadata/static/metadataImportDatasetButton.js:234 +#: addons/metadata/static/metadataImportDatasetButton.js:26 +#: addons/metadata/static/metadataImportDatasetButton.js:57 +#: addons/metadata/static/metadataImportDatasetButton.js:261 msgid "Import Dataset" msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:41 +#: addons/metadata/static/metadataImportDatasetButton.js:42 msgid "Enter URL to import dataset" msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:44 +#: addons/metadata/static/metadataImportDatasetButton.js:45 msgid "Importing..." msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:48 -#: addons/metadata/static/metadataImportDatasetButton.js:164 -#: addons/metadata/static/metadataImportDatasetButton.js:189 +#: addons/metadata/static/metadataImportDatasetButton.js:49 +#: addons/metadata/static/metadataImportDatasetButton.js:165 +#: addons/metadata/static/metadataImportDatasetButton.js:190 msgid "Error importing dataset: " msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:58 +#: addons/metadata/static/metadataImportDatasetButton.js:59 msgid "Enter the URL of the dataset you would like to import." msgstr "" -#: addons/metadata/static/metadataImportDatasetButton.js:126 +#: addons/metadata/static/metadataImportDatasetButton.js:127 msgid "Downloaded!" msgstr "" -#: addons/metadata/static/metadataNodeConfig.js:112 +#: addons/metadata/static/metadataNodeConfig.js:113 msgid "Could not GET metadata settings" msgstr "" -#: addons/metadata/static/metadataNodeConfig.js:155 +#: addons/metadata/static/metadataNodeConfig.js:156 msgid "Add-on settings configured." msgstr "" -#: addons/metadata/static/metadataNodeConfig.js:161 +#: addons/metadata/static/metadataNodeConfig.js:162 msgid "Failed to configure add-on settings." msgstr "" #: addons/twofactor/static/twoFactorUserConfig.js:148 #: addons/twofactor/static/twoFactorUserConfig.js:190 -#: addons/weko/static/wekoFangornConfig.js:611 +#: addons/weko/static/wekoFangornConfig.js:621 #: admin/static/js/rdm_addons/rdm-addons-page.js:80 #: website/static/js/accountSettings.js:249 #: website/static/js/accountSettings.js:327 #: website/static/js/accountSettings.js:392 #: website/static/js/accountSettings.js:518 #: website/static/js/accountSettings.js:590 -#: website/static/js/addProjectPlugin.js:346 +#: website/static/js/addProjectPlugin.js:347 #: website/static/js/addonPermissions.js:55 #: website/static/js/addonSettings.js:71 website/static/js/addonSettings.js:134 #: website/static/js/apiApplication.js:249 @@ -367,11 +362,12 @@ msgstr "" #: website/static/js/apiPersonalToken.js:438 #: website/static/js/citationsNodeConfig.js:169 #: website/static/js/citationsNodeConfig.js:187 -#: website/static/js/contribManager.js:444 website/static/js/fangorn.js:562 -#: website/static/js/fangorn.js:567 website/static/js/fangorn.js:1553 -#: website/static/js/fangorn.js:1576 website/static/js/fangorn.js:1629 -#: website/static/js/fangorn.js:1648 website/static/js/fangorn.js:2457 +#: website/static/js/contribManager.js:444 website/static/js/fangorn.js:566 +#: website/static/js/fangorn.js:571 website/static/js/fangorn.js:1557 +#: website/static/js/fangorn.js:1580 website/static/js/fangorn.js:1633 +#: website/static/js/fangorn.js:1652 website/static/js/fangorn.js:2486 #: website/static/js/filepage/index.js:208 +#: website/static/js/filepage/index.js:302 #: website/static/js/folderPickerNodeConfig.js:510 #: website/static/js/folderPickerNodeConfig.js:566 #: website/static/js/institutionProjectSettings.js:102 @@ -409,69 +405,70 @@ msgstr "" msgid "Enable" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:42 -#: addons/weko/static/wekoFangornConfig.js:62 website/static/js/fangorn.js:2459 -#: website/static/js/filepage/index.js:544 +#: addons/weko/static/wekoFangornConfig.js:40 +#: addons/weko/static/wekoFangornConfig.js:60 website/static/js/fangorn.js:2466 +#: website/static/js/filepage/index.js:761 msgid "View" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:86 -#: addons/weko/static/wekoFangornConfig.js:788 +#: addons/weko/static/wekoFangornConfig.js:87 +#: addons/weko/static/wekoFangornConfig.js:743 msgid "Deposit" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:255 -#: addons/weko/static/wekoFangornConfig.js:276 -#: addons/weko/static/wekoFangornConfig.js:316 +#: addons/weko/static/wekoFangornConfig.js:265 +#: addons/weko/static/wekoFangornConfig.js:286 +#: addons/weko/static/wekoFangornConfig.js:326 msgid "Error occurred: " msgstr "" -#: addons/weko/static/wekoFangornConfig.js:289 +#: addons/weko/static/wekoFangornConfig.js:299 msgid "Deposit was successful." msgstr "" -#: addons/weko/static/wekoFangornConfig.js:550 +#: addons/weko/static/wekoFangornConfig.js:553 msgid "Error occurred while " msgstr "" -#: addons/weko/static/wekoFangornConfig.js:574 +#: addons/weko/static/wekoFangornConfig.js:564 +msgid "" +"No file metadata is defined for the schema available for depositting to " +"WEKO." +msgstr "" + +#: addons/weko/static/wekoFangornConfig.js:584 msgid "Schema" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:577 +#: addons/weko/static/wekoFangornConfig.js:587 msgid "Select a schema for the file." msgstr "" -#: addons/weko/static/wekoFangornConfig.js:579 +#: addons/weko/static/wekoFangornConfig.js:589 msgid "Project Metadata" msgstr "" -msgid "No file metadata is defined for the schema available for depositting to WEKO." -msgstr "" - -#: addons/weko/static/wekoFangornConfig.js:583 -msgid "Select a registration for the file. You can also select a draft registration." -msgstr "" - -#: addons/weko/static/wekoFangornConfig.js:583 -msgid "Select a registration for the file." +#: addons/weko/static/wekoFangornConfig.js:593 +msgid "" +"Select a registration for the file. You can also select a draft " +"registration." msgstr "" -#: addons/weko/static/wekoFangornConfig.js:607 +#: addons/weko/static/wekoFangornConfig.js:617 msgid "" "Do you want to deposit the file/folder \"%1$s\" to WEKO? This operation " "is irreversible." msgstr "" -#: addons/weko/static/wekoFangornConfig.js:617 +#: addons/weko/static/wekoFangornConfig.js:627 msgid "OK" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:631 +#: addons/weko/static/wekoFangornConfig.js:642 msgid "Deposit files" msgstr "" -#: addons/weko/static/wekoFangornConfig.js:880 +#: addons/weko/static/wekoFangornConfig.js:837 msgid "Save and Deposit to WEKO" msgstr "" @@ -569,7 +566,7 @@ msgstr "" #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:155 #: admin/static/js/rdm_addons/figshare/rdm-cfg.js:34 #: admin/static/js/rdm_addons/s3/s3RdmConfig.js:124 -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:116 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:118 #: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:469 #: website/static/js/addonSettings.js:130 #: website/static/js/folderPickerNodeConfig.js:562 @@ -737,23 +734,20 @@ msgstr "" msgid "Modify Collection Provider" msgstr "" -#: admin/static/js/rdm_addons/rdm-addons-page.js:64 -#, python-format -msgid "Disallow %s?" -msgstr "" - -#: admin/static/js/rdm_addons/rdm-addons-page.js:65 +#: admin/static/js/rdm_addons/rdm-addons-page.js:63 +#: admin/static/js/rdm_addons/rdm-addons-page.js:68 msgid "Are you sure you want to disallow the %1$s?
    " msgstr "" -#: admin/static/js/rdm_addons/rdm-addons-page.js:66 +#: admin/static/js/rdm_addons/rdm-addons-page.js:64 msgid "" "This will revoke access to %1$s for all projects using the " "accounts.

    " msgstr "" -#: admin/static/js/rdm_addons/rdm-addons-page.js:67 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:491 +#: admin/static/js/rdm_addons/rdm-addons-page.js:65 +#: admin/static/js/rdm_addons/rdm-addons-page.js:71 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:453 msgid "Type the following to continue: %1$s

    " msgstr "" @@ -769,27 +763,17 @@ msgid "" "until you reallow it.

    " msgstr "" -#: admin/static/js/rdm_addons/rdm-addons-page.js:74 -msgid "Disallow" -msgstr "" - -#: admin/static/js/rdm_addons/rdm-addons-page.js:85 -msgid "Strings did not match" -msgstr "" - -#: addons/datasteward/static/datastewardUserConfig.js:88 -#: addons/datasteward/static/datastewardUserConfig.js:89 -msgid "You do not have permission to perform this action." +#: admin/static/js/rdm_addons/rdm-addons-page.js:75 +#, python-format +msgid "Disallow %s?" msgstr "" -#: addons/datasteward/static/datastewardUserConfig.js:120 -#: addons/datasteward/static/datastewardUserConfig.js:121 -msgid "Cannot disable DataSteward add-on" +#: admin/static/js/rdm_addons/rdm-addons-page.js:83 +msgid "Disallow" msgstr "" -#: addons/datasteward/static/datastewardUserConfig.js:157 -#: addons/datasteward/static/datastewardUserConfig.js:158 -msgid "Cannot get DataSteward add-on settings" +#: admin/static/js/rdm_addons/rdm-addons-page.js:94 +msgid "Strings did not match" msgstr "" #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:26 @@ -830,18 +814,9 @@ msgid "" "projects associated with this account." msgstr "" -#: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:155 -#: admin/static/js/rdm_addons/figshare/rdm-cfg.js:34 -#: admin/static/js/rdm_addons/s3/s3RdmConfig.js:124 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:507 -#: website/static/js/addonSettings.js:130 -#: website/static/js/folderPickerNodeConfig.js:562 -msgid "Disconnect" -msgstr "" - #: admin/static/js/rdm_addons/dataverse/dataverseRdmConfig.js:173 #: admin/static/js/rdm_addons/s3/s3RdmConfig.js:142 -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:134 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:136 #: website/static/js/addonSettings.js:150 msgid "Error while removing addon authorization for %1$s" msgstr "" @@ -989,30 +964,30 @@ msgid "" "account." msgstr "" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:68 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:70 msgid "Error while retrieving addon account" msgstr "" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:89 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:91 msgid "Could not set accounts for WEKO" msgstr "" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:105 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:107 msgid "Delete WEKO Application?" msgstr "" -#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:107 +#: admin/static/js/rdm_addons/weko/wekoRdmConfig.js:109 msgid "" "Are you sure you want to delete the WEKO application " -"%1$s? WEKO add-on connections already set up for " -"the projects will be preserved." +"%1$s? WEKO add-on connections already set up for the " +"projects will be preserved." msgstr "" #: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:84 msgid "Are you sure you want to change institutional storage?" msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:93 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:85 msgid "" "

    The previous storage will no longer be available to all contributors " "on the project.

    " @@ -1025,139 +1000,28 @@ msgstr "" msgid "Change" msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:120 -msgid "Are you sure you want to add this Export Data Storage Location?" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:358 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:592 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:726 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:832 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:322 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:554 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:688 msgid "Some errors occurred" msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:405 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:369 msgid "Institutional Storage set successfully" msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:487 -#: website/static/js/addonSettings.js:118 -msgid "Disconnect Account?" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:489 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:451 msgid "" "Are you sure you want to disconnect the %1$s account " "%2$s?
    " msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:490 +#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:452 msgid "" "This will revoke access to %1$s for all projects using this " "account.

    " msgstr "" -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:775 -msgid "Unable to delete location %1$s" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:784 -msgid "Are you sure you want to delete this export data storage location?" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:970 -msgid "Export Data" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:971 -msgid "Stop Export Data" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:974 -msgid "Export data successfully." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:975 -msgid "Cannot export data." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:976 -msgid "Error occurred while exporting data." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:977 -msgid "Export data failed." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:978 -msgid "Export data in background." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:979 -msgid "Stop exporting successfully." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:980 -msgid "Cannot stop exporting data." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:981 -msgid "Error occurred while stopping export data." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:982 -msgid "Stop exporting in background." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1442 -msgid "Are you sure you want to permanently delete these export data?" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1448 -msgid "Delete Permanently" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1597 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1599 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1612 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1668 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1720 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1727 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1740 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1775 -msgid "Restore Export Data" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1612 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1646 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1731 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1775 -msgid "message" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1634 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1638 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1646 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1706 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1729 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1742 -msgid "Stop Restore Export Data" -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1634 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1706 -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1722 -msgid "Stopped restoring data process." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1668 -msgid "Restore completed." -msgstr "" - -#: admin/static/js/rdm_custom_storage_location/rdm-institutional-storage-page.js:1744 -msgid "result" -msgstr "" - #: scripts/translations/messages_addonsJson.js:3 msgid "" "\n" @@ -1761,6 +1625,7 @@ msgid "" msgstr "" #: scripts/translations/messages_addonsJson.js:23 +#: scripts/translations/messages_addonsJson.js:25 msgid "" "\n" "\n" @@ -1824,7 +1689,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:25 +#: scripts/translations/messages_addonsJson.js:27 msgid "" "\n" "\n" @@ -1889,7 +1754,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:27 +#: scripts/translations/messages_addonsJson.js:29 msgid "" "\n" "\n" @@ -1954,7 +1819,8 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:29 +#: scripts/translations/messages_addonsJson.js:31 +#: scripts/translations/messages_addonsJson.js:37 msgid "" "\n" "\n" @@ -2017,7 +1883,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:31 +#: scripts/translations/messages_addonsJson.js:33 msgid "" "\n" "\n" @@ -2083,10 +1949,11 @@ msgid "" msgstr "" #: scripts/translations/messages_addonsJson.js:35 +#: scripts/translations/messages_addonsJson.js:51 msgid "" "\n" "\n" -"

    JupyterHub Add-on Terms

    \n" +"

    Nextcloud Add-on Terms

    \n" "\n" "\n" "\n" @@ -2098,36 +1965,40 @@ msgid "" " \n" "\n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" " \n" " \n" -" \n" +" \n" " \n" " \n" "\n" @@ -2144,7 +2015,8 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:37 +#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:47 msgid "" "\n" "\n" @@ -2210,7 +2082,8 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:41 +#: scripts/translations/messages_addonsJson.js:49 msgid "" "\n" "\n" @@ -2278,7 +2151,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:39 +#: scripts/translations/messages_addonsJson.js:43 msgid "" "\n" "\n" @@ -2326,11 +2199,11 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:41 +#: scripts/translations/messages_addonsJson.js:45 msgid "" "\n" "\n" -"

    Nextcloud Add-on Terms

    \n" +"

    JupyterHub Add-on Terms

    \n" "\n" "
    PermissionsThe GakuNin RDM does not affect the permissions of " -"JupyterHub.Making a GakuNin RDM project public or private is " +"independent of Nextcloud privacy. The GakuNin RDM does not alter the " +"permissions of linked Nextcloud folders.
    View / download file versionsThe JupyterHub add-on does not provide Storage " -"Features.Nextcloud files can be viewed/downloaded via GakuNin " +"RDM, but version history is not supported by the Nextcloud WebDAV " +"API.
    Add / update filesThe JupyterHub add-on does not provide Storage " -"Features.Adding/updating files in the project via GakuNin RDM " +"will be reflected in Nextcloud.
    Delete filesThe JupyterHub add-on does not provide Storage " -"Features.Files deleted via GakuNin RDM will be deleted in " +"Nextcloud.
    LogsThe JupyterHub add-on does not provide Storage " -"Features.GakuNin RDM keeps track of changes you make to your " +"Nextcloud content through GakuNin RDM, but not for changes made using " +"Nextcloud directly.
    ForkingForking a project or component copies information " -"about linked JupyterHub but the GakuNin RDM does not affect " -"authentication of JupyterHub.Forking a project or component does not copy " +"Nextcloud authorization unless the user forking the project is the same " +"user who authorized the Nextcloud add-on in the source project being " +"forked.
    \n" "\n" @@ -2342,40 +2215,36 @@ msgid "" " \n" "\n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" -" \n" +" \n" " \n" " \n" " \n" -" \n" +" \n" " \n" " \n" "\n" @@ -2392,7 +2261,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:43 +#: scripts/translations/messages_addonsJson.js:53 msgid "" "\n" "\n" @@ -2457,7 +2326,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:45 +#: scripts/translations/messages_addonsJson.js:55 msgid "" "\n" "\n" @@ -2520,7 +2389,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:47 +#: scripts/translations/messages_addonsJson.js:57 msgid "" "\n" "\n" @@ -2582,7 +2451,7 @@ msgid "" "\n" msgstr "" -#: scripts/translations/messages_addonsJson.js:49 +#: scripts/translations/messages_addonsJson.js:59 msgid "" "\n" "\n" @@ -2987,84 +2856,88 @@ msgstr "" msgid " This component will inherit the same license as " msgstr "" -#: website/static/js/addProjectPlugin.js:281 +#: website/static/js/addProjectPlugin.js:273 +msgid "Learn more." +msgstr "" + +#: website/static/js/addProjectPlugin.js:282 msgid " More" msgstr "" -#: website/static/js/addProjectPlugin.js:285 +#: website/static/js/addProjectPlugin.js:286 msgid "Description" msgstr "" -#: website/static/js/addProjectPlugin.js:294 +#: website/static/js/addProjectPlugin.js:295 msgid "Enter %1$s description" msgstr "" -#: website/static/js/addProjectPlugin.js:298 website/static/js/conference.js:31 +#: website/static/js/addProjectPlugin.js:299 website/static/js/conference.js:31 msgid "Category" msgstr "" -#: website/static/js/addProjectPlugin.js:299 +#: website/static/js/addProjectPlugin.js:300 msgid " (for descriptive purposes)" msgstr "" -#: website/static/js/addProjectPlugin.js:306 +#: website/static/js/addProjectPlugin.js:307 msgid "Uncategorized" msgstr "" -#: website/static/js/addProjectPlugin.js:319 +#: website/static/js/addProjectPlugin.js:320 msgid "(Empty category)" msgstr "" -#: website/static/js/addProjectPlugin.js:329 +#: website/static/js/addProjectPlugin.js:330 msgid "Template (optional)" msgstr "" -#: website/static/js/addProjectPlugin.js:330 +#: website/static/js/addProjectPlugin.js:331 msgid "" "Start typing to search your projects. Selecting project as template will " "duplicate its " msgstr "" -#: website/static/js/addProjectPlugin.js:331 +#: website/static/js/addProjectPlugin.js:332 msgid "" "structure in the new project without importing the content of that " "project." msgstr "" -#: website/static/js/addProjectPlugin.js:350 +#: website/static/js/addProjectPlugin.js:351 #: website/static/js/nodeControl.js:224 #: website/static/js/privateLinkManager.js:31 website/static/js/project.js:140 msgid "Create" msgstr "" -#: website/static/js/addProjectPlugin.js:361 +#: website/static/js/addProjectPlugin.js:362 #, python-format msgid "Saving your %s..." msgstr "" -#: website/static/js/addProjectPlugin.js:375 +#: website/static/js/addProjectPlugin.js:376 msgid "New %1$s created successfully!" msgstr "" -#: website/static/js/addProjectPlugin.js:385 -#: website/static/js/addProjectPlugin.js:433 website/static/js/project.js:62 +#: website/static/js/addProjectPlugin.js:386 +#: website/static/js/addProjectPlugin.js:434 website/static/js/project.js:62 msgid "Keep working here" msgstr "" -#: website/static/js/addProjectPlugin.js:391 -#: website/static/js/addProjectPlugin.js:436 +#: website/static/js/addProjectPlugin.js:392 +#: website/static/js/addProjectPlugin.js:437 msgid "Go to new %1$s" msgstr "" -#: website/static/js/addProjectPlugin.js:404 +#: website/static/js/addProjectPlugin.js:405 msgid "Couldn't create your %1$s" msgstr "" -#: website/static/js/addProjectPlugin.js:423 +#: website/static/js/addProjectPlugin.js:424 msgid "Could not add institution affiliation to your new %1$s" msgstr "" -#: website/static/js/addProjectPlugin.js:470 +#: website/static/js/addProjectPlugin.js:471 msgid "Select a project to use as a template" msgstr "" @@ -3153,7 +3026,7 @@ msgid "Could not fetch alerts for this page. Please refresh page and try again." msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:2 -#: website/static/js/anonymousLogActionsList_extract.js:75 +#: website/static/js/anonymousLogActionsList_extract.js:77 msgid "A user created a project" msgstr "" @@ -3360,974 +3233,990 @@ msgid "A user checked in a file to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:53 -msgid "A user added a comment to a project" +msgid "A user locked a file in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:54 -msgid "A user deleted a comment from a project" +msgid "A user unlocked a file in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:55 -msgid "A user restored a comment in a project" +msgid "A user added a comment to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:56 -msgid "A user updated a comment on a project" +msgid "A user deleted a comment from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:57 -msgid "A user initiated an embargoed registration of a project" +msgid "A user restored a comment in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:58 -msgid "A user approved an embargoed registration of a project" +msgid "A user updated a comment on a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:59 -msgid "Embargo of registration of a project approved" +msgid "A user initiated an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:60 -msgid "A user cancelled an embargoed registration of a project" +msgid "A user approved an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:61 -msgid "A user completed an embargo of a project" +msgid "Embargo of registration of a project approved" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:62 -msgid "Embargo for a project completed" +msgid "A user cancelled an embargoed registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:63 -msgid "Embargo for a project ended" +msgid "A user completed an embargo of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:64 -msgid "A user initiated a withdrawal of a registration of a project" +msgid "Embargo for a project completed" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:65 -msgid "A withdrawal of a registration of a project was proposed" +msgid "Embargo for a project ended" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:66 -msgid "A user approved a withdrawal of a registration of a project" +msgid "A user initiated a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:67 -#: website/static/js/logActionsList_extract.js:68 -msgid "A withdrawal of a registration of ${node} was approved" +msgid "A withdrawal of a registration of a project was proposed" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:68 -msgid "A user cancelled a withdrawal of a registration of a project" +msgid "A user approved a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:69 -msgid "Registration was created on an external registry." +#: website/static/js/logActionsList_extract.js:70 +msgid "A withdrawal of a registration of ${node} was approved" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:70 -msgid "Registration was imported to OSF from an external registry." +msgid "A user cancelled a withdrawal of a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:71 -msgid "A user initiated a registration of a project" +msgid "Registration was created on an external registry." msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:72 -msgid "A user approved a registration of a project" +msgid "Registration was imported to OSF from an external registry." msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:73 -msgid "Registration of a project was approved" +msgid "A user initiated a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:74 -msgid "A user cancelled a registration of a project" +msgid "A user approved a registration of a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:76 -msgid "A user created fork from a project" +#: website/static/js/anonymousLogActionsList_extract.js:75 +msgid "Registration of a project was approved" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:77 -msgid "A user removed a project" +#: website/static/js/anonymousLogActionsList_extract.js:76 +msgid "A user cancelled a registration of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:78 -msgid "A user enabled access requests for a project" +msgid "A user created fork from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:79 -msgid "A user disabled access requests for a project" +msgid "A user removed a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:80 -msgid "A user updated the license of a project" +msgid "A user enabled access requests for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:81 -msgid "A user added a tag to a file in NII Storage in a project" +msgid "A user disabled access requests for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:82 -msgid "A user removed tag from a file in NII Storage in a project" +msgid "A user updated the license of a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:83 -msgid "A user added a file to NII Storage in a project" +msgid "A user added a tag to a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:84 -msgid "A user created a folder in NII Storage in a project" +msgid "A user removed tag from a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:85 -msgid "A user updated a file in NII Storage in a project" +msgid "A user added a file to NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:86 -msgid "A user removed a file from NII Storage in a project" +msgid "A user created a folder in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:87 -msgid "A user added an affiliation to a project" +msgid "A user updated a file in NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:88 -msgid "A user removed an affiliation from a project" +msgid "A user removed a file from NII Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:89 -msgid "A user made a project a preprint" +msgid "A user added an affiliation to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:90 -msgid "A user updated the primary file of a preprint" +msgid "A user removed an affiliation from a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:91 -msgid "A user updated the license of a preprint" +msgid "A user made a project a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:92 -msgid "A user updated the subjects" +msgid "A user updated the primary file of a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:93 -msgid "A user created a view-only link to a project" +msgid "A user updated the license of a preprint" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:94 -msgid "A user removed a view-only link to a project" +msgid "A user updated the subjects" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:95 -msgid "A user added a file to Box in a project" +msgid "A user created a view-only link to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:96 -msgid "A user removed a file from Box in a project" +msgid "A user removed a view-only link to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:97 -msgid "A user updated a file in Box in a project" +msgid "A user added a file to Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:98 -msgid "A user created a folder in Box in a project" +msgid "A user removed a file from Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:99 -msgid "A user linked a Box folder to a project" +msgid "A user updated a file in Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:100 -msgid "A user authorized the Box addon for a project" +msgid "A user created a folder in Box in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:101 -msgid "A user deauthorized the Box addon for a project" +msgid "A user linked a Box folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:102 -msgid "Box addon for a project deauthorized" +msgid "A user authorized the Box addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:103 -msgid "A user added a file to a Dataverse dataset in a project" +msgid "A user deauthorized the Box addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:104 -msgid "A user removed a file from a Dataverse dataset in a project" +msgid "Box addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:105 +msgid "A user added a file to a Dataverse dataset in a project" +msgstr "" + #: website/static/js/anonymousLogActionsList_extract.js:106 -msgid "A user linked a Dataverse dataset to a project" +msgid "A user removed a file from a Dataverse dataset in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:107 #: website/static/js/anonymousLogActionsList_extract.js:108 -msgid "A user published a new version of a Dataverse dataset to a project" +msgid "A user linked a Dataverse dataset to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:109 -msgid "A user authorized the Dataverse addon for a project" -msgstr "" - #: website/static/js/anonymousLogActionsList_extract.js:110 -msgid "A user deauthorized the Dataverse addon for a project" +msgid "A user published a new version of a Dataverse dataset to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:111 -msgid "Dataverse addon for a project deauthorized" +msgid "A user authorized the Dataverse addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:112 -msgid "A user added a file to Dropbox in a project" +msgid "A user deauthorized the Dataverse addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:113 -msgid "A user removed a file from Dropbox in a project" +msgid "Dataverse addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:114 -msgid "A user updated a file in Dropbox in a project" +msgid "A user added a file to Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:115 -msgid "A user created a folder in Dropbox in a project" +msgid "A user removed a file from Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:116 -msgid "A user linked a Dropbox folder in a project" +msgid "A user updated a file in Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:117 -msgid "A user authorized the Dropbox addon for a project" +msgid "A user created a folder in Dropbox in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:118 -msgid "A user deauthorized the Dropbox addon for a project" +msgid "A user linked a Dropbox folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:119 -msgid "Dropbox addon for a project deauthorized" +msgid "A user authorized the Dropbox addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:120 -msgid "A user linked content from figshare in a project" +msgid "A user deauthorized the Dropbox addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:121 -msgid "A user unlinked content from figshare in a project" +msgid "Dropbox addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:122 -msgid "A user added a file to figshare in a project" +msgid "A user linked content from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:123 -msgid "A user removed a file or folder from figshare in a project" +msgid "A user unlinked content from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:124 -msgid "A user created a folder in figshare in a project" +msgid "A user added a file to figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:125 -msgid "A user authorized the figshare addon for a project" +msgid "A user removed a file or folder from figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:126 -msgid "A user deauthorized the figshare addon for a project" +msgid "A user created a folder in figshare in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:127 -msgid "figshare addon for a project deauthorized" +msgid "A user authorized the figshare addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:128 -msgid "A user changed the forward URL in a project" +msgid "A user deauthorized the figshare addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:129 -msgid "A user added a file to a GitHub repo in a project" +msgid "figshare addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:130 -msgid "A user removed a file in a GitHub repo in a project" +msgid "A user changed the forward URL in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:131 -msgid "A user updated a file in a GitHub repo in a project" +msgid "A user added a file to a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:132 -msgid "A user created a folder in a GitHub repo in a project" +msgid "A user removed a file in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:133 -msgid "A user authorized the GitHub addon for a project" +msgid "A user updated a file in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:134 -msgid "A user deauthorized the GitHub addon for a project" +msgid "A user created a folder in a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:135 -msgid "GitHub addon for a project deauthorized" +msgid "A user authorized the GitHub addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:136 -msgid "A user linked a GitHub repo in a project" +msgid "A user deauthorized the GitHub addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:137 -msgid "A user selected a folder in Mendeley in a project" +msgid "GitHub addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:138 -msgid "A user authorized the Mendeley addon for a project" +msgid "A user linked a GitHub repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:139 -msgid "A user deauthorized the Mendeley addon for a project" +msgid "A user selected a folder in Mendeley in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:140 -msgid "A user linked a Zotero folder to a project" +msgid "A user authorized the Mendeley addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:141 -msgid "A user linked a Zotero library to a project" +msgid "A user deauthorized the Mendeley addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:142 -msgid "A user authorized the Zotero addon for a project" +msgid "A user linked a Zotero folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:143 -msgid "A user deauthorized the Zotero addon for a project" +msgid "A user linked a Zotero library to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:144 -msgid "A user added a file to ownCloud in a project" +msgid "A user authorized the Zotero addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:145 -msgid "A user removed a file from ownCloud in a project" +msgid "A user deauthorized the Zotero addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:146 -msgid "A user updated a file in ownCloud in a project" +msgid "A user added a file to ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:147 -msgid "A user created a folder in ownCloud in a project" +msgid "A user removed a file from ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:148 -msgid "A user linked a ownCloud folder in a project" +msgid "A user updated a file in ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:149 -msgid "A user authorized the ownCloud addon for a project" +msgid "A user created a folder in ownCloud in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:150 -msgid "A user deauthorized the ownCloud addon for a project" +msgid "A user linked a ownCloud folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:151 -msgid "ownCloud addon for a project deauthorized" +msgid "A user authorized the ownCloud addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:152 -msgid "A user added a file to Microsoft OneDrive in a project" +msgid "A user deauthorized the ownCloud addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:153 -msgid "A user removed a file from Microsoft OneDrive in a project" +msgid "ownCloud addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:154 -msgid "A user updated a file in Microsoft OneDrive in a project" +msgid "A user added a file to Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:155 -msgid "A user created a folder in Microsoft OneDrive in a project" +msgid "A user removed a file from Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:156 -msgid "A user linked a Microsoft OneDrive folder to a project" +msgid "A user updated a file in Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:157 -msgid "A user authorized the Microsoft OneDrive addon for a project" +msgid "A user created a folder in Microsoft OneDrive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:158 -msgid "A user deauthorized the Microsoft OneDrive addon for a project" +msgid "A user linked a Microsoft OneDrive folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:159 -msgid "Microsoft OneDrive addon for a project deauthorized" +msgid "A user authorized the Microsoft OneDrive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:160 -msgid "A user linked an Amazon S3 bucket to a project" +msgid "A user deauthorized the Microsoft OneDrive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:161 -msgid "A user unselected an Amazon S3 bucket in a project" +msgid "Microsoft OneDrive addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:162 -msgid "A user added a file to an Amazon S3 bucket in a project" +msgid "A user linked an Amazon S3 bucket to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:163 -msgid "A user removed a file in an Amazon S3 bucket in a project" +msgid "A user unselected an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:164 -msgid "A user updated a file in an Amazon S3 bucket in a project" +msgid "A user added a file to an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:165 -msgid "A user created a folder in an Amazon S3 in a project" +msgid "A user removed a file in an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:166 -msgid "A user authorized the Amazon S3 addon for a project" +msgid "A user updated a file in an Amazon S3 bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:167 -msgid "A user deauthorized the Amazon S3 addon for a project" +msgid "A user created a folder in an Amazon S3 in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:168 -msgid "Amazon S3 addon for a project deauthorized" +msgid "A user authorized the Amazon S3 addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:169 -msgid "A user added a file to Google Drive in a project" +msgid "A user deauthorized the Amazon S3 addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:170 -msgid "A user removed a file from Google Drive in a project" +msgid "Amazon S3 addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:171 -msgid "A user updated a file in Google Drive in a project" +msgid "A user added a file to Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:172 -msgid "A user created a folder in Google Drive in a project" +msgid "A user removed a file from Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:173 -msgid "A user linked a Google Drive folder to a project" +msgid "A user updated a file in Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:174 -msgid "A user authorized the Google Drive addon for a project" +msgid "A user created a folder in Google Drive in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:175 -msgid "A user deauthorized the Google Drive addon for a project" +msgid "A user linked a Google Drive folder to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:176 -msgid "Google Drive addon for a project deauthorized" +msgid "A user authorized the Google Drive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:177 -msgid "A user added a file to a Bitbucket repo in a project" +msgid "A user deauthorized the Google Drive addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:178 -msgid "A user removed a file in a Bitbucket repo in a project" +msgid "Google Drive addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:179 -msgid "A user updated a file in a Bitbucket repo in a project" +msgid "A user added a file to a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:180 -msgid "A user created a folder in a Bitbucket repo in a project" +msgid "A user removed a file in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:181 -msgid "A user authorized the Bitbucket addon for a project" +msgid "A user updated a file in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:182 -msgid "A user deauthorized the Bitbucket addon for a project" +msgid "A user created a folder in a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:183 -msgid "Bitbucket addon for a project deauthorized" +msgid "A user authorized the Bitbucket addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:184 -msgid "A user linked a Bitbucket repo in a project" +msgid "A user deauthorized the Bitbucket addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:185 -msgid "A user linked an Swift container to a project" +msgid "Bitbucket addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:186 -msgid "A user unselected an Swift container in a project" +msgid "A user linked a Bitbucket repo in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:187 -msgid "A user added a file to an Swift container in a project" +msgid "A user linked an Swift container to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:188 -msgid "A user removed a file in an Swift container in a project" +msgid "A user unselected an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:189 -msgid "A user updated a file in an Swift container in a project" +msgid "A user added a file to an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:190 -msgid "A user created a folder in an Swift in a project" +msgid "A user removed a file in an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:191 -msgid "A user authorized the Swift addon for a project" +msgid "A user updated a file in an Swift container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:192 -msgid "A user deauthorized the Swift addon for a project" +msgid "A user created a folder in an Swift in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:193 -msgid "Swift addon for a project deauthorized" +msgid "A user authorized the Swift addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:194 -msgid "A user linked an Azure Blob Storage container to a project" +msgid "A user deauthorized the Swift addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:195 -msgid "A user unselected an Azure Blob Storage container in a project" +msgid "Swift addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:196 -msgid "A user added a file to an Azure Blob Storage container in a project" +msgid "A user linked an Azure Blob Storage container to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:197 -msgid "A user removed a file in an Azure Blob Storage container in a project" +msgid "A user unselected an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:198 -msgid "A user updated a file in an Azure Blob Storage container in a project" +msgid "A user added a file to an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:199 -msgid "A user created a folder in an Azure Blob Storage in a project" +msgid "A user removed a file in an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:200 -msgid "A user authorized the Azure Blob Storage addon for a project" +msgid "A user updated a file in an Azure Blob Storage container in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:201 -msgid "A user deauthorized the Azure Blob Storage addon for a project" +msgid "A user created a folder in an Azure Blob Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:202 -msgid "Azure Blob Storage addon for a project deauthorized" +msgid "A user authorized the Azure Blob Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:203 -msgid "A user added a file to a WEKO index in a project" +msgid "A user deauthorized the Azure Blob Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:204 -msgid "A user removed a file from a WEKO index in a project" +msgid "Azure Blob Storage addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:205 -msgid "A user linked a WEKO index to a project" +msgid "A user added a draft file to a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:206 -msgid "A user created an index to a project" +msgid "A user removed a draft file from a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:207 -msgid "A user created an item to a project" +msgid "A user linked a WEKO index to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:208 -msgid "A user created a folder in WEKO in a project" +msgid "A user created a draft folder in WEKO in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:209 -msgid "A user authorized the WEKO addon for a project" +msgid "A user deposit item in a WEKO index in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:210 -msgid "A user deauthorized the WEKO addon for a project" +msgid "A user authorized the WEKO addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:211 -msgid "WEKO addon for a project deauthorized" +msgid "A user deauthorized the WEKO addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:212 -msgid "A user linked an S3 Compatible Storage bucket to a project" +msgid "WEKO addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:213 -msgid "A user unselected an S3 Compatible Storage bucket in a project" +msgid "A user linked an S3 Compatible Storage bucket to a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:214 -msgid "A user added a file to an S3 Compatible Storage bucket in a project" +msgid "A user unselected an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:215 -msgid "A user removed a file in an S3 Compatible Storage bucket in a project" +msgid "A user added a file to an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:216 -msgid "A user updated a file in an S3 Compatible Storage bucket in a project" +msgid "A user removed a file in an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:217 -msgid "A user created a folder in an S3 Compatible Storage in a project" +msgid "A user updated a file in an S3 Compatible Storage bucket in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:218 -msgid "A user authorized the S3 Compatible Storage addon for a project" +msgid "A user created a folder in an S3 Compatible Storage in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:219 -msgid "A user deauthorized the S3 Compatible Storage addon for a project" +msgid "A user authorized the S3 Compatible Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:220 -msgid "S3 Compatible Storage addon for a project deauthorized" +msgid "A user deauthorized the S3 Compatible Storage addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:221 -msgid "A user added a file to S3compat (for Institutions) in a project" +msgid "S3 Compatible Storage addon for a project deauthorized" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:222 -msgid "A user removed a file from S3compat (for Institutions) in a project" +msgid "A user added a file to S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:223 -msgid "A user updated a file in S3compat (for Institutions) in a project" +msgid "A user removed a file from S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:224 -msgid "A user created a folder in S3compat (for Institutions) in a project" +msgid "A user updated a file in S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:225 -msgid "A user linked a S3compat (for Institutions) folder in a project" +msgid "A user created a folder in S3compat (for Institutions) in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:226 -msgid "A user authorized the S3compat (for Institutions) addon for a project" +msgid "A user linked a S3compat (for Institutions) folder in a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:227 -msgid "A user deauthorized the S3compat (for Institutions) addon for a project" +msgid "A user authorized the S3compat (for Institutions) addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:228 -msgid "S3compat (for Institutions) addon for a project deauthorized" +msgid "A user deauthorized the S3compat (for Institutions) addon for a project" msgstr "" #: website/static/js/anonymousLogActionsList_extract.js:229 +msgid "S3compat (for Institutions) addon for a project deauthorized" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:230 msgid "" "A user linked an Oracle Cloud Infrastructure Object Storage bucket to a " "project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:230 +#: website/static/js/anonymousLogActionsList_extract.js:231 msgid "" "A user unselected an Oracle Cloud Infrastructure Object Storage bucket in" " a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:231 +#: website/static/js/anonymousLogActionsList_extract.js:232 msgid "" "A user added a file to an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:232 +#: website/static/js/anonymousLogActionsList_extract.js:233 msgid "" "A user removed a file in an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:233 +#: website/static/js/anonymousLogActionsList_extract.js:234 msgid "" "A user updated a file in an Oracle Cloud Infrastructure Object Storage " "bucket in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:234 +#: website/static/js/anonymousLogActionsList_extract.js:235 msgid "" "A user created a folder in an Oracle Cloud Infrastructure Object Storage " "in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:235 +#: website/static/js/anonymousLogActionsList_extract.js:236 msgid "" "A user authorized the Oracle Cloud Infrastructure Object Storage addon " "for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:236 +#: website/static/js/anonymousLogActionsList_extract.js:237 msgid "" "A user deauthorized the Oracle Cloud Infrastructure Object Storage addon " "for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:237 +#: website/static/js/anonymousLogActionsList_extract.js:238 msgid "" "Oracle Cloud Infrastructure Object Storage addon for a project " "deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:238 +#: website/static/js/anonymousLogActionsList_extract.js:239 msgid "" "A user added a file to Oracle Cloud Infrastructure (for Institutions) in " "a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:239 +#: website/static/js/anonymousLogActionsList_extract.js:240 msgid "" "A user removed a file from Oracle Cloud Infrastructure (for Institutions)" " in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:240 +#: website/static/js/anonymousLogActionsList_extract.js:241 msgid "" "A user updated a file in Oracle Cloud Infrastructure (for Institutions) " "in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:241 +#: website/static/js/anonymousLogActionsList_extract.js:242 msgid "" "A user created a folder in Oracle Cloud Infrastructure (for Institutions)" " in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:242 +#: website/static/js/anonymousLogActionsList_extract.js:243 msgid "" "A user linked a Oracle Cloud Infrastructure (for Institutions) folder in " "a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:243 +#: website/static/js/anonymousLogActionsList_extract.js:244 msgid "" "A user authorized the Oracle Cloud Infrastructure (for Institutions) " "addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:244 +#: website/static/js/anonymousLogActionsList_extract.js:245 msgid "" "A user deauthorized the Oracle Cloud Infrastructure (for Institutions) " "addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:245 +#: website/static/js/anonymousLogActionsList_extract.js:246 msgid "" "Oracle Cloud Infrastructure (for Institutions) addon for a project " "deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:246 +#: website/static/js/anonymousLogActionsList_extract.js:247 msgid "A user added a file to Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:247 +#: website/static/js/anonymousLogActionsList_extract.js:248 msgid "A user removed a file from Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:248 +#: website/static/js/anonymousLogActionsList_extract.js:249 msgid "A user updated a file in Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:249 +#: website/static/js/anonymousLogActionsList_extract.js:250 msgid "A user created a folder in Nextcloud in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:250 +#: website/static/js/anonymousLogActionsList_extract.js:251 msgid "A user linked a Nextcloud folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:251 +#: website/static/js/anonymousLogActionsList_extract.js:252 msgid "A user authorized the Nextcloud addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:252 +#: website/static/js/anonymousLogActionsList_extract.js:253 msgid "A user deauthorized the Nextcloud addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:253 +#: website/static/js/anonymousLogActionsList_extract.js:254 msgid "Nextcloud addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:254 +#: website/static/js/anonymousLogActionsList_extract.js:255 msgid "A user added a file to Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:255 +#: website/static/js/anonymousLogActionsList_extract.js:256 msgid "A user removed a file from Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:256 +#: website/static/js/anonymousLogActionsList_extract.js:257 msgid "A user updated a file in Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:257 +#: website/static/js/anonymousLogActionsList_extract.js:258 msgid "A user created a folder in Nextcloud (for Institutions) in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:258 +#: website/static/js/anonymousLogActionsList_extract.js:259 msgid "A user linked a Nextcloud (for Institutions) folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:259 +#: website/static/js/anonymousLogActionsList_extract.js:260 msgid "A user authorized the Nextcloud (for Institutions) addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:260 +#: website/static/js/anonymousLogActionsList_extract.js:261 msgid "A user deauthorized the Nextcloud (for Institutions) addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:261 +#: website/static/js/anonymousLogActionsList_extract.js:262 msgid "Nextcloud (for Institutions) addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:262 +#: website/static/js/anonymousLogActionsList_extract.js:263 msgid "A user added a file to IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:263 +#: website/static/js/anonymousLogActionsList_extract.js:264 msgid "A user removed a file from IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:264 +#: website/static/js/anonymousLogActionsList_extract.js:265 msgid "A user updated a file in IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:265 +#: website/static/js/anonymousLogActionsList_extract.js:266 msgid "A user created a folder in IQB-RIMS in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:266 +#: website/static/js/anonymousLogActionsList_extract.js:267 msgid "A user linked a IQB-RIMS folder to a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:267 +#: website/static/js/anonymousLogActionsList_extract.js:268 msgid "A user authorized the IQB-RIMS addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:268 +#: website/static/js/anonymousLogActionsList_extract.js:269 msgid "A user deauthorized the IQB-RIMS addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:269 +#: website/static/js/anonymousLogActionsList_extract.js:270 msgid "IQB-RIMS addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:270 +#: website/static/js/anonymousLogActionsList_extract.js:271 msgid "A user added a file to Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:271 +#: website/static/js/anonymousLogActionsList_extract.js:272 msgid "A user removed a file from Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:272 +#: website/static/js/anonymousLogActionsList_extract.js:273 msgid "A user updated a file in Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:273 +#: website/static/js/anonymousLogActionsList_extract.js:274 msgid "A user created a folder in Dropbox Business in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:274 +#: website/static/js/anonymousLogActionsList_extract.js:275 msgid "A user linked a Dropbox Business folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:275 +#: website/static/js/anonymousLogActionsList_extract.js:276 msgid "A user authorized the Dropbox Business addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:276 +#: website/static/js/anonymousLogActionsList_extract.js:277 msgid "A user deauthorized the Dropbox Business addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:277 +#: website/static/js/anonymousLogActionsList_extract.js:278 msgid "Dropbox Business addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:278 +#: website/static/js/anonymousLogActionsList_extract.js:279 msgid "A user added a file to an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:279 +#: website/static/js/anonymousLogActionsList_extract.js:280 msgid "A user removed a file in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:280 +#: website/static/js/anonymousLogActionsList_extract.js:281 msgid "A user updated a file in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:281 +#: website/static/js/anonymousLogActionsList_extract.js:282 msgid "A user created a folder in an OneDrive team folder in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:282 +#: website/static/js/anonymousLogActionsList_extract.js:283 msgid "A user authorized the OneDrive for Office365 addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:283 +#: website/static/js/anonymousLogActionsList_extract.js:284 msgid "A user deauthorized the OneDrive for Office365 addon for a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:284 +#: website/static/js/anonymousLogActionsList_extract.js:285 msgid "OneDrive for Office365 addon for a project deauthorized" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:285 +#: website/static/js/anonymousLogActionsList_extract.js:286 msgid "A user added a metadata in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:286 +#: website/static/js/anonymousLogActionsList_extract.js:287 msgid "A user added a metadata to a ${path} in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:287 +#: website/static/js/anonymousLogActionsList_extract.js:288 msgid "A user updated a metadata for a ${path} in a project" msgstr "" -#: website/static/js/anonymousLogActionsList_extract.js:288 +#: website/static/js/anonymousLogActionsList_extract.js:289 msgid "A user deleted a metadata for a ${path} in a project" msgstr "" +#: website/static/js/anonymousLogActionsList_extract.js:290 +msgid "A user created a workflow" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:291 +msgid "A user updated a workflow" +msgstr "" + +#: website/static/js/anonymousLogActionsList_extract.js:292 +msgid "A user deleted a workflow" +msgstr "" + #: website/static/js/apiApplication.js:215 msgid "Error fetching list of registered applications" msgstr "" @@ -4417,7 +4306,7 @@ msgstr "" msgid "View original document" msgstr "" -#: website/static/js/citationGrid.js:202 website/static/js/fangorn.js:2492 +#: website/static/js/citationGrid.js:202 website/static/js/fangorn.js:2521 msgid "View on %1$s" msgstr "" @@ -4610,7 +4499,7 @@ msgstr "" msgid "Date Created" msgstr "" -#: website/static/js/conference.js:43 website/static/js/fangorn.js:2083 +#: website/static/js/conference.js:43 website/static/js/fangorn.js:2112 msgid "Downloads" msgstr "" @@ -4774,259 +4663,259 @@ msgstr "" msgid "Renaming " msgstr "" -#: website/static/js/fangorn.js:473 +#: website/static/js/fangorn.js:477 msgid "Not allowed: Private folder" msgstr "" -#: website/static/js/fangorn.js:517 website/static/js/fangorn.js:547 +#: website/static/js/fangorn.js:521 website/static/js/fangorn.js:551 msgid "You cannot replace the Wiki images folder" msgstr "" -#: website/static/js/fangorn.js:522 website/static/js/fangorn.js:555 +#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:559 msgid "An item named \"%1$s\" already exists in this location." msgstr "" -#: website/static/js/fangorn.js:524 website/static/js/fangorn.js:533 -#: website/static/js/fangorn.js:557 +#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:537 +#: website/static/js/fangorn.js:561 msgid "Keep Both" msgstr "" -#: website/static/js/fangorn.js:524 website/static/js/fangorn.js:557 +#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:561 msgid " will retain both files (and their version histories) in this location." msgstr "" -#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:534 -#: website/static/js/fangorn.js:559 +#: website/static/js/fangorn.js:530 website/static/js/fangorn.js:538 +#: website/static/js/fangorn.js:563 msgid "Replace" msgstr "" -#: website/static/js/fangorn.js:526 website/static/js/fangorn.js:559 +#: website/static/js/fangorn.js:530 website/static/js/fangorn.js:563 msgid " will overwrite the existing file in this location. " msgstr "" -#: website/static/js/fangorn.js:527 website/static/js/fangorn.js:560 +#: website/static/js/fangorn.js:531 website/static/js/fangorn.js:564 msgid "You will lose previous versions of the overwritten file. " msgstr "" -#: website/static/js/fangorn.js:528 website/static/js/fangorn.js:561 +#: website/static/js/fangorn.js:532 website/static/js/fangorn.js:565 msgid "You will keep previous versions of the moved file." msgstr "" -#: website/static/js/fangorn.js:529 +#: website/static/js/fangorn.js:533 msgid "\"Skip\" will skip the current file." msgstr "" -#: website/static/js/fangorn.js:530 +#: website/static/js/fangorn.js:534 msgid "\"Stop\" will only move files with no conflicts." msgstr "" -#: website/static/js/fangorn.js:535 +#: website/static/js/fangorn.js:539 msgid "Skip" msgstr "" -#: website/static/js/fangorn.js:536 +#: website/static/js/fangorn.js:540 msgid "Stop" msgstr "" -#: website/static/js/fangorn.js:538 +#: website/static/js/fangorn.js:542 #, python-format msgid "Replace \"%s\"?" msgstr "" -#: website/static/js/fangorn.js:562 +#: website/static/js/fangorn.js:566 msgid " will cancel the move." msgstr "" -#: website/static/js/fangorn.js:571 +#: website/static/js/fangorn.js:575 msgid "Replace \"%1$s\"?" msgstr "" -#: website/static/js/fangorn.js:601 +#: website/static/js/fangorn.js:605 msgid "%1$s conflicts left to resolve." msgid_plural "%1$s conflict left to resolve." msgstr[0] "" msgstr[1] "" -#: website/static/js/fangorn.js:686 +#: website/static/js/fangorn.js:690 msgid "Successfully %1$s." msgstr "" -#: website/static/js/fangorn.js:734 +#: website/static/js/fangorn.js:738 msgid "Please refresh the page or contact %1$s if the problem persists." msgstr "" -#: website/static/js/fangorn.js:739 +#: website/static/js/fangorn.js:743 msgid "Failed to move or copy file" msgstr "" -#: website/static/js/fangorn.js:1034 +#: website/static/js/fangorn.js:1038 msgid "Could not upload file. The file may be invalid " msgstr "" -#: website/static/js/fangorn.js:1035 +#: website/static/js/fangorn.js:1039 msgid "or the file folder has been deleted." msgstr "" -#: website/static/js/fangorn.js:1043 website/static/js/fangorn.js:1048 +#: website/static/js/fangorn.js:1047 website/static/js/fangorn.js:1052 msgid "Cannot upload folders." msgstr "" -#: website/static/js/fangorn.js:1050 +#: website/static/js/fangorn.js:1054 msgid "Cannot upload file due to insufficient storage." msgstr "" -#: website/static/js/fangorn.js:1055 +#: website/static/js/fangorn.js:1059 msgid "Could not upload file. Possible reasons:
    " msgstr "" -#: website/static/js/fangorn.js:1056 +#: website/static/js/fangorn.js:1060 msgid "1. Cannot upload folders.
    2. " msgstr "" -#: website/static/js/fangorn.js:1058 +#: website/static/js/fangorn.js:1062 msgid "Unable to reach the provider, please try again later. " msgstr "" -#: website/static/js/fangorn.js:1059 +#: website/static/js/fangorn.js:1063 msgid "If the problem persists, please contact %1$s." msgstr "" -#: website/static/js/fangorn.js:1172 +#: website/static/js/fangorn.js:1176 msgid "The folder that wants to upload is empty." msgstr "" -#: website/static/js/fangorn.js:1204 +#: website/static/js/fangorn.js:1208 msgid "Not enough quota to upload. The total size of the folder %1$s." msgstr "" -#: website/static/js/fangorn.js:1348 website/static/js/fangorn.js:1426 +#: website/static/js/fangorn.js:1352 website/static/js/fangorn.js:1430 msgid "Folder creation failed." msgstr "" -#: website/static/js/fangorn.js:1390 +#: website/static/js/fangorn.js:1394 msgid "Please enter a folder name." msgstr "" -#: website/static/js/fangorn.js:1394 +#: website/static/js/fangorn.js:1398 msgid "Folder name contains illegal characters." msgstr "" -#: website/static/js/fangorn.js:1417 +#: website/static/js/fangorn.js:1421 msgid "New folder created!" msgstr "" -#: website/static/js/fangorn.js:1440 +#: website/static/js/fangorn.js:1444 msgid "Please enter a file name." msgstr "" -#: website/static/js/fangorn.js:1444 +#: website/static/js/fangorn.js:1448 msgid "File name contains illegal characters." msgstr "" -#: website/static/js/fangorn.js:1473 +#: website/static/js/fangorn.js:1477 msgid "New file created!" msgstr "" -#: website/static/js/fangorn.js:1486 +#: website/static/js/fangorn.js:1490 msgid "File creation failed." msgstr "" -#: website/static/js/fangorn.js:1506 +#: website/static/js/fangorn.js:1510 msgid " Deleting..." msgstr "" -#: website/static/js/fangorn.js:1528 +#: website/static/js/fangorn.js:1532 msgid "Delete failed." msgstr "" -#: website/static/js/fangorn.js:1543 +#: website/static/js/fangorn.js:1547 msgid "" "This folder and all of its contents will be deleted. This folder is " "linked to " msgstr "" -#: website/static/js/fangorn.js:1544 +#: website/static/js/fangorn.js:1548 msgid "your wiki(s). Deleting it will remove images embedded in your wiki(s). " msgstr "" -#: website/static/js/fangorn.js:1545 website/static/js/fangorn.js:1573 -#: website/static/js/fangorn.js:1596 website/static/js/pages/base-page.js:132 +#: website/static/js/fangorn.js:1549 website/static/js/fangorn.js:1577 +#: website/static/js/fangorn.js:1600 website/static/js/pages/base-page.js:132 msgid "This action is irreversible." msgstr "" -#: website/static/js/fangorn.js:1548 +#: website/static/js/fangorn.js:1552 msgid "" "This folder and ALL its contents will be deleted. This action is " "irreversible." msgstr "" -#: website/static/js/fangorn.js:1556 website/static/js/fangorn.js:1581 +#: website/static/js/fangorn.js:1560 website/static/js/fangorn.js:1585 msgid "Delete \"%1$s\"?" msgstr "" -#: website/static/js/fangorn.js:1558 +#: website/static/js/fangorn.js:1562 msgid "You don't have permission to delete this file." msgstr "" -#: website/static/js/fangorn.js:1566 +#: website/static/js/fangorn.js:1570 msgid "This file may be linked to your wiki(s). Deleting it will remove the" msgstr "" -#: website/static/js/fangorn.js:1567 +#: website/static/js/fangorn.js:1571 msgid " image embedded in your wiki(s). " msgstr "" -#: website/static/js/fangorn.js:1607 +#: website/static/js/fangorn.js:1611 msgid "" "Some of the selected items are folders. This will delete the folder(s) " "and ALL of their content." msgstr "" -#: website/static/js/fangorn.js:1621 +#: website/static/js/fangorn.js:1625 msgid " may be linked to" msgstr "" -#: website/static/js/fangorn.js:1622 +#: website/static/js/fangorn.js:1626 msgid " your wiki(s). Deleting them will remove images embedded in your wiki(s). " msgstr "" -#: website/static/js/fangorn.js:1630 +#: website/static/js/fangorn.js:1634 msgid "Delete All" msgstr "" -#: website/static/js/fangorn.js:1634 +#: website/static/js/fangorn.js:1638 msgid "" "Some of these files can't be deleted but you can delete the ones " "highlighted with green. This action is irreversible." msgstr "" -#: website/static/js/fangorn.js:1649 +#: website/static/js/fangorn.js:1653 msgid "Delete Some" msgstr "" -#: website/static/js/fangorn.js:1652 +#: website/static/js/fangorn.js:1656 msgid "Delete multiple files?" msgstr "" -#: website/static/js/fangorn.js:1678 +#: website/static/js/fangorn.js:1682 msgid "" "Unable to check out file. This is most likely due to the file being " "already checked-out" msgstr "" -#: website/static/js/fangorn.js:1679 +#: website/static/js/fangorn.js:1683 msgid " by another user." msgstr "" -#: website/static/js/fangorn.js:1994 +#: website/static/js/fangorn.js:2001 msgid "%1$s is not configured" msgstr "" -#: website/static/js/fangorn.js:1997 +#: website/static/js/fangorn.js:2004 msgid " Restore Add-ons" msgstr "" -#: website/static/js/fangorn.js:2008 website/static/js/fileViewTreebeard.js:63 +#: website/static/js/fangorn.js:2099 website/static/js/fileViewTreebeard.js:63 #: website/static/js/filesWidget.js:34 website/static/js/meetings.js:18 #: website/static/js/pages/project-dashboard-page.js:549 #: website/static/js/project-organizer.js:192 @@ -5034,236 +4923,232 @@ msgstr "" msgid "Name" msgstr "" -#: website/static/js/fangorn.js:2075 +#: website/static/js/fangorn.js:2104 msgid "Size" msgstr "" -#: website/static/js/fangorn.js:2079 +#: website/static/js/fangorn.js:2108 msgid "Version" msgstr "" -#: website/static/js/fangorn.js:2087 +#: website/static/js/fangorn.js:2116 #: website/static/js/pages/project-dashboard-page.js:555 #: website/static/js/project-organizer.js:201 msgid "Modified" msgstr "" -#: website/static/js/fangorn.js:2198 +#: website/static/js/fangorn.js:2227 msgid "Unable to retrieve components." msgstr "" -#: website/static/js/fangorn.js:2200 +#: website/static/js/fangorn.js:2229 msgid "Unable to retrieve components for node %1$s" msgstr "" -#: website/static/js/fangorn.js:2282 +#: website/static/js/fangorn.js:2311 msgid "You cannot rename your Wiki images folder." msgstr "" -#: website/static/js/fangorn.js:2392 +#: website/static/js/fangorn.js:2421 msgid "Upload Folder" msgstr "" -#: website/static/js/fangorn.js:2397 +#: website/static/js/fangorn.js:2426 msgid "Upload" msgstr "" -#: website/static/js/fangorn.js:2404 +#: website/static/js/fangorn.js:2433 msgid "Create Folder" msgstr "" -#: website/static/js/fangorn.js:2406 +#: website/static/js/fangorn.js:2440 msgid "Create File" msgstr "" -#: website/static/js/fangorn.js:2348 +#: website/static/js/fangorn.js:2447 msgid "Delete Folder" msgstr "" -#: website/static/js/fangorn.js:2427 website/static/js/filepage/index.js:522 +#: website/static/js/fangorn.js:2456 website/static/js/filepage/index.js:739 #: website/static/js/filepage/revisions.js:111 msgid "Download" msgstr "" -#: website/static/js/fangorn.js:2437 website/static/js/filepage/index.js:544 -msgid "View" -msgstr "" - -#: website/static/js/fangorn.js:2453 website/static/js/filepage/index.js:216 +#: website/static/js/fangorn.js:2482 website/static/js/filepage/index.js:216 msgid "This would mean " msgstr "" -#: website/static/js/fangorn.js:2454 website/static/js/filepage/index.js:217 +#: website/static/js/fangorn.js:2483 website/static/js/filepage/index.js:217 msgid "" "other contributors cannot edit, delete or upload new versions of this " "file " msgstr "" -#: website/static/js/fangorn.js:2455 +#: website/static/js/fangorn.js:2484 msgid "as long as it is checked-out. You can check it back in at anytime." msgstr "" -#: website/static/js/fangorn.js:2460 website/static/js/fangorn.js:2465 +#: website/static/js/fangorn.js:2489 website/static/js/fangorn.js:2494 #: website/static/js/filepage/index.js:243 msgid "Check out file" msgstr "" -#: website/static/js/fangorn.js:2461 +#: website/static/js/fangorn.js:2490 msgid "Confirm file check-out?" msgstr "" -#: website/static/js/fangorn.js:2474 +#: website/static/js/fangorn.js:2503 msgid "Check in file" msgstr "" -#: website/static/js/fangorn.js:2502 +#: website/static/js/fangorn.js:2531 msgid "Download as zip" msgstr "" -#: website/static/js/fangorn.js:2513 website/static/js/myProjects.js:1613 +#: website/static/js/fangorn.js:2542 website/static/js/myProjects.js:1613 msgid "Rename" msgstr "" -#: website/static/js/fangorn.js:2522 +#: website/static/js/fangorn.js:2551 msgid "copy link" msgstr "" -#: website/static/js/fangorn.js:2607 +#: website/static/js/fangorn.js:2636 msgid "New folder name" msgstr "" -#: website/static/js/fangorn.js:2635 +#: website/static/js/fangorn.js:2664 msgid "Enter name" msgstr "" -#: website/static/js/fangorn.js:2660 +#: website/static/js/fangorn.js:2694 msgid "New file name" msgstr "" -#: website/static/js/fangorn.js:2599 +#: website/static/js/fangorn.js:2756 msgid "Cancel Pending Uploads" msgstr "" -#: website/static/js/fangorn.js:2756 +#: website/static/js/fangorn.js:2785 msgid "Delete Multiple" msgstr "" -#: website/static/js/fangorn.js:2768 website/static/js/fangorn.js:3616 +#: website/static/js/fangorn.js:2797 website/static/js/fangorn.js:3648 msgid "Filter" msgstr "" -#: website/static/js/fangorn.js:2773 +#: website/static/js/fangorn.js:2802 msgid "Select rows:" msgstr "" -#: website/static/js/fangorn.js:2773 +#: website/static/js/fangorn.js:2802 msgid "" " Click on a row (outside the add-on, file, or folder name) to show " "further actions in the toolbar. Use Command or Shift keys to select " "multiple files." msgstr "" -#: website/static/js/fangorn.js:2774 +#: website/static/js/fangorn.js:2803 msgid "Open files:" msgstr "" -#: website/static/js/fangorn.js:2774 +#: website/static/js/fangorn.js:2803 msgid " Click a file name to go to view the file in the GakuNin RDM." msgstr "" -#: website/static/js/fangorn.js:2775 +#: website/static/js/fangorn.js:2804 msgid "Open files in new tab:" msgstr "" -#: website/static/js/fangorn.js:2775 +#: website/static/js/fangorn.js:2804 msgid "" " Press Command (Ctrl in Windows) and click a file name to open it in a " "new tab." msgstr "" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid "Download as zip:" msgstr "" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid "" " Click on the row of an add-on or folder and click the Download as Zip " "button in the toolbar." msgstr "" -#: website/static/js/fangorn.js:2776 +#: website/static/js/fangorn.js:2805 msgid " Not available for all storage add-ons." msgstr "" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid "Copy files:" msgstr "" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid "" " Press Option (Alt in Windows) while dragging a file to a new folder or " "component." msgstr "" -#: website/static/js/fangorn.js:2777 +#: website/static/js/fangorn.js:2806 msgid " Only for contributors with write access." msgstr "" -#: website/static/js/fangorn.js:2783 +#: website/static/js/fangorn.js:2812 msgid "How to Use the File Browser" msgstr "" -#: website/static/js/fangorn.js:2847 +#: website/static/js/fangorn.js:2876 msgid "Please wait for current action to complete" msgstr "" -#: website/static/js/fangorn.js:3028 +#: website/static/js/fangorn.js:3057 msgid "Upload Status" msgstr "" -#: website/static/js/fangorn.js:3028 +#: website/static/js/fangorn.js:3057 msgid " files succeeded." msgstr "" -#: website/static/js/fangorn.js:3139 +#: website/static/js/fangorn.js:3168 msgid "Done" msgstr "" -#: website/static/js/fangorn.js:3141 +#: website/static/js/fangorn.js:3170 msgid "Move Status" msgstr "" -#: website/static/js/fangorn.js:3143 +#: website/static/js/fangorn.js:3172 msgid " files successfully moved." msgstr "" -#: website/static/js/fangorn.js:3144 +#: website/static/js/fangorn.js:3173 msgid " Skipped %1$s/%2$s files." msgstr "" -#: website/static/js/fangorn.js:3530 +#: website/static/js/fangorn.js:3562 msgid "You have pending uploads, if you leave this page they may not complete." msgstr "" -#: website/static/js/fangorn.js:3533 +#: website/static/js/fangorn.js:3565 msgid "" "You have pending file operations, if you leave this page they may not " "complete." msgstr "" -#: website/static/js/fangorn.js:3577 +#: website/static/js/fangorn.js:3609 msgid "This file is too large (%1$s). Max file size is %2$s." msgstr "" -#: website/static/js/fangorn.js:3593 +#: website/static/js/fangorn.js:3625 msgid "Not enough quota to upload the file." msgstr "" -#: website/static/js/fangorn.js:3600 +#: website/static/js/fangorn.js:3632 msgid "Quota usage alert" msgstr "" -#: website/static/js/fangorn.js:3601 +#: website/static/js/fangorn.js:3633 #, python-format msgid "You have used more than %1$s% of your quota." msgstr "" @@ -5863,7 +5748,7 @@ msgid "Code - Other:" msgstr "" #: website/static/js/logActionsList_extract.js:3 -#: website/static/js/logActionsList_extract.js:76 +#: website/static/js/logActionsList_extract.js:78 msgid "${user} created ${node}" msgstr "" @@ -6074,1152 +5959,1172 @@ msgid "${user} checked in ${kind} ${path} to ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:54 -msgid "${user} added a comment ${comment_location} in ${node}" +msgid "${user} locked ${kind} ${path} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:55 -msgid "${user} deleted a comment ${comment_location} in ${node}" +msgid "${user} unlocked ${kind} ${path} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:56 -msgid "${user} restored a comment ${comment_location} in ${node}" +msgid "${user} added a comment ${comment_location} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:57 -msgid "${user} updated a comment ${comment_location} in ${node}" +msgid "${user} deleted a comment ${comment_location} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:58 -msgid "${user} initiated an embargoed registration of ${node}" +msgid "${user} restored a comment ${comment_location} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:59 -msgid "${user} approved embargoed registration of ${node}" +msgid "${user} updated a comment ${comment_location} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:60 -msgid "Embargo of registration of ${node} approved" +msgid "${user} initiated an embargoed registration of ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:61 -msgid "${user} cancelled embargoed registration of ${node}" +msgid "${user} approved embargoed registration of ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:62 -msgid "${user} completed embargo of ${node}" +msgid "Embargo of registration of ${node} approved" msgstr "" #: website/static/js/logActionsList_extract.js:63 -msgid "Embargo for ${node} completed" +msgid "${user} cancelled embargoed registration of ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:64 -msgid "Embargo for ${node} ended" +msgid "${user} completed embargo of ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:65 -msgid "${user} initiated withdrawal of a registration of ${node}" +msgid "Embargo for ${node} completed" msgstr "" #: website/static/js/logActionsList_extract.js:66 -msgid "A withdrawal of a registration of ${node} was proposed" +msgid "Embargo for ${node} ended" msgstr "" #: website/static/js/logActionsList_extract.js:67 -msgid "${user} approved a withdrawal of a registration of ${node}" +msgid "${user} initiated withdrawal of a registration of ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:68 +msgid "A withdrawal of a registration of ${node} was proposed" msgstr "" #: website/static/js/logActionsList_extract.js:69 +msgid "${user} approved a withdrawal of a registration of ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:71 msgid "${user} cancelled withdrawal of a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:70 +#: website/static/js/logActionsList_extract.js:72 msgid "A registration of ${node} was created on an external registry." msgstr "" -#: website/static/js/logActionsList_extract.js:71 +#: website/static/js/logActionsList_extract.js:73 msgid "A registration of ${node} was imported to OSF from an external registry." msgstr "" -#: website/static/js/logActionsList_extract.js:72 +#: website/static/js/logActionsList_extract.js:74 msgid "${user} initiated a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:73 +#: website/static/js/logActionsList_extract.js:75 msgid "${user} approved a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:74 +#: website/static/js/logActionsList_extract.js:76 msgid "Registration of ${node} was approved" msgstr "" -#: website/static/js/logActionsList_extract.js:75 +#: website/static/js/logActionsList_extract.js:77 msgid "${user} cancelled a registration of ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:77 +#: website/static/js/logActionsList_extract.js:79 msgid "${user} created fork from ${forked_from}" msgstr "" -#: website/static/js/logActionsList_extract.js:78 +#: website/static/js/logActionsList_extract.js:80 msgid "${user} removed ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:79 +#: website/static/js/logActionsList_extract.js:81 msgid "${user} enabled access requests for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:80 +#: website/static/js/logActionsList_extract.js:82 msgid "${user} disabled access requests for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:81 +#: website/static/js/logActionsList_extract.js:83 msgid "${user} updated the license of ${node} ${license}" msgstr "" -#: website/static/js/logActionsList_extract.js:82 +#: website/static/js/logActionsList_extract.js:84 msgid "${user} added tag ${tag} to ${path} in ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:83 +#: website/static/js/logActionsList_extract.js:85 msgid "${user} removed tag ${tag} from ${path} in ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:84 +#: website/static/js/logActionsList_extract.js:86 msgid "${user} added file ${path} to ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:85 +#: website/static/js/logActionsList_extract.js:87 msgid "${user} created folder ${path} in ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:86 +#: website/static/js/logActionsList_extract.js:88 msgid "${user} updated file ${path} in ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:87 +#: website/static/js/logActionsList_extract.js:89 msgid "${user} removed ${path_type} ${path} from ${storage_name} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:88 +#: website/static/js/logActionsList_extract.js:90 msgid "${user} added ${institution} affiliation to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:89 +#: website/static/js/logActionsList_extract.js:91 msgid "${user} removed ${institution} affiliation from ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:90 +#: website/static/js/logActionsList_extract.js:92 msgid "${user} made ${node} a ${preprint} on ${preprint_provider} Preprints" msgstr "" -#: website/static/js/logActionsList_extract.js:91 +#: website/static/js/logActionsList_extract.js:93 msgid "" "${user} updated the primary file of this ${preprint} on " "${preprint_provider} Preprints" msgstr "" -#: website/static/js/logActionsList_extract.js:92 +#: website/static/js/logActionsList_extract.js:94 msgid "" "${user} updated the license of this ${preprint} on ${preprint_provider} " "Preprints ${license}" msgstr "" -#: website/static/js/logActionsList_extract.js:93 +#: website/static/js/logActionsList_extract.js:95 msgid "${user} updated the subjects on ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:94 +#: website/static/js/logActionsList_extract.js:96 msgid "${user} created ${anonymous_link} view-only link to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:95 +#: website/static/js/logActionsList_extract.js:97 msgid "${user} removed ${anonymous_link} view-only link to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:96 +#: website/static/js/logActionsList_extract.js:98 msgid "" "${user} changed the conflict of interest statement availability for " "${preprint}." msgstr "" -#: website/static/js/logActionsList_extract.js:97 +#: website/static/js/logActionsList_extract.js:99 msgid "${user} changed the conflict of interest statement for ${preprint}." msgstr "" -#: website/static/js/logActionsList_extract.js:98 +#: website/static/js/logActionsList_extract.js:100 msgid "${user} has updated the has links to data field to ${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:99 +#: website/static/js/logActionsList_extract.js:101 msgid "${user} has updated their data links" msgstr "" -#: website/static/js/logActionsList_extract.js:100 +#: website/static/js/logActionsList_extract.js:102 msgid "${user} has updated their data statement" msgstr "" -#: website/static/js/logActionsList_extract.js:101 +#: website/static/js/logActionsList_extract.js:103 msgid "" "${user} has updated their preregistration data link availability to " "${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:102 +#: website/static/js/logActionsList_extract.js:104 msgid "${user} has updated their preregistration data links" msgstr "" -#: website/static/js/logActionsList_extract.js:103 +#: website/static/js/logActionsList_extract.js:105 msgid "${user} has updated their preregistration data availability statement" msgstr "" -#: website/static/js/logActionsList_extract.js:104 +#: website/static/js/logActionsList_extract.js:106 msgid "${user} has updated their preregistration links to ${value}" msgstr "" -#: website/static/js/logActionsList_extract.js:105 +#: website/static/js/logActionsList_extract.js:107 msgid "${user} verified timestamp" msgstr "" -#: website/static/js/logActionsList_extract.js:106 +#: website/static/js/logActionsList_extract.js:108 msgid "${user} requested trusted timestamp" msgstr "" -#: website/static/js/logActionsList_extract.js:107 +#: website/static/js/logActionsList_extract.js:109 msgid "${user} requested trusted timestamp file ${path}" msgstr "" -#: website/static/js/logActionsList_extract.js:108 +#: website/static/js/logActionsList_extract.js:110 msgid "" "${user} downloaded a file of timestamp errors as a " "${timestamp_errors_file_format}" msgstr "" -#: website/static/js/logActionsList_extract.js:109 +#: website/static/js/logActionsList_extract.js:111 msgid "" "[MAPCORE_SYNC:ERROR] ${user} cannot create a new mAP group for GRDM " "project <${node}> (See logs for details)" msgstr "" -#: website/static/js/logActionsList_extract.js:110 +#: website/static/js/logActionsList_extract.js:112 msgid "" "[MAPCORE_SYNC:ERROR] mAP group for GRDM project <${node}> cannot be " "updated (See logs for details)" msgstr "" -#: website/static/js/logActionsList_extract.js:111 +#: website/static/js/logActionsList_extract.js:113 msgid "" "[MAPCORE_SYNC:ERROR] GRDM project <${node}> cannot be updated with mAP " "group (See logs for details)" msgstr "" -#: website/static/js/logActionsList_extract.js:112 +#: website/static/js/logActionsList_extract.js:114 msgid "" "[MAPCORE_SYNC:NOTICE] Unknown (unregistered in GRDM) users belong to mAP " "group <${node}> (ignored) (See logs for details)" msgstr "" -#: website/static/js/logActionsList_extract.js:113 +#: website/static/js/logActionsList_extract.js:115 msgid "${user} added file ${path} to Box in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:114 +#: website/static/js/logActionsList_extract.js:116 msgid "${user} removed ${path_type} ${path} from Box in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:115 +#: website/static/js/logActionsList_extract.js:117 msgid "${user} updated file ${path} in Box in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:116 +#: website/static/js/logActionsList_extract.js:118 msgid "${user} created folder ${path} in Box in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:117 +#: website/static/js/logActionsList_extract.js:119 msgid "${user} linked Box folder ${box_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:118 +#: website/static/js/logActionsList_extract.js:120 msgid "${user} authorized the Box addon in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:119 +#: website/static/js/logActionsList_extract.js:121 msgid "${user} deauthorized the Box addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:120 +#: website/static/js/logActionsList_extract.js:122 msgid "Box addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:121 +#: website/static/js/logActionsList_extract.js:123 msgid "${user} added file ${filename} to Dataverse dataset ${dataset} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:122 +#: website/static/js/logActionsList_extract.js:124 msgid "" "${user} removed file ${filename} from Dataverse dataset ${dataset} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:123 +#: website/static/js/logActionsList_extract.js:125 msgid "${user} linked Dataverse dataset ${dataset} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:124 +#: website/static/js/logActionsList_extract.js:126 msgid "${user} linked Dataverse dataset ${study} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:125 +#: website/static/js/logActionsList_extract.js:127 msgid "${user} published a new version of Dataverse dataset ${dataset} on ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:126 +#: website/static/js/logActionsList_extract.js:128 msgid "${user} published a new version of Dataverse dataset ${study} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:127 +#: website/static/js/logActionsList_extract.js:129 msgid "${user} authorized the Dataverse addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:128 +#: website/static/js/logActionsList_extract.js:130 msgid "${user} deauthorized the Dataverse addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:129 +#: website/static/js/logActionsList_extract.js:131 msgid "Dataverse addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:130 +#: website/static/js/logActionsList_extract.js:132 msgid "${user} added file ${path} to Dropbox in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:131 +#: website/static/js/logActionsList_extract.js:133 msgid "${user} removed ${path_type} ${path} from Dropbox in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:132 +#: website/static/js/logActionsList_extract.js:134 msgid "${user} updated file ${path} in Dropbox in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:133 +#: website/static/js/logActionsList_extract.js:135 msgid "${user} created folder ${path} in Dropbox in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:134 +#: website/static/js/logActionsList_extract.js:136 msgid "${user} linked Dropbox folder ${dropbox_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:135 +#: website/static/js/logActionsList_extract.js:137 msgid "${user} authorized the Dropbox addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:136 +#: website/static/js/logActionsList_extract.js:138 msgid "${user} deauthorized the Dropbox addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:137 +#: website/static/js/logActionsList_extract.js:139 msgid "Dropbox addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:138 +#: website/static/js/logActionsList_extract.js:140 msgid "${user} linked figshare ${folder} ${folder_name} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:139 +#: website/static/js/logActionsList_extract.js:141 msgid "${user} unlinked content from figshare in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:140 +#: website/static/js/logActionsList_extract.js:142 msgid "${user} added file ${path} to figshare in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:141 +#: website/static/js/logActionsList_extract.js:143 msgid "${user} removed ${path_type} ${path} from figshare in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:142 +#: website/static/js/logActionsList_extract.js:144 msgid "${user} created folder ${path} in figshare in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:143 +#: website/static/js/logActionsList_extract.js:145 msgid "${user} authorized the figshare addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:144 +#: website/static/js/logActionsList_extract.js:146 msgid "${user} deauthorized the figshare addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:145 +#: website/static/js/logActionsList_extract.js:147 msgid "figshare addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:146 +#: website/static/js/logActionsList_extract.js:148 msgid "${user} changed external link to ${forward_url} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:147 +#: website/static/js/logActionsList_extract.js:149 msgid "${user} added file ${path} to GitHub repo ${repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:148 +#: website/static/js/logActionsList_extract.js:150 msgid "${user} removed ${path_type} ${path} in GitHub repo ${repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:149 +#: website/static/js/logActionsList_extract.js:151 msgid "${user} updated file ${path} in GitHub repo ${repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:150 +#: website/static/js/logActionsList_extract.js:152 msgid "${user} created folder ${path} in GitHub repo ${repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:151 +#: website/static/js/logActionsList_extract.js:153 msgid "${user} authorized the GitHub addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:152 +#: website/static/js/logActionsList_extract.js:154 msgid "${user} deauthorized the GitHub addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:153 +#: website/static/js/logActionsList_extract.js:155 msgid "GitHub addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:154 +#: website/static/js/logActionsList_extract.js:156 msgid "${user} linked GitHub repo ${repo} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:155 +#: website/static/js/logActionsList_extract.js:157 msgid "${user} added file ${path} to GitLab repo ${gitlab_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:156 +#: website/static/js/logActionsList_extract.js:158 msgid "${user} removed file ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:157 +#: website/static/js/logActionsList_extract.js:159 msgid "${user} updated file ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:158 +#: website/static/js/logActionsList_extract.js:160 msgid "${user} created folder ${path} in GitLab repo ${gitlab_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:159 +#: website/static/js/logActionsList_extract.js:161 msgid "${user} authorized the GitLab addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:160 +#: website/static/js/logActionsList_extract.js:162 msgid "${user} deauthorized the GitLab addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:161 +#: website/static/js/logActionsList_extract.js:163 msgid "GitLab addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:162 +#: website/static/js/logActionsList_extract.js:164 msgid "${user} linked GitLab repo ${gitlab_repo} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:163 +#: website/static/js/logActionsList_extract.js:165 msgid "${user} linked Mendeley folder ${folder_name} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:164 +#: website/static/js/logActionsList_extract.js:166 msgid "${user} authorized the Mendeley addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:165 +#: website/static/js/logActionsList_extract.js:167 msgid "${user} deauthorized the Mendeley addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:166 +#: website/static/js/logActionsList_extract.js:168 msgid "${user} linked Zotero folder ${folder_name} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:167 +#: website/static/js/logActionsList_extract.js:169 msgid "${user} linked Zotero library ${library_name} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:168 +#: website/static/js/logActionsList_extract.js:170 msgid "${user} authorized the Zotero addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:169 +#: website/static/js/logActionsList_extract.js:171 msgid "${user} deauthorized the Zotero addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:170 +#: website/static/js/logActionsList_extract.js:172 msgid "${user} added file ${path} to ownCloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:171 +#: website/static/js/logActionsList_extract.js:173 msgid "${user} removed ${path_type} ${path} from ownCloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:172 +#: website/static/js/logActionsList_extract.js:174 msgid "${user} updated file ${path} in ownCloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:173 +#: website/static/js/logActionsList_extract.js:175 msgid "${user} created folder ${path} in ownCloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:174 +#: website/static/js/logActionsList_extract.js:176 msgid "${user} linked ownCloud folder ${folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:175 +#: website/static/js/logActionsList_extract.js:177 msgid "${user} authorized the ownCloud addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:176 +#: website/static/js/logActionsList_extract.js:178 msgid "${user} deauthorized the ownCloud addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:177 +#: website/static/js/logActionsList_extract.js:179 msgid "ownCloud addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:178 +#: website/static/js/logActionsList_extract.js:180 msgid "${user} added file ${path} to Microsoft OneDrive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:179 +#: website/static/js/logActionsList_extract.js:181 msgid "${user} removed ${path_type} ${path} from Microsoft OneDrive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:180 +#: website/static/js/logActionsList_extract.js:182 msgid "${user} updated file ${path} in Microsoft OneDrive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:181 +#: website/static/js/logActionsList_extract.js:183 msgid "${user} created folder ${path} in Microsoft OneDrive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:182 +#: website/static/js/logActionsList_extract.js:184 msgid "${user} linked Microsoft OneDrive folder ${onedrive_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:183 +#: website/static/js/logActionsList_extract.js:185 msgid "${user} authorized the Microsoft OneDrive addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:184 +#: website/static/js/logActionsList_extract.js:186 msgid "${user} deauthorized the Microsoft OneDrive addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:185 +#: website/static/js/logActionsList_extract.js:187 msgid "Microsoft OneDrive addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:186 +#: website/static/js/logActionsList_extract.js:188 msgid "${user} linked the Amazon S3 bucket ${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:187 +#: website/static/js/logActionsList_extract.js:189 msgid "${user} unselected the Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:188 +#: website/static/js/logActionsList_extract.js:190 msgid "${user} added file ${path} to Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:189 +#: website/static/js/logActionsList_extract.js:191 msgid "${user} removed ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:190 +#: website/static/js/logActionsList_extract.js:192 msgid "${user} updated file ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:191 +#: website/static/js/logActionsList_extract.js:193 msgid "${user} created folder ${path} in Amazon S3 bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:192 +#: website/static/js/logActionsList_extract.js:194 msgid "${user} authorized the Amazon S3 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:193 +#: website/static/js/logActionsList_extract.js:195 msgid "${user} deauthorized the Amazon S3 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:194 +#: website/static/js/logActionsList_extract.js:196 msgid "Amazon S3 addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:195 +#: website/static/js/logActionsList_extract.js:197 msgid "${user} added file ${googledrive_path} to Google Drive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:196 +#: website/static/js/logActionsList_extract.js:198 msgid "" "${user} removed ${path_type} ${googledrive_path} from Google Drive in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:197 +#: website/static/js/logActionsList_extract.js:199 msgid "${user} updated file ${googledrive_path} in Google Drive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:198 +#: website/static/js/logActionsList_extract.js:200 msgid "${user} created folder ${googledrive_path} in Google Drive in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:199 +#: website/static/js/logActionsList_extract.js:201 msgid "${user} linked Google Drive folder ${googledrive_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:200 +#: website/static/js/logActionsList_extract.js:202 msgid "${user} authorized the Google Drive addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:201 +#: website/static/js/logActionsList_extract.js:203 msgid "${user} deauthorized the Google Drive addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:202 +#: website/static/js/logActionsList_extract.js:204 msgid "Google Drive addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:203 +#: website/static/js/logActionsList_extract.js:205 msgid "${user} added file ${path} to Bitbucket repo ${bitbucket_repo} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:204 +#: website/static/js/logActionsList_extract.js:206 msgid "" "${user} removed ${path_type} ${path} in Bitbucket repo ${bitbucket_repo} " "in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:205 +#: website/static/js/logActionsList_extract.js:207 msgid "" "${user} updated file ${path} in Bitbucket repo ${bitbucket_repo} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:206 +#: website/static/js/logActionsList_extract.js:208 msgid "" "${user} created folder ${path} in Bitbucket repo ${bitbucket_repo} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:207 +#: website/static/js/logActionsList_extract.js:209 msgid "${user} authorized the Bitbucket addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:208 +#: website/static/js/logActionsList_extract.js:210 msgid "${user} deauthorized the Bitbucket addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:209 +#: website/static/js/logActionsList_extract.js:211 msgid "Bitbucket addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:210 +#: website/static/js/logActionsList_extract.js:212 msgid "${user} linked Bitbucket repo ${bitbucket_repo} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:211 +#: website/static/js/logActionsList_extract.js:213 msgid "${user} linked the Swift container ${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:212 +#: website/static/js/logActionsList_extract.js:214 msgid "${user} unselected the Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:213 +#: website/static/js/logActionsList_extract.js:215 msgid "${user} added file ${path} to Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:214 +#: website/static/js/logActionsList_extract.js:216 msgid "${user} removed ${path} in Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:215 +#: website/static/js/logActionsList_extract.js:217 msgid "${user} updated file ${path} in Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:216 +#: website/static/js/logActionsList_extract.js:218 msgid "${user} created folder ${path} in Swift container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:217 +#: website/static/js/logActionsList_extract.js:219 msgid "${user} authorized the Swift addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:218 +#: website/static/js/logActionsList_extract.js:220 msgid "${user} deauthorized the Swift addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:219 +#: website/static/js/logActionsList_extract.js:221 msgid "Swift addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:220 +#: website/static/js/logActionsList_extract.js:222 msgid "${user} linked the Azure Blob Storage container ${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:221 +#: website/static/js/logActionsList_extract.js:223 msgid "${user} unselected the Azure Blob Storage container ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:222 +#: website/static/js/logActionsList_extract.js:224 msgid "" "${user} added file ${path} to Azure Blob Storage container ${bucket} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:223 +#: website/static/js/logActionsList_extract.js:225 msgid "" "${user} removed ${path} in Azure Blob Storage container ${bucket} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:224 +#: website/static/js/logActionsList_extract.js:226 msgid "" "${user} updated file ${path} in Azure Blob Storage container ${bucket} in" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:225 +#: website/static/js/logActionsList_extract.js:227 msgid "" "${user} created folder ${path} in Azure Blob Storage container ${bucket} " "in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:226 -msgid "${user} authorized the Azure Blob Storage addon for ${node}" -msgstr "" - -#: website/static/js/logActionsList_extract.js:227 -msgid "${user} deauthorized the Azure Blob Storage addon for ${node}" -msgstr "" - #: website/static/js/logActionsList_extract.js:228 -msgid "Azure Blob Storage addon for ${node} deauthorized" +msgid "${user} authorized the Azure Blob Storage addon for ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:229 -msgid "${user} added file ${filename} to WEKO index ${dataset} in ${node}" +msgid "${user} deauthorized the Azure Blob Storage addon for ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:230 -msgid "${user} removed file ${filename} from WEKO index ${dataset} in ${node}" +msgid "Azure Blob Storage addon for ${node} deauthorized" msgstr "" #: website/static/js/logActionsList_extract.js:231 -msgid "${user} linked WEKO index ${dataset} to ${node}" +msgid "${user} added draft file ${filename} to WEKO index ${dataset} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:232 -msgid "${user} created an index ${filename} on ${node}" +msgid "" +"${user} removed draft file ${filename} from WEKO index ${dataset} in " +"${node}" msgstr "" #: website/static/js/logActionsList_extract.js:233 -msgid "${user} created an item ${filename} on ${node}" +msgid "${user} linked WEKO index ${dataset} to ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:234 -msgid "${user} created folder ${filename} in WEKO index ${dataset} in ${node}" +msgid "" +"${user} created draft folder ${filename} in WEKO index ${dataset} in " +"${node}" msgstr "" #: website/static/js/logActionsList_extract.js:235 -msgid "${user} authorized the WEKO addon for ${node}" +msgid "${user} deposit item ${path} in WEKO index ${dataset} in ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:236 -msgid "${user} deauthorized the WEKO addon for ${node}" +msgid "${user} authorized the WEKO addon for ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:237 -msgid "WEKO addon for ${node} deauthorized" +msgid "${user} deauthorized the WEKO addon for ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:238 -msgid "${user} linked the S3 Compatible Storage bucket ${bucket} to ${node}" +msgid "WEKO addon for ${node} deauthorized" msgstr "" #: website/static/js/logActionsList_extract.js:239 -msgid "${user} unselected the S3 Compatible Storage bucket ${bucket} in ${node}" +msgid "${user} linked the S3 Compatible Storage bucket ${bucket} to ${node}" msgstr "" #: website/static/js/logActionsList_extract.js:240 +msgid "${user} unselected the S3 Compatible Storage bucket ${bucket} in ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:241 msgid "" "${user} added file ${path} to S3 Compatible Storage bucket ${bucket} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:241 +#: website/static/js/logActionsList_extract.js:242 msgid "" "${user} removed ${path} in S3 Compatible Storage bucket ${bucket} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:242 +#: website/static/js/logActionsList_extract.js:243 msgid "" "${user} updated file ${path} in S3 Compatible Storage bucket ${bucket} in" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:243 +#: website/static/js/logActionsList_extract.js:244 msgid "" "${user} created folder ${path} in S3 Compatible Storage bucket ${bucket} " "in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:244 +#: website/static/js/logActionsList_extract.js:245 msgid "${user} authorized the S3 Compatible Storage addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:245 +#: website/static/js/logActionsList_extract.js:246 msgid "${user} deauthorized the S3 Compatible Storage addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:246 +#: website/static/js/logActionsList_extract.js:247 msgid "S3 Compatible Storage addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:247 +#: website/static/js/logActionsList_extract.js:248 msgid "" "${user} added file ${path} to S3 Compatible Storage for Institutions in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:248 +#: website/static/js/logActionsList_extract.js:249 msgid "" "${user} removed ${path_type} ${path} from S3 Compatible Storage for " "Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:249 +#: website/static/js/logActionsList_extract.js:250 msgid "" "${user} updated file ${path} in S3 Compatible Storage for Institutions in" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:250 +#: website/static/js/logActionsList_extract.js:251 msgid "" "${user} created folder ${path} in S3 Compatible Storage for Institutions " "in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:251 +#: website/static/js/logActionsList_extract.js:252 msgid "" "${user} linked S3 Compatible Storage for Institutions folder ${folder} to" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:252 +#: website/static/js/logActionsList_extract.js:253 msgid "" "${user} authorized the S3 Compatible Storage for Institutions addon for " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:253 +#: website/static/js/logActionsList_extract.js:254 msgid "" "${user} deauthorized the S3 Compatible Storage for Institutions addon for" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:254 +#: website/static/js/logActionsList_extract.js:255 msgid "S3 Compatible Storage for Institutions addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:255 +#: website/static/js/logActionsList_extract.js:256 msgid "" "${user} linked the Oracle Cloud Infrastructure Object Storage bucket " "${bucket} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:256 +#: website/static/js/logActionsList_extract.js:257 msgid "" "${user} unselected the Oracle Cloud Infrastructure Object Storage bucket " "${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:257 +#: website/static/js/logActionsList_extract.js:258 msgid "" "${user} added file ${path} to Oracle Cloud Infrastructure Object Storage " "bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:258 +#: website/static/js/logActionsList_extract.js:259 msgid "" "${user} removed ${path} in Oracle Cloud Infrastructure Object Storage " "bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:259 +#: website/static/js/logActionsList_extract.js:260 msgid "" "${user} updated file ${path} in Oracle Cloud Infrastructure Object " "Storage bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:260 +#: website/static/js/logActionsList_extract.js:261 msgid "" "${user} created folder ${path} in Oracle Cloud Infrastructure Object " "Storage bucket ${bucket} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:261 +#: website/static/js/logActionsList_extract.js:262 msgid "" "${user} authorized the Oracle Cloud Infrastructure Object Storage addon " "for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:262 +#: website/static/js/logActionsList_extract.js:263 msgid "" "${user} deauthorized the Oracle Cloud Infrastructure Object Storage addon" " for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:263 +#: website/static/js/logActionsList_extract.js:264 msgid "Oracle Cloud Infrastructure Object Storage addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:264 +#: website/static/js/logActionsList_extract.js:265 msgid "" "${user} added file ${path} to Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:265 +#: website/static/js/logActionsList_extract.js:266 msgid "" "${user} removed ${path_type} ${path} from Oracle Cloud Infrastructure for" " Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:266 +#: website/static/js/logActionsList_extract.js:267 msgid "" "${user} updated file ${path} in Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:267 +#: website/static/js/logActionsList_extract.js:268 msgid "" "${user} created folder ${path} in Oracle Cloud Infrastructure for " "Institutions in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:268 +#: website/static/js/logActionsList_extract.js:269 msgid "" "${user} linked Oracle Cloud Infrastructure for Institutions folder " "${folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:269 +#: website/static/js/logActionsList_extract.js:270 msgid "" "${user} authorized the Oracle Cloud Infrastructure for Institutions addon" " for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:270 +#: website/static/js/logActionsList_extract.js:271 msgid "" "${user} deauthorized the Oracle Cloud Infrastructure for Institutions " "addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:271 +#: website/static/js/logActionsList_extract.js:272 msgid "" "Oracle Cloud Infrastructure for Institutions addon for ${node} " "deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:272 +#: website/static/js/logActionsList_extract.js:273 msgid "${user} added file ${path} to Nextcloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:273 +#: website/static/js/logActionsList_extract.js:274 msgid "${user} removed ${path_type} ${path} from Nextcloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:274 +#: website/static/js/logActionsList_extract.js:275 msgid "${user} updated file ${path} in Nextcloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:275 +#: website/static/js/logActionsList_extract.js:276 msgid "${user} created folder ${path} in Nextcloud in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:276 +#: website/static/js/logActionsList_extract.js:277 msgid "${user} linked Nextcloud folder ${folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:277 +#: website/static/js/logActionsList_extract.js:278 msgid "${user} authorized the Nextcloud addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:278 +#: website/static/js/logActionsList_extract.js:279 msgid "${user} deauthorized the Nextcloud addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:279 +#: website/static/js/logActionsList_extract.js:280 msgid "Nextcloud addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:280 +#: website/static/js/logActionsList_extract.js:281 msgid "${user} added file ${path} to Nextcloud (for Institutions) in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:281 +#: website/static/js/logActionsList_extract.js:282 msgid "" "${user} removed ${path_type} ${path} from Nextcloud (for Institutions) in" " ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:282 +#: website/static/js/logActionsList_extract.js:283 msgid "${user} updated file ${path} in Nextcloud (for Institutions) in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:283 +#: website/static/js/logActionsList_extract.js:284 msgid "${user} created folder ${path} in Nextcloud (for Institutions) in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:284 +#: website/static/js/logActionsList_extract.js:285 msgid "${user} linked Nextcloud (for Institutions) folder ${folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:285 +#: website/static/js/logActionsList_extract.js:286 msgid "${user} authorized the Nextcloud (for Institutions) addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:286 +#: website/static/js/logActionsList_extract.js:287 msgid "${user} deauthorized the Nextcloud (for Institutions) addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:287 +#: website/static/js/logActionsList_extract.js:288 msgid "Nextcloud (for Institutions) addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:288 +#: website/static/js/logActionsList_extract.js:289 msgid "${user} added file ${iqbrims_path} to IQB-RIMS in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:289 +#: website/static/js/logActionsList_extract.js:290 msgid "${user} removed ${path_type} ${iqbrims_path} from IQB-RIMS in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:290 +#: website/static/js/logActionsList_extract.js:291 msgid "${user} updated file ${iqbrims_path} in IQB-RIMS in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:291 +#: website/static/js/logActionsList_extract.js:292 msgid "${user} created folder ${iqbrims_path} in IQB-RIMS in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:292 +#: website/static/js/logActionsList_extract.js:293 msgid "${user} linked IQB-RIMS folder ${iqbrims_folder} to ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:293 +#: website/static/js/logActionsList_extract.js:294 msgid "${user} authorized the IQB-RIMS addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:294 +#: website/static/js/logActionsList_extract.js:295 msgid "${user} deauthorized the IQB-RIMS addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:295 +#: website/static/js/logActionsList_extract.js:296 msgid "IQB-RIMS addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:296 -#: website/static/js/logActionsList_extract.js:298 +#: website/static/js/logActionsList_extract.js:297 +#: website/static/js/logActionsList_extract.js:299 msgid "${user} started IQB-RIMS workflow for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:297 -#: website/static/js/logActionsList_extract.js:299 +#: website/static/js/logActionsList_extract.js:298 +#: website/static/js/logActionsList_extract.js:300 msgid "Finished workflow of ${user} for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:300 +#: website/static/js/logActionsList_extract.js:301 msgid "${user} added file ${path} to Dropbox Business in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:301 +#: website/static/js/logActionsList_extract.js:302 msgid "${user} removed ${path_type} ${path} from Dropbox Business in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:302 +#: website/static/js/logActionsList_extract.js:303 msgid "${user} updated file ${path} in Dropbox Business in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:303 +#: website/static/js/logActionsList_extract.js:304 msgid "${user} created folder ${path} in Dropbox Business in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:304 +#: website/static/js/logActionsList_extract.js:305 msgid "" "${user} linked Dropbox Business folder ${dropboxbusiness_folder} to " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:305 +#: website/static/js/logActionsList_extract.js:306 msgid "${user} authorized the Dropbox Business addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:306 +#: website/static/js/logActionsList_extract.js:307 msgid "${user} deauthorized the Dropbox Business addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:307 +#: website/static/js/logActionsList_extract.js:308 msgid "Dropbox Business addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:308 +#: website/static/js/logActionsList_extract.js:309 msgid "" "${user} added file ${path} to the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:309 +#: website/static/js/logActionsList_extract.js:310 msgid "${user} removed ${path} in the OneDrive team folder ${folder} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:310 +#: website/static/js/logActionsList_extract.js:311 msgid "" "${user} updated file ${path} in the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:311 +#: website/static/js/logActionsList_extract.js:312 msgid "" "${user} created folder ${path} in the OneDrive team folder ${folder} in " "${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:312 +#: website/static/js/logActionsList_extract.js:313 msgid "${user} authorized the OneDrive for Office365 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:313 +#: website/static/js/logActionsList_extract.js:314 msgid "${user} deauthorized the OneDrive for Office365 addon for ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:314 +#: website/static/js/logActionsList_extract.js:315 msgid "OneDrive for Office365 addon for ${node} deauthorized" msgstr "" -#: website/static/js/logActionsList_extract.js:315 +#: website/static/js/logActionsList_extract.js:316 msgid "${user} added metadata in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:316 +#: website/static/js/logActionsList_extract.js:317 msgid "${user} added metadata ${path} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:317 +#: website/static/js/logActionsList_extract.js:318 msgid "${user} updated metadata ${path} in ${node}" msgstr "" -#: website/static/js/logActionsList_extract.js:318 +#: website/static/js/logActionsList_extract.js:319 msgid "${user} deleted metadata ${path} in ${node}" msgstr "" -#: website/static/js/logTextParser.js:828 +#: website/static/js/logActionsList_extract.js:320 +msgid "${user} created a ${filename} workflow in ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:321 +msgid "${user} updated a ${filename} workflow in ${node}" +msgstr "" + +#: website/static/js/logActionsList_extract.js:322 +msgid "${user} deleted a ${filename} workflow in ${node}" +msgstr "" + +#: website/static/js/logTextParser.js:830 msgid "unknown format" msgstr "" @@ -8559,75 +8464,132 @@ msgstr "" msgid "Unable to check out file" msgstr "" +#: website/static/js/filepage/index.js:253 +msgid "Workflow Project ID" +msgstr "" + +#: website/static/js/filepage/index.js:255 +msgid "Workflow Process Project ID" +msgstr "" + +#: website/static/js/filepage/index.js:257 +msgid "Workflow User ID" +msgstr "" + +#: website/static/js/filepage/index.js:259 +msgid "Workflow Valid User ID" +msgstr "" + +#: website/static/js/filepage/index.js:261 +msgid "Workfllow Startup User ID" +msgstr "" + +#: website/static/js/filepage/index.js:263 +msgid "File Path" +msgstr "" + #: website/static/js/filepage/index.js:265 +msgid "Admin Mail Address" +msgstr "" + +#: website/static/js/filepage/index.js:267 +msgid "Researcher Mail Address" +msgstr "" + +#: website/static/js/filepage/index.js:294 +#: website/static/js/filepage/index.js:298 +msgid "Workflow Start" +msgstr "" + +#: website/static/js/filepage/index.js:320 +msgid "Check the workflow data again." +msgstr "" + +#: website/static/js/filepage/index.js:325 +msgid "Processing..." +msgstr "" + +#: website/static/js/filepage/index.js:451 +msgid "The workflow process is complete." +msgstr "" + +#: website/static/js/filepage/index.js:455 +msgid "The workflow process has failed." +msgstr "" + +#: website/static/js/filepage/index.js:482 msgid "Unable to check in file" msgstr "" -#: website/static/js/filepage/index.js:270 +#: website/static/js/filepage/index.js:487 msgid "Force check in file?" msgstr "" -#: website/static/js/filepage/index.js:271 +#: website/static/js/filepage/index.js:488 msgid "" "This will check in the file for all users, allowing it to be edited. Are " "you sure?" msgstr "" -#: website/static/js/filepage/index.js:274 +#: website/static/js/filepage/index.js:491 msgid "Force check in" msgstr "" -#: website/static/js/filepage/index.js:297 +#: website/static/js/filepage/index.js:514 msgid "Unable to force check in file. Make sure you have admin privileges." msgstr "" -#: website/static/js/filepage/index.js:338 +#: website/static/js/filepage/index.js:555 msgid "Live editing mode " msgstr "" -#: website/static/js/filepage/index.js:339 +#: website/static/js/filepage/index.js:556 msgid "Attempting to connect " msgstr "" -#: website/static/js/filepage/index.js:340 +#: website/static/js/filepage/index.js:557 msgid "Unsupported browser " msgstr "" -#: website/static/js/filepage/index.js:341 +#: website/static/js/filepage/index.js:558 msgid "Saving... " msgstr "" -#: website/static/js/filepage/index.js:342 +#: website/static/js/filepage/index.js:559 msgid "Unavailable: Live editing " msgstr "" -#: website/static/js/filepage/index.js:465 +#: website/static/js/filepage/index.js:682 msgid "View this file on " msgstr "" -#: website/static/js/filepage/index.js:502 +#: website/static/js/filepage/index.js:719 msgid "Check out" msgstr "" -#: website/static/js/filepage/index.js:505 +#: website/static/js/filepage/index.js:722 msgid "Check in" msgstr "" -#: website/static/js/filepage/index.js:511 +#: website/static/js/filepage/index.js:728 msgid "Request Trusted Timestamp" msgstr "" -#: website/static/js/filepage/index.js:528 +#: website/static/js/filepage/index.js:745 msgid "Toggle view: " msgstr "" -#: website/static/js/filepage/index.js:567 +#: website/static/js/filepage/index.js:784 #: website/static/js/filepage/revisions.js:173 msgid "Revisions" msgstr "" -#: website/static/js/filepage/index.js:572 -msgid "Edit(Onlyoffice)" +#: website/static/js/filepage/index.js:788 +msgid "Request for administrator approval to publish" +msgstr "" + +#: website/static/js/filepage/index.js:794 +msgid "Edit(ONLYOFFICE)" msgstr "" #: website/static/js/filepage/revisions.js:72
    PermissionsMaking a GakuNin RDM project public or private is " -"independent of Nextcloud privacy. The GakuNin RDM does not alter the " -"permissions of linked Nextcloud folders.The GakuNin RDM does not affect the permissions of " +"JupyterHub.
    View / download file versionsNextcloud files can be viewed/downloaded via GakuNin " -"RDM, but version history is not supported by the Nextcloud WebDAV " -"API.The JupyterHub add-on does not provide Storage " +"Features.
    Add / update filesAdding/updating files in the project via GakuNin RDM " -"will be reflected in Nextcloud.The JupyterHub add-on does not provide Storage " +"Features.
    Delete filesFiles deleted via GakuNin RDM will be deleted in " -"Nextcloud.The JupyterHub add-on does not provide Storage " +"Features.
    LogsGakuNin RDM keeps track of changes you make to your " -"Nextcloud content through GakuNin RDM, but not for changes made using " -"Nextcloud directly.The JupyterHub add-on does not provide Storage " +"Features.
    ForkingForking a project or component does not copy " -"Nextcloud authorization unless the user forking the project is the same " -"user who authorized the Nextcloud add-on in the source project being " -"forked.Forking a project or component copies information " +"about linked JupyterHub but the GakuNin RDM does not affect " +"authentication of JupyterHub.