invenio-app-rdm 13.0.0rc2__py2.py3-none-any.whl → 13.0.0rc4__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- invenio_app_rdm/__init__.py +1 -1
- invenio_app_rdm/config.py +14 -1
- invenio_app_rdm/ext.py +2 -2
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/deposit.html +5 -0
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +1 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/detail.html +1 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/files.html +20 -3
- invenio_app_rdm/records_ui/views/deposits.py +11 -5
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUserForm.js +12 -17
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaAction.js +1 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSearchAppLayout.js +3 -4
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js +6 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/index.js +1 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js +16 -17
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RemoveFromCommunity/RemoveFromCommunityAction.js +5 -5
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/components.js +13 -18
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/file_uploader/uppy.less +37 -0
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/accordion.overrides +9 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next-scanner.config.js +1 -1
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next.js +1 -1
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/_generatedTranslations.js +66 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/messages.po +804 -137
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/translations.json +277 -249
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/messages.po +689 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/translations.json +102 -82
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/messages.po +699 -80
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/translations.json +112 -92
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/messages.po +821 -138
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/translations.json +290 -262
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/messages.po +691 -66
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/translations.json +91 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/messages.po +818 -138
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/translations.json +260 -240
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/messages.po +698 -78
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/translations.json +108 -88
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/en/messages.po +1000 -5
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/en/translations.json +81 -28
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/messages.po +810 -137
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/translations.json +253 -233
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/messages.po +746 -133
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/translations.json +130 -110
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/messages.po +688 -69
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/translations.json +103 -79
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/messages.po +809 -126
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/translations.json +277 -257
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/messages.po +695 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/translations.json +101 -79
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/messages.po +801 -135
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/translations.json +254 -234
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/index.js +16 -65
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/messages.po +712 -86
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/translations.json +116 -96
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/messages.po +683 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/translations.json +96 -78
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/messages.po +689 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/translations.json +109 -85
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ko/messages.po +889 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ko/translations.json +277 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/messages.po +702 -71
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/translations.json +113 -85
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/messages.po +689 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/translations.json +102 -82
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/messages.po +704 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/translations.json +119 -91
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/messages.po +694 -69
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/translations.json +93 -73
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/messages.po +717 -85
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/translations.json +155 -133
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/messages.po +806 -124
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/translations.json +288 -260
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/messages.po +713 -82
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/translations.json +119 -91
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/messages.po +807 -141
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/translations.json +260 -240
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/messages.po +799 -128
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/translations.json +259 -239
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/messages.po +756 -131
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/translations.json +124 -96
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/messages.po +736 -123
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/translations.json +130 -108
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/messages.po +683 -70
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/translations.json +100 -78
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package-lock.json +1295 -678
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package.json +3 -37
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/compileCatalog.js +102 -24
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/fixTrailingNewlines.js +23 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/initCatalog.js +1 -1
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/postExtractMessages.js +36 -0
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/translations.pot +243 -94
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/intro_section.html +7 -6
- invenio_app_rdm/theme/webpack.py +1 -0
- invenio_app_rdm/translations/ar/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ar/LC_MESSAGES/messages.po +972 -376
- invenio_app_rdm/translations/bg/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/bg/LC_MESSAGES/messages.po +907 -278
- invenio_app_rdm/translations/ca/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ca/LC_MESSAGES/messages.po +912 -283
- invenio_app_rdm/translations/cs/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/cs/LC_MESSAGES/messages.po +1069 -405
- invenio_app_rdm/translations/da/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/da/LC_MESSAGES/messages.po +908 -273
- invenio_app_rdm/translations/de/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/de/LC_MESSAGES/messages.po +1017 -406
- invenio_app_rdm/translations/el/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/el/LC_MESSAGES/messages.po +915 -286
- invenio_app_rdm/translations/es/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/es/LC_MESSAGES/messages.po +963 -371
- invenio_app_rdm/translations/et/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/et/LC_MESSAGES/messages.po +938 -362
- invenio_app_rdm/translations/fa/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/fa/LC_MESSAGES/messages.po +906 -277
- invenio_app_rdm/translations/fr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/fr/LC_MESSAGES/messages.po +1032 -375
- invenio_app_rdm/translations/hr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/hr/LC_MESSAGES/messages.po +907 -278
- invenio_app_rdm/translations/hu/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/hu/LC_MESSAGES/messages.po +985 -369
- invenio_app_rdm/translations/it/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/it/LC_MESSAGES/messages.po +928 -298
- invenio_app_rdm/translations/ja/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ja/LC_MESSAGES/messages.po +907 -278
- invenio_app_rdm/translations/ka/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ka/LC_MESSAGES/messages.po +909 -280
- invenio_app_rdm/translations/ko/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ko/LC_MESSAGES/messages.po +1361 -0
- invenio_app_rdm/translations/lt/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/lt/LC_MESSAGES/messages.po +910 -281
- invenio_app_rdm/translations/messages.pot +486 -303
- invenio_app_rdm/translations/no/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/no/LC_MESSAGES/messages.po +907 -278
- invenio_app_rdm/translations/pl/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/pl/LC_MESSAGES/messages.po +907 -278
- invenio_app_rdm/translations/pt/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/pt/LC_MESSAGES/messages.po +906 -277
- invenio_app_rdm/translations/ro/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ro/LC_MESSAGES/messages.po +1042 -384
- invenio_app_rdm/translations/ru/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/ru/LC_MESSAGES/messages.po +1022 -370
- invenio_app_rdm/translations/sk/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/sk/LC_MESSAGES/messages.po +916 -287
- invenio_app_rdm/translations/sv/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/sv/LC_MESSAGES/messages.po +989 -380
- invenio_app_rdm/translations/tr/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/tr/LC_MESSAGES/messages.po +992 -341
- invenio_app_rdm/translations/uk/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/uk/LC_MESSAGES/messages.po +935 -356
- invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.po +939 -347
- invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
- invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.po +907 -278
- {invenio_app_rdm-13.0.0rc2.dist-info → invenio_app_rdm-13.0.0rc4.dist-info}/METADATA +27 -1
- {invenio_app_rdm-13.0.0rc2.dist-info → invenio_app_rdm-13.0.0rc4.dist-info}/RECORD +156 -148
- {invenio_app_rdm-13.0.0rc2.dist-info → invenio_app_rdm-13.0.0rc4.dist-info}/WHEEL +0 -0
- {invenio_app_rdm-13.0.0rc2.dist-info → invenio_app_rdm-13.0.0rc4.dist-info}/entry_points.txt +0 -0
- {invenio_app_rdm-13.0.0rc2.dist-info → invenio_app_rdm-13.0.0rc4.dist-info}/licenses/LICENSE +0 -0
- {invenio_app_rdm-13.0.0rc2.dist-info → invenio_app_rdm-13.0.0rc4.dist-info}/top_level.txt +0 -0
invenio_app_rdm/__init__.py
CHANGED
invenio_app_rdm/config.py
CHANGED
|
@@ -903,6 +903,13 @@ APP_RDM_RECORD_EXPORTERS = {
|
|
|
903
903
|
"content-type": "application/x-yaml",
|
|
904
904
|
"filename": "{id}.yaml",
|
|
905
905
|
},
|
|
906
|
+
"datapackage": {
|
|
907
|
+
"name": _("Data Package JSON"),
|
|
908
|
+
"serializer": "invenio_rdm_records.resources.serializers:DataPackageSerializer",
|
|
909
|
+
"params": {},
|
|
910
|
+
"content-type": "application/ld+json",
|
|
911
|
+
"filename": "{id}.json",
|
|
912
|
+
},
|
|
906
913
|
}
|
|
907
914
|
|
|
908
915
|
APP_RDM_RECORD_LANDING_PAGE_EXTERNAL_LINKS = []
|
|
@@ -928,6 +935,13 @@ def github_link_render(record):
|
|
|
928
935
|
|
|
929
936
|
APP_RDM_RECORDS_EXPORT_URL = "/records/<pid_value>/export/<export_format>"
|
|
930
937
|
|
|
938
|
+
APP_RDM_DEPOSIT_NG_FILES_UI_ENABLED = False
|
|
939
|
+
"""
|
|
940
|
+
Feature toggle to enable the next-generation (NG) file uploader UI in the deposit form.
|
|
941
|
+
|
|
942
|
+
When enabled, the deposit form will use the new Uppy.io-based file uploader, replacing the current file upload interface.
|
|
943
|
+
"""
|
|
944
|
+
|
|
931
945
|
APP_RDM_DEPOSIT_FORM_DEFAULTS = {
|
|
932
946
|
"publication_date": lambda: datetime.now().strftime("%Y-%m-%d"),
|
|
933
947
|
"rights": [
|
|
@@ -1486,7 +1500,6 @@ ADMINISTRATION_THEME_BASE_TEMPLATE = "invenio_app_rdm/administration_page.html"
|
|
|
1486
1500
|
APP_RDM_SUBCOMMUNITIES_LABEL = "Subcommunities"
|
|
1487
1501
|
"""Label for the subcommunities in the community browse page."""
|
|
1488
1502
|
|
|
1489
|
-
|
|
1490
1503
|
RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE = None
|
|
1491
1504
|
"""Side bar manage attributes extension template."""
|
|
1492
1505
|
|
invenio_app_rdm/ext.py
CHANGED
|
@@ -33,10 +33,10 @@ def finalize_app(app):
|
|
|
33
33
|
|
|
34
34
|
def init_config(app):
|
|
35
35
|
"""Initialize configuration."""
|
|
36
|
-
record_doi_required = (
|
|
36
|
+
record_doi_required = bool(
|
|
37
37
|
app.config["RDM_PERSISTENT_IDENTIFIERS"].get("doi", {}).get("required")
|
|
38
38
|
)
|
|
39
|
-
parent_doi_required = (
|
|
39
|
+
parent_doi_required = bool(
|
|
40
40
|
app.config["RDM_PARENT_PERSISTENT_IDENTIFIERS"].get("doi", {}).get("required")
|
|
41
41
|
)
|
|
42
42
|
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
{%- block css %}
|
|
6
6
|
{{ super() }}
|
|
7
7
|
<link rel="stylesheet" type="text/css" href="/communities/{{community.slug}}/community-theme-{{ community.revision_id }}.css">
|
|
8
|
+
{%- if config.APP_RDM_DEPOSIT_NG_FILES_UI_ENABLED %}
|
|
9
|
+
{{ webpack['uppy-file-uploader.css'] }}
|
|
10
|
+
{%- endif %}
|
|
8
11
|
{%- endblock %}
|
|
9
12
|
{%- endif %}
|
|
10
13
|
|
|
@@ -49,6 +52,8 @@
|
|
|
49
52
|
value='{{ config.USERS_RESOURCES_GROUPS_ENABLED | tojson }}'>
|
|
50
53
|
<input type="hidden" name="records-resources-allow-empty-files"
|
|
51
54
|
value='{{ config.RECORDS_RESOURCES_ALLOW_EMPTY_FILES | tojson }}'>
|
|
55
|
+
<input type="hidden" name="deposits-use-uppy-ui"
|
|
56
|
+
value='{{ config.APP_RDM_DEPOSIT_NG_FILES_UI_ENABLED | tojson }}'>
|
|
52
57
|
|
|
53
58
|
{%- if forms_config %}
|
|
54
59
|
<input type="hidden" name="deposits-config"
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
{%- endblock css %}
|
|
22
22
|
{% endif %}
|
|
23
23
|
|
|
24
|
-
{%- from "invenio_app_rdm/records/macros/files.html" import file_list_box, preview_file_box, media_file_list_box %}
|
|
24
|
+
{%- from "invenio_app_rdm/records/macros/files.html" import file_list_box, preview_file_box, media_file_list_box with context %}
|
|
25
25
|
|
|
26
26
|
{%- set title = record_ui["metadata"]["title"] %}
|
|
27
27
|
{%- set metadata = record_ui["metadata"] %}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
{% macro preview_file_box(file, pid, is_preview, record, include_deleted) %}
|
|
35
|
+
{%- set is_remote_file = file.transfer.type == transfer_types.REMOTE %}
|
|
35
36
|
<div class="ui accordion panel mb-10 {{record.ui.access_status.id}}" href="#files-preview-accordion-panel">
|
|
36
37
|
<h3 class="active title panel-heading {{ record.ui.access_status.id }} m-0">
|
|
37
38
|
<div
|
|
@@ -53,9 +54,22 @@
|
|
|
53
54
|
aria-labelledby="files-preview-accordion-trigger"
|
|
54
55
|
class="active content preview-container pt-0 {{record.ui.access_status.id}}"
|
|
55
56
|
>
|
|
57
|
+
{%- if is_remote_file %}
|
|
58
|
+
<div class="ui info message">
|
|
59
|
+
<div class="header">
|
|
60
|
+
{{ _('This file cannot be previewed') }}
|
|
61
|
+
</div>
|
|
62
|
+
<ul class="list">
|
|
63
|
+
<li>{{ _('This file is an external reference and not stored directly in this repository.
|
|
64
|
+
To access its content, please download it and open it locally.') }}
|
|
65
|
+
</li>
|
|
66
|
+
</ul>
|
|
67
|
+
</div>
|
|
68
|
+
{%- else %}
|
|
56
69
|
<div>
|
|
57
70
|
{{ preview_file('invenio_app_rdm_records.record_file_preview', pid_value=pid, filename=file.key, is_preview=is_preview, include_deleted=include_deleted) }}
|
|
58
71
|
</div>
|
|
72
|
+
{%- endif %}
|
|
59
73
|
</div>
|
|
60
74
|
</div>
|
|
61
75
|
{%- endmacro %}
|
|
@@ -93,6 +107,7 @@
|
|
|
93
107
|
{% endif %}
|
|
94
108
|
{% for file in files %}
|
|
95
109
|
{% if not file.access.hidden %}
|
|
110
|
+
{%- set is_remote_file = file.transfer.type == transfer_types.REMOTE %}
|
|
96
111
|
{% if is_preview %}
|
|
97
112
|
{%- set file_url_download = url_for(download_endpoint, pid_value=pid, filename=file.key, download=1, preview=1) %}
|
|
98
113
|
{%- set file_url_preview = url_for(preview_endpoint, pid_value=pid, filename=file.key, preview=1, include_deleted=include_deleted_value) %}
|
|
@@ -107,16 +122,18 @@
|
|
|
107
122
|
<div>
|
|
108
123
|
<a href="{{ file_url_download }}">{{ file.key }}</a>
|
|
109
124
|
</div>
|
|
125
|
+
{%- if not is_remote_file %}
|
|
110
126
|
<small class="ui text-muted font-tiny">{{ file.checksum }}
|
|
111
127
|
<div class="ui icon inline-block" data-tooltip="{{_('This is the file fingerprint (checksum), which can be used to verify the file integrity.')}}">
|
|
112
128
|
<i class="question circle checksum icon"></i>
|
|
113
129
|
</div>
|
|
114
130
|
</small>
|
|
131
|
+
{%- endif %}
|
|
115
132
|
</td>
|
|
116
|
-
<td>{{ file.size|filesizeformat(binary=binary_sizes) }}</td>
|
|
133
|
+
<td>{%- if is_remote_file %}{{_("N/A (external)")}}{%- else -%}{{ file.size|filesizeformat(binary=binary_sizes) }}{%- endif %}</td>
|
|
117
134
|
<td class="right aligned">
|
|
118
135
|
<span>
|
|
119
|
-
{% if with_preview and file_type|lower is previewable %}
|
|
136
|
+
{% if with_preview and file_type|lower is previewable and not is_remote_file %}
|
|
120
137
|
<a role="button" class="ui compact mini button preview-link" href="{{ file_url_preview }}" target="preview-iframe" data-file-key="{{file.key}}">
|
|
121
138
|
<i class="eye icon" aria-hidden="true"></i>{{_("Preview")}}
|
|
122
139
|
</a>
|
|
@@ -140,7 +157,7 @@
|
|
|
140
157
|
<h3 class="active title panel-heading {{ record.ui.access_status.id }} m-0">
|
|
141
158
|
<div role="button" id="files-list-accordion-trigger" aria-controls="files-list-accordion-panel" aria-expanded="true" tabindex="0" class="trigger">
|
|
142
159
|
{{ _("Files") }}
|
|
143
|
-
<small class="text-muted">{% if files %} ({{files|
|
|
160
|
+
<small class="text-muted">{% if files %} ({{files|map(attribute='size', default=0)|sum()|filesizeformat(binary=binary_sizes)}}){% endif %}</small>
|
|
144
161
|
<i class="angle right icon" aria-hidden="true"></i>
|
|
145
162
|
</div>
|
|
146
163
|
</h3>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Copyright (C) 2019-2025 CERN.
|
|
4
4
|
# Copyright (C) 2019-2021 Northwestern University.
|
|
5
5
|
# Copyright (C) 2021 TU Wien.
|
|
6
|
-
# Copyright (C) 2022-
|
|
6
|
+
# Copyright (C) 2022-2025 KTH Royal Institute of Technology
|
|
7
7
|
# Copyright (C) 2023-2024 Graz University of Technology.
|
|
8
8
|
#
|
|
9
9
|
# Invenio App RDM is free software; you can redistribute it and/or modify it
|
|
@@ -25,6 +25,8 @@ from invenio_rdm_records.records.api import get_files_quota
|
|
|
25
25
|
from invenio_rdm_records.resources.serializers import UIJSONSerializer
|
|
26
26
|
from invenio_rdm_records.services.schemas import RDMRecordSchema
|
|
27
27
|
from invenio_rdm_records.services.schemas.utils import dump_empty
|
|
28
|
+
from invenio_rdm_records.views import file_transfer_type
|
|
29
|
+
from invenio_records_resources.proxies import current_transfer_registry
|
|
28
30
|
from invenio_records_resources.services.errors import PermissionDeniedError
|
|
29
31
|
from invenio_search.engine import dsl
|
|
30
32
|
from invenio_vocabularies.proxies import current_service as vocabulary_service
|
|
@@ -98,9 +100,9 @@ def get_form_pids_config(record=None):
|
|
|
98
100
|
|
|
99
101
|
pids_provider = {
|
|
100
102
|
"scheme": scheme,
|
|
101
|
-
"field_label": "Digital Object Identifier",
|
|
102
|
-
"pid_label": "DOI",
|
|
103
|
-
"pid_placeholder": "Copy/paste your existing DOI here...",
|
|
103
|
+
"field_label": _("Digital Object Identifier"),
|
|
104
|
+
"pid_label": _("DOI"),
|
|
105
|
+
"pid_placeholder": _("Copy/paste your existing DOI here..."),
|
|
104
106
|
"can_be_managed": can_be_managed,
|
|
105
107
|
"can_be_unmanaged": can_be_unmanaged,
|
|
106
108
|
"btn_label_discard_pid": _(
|
|
@@ -361,6 +363,7 @@ def get_form_config(**kwargs):
|
|
|
361
363
|
cf for cf in custom_fields["ui"] if not cf.get("hide_from_upload_form", False)
|
|
362
364
|
]
|
|
363
365
|
quota = deepcopy(conf.get("APP_RDM_DEPOSIT_FORM_QUOTA", {}))
|
|
366
|
+
max_file_size = conf.get("RDM_FILES_DEFAULT_MAX_FILE_SIZE", None)
|
|
364
367
|
record_quota = kwargs.pop("quota", None)
|
|
365
368
|
if record_quota:
|
|
366
369
|
quota["maxStorage"] = record_quota["quota_size"]
|
|
@@ -375,7 +378,7 @@ def get_form_config(**kwargs):
|
|
|
375
378
|
current_locale=str(current_i18n.locale),
|
|
376
379
|
default_locale=conf.get("BABEL_DEFAULT_LOCALE", "en"),
|
|
377
380
|
pids=get_form_pids_config(record=record),
|
|
378
|
-
quota=quota,
|
|
381
|
+
quota=dict(**quota, maxFileSize=max_file_size),
|
|
379
382
|
decimal_size_display=conf.get("APP_RDM_DISPLAY_DECIMAL_FILE_SIZES", True),
|
|
380
383
|
links=dict(
|
|
381
384
|
user_dashboard_request=conf["RDM_REQUESTS_ROUTES"][
|
|
@@ -387,6 +390,9 @@ def get_form_config(**kwargs):
|
|
|
387
390
|
publish_modal_extra=current_app.config.get(
|
|
388
391
|
"APP_RDM_DEPOSIT_FORM_PUBLISH_MODAL_EXTRA"
|
|
389
392
|
),
|
|
393
|
+
default_transfer_type=current_transfer_registry.default_transfer_type,
|
|
394
|
+
enabled_transfer_types=list(current_transfer_registry.get_transfer_types()),
|
|
395
|
+
transfer_types=file_transfer_type()["transfer_types"],
|
|
390
396
|
**kwargs,
|
|
391
397
|
)
|
|
392
398
|
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
import React, { Component } from "react";
|
|
11
11
|
import PropTypes from "prop-types";
|
|
12
12
|
import { i18next } from "@translations/invenio_app_rdm/i18next";
|
|
13
|
-
import { Trans } from "react-i18next";
|
|
14
13
|
import { Formik } from "formik";
|
|
15
14
|
import _get from "lodash/get";
|
|
16
15
|
|
|
@@ -121,15 +120,13 @@ export class ImpersonateUserForm extends Component {
|
|
|
121
120
|
control={Checkbox}
|
|
122
121
|
fieldPath="acceptImpersonation"
|
|
123
122
|
label={
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
{
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
shouldUnescape
|
|
132
|
-
/>
|
|
123
|
+
<>
|
|
124
|
+
{i18next.t("You are about to impersonate user ")}
|
|
125
|
+
<b>
|
|
126
|
+
{user.email} (id: {user.id})
|
|
127
|
+
</b>
|
|
128
|
+
.
|
|
129
|
+
</>
|
|
133
130
|
}
|
|
134
131
|
checked={_get(values, "acceptImpersonation") === true}
|
|
135
132
|
onChange={({ data, formikProps }) => {
|
|
@@ -152,13 +149,11 @@ export class ImpersonateUserForm extends Component {
|
|
|
152
149
|
control={Checkbox}
|
|
153
150
|
fieldPath="acceptToLogout"
|
|
154
151
|
label={
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
)}
|
|
159
|
-
|
|
160
|
-
shouldUnescape
|
|
161
|
-
/>
|
|
152
|
+
<>
|
|
153
|
+
{i18next.t("You ")}
|
|
154
|
+
<b>{i18next.t("MUST")}</b>
|
|
155
|
+
{i18next.t(" logout after completing your inquiry.")}
|
|
156
|
+
</>
|
|
162
157
|
}
|
|
163
158
|
checked={_get(values, "acceptToLogout") === true}
|
|
164
159
|
onChange={({ data, formikProps }) => {
|
|
@@ -78,7 +78,7 @@ export class SetQuotaAction extends Component {
|
|
|
78
78
|
<p>
|
|
79
79
|
<strong>{i18next.t("Note")}:</strong>{" "}
|
|
80
80
|
{i18next.t(
|
|
81
|
-
"This is the default quota that will be applied to any NEW records created by this user
|
|
81
|
+
"This is the default quota that will be applied to any NEW records created by this user - it will NOT update quota of existing records."
|
|
82
82
|
)}
|
|
83
83
|
</p>
|
|
84
84
|
</Modal.Content>
|
|
@@ -9,7 +9,6 @@ import { Count, Sort } from "react-searchkit";
|
|
|
9
9
|
import { Button, Container, Grid } from "semantic-ui-react";
|
|
10
10
|
import { GridResponsiveSidebarColumn } from "react-invenio-forms";
|
|
11
11
|
import PropTypes from "prop-types";
|
|
12
|
-
import { Trans } from "react-i18next";
|
|
13
12
|
|
|
14
13
|
export const CommunityRecordsSearchAppLayout = ({ config, appName }) => {
|
|
15
14
|
const [sidebarVisible, setSidebarVisible] = React.useState(false);
|
|
@@ -35,9 +34,9 @@ export const CommunityRecordsSearchAppLayout = ({ config, appName }) => {
|
|
|
35
34
|
<Grid.Column width={4} textAlign="left">
|
|
36
35
|
<Count
|
|
37
36
|
label={(cmp) => (
|
|
38
|
-
|
|
39
|
-
{cmp} results found
|
|
40
|
-
|
|
37
|
+
<>
|
|
38
|
+
{cmp} {i18next.t("results found")}
|
|
39
|
+
</>
|
|
41
40
|
)}
|
|
42
41
|
/>
|
|
43
42
|
</Grid.Column>
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
DeleteButton,
|
|
21
21
|
DepositStatusBox,
|
|
22
22
|
FileUploader,
|
|
23
|
+
UppyUploader,
|
|
23
24
|
FormFeedback,
|
|
24
25
|
IdentifiersField,
|
|
25
26
|
PIDField,
|
|
@@ -113,6 +114,7 @@ export class RDMDepositForm extends Component {
|
|
|
113
114
|
allowRecordRestriction,
|
|
114
115
|
groupsEnabled,
|
|
115
116
|
allowEmptyFiles,
|
|
117
|
+
useUppy,
|
|
116
118
|
} = this.props;
|
|
117
119
|
|
|
118
120
|
// Adding section id to custom fields UI, to be used for accordions
|
|
@@ -120,6 +122,7 @@ export class RDMDepositForm extends Component {
|
|
|
120
122
|
...section,
|
|
121
123
|
id: section.section.toLowerCase().replace(/\s+/g, "-") + "-section",
|
|
122
124
|
}));
|
|
125
|
+
const UploaderField = useUppy ? UppyUploader : FileUploader;
|
|
123
126
|
|
|
124
127
|
return (
|
|
125
128
|
<Overridable
|
|
@@ -196,13 +199,14 @@ export class RDMDepositForm extends Component {
|
|
|
196
199
|
filesLocked={filesLocked}
|
|
197
200
|
allowEmptyFiles={allowEmptyFiles}
|
|
198
201
|
>
|
|
199
|
-
<
|
|
202
|
+
<UploaderField
|
|
200
203
|
isDraftRecord={!record.is_published}
|
|
201
204
|
quota={this.config.quota}
|
|
202
205
|
decimalSizeDisplay={this.config.decimal_size_display}
|
|
203
206
|
showMetadataOnlyToggle={permissions?.can_manage_files}
|
|
204
207
|
allowEmptyFiles={allowEmptyFiles}
|
|
205
208
|
filesLocked={filesLocked}
|
|
209
|
+
fileUploadConcurrency={config.fileUploadConcurrency}
|
|
206
210
|
/>
|
|
207
211
|
</Overridable>
|
|
208
212
|
</AccordionField>
|
|
@@ -783,6 +787,7 @@ RDMDepositForm.propTypes = {
|
|
|
783
787
|
permissions: PropTypes.object,
|
|
784
788
|
filesLocked: PropTypes.bool,
|
|
785
789
|
allowEmptyFiles: PropTypes.bool,
|
|
790
|
+
useUppy: PropTypes.bool,
|
|
786
791
|
};
|
|
787
792
|
|
|
788
793
|
RDMDepositForm.defaultProps = {
|
|
@@ -21,6 +21,7 @@ ReactDOM.render(
|
|
|
21
21
|
preselectedCommunity={getInputFromDOM("deposits-draft-community")}
|
|
22
22
|
files={getInputFromDOM("deposits-record-files")}
|
|
23
23
|
config={getInputFromDOM("deposits-config")}
|
|
24
|
+
useUppy={getInputFromDOM("deposits-use-uppy-ui")}
|
|
24
25
|
permissions={getInputFromDOM("deposits-record-permissions")}
|
|
25
26
|
filesLocked={getInputFromDOM("deposits-record-locked-files")}
|
|
26
27
|
recordRestrictionGracePeriod={getInputFromDOM(
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js
CHANGED
|
@@ -11,7 +11,6 @@ import React, { useEffect, useState } from "react";
|
|
|
11
11
|
import { Grid, Icon, Message, Placeholder, List, Divider } from "semantic-ui-react";
|
|
12
12
|
import { i18next } from "@translations/invenio_app_rdm/i18next";
|
|
13
13
|
import PropTypes from "prop-types";
|
|
14
|
-
import { Trans } from "react-i18next";
|
|
15
14
|
import { withCancel, http, ErrorMessage } from "react-invenio-forms";
|
|
16
15
|
|
|
17
16
|
const deserializeRecord = (record) => ({
|
|
@@ -179,28 +178,28 @@ export const RecordVersionsList = ({ record, isPreview }) => {
|
|
|
179
178
|
{recordParentDOI ? (
|
|
180
179
|
<List.Item className="parent-doi pr-0">
|
|
181
180
|
<List.Content floated="left">
|
|
182
|
-
<
|
|
183
|
-
<
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
This DOI represents all versions, and will always resolve to the latest
|
|
188
|
-
|
|
189
|
-
</
|
|
190
|
-
</
|
|
181
|
+
<p className="text-muted">
|
|
182
|
+
<strong>{i18next.t("Cite all versions?")}</strong>{" "}
|
|
183
|
+
{i18next.t("You can cite all versions by using the DOI")}{" "}
|
|
184
|
+
<a href={recordDeserialized.links.parent_doi}>{recordParentDOI}</a>.{" "}
|
|
185
|
+
{i18next.t(
|
|
186
|
+
"This DOI represents all versions, and will always resolve to the latest one."
|
|
187
|
+
)}{" "}
|
|
188
|
+
<a href="/help/versioning">{i18next.t("Read more")}</a>.
|
|
189
|
+
</p>
|
|
191
190
|
</List.Content>
|
|
192
191
|
</List.Item>
|
|
193
192
|
) : recordDraftParentDOIFormat ? (
|
|
194
193
|
// new drafts without registered parent dois yet
|
|
195
194
|
<List.Item className="parent-doi pr-0">
|
|
196
195
|
<List.Content floated="left">
|
|
197
|
-
<
|
|
198
|
-
<
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
</
|
|
203
|
-
</
|
|
196
|
+
<p className="text-muted">
|
|
197
|
+
<strong>{i18next.t("Cite all versions?")}</strong>{" "}
|
|
198
|
+
{i18next.t("You can cite all versions by using the DOI")}{" "}
|
|
199
|
+
{recordDraftParentDOIFormat}.{" "}
|
|
200
|
+
{i18next.t("The DOI is registered when the first version is published.")}{" "}
|
|
201
|
+
<a href="/help/versioning">{i18next.t("Read more")}</a>.
|
|
202
|
+
</p>
|
|
204
203
|
</List.Content>
|
|
205
204
|
</List.Item>
|
|
206
205
|
) : null}
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
import React, { Component } from "react";
|
|
9
9
|
import { Button, Modal, Message, Icon, Checkbox } from "semantic-ui-react";
|
|
10
10
|
import { i18next } from "@translations/invenio_app_rdm/i18next";
|
|
11
|
-
import { Trans } from "react-i18next";
|
|
12
11
|
import { http, ErrorMessage } from "react-invenio-forms";
|
|
13
12
|
import PropTypes from "prop-types";
|
|
14
13
|
|
|
@@ -124,10 +123,11 @@ export class RemoveFromCommunityAction extends Component {
|
|
|
124
123
|
label={
|
|
125
124
|
/* eslint-disable-next-line jsx-a11y/label-has-associated-control */
|
|
126
125
|
<label>
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
</
|
|
126
|
+
{i18next.t("Members of the community ")}
|
|
127
|
+
<b>"{communityTitle}"</b>
|
|
128
|
+
{i18next.t(" will ")}
|
|
129
|
+
<u>{i18next.t("lose their access")}</u>
|
|
130
|
+
{i18next.t(" to the record.")}
|
|
131
131
|
</label>
|
|
132
132
|
}
|
|
133
133
|
checked={checkboxMembers}
|
|
@@ -31,7 +31,6 @@ import {
|
|
|
31
31
|
} from "semantic-ui-react";
|
|
32
32
|
import RecordsResultsListItem from "../components/RecordsResultsListItem";
|
|
33
33
|
import PropTypes from "prop-types";
|
|
34
|
-
import { Trans } from "react-i18next";
|
|
35
34
|
|
|
36
35
|
export const RDMRecordResultsListItemWithState = withState(
|
|
37
36
|
({ currentQueryState, result, appName }) => (
|
|
@@ -224,23 +223,19 @@ export const RDMEmptyResults = ({ queryString, searchPath, resetQuery }) => {
|
|
|
224
223
|
<Header as="h3" size="small">
|
|
225
224
|
{i18next.t("ProTip")}!
|
|
226
225
|
</Header>
|
|
227
|
-
<
|
|
228
|
-
<
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
</a>{" "}
|
|
241
|
-
for defining advanced search queries.
|
|
242
|
-
</p>
|
|
243
|
-
</Trans>
|
|
226
|
+
<p>
|
|
227
|
+
<a href={`${searchPath}?q=metadata.publication_date:[2025-01-01 TO *]`}>
|
|
228
|
+
metadata.publication_date:[2025-01-01 TO *]
|
|
229
|
+
</a>{" "}
|
|
230
|
+
{i18next.t("will give you all the publications from 2025 until today.")}
|
|
231
|
+
</p>
|
|
232
|
+
<p>
|
|
233
|
+
{i18next.t("For more tips, check out our ")}{" "}
|
|
234
|
+
<a href="/help/search" title={i18next.t("Search guide")}>
|
|
235
|
+
{i18next.t("search guide")}
|
|
236
|
+
</a>{" "}
|
|
237
|
+
{i18next.t("for defining advanced search queries.")}
|
|
238
|
+
</p>
|
|
244
239
|
</Segment>
|
|
245
240
|
</Grid.Column>
|
|
246
241
|
</Grid.Row>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2025 CESNET
|
|
3
|
+
*
|
|
4
|
+
* Invenio RDM Records is free software; you can redistribute it and/or modify
|
|
5
|
+
* it under the terms of the MIT License; see LICENSE file for more details.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
@import "@uppy/core/dist/style.min.css";
|
|
9
|
+
@import "@uppy/dashboard/dist/style.min.css";
|
|
10
|
+
@import "@uppy/image-editor/dist/style.min.css";
|
|
11
|
+
|
|
12
|
+
.uppy-Dashboard-AddFiles {
|
|
13
|
+
padding: 1.2rem;
|
|
14
|
+
}
|
|
15
|
+
.uppy-Dashboard-AddFiles-info {
|
|
16
|
+
display: block;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.uppy-Dashboard-note {
|
|
20
|
+
padding-top: 3rem;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.uppy-Dashboard-inner {
|
|
24
|
+
border-radius: 0 0 5px 5px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.uppy-Dashboard-innerWrap {
|
|
28
|
+
height: 350px;
|
|
29
|
+
|
|
30
|
+
&:has(#uppy-DashboardContent-panel--editor) {
|
|
31
|
+
height: 500px;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.uppy-DashboardContent-bar, .uppy-StatusBar {
|
|
36
|
+
z-index: 10;
|
|
37
|
+
}
|
invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/accordion.overrides
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
&.tab-menu-accordion {
|
|
4
4
|
transform: none;
|
|
5
5
|
}
|
|
6
|
+
|
|
7
|
+
transform: @activeIconTransform;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.ui.accordion .title .icon,
|
|
11
|
+
.ui.accordion .accordion .title .icon {
|
|
12
|
+
transition: @iconTransition;
|
|
13
|
+
width: auto;
|
|
14
|
+
height: auto;
|
|
6
15
|
}
|
|
7
16
|
|
|
8
17
|
/* use these classes to change accordion title when up/down */
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
|
|
2
|
+
// This file exports all available translations for i18next
|
|
3
|
+
|
|
4
|
+
import TRANSLATE_AR from "./ar/translations.json";
|
|
5
|
+
import TRANSLATE_BG from "./bg/translations.json";
|
|
6
|
+
import TRANSLATE_CA from "./ca/translations.json";
|
|
7
|
+
import TRANSLATE_CS from "./cs/translations.json";
|
|
8
|
+
import TRANSLATE_DA from "./da/translations.json";
|
|
9
|
+
import TRANSLATE_DE from "./de/translations.json";
|
|
10
|
+
import TRANSLATE_EL from "./el/translations.json";
|
|
11
|
+
import TRANSLATE_EN from "./en/translations.json";
|
|
12
|
+
import TRANSLATE_ES from "./es/translations.json";
|
|
13
|
+
import TRANSLATE_ET from "./et/translations.json";
|
|
14
|
+
import TRANSLATE_FA from "./fa/translations.json";
|
|
15
|
+
import TRANSLATE_FR from "./fr/translations.json";
|
|
16
|
+
import TRANSLATE_HR from "./hr/translations.json";
|
|
17
|
+
import TRANSLATE_HU from "./hu/translations.json";
|
|
18
|
+
import TRANSLATE_IT from "./it/translations.json";
|
|
19
|
+
import TRANSLATE_JA from "./ja/translations.json";
|
|
20
|
+
import TRANSLATE_KA from "./ka/translations.json";
|
|
21
|
+
import TRANSLATE_KO from "./ko/translations.json";
|
|
22
|
+
import TRANSLATE_LT from "./lt/translations.json";
|
|
23
|
+
import TRANSLATE_NO from "./no/translations.json";
|
|
24
|
+
import TRANSLATE_PL from "./pl/translations.json";
|
|
25
|
+
import TRANSLATE_PT from "./pt/translations.json";
|
|
26
|
+
import TRANSLATE_RO from "./ro/translations.json";
|
|
27
|
+
import TRANSLATE_RU from "./ru/translations.json";
|
|
28
|
+
import TRANSLATE_SK from "./sk/translations.json";
|
|
29
|
+
import TRANSLATE_SV from "./sv/translations.json";
|
|
30
|
+
import TRANSLATE_TR from "./tr/translations.json";
|
|
31
|
+
import TRANSLATE_UK from "./uk/translations.json";
|
|
32
|
+
import TRANSLATE_ZH_CN from "./zh_CN/translations.json";
|
|
33
|
+
import TRANSLATE_ZH_TW from "./zh_TW/translations.json";
|
|
34
|
+
|
|
35
|
+
export const translations = {
|
|
36
|
+
ar: { translation: TRANSLATE_AR },
|
|
37
|
+
bg: { translation: TRANSLATE_BG },
|
|
38
|
+
ca: { translation: TRANSLATE_CA },
|
|
39
|
+
cs: { translation: TRANSLATE_CS },
|
|
40
|
+
da: { translation: TRANSLATE_DA },
|
|
41
|
+
de: { translation: TRANSLATE_DE },
|
|
42
|
+
el: { translation: TRANSLATE_EL },
|
|
43
|
+
en: { translation: TRANSLATE_EN },
|
|
44
|
+
es: { translation: TRANSLATE_ES },
|
|
45
|
+
et: { translation: TRANSLATE_ET },
|
|
46
|
+
fa: { translation: TRANSLATE_FA },
|
|
47
|
+
fr: { translation: TRANSLATE_FR },
|
|
48
|
+
hr: { translation: TRANSLATE_HR },
|
|
49
|
+
hu: { translation: TRANSLATE_HU },
|
|
50
|
+
it: { translation: TRANSLATE_IT },
|
|
51
|
+
ja: { translation: TRANSLATE_JA },
|
|
52
|
+
ka: { translation: TRANSLATE_KA },
|
|
53
|
+
ko: { translation: TRANSLATE_KO },
|
|
54
|
+
lt: { translation: TRANSLATE_LT },
|
|
55
|
+
no: { translation: TRANSLATE_NO },
|
|
56
|
+
pl: { translation: TRANSLATE_PL },
|
|
57
|
+
pt: { translation: TRANSLATE_PT },
|
|
58
|
+
ro: { translation: TRANSLATE_RO },
|
|
59
|
+
ru: { translation: TRANSLATE_RU },
|
|
60
|
+
sk: { translation: TRANSLATE_SK },
|
|
61
|
+
sv: { translation: TRANSLATE_SV },
|
|
62
|
+
tr: { translation: TRANSLATE_TR },
|
|
63
|
+
uk: { translation: TRANSLATE_UK },
|
|
64
|
+
zh_CN: { translation: TRANSLATE_ZH_CN },
|
|
65
|
+
zh_TW: { translation: TRANSLATE_ZH_TW },
|
|
66
|
+
};
|