invenio-app-rdm 12.0.0.dev8__py2.py3-none-any.whl → 14.0.0b1.dev8__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.
Files changed (479) hide show
  1. invenio_app_rdm/__init__.py +3 -2
  2. invenio_app_rdm/{stats/templates/events/record_view/v7 → administration}/__init__.py +1 -3
  3. invenio_app_rdm/{stats/templates/events/record_view → administration/audit_logs}/__init__.py +6 -4
  4. invenio_app_rdm/administration/audit_logs/audit_logs.py +81 -0
  5. invenio_app_rdm/administration/domains/__init__.py +22 -0
  6. invenio_app_rdm/administration/domains/domains.py +159 -0
  7. invenio_app_rdm/administration/moderation/__init__.py +11 -0
  8. invenio_app_rdm/administration/moderation/requests.py +175 -0
  9. invenio_app_rdm/administration/records/__init__.py +15 -0
  10. invenio_app_rdm/administration/records/records.py +163 -0
  11. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/audit_logs.html +14 -0
  12. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/domains_search.html +13 -0
  13. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/records/drafts.html +14 -0
  14. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/records/records.html +14 -0
  15. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests.html +14 -0
  16. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/requests_details.html +91 -0
  17. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation.html +14 -0
  18. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation_details.html +14 -0
  19. invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/users_search.html +14 -0
  20. invenio_app_rdm/{stats/templates/aggregations/aggr_record_view/v7 → administration/user_moderation}/__init__.py +4 -3
  21. invenio_app_rdm/administration/user_moderation/user_moderation.py +175 -0
  22. invenio_app_rdm/administration/users/__init__.py +12 -0
  23. invenio_app_rdm/administration/users/users.py +130 -0
  24. invenio_app_rdm/{stats/templates/events/file_download/v7 → administration/views}/__init__.py +4 -3
  25. invenio_app_rdm/administration/views/ui.py +21 -0
  26. invenio_app_rdm/cli.py +37 -14
  27. invenio_app_rdm/communities_ui/searchapp.py +1 -0
  28. invenio_app_rdm/communities_ui/sitemap.py +63 -0
  29. invenio_app_rdm/communities_ui/templates/semantic-ui/invenio_communities/collections/collection.html +60 -0
  30. invenio_app_rdm/communities_ui/templates/semantic-ui/invenio_communities/collections/macros.html +43 -0
  31. invenio_app_rdm/communities_ui/templates/semantic-ui/invenio_communities/details/browse/index.html +59 -0
  32. invenio_app_rdm/communities_ui/templates/semantic-ui/invenio_communities/{details → records}/index.html +1 -1
  33. invenio_app_rdm/communities_ui/views/communities.py +183 -8
  34. invenio_app_rdm/communities_ui/views/ui.py +52 -42
  35. invenio_app_rdm/config.py +586 -90
  36. invenio_app_rdm/ext.py +157 -0
  37. invenio_app_rdm/fixtures/__init__.py +2 -2
  38. invenio_app_rdm/fixtures/pages.py +34 -12
  39. invenio_app_rdm/records_ui/searchapp.py +43 -0
  40. invenio_app_rdm/records_ui/sitemap.py +44 -0
  41. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/deposit.html +59 -16
  42. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +236 -141
  43. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html +64 -0
  44. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html +4 -3
  45. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/contact.html +2 -1
  46. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/creatibutors.html +22 -20
  47. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/description.html +7 -5
  48. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/details.html +290 -230
  49. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/doi.html +3 -24
  50. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/meta.html +36 -0
  51. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/citations.html +6 -0
  52. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/communities.html +30 -22
  53. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/details.html +20 -19
  54. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/export.html +19 -16
  55. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/external_resources.html +55 -0
  56. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/keywords_subjects.html +9 -5
  57. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html +62 -49
  58. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/locations.html +23 -0
  59. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html +24 -4
  60. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/metrics.html +2 -2
  61. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/technical_metadata.html +21 -0
  62. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/versions.html +15 -5
  63. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/stats.html +93 -79
  64. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/subjects.html +1 -1
  65. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/draft_not_found.html +17 -0
  66. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/export.html +2 -1
  67. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/creatibutors.html +54 -39
  68. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/detail.html +182 -93
  69. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/doi.html +36 -0
  70. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/files.html +152 -79
  71. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/locations.html +62 -0
  72. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/version.html +3 -2
  73. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/restricted_with_doi_tombstone.html +33 -0
  74. invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/tombstone.html +55 -12
  75. invenio_app_rdm/records_ui/utils.py +126 -1
  76. invenio_app_rdm/records_ui/views/__init__.py +75 -17
  77. invenio_app_rdm/records_ui/views/decorators.py +309 -38
  78. invenio_app_rdm/records_ui/views/deposits.py +302 -51
  79. invenio_app_rdm/records_ui/views/filters.py +74 -7
  80. invenio_app_rdm/records_ui/views/records.py +256 -90
  81. invenio_app_rdm/redirector/resource.py +1 -0
  82. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/community-submission/index.html +34 -8
  83. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/file-modification/index.html +88 -0
  84. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/guest-access-request/index.html +66 -0
  85. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/macros/request_header.html +5 -3
  86. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/record-deletion/index.html +95 -0
  87. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/subcommunity/index.html +49 -0
  88. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/subcommunity-invitation/index.html +49 -0
  89. invenio_app_rdm/requests_ui/templates/semantic-ui/invenio_requests/user-access-request/index.html +59 -0
  90. invenio_app_rdm/requests_ui/views/requests.py +221 -42
  91. invenio_app_rdm/requests_ui/views/ui.py +17 -4
  92. invenio_app_rdm/tasks.py +6 -2
  93. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/AuditLogActions.js +136 -0
  94. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewJson.js +35 -0
  95. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewRecentChanges.js +119 -0
  96. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/index.js +31 -0
  97. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/SearchResultItemLayout.js +87 -0
  98. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/index.js +9 -0
  99. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/CompareRevisionsDropdown.js +89 -0
  100. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUser.js +92 -0
  101. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUserForm.js +199 -0
  102. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js +80 -0
  103. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaAction.js +109 -0
  104. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaForm.js +196 -0
  105. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/index.js +9 -0
  106. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domains/index.js +27 -0
  107. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domains/search/SearchResultItemLayout.js +185 -0
  108. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domains/search/index.js +9 -0
  109. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/drafts/index.js +32 -0
  110. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/CompareRevisions.js +129 -0
  111. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RecordActions.js +75 -0
  112. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RecordResourceActions.js +185 -0
  113. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RemovalReasonsSelect.js +85 -0
  114. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RestoreConfirmation.js +108 -0
  115. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/TombstoneForm.js +212 -0
  116. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js +38 -0
  117. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/index.js +9 -0
  118. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js +30 -0
  119. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/index.js +40 -0
  120. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/AdministrationSearchLayout.js +56 -0
  121. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/RecordSearchLayout.js +84 -0
  122. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/SearchResultItemLayout.js +171 -0
  123. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/filters/DeletionStatusFilter.js +121 -0
  124. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/filters/index.js +9 -0
  125. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/index.js +10 -0
  126. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/requests/RequestsSearchResultItem.js +81 -0
  127. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/requests/RequestsSearchbarLayout.js +48 -0
  128. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/requests/index.js +22 -0
  129. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/ModerationActions.js +103 -0
  130. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/index.js +29 -0
  131. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/SearchResultItemLayout.js +151 -0
  132. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/UserModerationSearchLayout.js +56 -0
  133. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/index.js +10 -0
  134. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/UserActions.js +263 -0
  135. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/api/api.js +42 -0
  136. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/api/index.js +8 -0
  137. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/api/routes.js +38 -0
  138. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/index.js +30 -0
  139. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/SearchResultItemLayout.js +202 -0
  140. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/UserSearchLayout.js +81 -0
  141. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/filters/UserStatusFilterComponent.js +114 -0
  142. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/filters/index.js +1 -0
  143. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/users/search/index.js +10 -0
  144. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/collectionRecordsSearch/index.js +61 -0
  145. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSearchAppLayout.js +2 -2
  146. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSearchBarElement.js +1 -1
  147. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/CommunityRecordsSingleSearchBarElement.js +1 -1
  148. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/communityRecordsSearch/index.js +8 -3
  149. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CompactStats.js +51 -0
  150. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/CopyButton.js +38 -19
  151. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayPartOfCommunities.js +78 -0
  152. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/DisplayVerifiedCommunity.js +54 -0
  153. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/FileModificationUntil.js +45 -0
  154. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion/DeletionModal.js +354 -0
  155. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion/DeletionRadioGroup.js +44 -0
  156. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordDeletion.js +81 -0
  157. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/components/RecordsResultsListItem.js +61 -31
  158. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/RDMDepositForm.js +680 -486
  159. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/ShareDraftButton.js +65 -0
  160. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/config.js +48 -0
  161. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/deposit/index.js +14 -2
  162. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/frontpage/RecordsList.js +61 -21
  163. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/AccessRequestForm.js +254 -0
  164. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagement.js +171 -0
  165. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/CommunitiesManagementDropdown.js +186 -0
  166. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/EditButton.js +10 -1
  167. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ExportDropdown.js +7 -2
  168. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageButton.js +140 -0
  169. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ManageDefaultBrandingAction/ManageDefaultBrandingAction.js +129 -0
  170. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesModal.js +63 -0
  171. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunitiesSearch.js +89 -0
  172. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/PendingCommunitiesModal/PendingCommunityRequestItem.js +33 -0
  173. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCitationField.js +55 -51
  174. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesList.js +87 -89
  175. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesListModal.js +44 -30
  176. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearch.js +39 -20
  177. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitiesListModal/RecordCommunitiesSearchItem.js +44 -17
  178. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordCommunitySubmission/RecordCommunitySubmissionModal.js +171 -0
  179. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordManagement.js +111 -62
  180. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RecordVersionsList.js +99 -61
  181. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/RemoveFromCommunity/RemoveFromCommunityAction.js +188 -0
  182. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/AccessDropdown.js +93 -0
  183. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/CreateAccessLink.js +98 -0
  184. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/LinksSearchItem.js +170 -0
  185. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/LinksSearchResultContainer.js +216 -0
  186. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessLinks/LinksTab.js +104 -0
  187. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessRequests/AccessRequestsTab.js +230 -0
  188. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/AccessUsersGroups.js +178 -0
  189. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/AddUserGroupAccessModal.js +172 -0
  190. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/GroupsTab.js +88 -0
  191. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/PeopleTab.js +88 -0
  192. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/AccessUsersGroups/UserGroupAccessSearchResultItem.js +158 -0
  193. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/{ShareButton.js → ShareOptions/ShareButton.js} +13 -4
  194. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/ShareModal.js +238 -0
  195. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareOptions/api/api.js +39 -0
  196. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/access.js +24 -0
  197. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/index.js +72 -25
  198. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/theme.js +10 -6
  199. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/overridableRegistry/mapping.js +6 -1
  200. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/AccessRequestExpiration.js +56 -0
  201. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/index.js +1 -0
  202. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineEdit.js +177 -0
  203. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/AccessRequestTimelineRead.js +50 -0
  204. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/requests/timeline/overrides/TimelineFeedHeader.js +34 -0
  205. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/components.js +15 -13
  206. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/search/index.js +1 -1
  207. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/subcommunity/browse.js +28 -0
  208. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/theme.js +77 -9
  209. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/base.js +122 -74
  210. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/communities.js +1 -11
  211. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/requests.js +27 -412
  212. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads.js +15 -14
  213. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads_items/ComputerTabletUploadsItem.js +47 -27
  214. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/uploads_items/MobileUploadsItem.js +43 -27
  215. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/utils.js +32 -7
  216. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/file_uploader/uppy.less +37 -0
  217. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/creatibutors.less +15 -4
  218. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/landing_page/licenses.less +5 -3
  219. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/form.overrides +15 -0
  220. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/grid.overrides +24 -33
  221. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/menu.overrides +18 -3
  222. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/message.overrides +19 -3
  223. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/message.variables +2 -0
  224. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/collections/table.overrides +78 -6
  225. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/button.overrides +21 -0
  226. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/container.overrides +30 -7
  227. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/header.overrides +17 -4
  228. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/icon.overrides +2 -0
  229. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/image.overrides +34 -4
  230. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/input.overrides +10 -0
  231. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/label.overrides +48 -4
  232. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/list.overrides +10 -0
  233. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/segment.overrides +16 -13
  234. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.overrides +156 -97
  235. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.variables +7 -3
  236. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/accordion.overrides +35 -9
  237. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/dropdown.overrides +28 -6
  238. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/dropdown.variables +1 -0
  239. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/modal.overrides +40 -11
  240. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/modal.variables +5 -0
  241. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/search.overrides +7 -0
  242. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/search.variables +0 -0
  243. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/transition.overrides +8 -8
  244. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/theme.less +2 -5
  245. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/card.overrides +4 -2
  246. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/item.overrides +20 -33
  247. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next.js +1 -1
  248. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/_generatedTranslations.js +66 -0
  249. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/messages.po +805 -138
  250. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/translations.json +306 -86
  251. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/messages.po +690 -71
  252. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/bg/translations.json +282 -86
  253. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/messages.po +700 -81
  254. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ca/translations.json +282 -86
  255. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/messages.po +822 -139
  256. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/cs/translations.json +294 -86
  257. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/messages.po +692 -67
  258. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/da/translations.json +282 -86
  259. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/messages.po +819 -139
  260. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/de/translations.json +282 -86
  261. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/messages.po +699 -79
  262. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/el/translations.json +282 -86
  263. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/en/messages.po +1000 -5
  264. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/en/translations.json +315 -2
  265. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/messages.po +811 -138
  266. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/es/translations.json +282 -86
  267. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/messages.po +747 -134
  268. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et/translations.json +282 -86
  269. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/messages.po +689 -70
  270. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fa/translations.json +282 -86
  271. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/messages.po +810 -127
  272. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/fr/translations.json +282 -86
  273. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/messages.po +696 -71
  274. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hr/translations.json +288 -86
  275. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/messages.po +804 -137
  276. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/hu/translations.json +282 -86
  277. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/index.js +17 -66
  278. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/messages.po +715 -88
  279. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/it/translations.json +282 -86
  280. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/messages.po +684 -71
  281. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ja/translations.json +276 -86
  282. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/messages.po +690 -71
  283. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ka/translations.json +282 -86
  284. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ko/messages.po +889 -0
  285. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ko/translations.json +277 -0
  286. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/messages.po +703 -72
  287. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/lt/translations.json +294 -86
  288. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/messages.po +690 -71
  289. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/no/translations.json +282 -86
  290. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/messages.po +705 -71
  291. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pl/translations.json +294 -86
  292. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/messages.po +695 -70
  293. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/pt/translations.json +282 -86
  294. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/messages.po +718 -86
  295. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ro/translations.json +288 -86
  296. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/messages.po +807 -125
  297. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ru/translations.json +294 -86
  298. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/messages.po +714 -83
  299. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sk/translations.json +294 -86
  300. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/messages.po +809 -142
  301. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/sv/translations.json +282 -86
  302. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/messages.po +800 -129
  303. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/tr/translations.json +282 -86
  304. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/messages.po +717 -83
  305. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/uk/translations.json +294 -86
  306. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/messages.po +737 -124
  307. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_CN/translations.json +276 -86
  308. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/messages.po +684 -71
  309. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/zh_TW/translations.json +276 -86
  310. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package.json +5 -38
  311. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/translations.pot +863 -127
  312. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/administration_page.html +15 -0
  313. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/default_static_page.html +8 -8
  314. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/files_integrity_report/email/files_integrity_report.html +12 -12
  315. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/footer.html +33 -75
  316. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header.html +42 -27
  317. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header_frontpage.html +4 -2
  318. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/header_login.html +144 -113
  319. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.de.html +2 -2
  320. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.en.html +11 -6
  321. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/search.sv.html +254 -0
  322. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/statistics.sv.html +196 -0
  323. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/versioning.en.html +149 -0
  324. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/help/versioning.sv.html +143 -0
  325. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/intro_section.html +15 -16
  326. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/macros/records_list.html +33 -3
  327. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/page.html +36 -0
  328. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/page_cover.html +13 -0
  329. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/robots.txt +15 -0
  330. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/searchbar.html +43 -15
  331. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/settings/notifications.html +17 -0
  332. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/site_footer.html +29 -0
  333. invenio_app_rdm/theme/templates/semantic-ui/invenio_communities/default_static_page.html +26 -0
  334. invenio_app_rdm/theme/templates/themes/default/invenio_app_rdm/header.html +147 -0
  335. invenio_app_rdm/theme/templates/themes/default/invenio_app_rdm/site_footer.html +42 -0
  336. invenio_app_rdm/theme/views.py +80 -28
  337. invenio_app_rdm/theme/webpack.py +38 -7
  338. invenio_app_rdm/translations/ar/LC_MESSAGES/messages.mo +0 -0
  339. invenio_app_rdm/translations/ar/LC_MESSAGES/messages.po +975 -378
  340. invenio_app_rdm/translations/bg/LC_MESSAGES/messages.mo +0 -0
  341. invenio_app_rdm/translations/bg/LC_MESSAGES/messages.po +908 -279
  342. invenio_app_rdm/translations/ca/LC_MESSAGES/messages.mo +0 -0
  343. invenio_app_rdm/translations/ca/LC_MESSAGES/messages.po +913 -284
  344. invenio_app_rdm/translations/cs/LC_MESSAGES/messages.mo +0 -0
  345. invenio_app_rdm/translations/cs/LC_MESSAGES/messages.po +1070 -406
  346. invenio_app_rdm/translations/da/LC_MESSAGES/messages.mo +0 -0
  347. invenio_app_rdm/translations/da/LC_MESSAGES/messages.po +909 -274
  348. invenio_app_rdm/translations/de/LC_MESSAGES/messages.mo +0 -0
  349. invenio_app_rdm/translations/de/LC_MESSAGES/messages.po +1018 -407
  350. invenio_app_rdm/translations/el/LC_MESSAGES/messages.mo +0 -0
  351. invenio_app_rdm/translations/el/LC_MESSAGES/messages.po +916 -287
  352. invenio_app_rdm/translations/es/LC_MESSAGES/messages.mo +0 -0
  353. invenio_app_rdm/translations/es/LC_MESSAGES/messages.po +964 -372
  354. invenio_app_rdm/translations/et/LC_MESSAGES/messages.mo +0 -0
  355. invenio_app_rdm/translations/et/LC_MESSAGES/messages.po +939 -363
  356. invenio_app_rdm/translations/fa/LC_MESSAGES/messages.mo +0 -0
  357. invenio_app_rdm/translations/fa/LC_MESSAGES/messages.po +907 -278
  358. invenio_app_rdm/translations/fr/LC_MESSAGES/messages.mo +0 -0
  359. invenio_app_rdm/translations/fr/LC_MESSAGES/messages.po +1033 -376
  360. invenio_app_rdm/translations/hr/LC_MESSAGES/messages.mo +0 -0
  361. invenio_app_rdm/translations/hr/LC_MESSAGES/messages.po +908 -279
  362. invenio_app_rdm/translations/hu/LC_MESSAGES/messages.mo +0 -0
  363. invenio_app_rdm/translations/hu/LC_MESSAGES/messages.po +989 -372
  364. invenio_app_rdm/translations/it/LC_MESSAGES/messages.mo +0 -0
  365. invenio_app_rdm/translations/it/LC_MESSAGES/messages.po +970 -337
  366. invenio_app_rdm/translations/ja/LC_MESSAGES/messages.mo +0 -0
  367. invenio_app_rdm/translations/ja/LC_MESSAGES/messages.po +908 -279
  368. invenio_app_rdm/translations/ka/LC_MESSAGES/messages.mo +0 -0
  369. invenio_app_rdm/translations/ka/LC_MESSAGES/messages.po +910 -281
  370. invenio_app_rdm/translations/ko/LC_MESSAGES/messages.mo +0 -0
  371. invenio_app_rdm/translations/ko/LC_MESSAGES/messages.po +1361 -0
  372. invenio_app_rdm/translations/lt/LC_MESSAGES/messages.mo +0 -0
  373. invenio_app_rdm/translations/lt/LC_MESSAGES/messages.po +911 -282
  374. invenio_app_rdm/translations/messages.pot +982 -289
  375. invenio_app_rdm/translations/no/LC_MESSAGES/messages.mo +0 -0
  376. invenio_app_rdm/translations/no/LC_MESSAGES/messages.po +908 -279
  377. invenio_app_rdm/translations/pl/LC_MESSAGES/messages.mo +0 -0
  378. invenio_app_rdm/translations/pl/LC_MESSAGES/messages.po +908 -279
  379. invenio_app_rdm/translations/pt/LC_MESSAGES/messages.mo +0 -0
  380. invenio_app_rdm/translations/pt/LC_MESSAGES/messages.po +907 -278
  381. invenio_app_rdm/translations/ro/LC_MESSAGES/messages.mo +0 -0
  382. invenio_app_rdm/translations/ro/LC_MESSAGES/messages.po +1041 -382
  383. invenio_app_rdm/translations/ru/LC_MESSAGES/messages.mo +0 -0
  384. invenio_app_rdm/translations/ru/LC_MESSAGES/messages.po +1023 -371
  385. invenio_app_rdm/translations/sk/LC_MESSAGES/messages.mo +0 -0
  386. invenio_app_rdm/translations/sk/LC_MESSAGES/messages.po +917 -288
  387. invenio_app_rdm/translations/sv/LC_MESSAGES/messages.mo +0 -0
  388. invenio_app_rdm/translations/sv/LC_MESSAGES/messages.po +1007 -398
  389. invenio_app_rdm/translations/tr/LC_MESSAGES/messages.mo +0 -0
  390. invenio_app_rdm/translations/tr/LC_MESSAGES/messages.po +993 -342
  391. invenio_app_rdm/translations/uk/LC_MESSAGES/messages.mo +0 -0
  392. invenio_app_rdm/translations/uk/LC_MESSAGES/messages.po +984 -353
  393. invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
  394. invenio_app_rdm/translations/zh_CN/LC_MESSAGES/messages.po +940 -348
  395. invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
  396. invenio_app_rdm/translations/zh_TW/LC_MESSAGES/messages.po +908 -279
  397. invenio_app_rdm/upgrade_scripts/fix_migrated_records_from_8_0_to_9_0.py +2 -2
  398. invenio_app_rdm/upgrade_scripts/migrate_10_0_to_11_0.py +1 -1
  399. invenio_app_rdm/upgrade_scripts/migrate_11_0_to_12_0.py +205 -0
  400. invenio_app_rdm/upgrade_scripts/migrate_12_0_to_13_0.py +235 -0
  401. invenio_app_rdm/upgrade_scripts/migrate_2_0_to_3_0.py +1 -1
  402. invenio_app_rdm/upgrade_scripts/migrate_4_0_to_6_0.py +2 -3
  403. invenio_app_rdm/upgrade_scripts/migrate_6_0_to_7_0.py +0 -2
  404. invenio_app_rdm/upgrade_scripts/migrate_8_0_to_9_0.py +2 -2
  405. invenio_app_rdm/upgrade_scripts/migrate_9_0_to_10_0.py +1 -1
  406. invenio_app_rdm/users/schemas.py +27 -0
  407. invenio_app_rdm/users_ui/searchapp.py +9 -1
  408. invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/communities.html +1 -0
  409. invenio_app_rdm/users_ui/templates/semantic-ui/invenio_app_rdm/users/header.html +23 -9
  410. invenio_app_rdm/users_ui/views/__init__.py +1 -1
  411. invenio_app_rdm/users_ui/views/dashboard.py +6 -1
  412. invenio_app_rdm/users_ui/views/ui.py +5 -28
  413. invenio_app_rdm/utils/files.py +1 -1
  414. invenio_app_rdm/views.py +21 -0
  415. invenio_app_rdm-14.0.0b1.dev8.dist-info/METADATA +552 -0
  416. invenio_app_rdm-14.0.0b1.dev8.dist-info/RECORD +505 -0
  417. {invenio_app_rdm-12.0.0.dev8.dist-info → invenio_app_rdm-14.0.0b1.dev8.dist-info}/WHEEL +1 -1
  418. invenio_app_rdm-14.0.0b1.dev8.dist-info/entry_points.txt +44 -0
  419. invenio_app_rdm/admin.py +0 -36
  420. invenio_app_rdm/stats/__init__.py +0 -24
  421. invenio_app_rdm/stats/event_builders.py +0 -112
  422. invenio_app_rdm/stats/permissions.py +0 -33
  423. invenio_app_rdm/stats/templates/aggregations/__init__.py +0 -10
  424. invenio_app_rdm/stats/templates/aggregations/aggr_file_download/__init__.py +0 -10
  425. invenio_app_rdm/stats/templates/aggregations/aggr_file_download/os-v1/__init__.py +0 -10
  426. invenio_app_rdm/stats/templates/aggregations/aggr_file_download/os-v1/aggr-file-download-v1.0.0.json +0 -69
  427. invenio_app_rdm/stats/templates/aggregations/aggr_file_download/os-v2/__init__.py +0 -10
  428. invenio_app_rdm/stats/templates/aggregations/aggr_file_download/os-v2/aggr-file-download-v1.0.0.json +0 -69
  429. invenio_app_rdm/stats/templates/aggregations/aggr_file_download/v7/__init__.py +0 -10
  430. invenio_app_rdm/stats/templates/aggregations/aggr_file_download/v7/aggr-file-download-v1.0.0.json +0 -69
  431. invenio_app_rdm/stats/templates/aggregations/aggr_record_view/__init__.py +0 -10
  432. invenio_app_rdm/stats/templates/aggregations/aggr_record_view/os-v1/__init__.py +0 -10
  433. invenio_app_rdm/stats/templates/aggregations/aggr_record_view/os-v1/aggr-record-view-v1.0.0.json +0 -46
  434. invenio_app_rdm/stats/templates/aggregations/aggr_record_view/os-v2/__init__.py +0 -10
  435. invenio_app_rdm/stats/templates/aggregations/aggr_record_view/os-v2/aggr-record-view-v1.0.0.json +0 -46
  436. invenio_app_rdm/stats/templates/aggregations/aggr_record_view/v7/aggr-record-view-v1.0.0.json +0 -46
  437. invenio_app_rdm/stats/templates/events/__init__.py +0 -10
  438. invenio_app_rdm/stats/templates/events/file_download/__init__.py +0 -10
  439. invenio_app_rdm/stats/templates/events/file_download/os-v1/__init__.py +0 -10
  440. invenio_app_rdm/stats/templates/events/file_download/os-v1/file-download-v1.0.0.json +0 -93
  441. invenio_app_rdm/stats/templates/events/file_download/os-v2/__init__.py +0 -10
  442. invenio_app_rdm/stats/templates/events/file_download/os-v2/file-download-v1.0.0.json +0 -93
  443. invenio_app_rdm/stats/templates/events/file_download/v7/file-download-v1.0.0.json +0 -93
  444. invenio_app_rdm/stats/templates/events/record_view/os-v1/__init__.py +0 -10
  445. invenio_app_rdm/stats/templates/events/record_view/os-v1/record-view-v1.0.0.json +0 -70
  446. invenio_app_rdm/stats/templates/events/record_view/os-v2/__init__.py +0 -10
  447. invenio_app_rdm/stats/templates/events/record_view/os-v2/record-view-v1.0.0.json +0 -70
  448. invenio_app_rdm/stats/templates/events/record_view/v7/record-view-v1.0.0.json +0 -70
  449. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/landing_page/ShareModal.js +0 -262
  450. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/requests_items/ComputerTabletRequestsItem.js +0 -74
  451. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/user_dashboard/requests_items/MobileRequestsItem.js +0 -70
  452. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next-scanner.config.js +0 -64
  453. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/af/messages.po +0 -272
  454. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/af/translations.json +0 -87
  455. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et_EE/messages.po +0 -272
  456. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/et_EE/translations.json +0 -87
  457. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/gl/messages.po +0 -272
  458. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/gl/translations.json +0 -87
  459. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/rw/messages.po +0 -272
  460. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/rw/translations.json +0 -87
  461. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package-lock.json +0 -1512
  462. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/compileCatalog.js +0 -40
  463. invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/scripts/initCatalog.js +0 -20
  464. invenio_app_rdm/theme/static/robots.txt +0 -5
  465. invenio_app_rdm/translations/af/LC_MESSAGES/messages.mo +0 -0
  466. invenio_app_rdm/translations/af/LC_MESSAGES/messages.po +0 -728
  467. invenio_app_rdm/translations/et_EE/LC_MESSAGES/messages.mo +0 -0
  468. invenio_app_rdm/translations/et_EE/LC_MESSAGES/messages.po +0 -728
  469. invenio_app_rdm/translations/gl/LC_MESSAGES/messages.mo +0 -0
  470. invenio_app_rdm/translations/gl/LC_MESSAGES/messages.po +0 -728
  471. invenio_app_rdm/translations/rw/LC_MESSAGES/messages.mo +0 -0
  472. invenio_app_rdm/translations/rw/LC_MESSAGES/messages.po +0 -728
  473. invenio_app_rdm-12.0.0.dev8.dist-info/AUTHORS.rst +0 -11
  474. invenio_app_rdm-12.0.0.dev8.dist-info/METADATA +0 -103
  475. invenio_app_rdm-12.0.0.dev8.dist-info/RECORD +0 -402
  476. invenio_app_rdm-12.0.0.dev8.dist-info/entry_points.txt +0 -26
  477. /invenio_app_rdm/{translations/.gitkeep → theme/assets/semantic-ui/js/invenio_app_rdm/administration/userModeration/search/UserModerationBulkActions.js} +0 -0
  478. {invenio_app_rdm-12.0.0.dev8.dist-info → invenio_app_rdm-14.0.0b1.dev8.dist-info/licenses}/LICENSE +0 -0
  479. {invenio_app_rdm-12.0.0.dev8.dist-info → invenio_app_rdm-14.0.0b1.dev8.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,8 @@
1
1
  // This file is part of InvenioRDM
2
- // Copyright (C) 2020-2022 CERN.
2
+ // Copyright (C) 2020-2025 CERN.
3
3
  // Copyright (C) 2020-2022 Northwestern University.
4
4
  // Copyright (C) 2021-2022 Graz University of Technology.
5
- // Copyright (C) 2022-2023 KTH Royal Institute of Technology.
5
+ // Copyright (C) 2022-2024 KTH Royal Institute of Technology.
6
6
  //
7
7
  // Invenio App RDM is free software; you can redistribute it and/or modify it
8
8
  // under the terms of the MIT License; see LICENSE file for more details.
@@ -11,44 +11,50 @@ import { i18next } from "@translations/invenio_app_rdm/i18next";
11
11
  import _get from "lodash/get";
12
12
  import _isEmpty from "lodash/isEmpty";
13
13
  import React, { Component, createRef, Fragment } from "react";
14
+ import { AccordionField, CustomFields } from "react-invenio-forms";
14
15
  import {
15
16
  AccessRightField,
16
- CommunityHeader,
17
+ DescriptionsField,
17
18
  CreatibutorsField,
18
19
  DatesField,
19
20
  DeleteButton,
20
- DepositFormApp,
21
21
  DepositStatusBox,
22
- DescriptionsField,
23
22
  FileUploader,
23
+ UppyUploader,
24
24
  FormFeedback,
25
25
  IdentifiersField,
26
- LanguagesField,
27
- LicenseField,
28
26
  PIDField,
29
27
  PreviewButton,
28
+ LanguagesField,
29
+ LicenseField,
30
30
  PublicationDateField,
31
31
  PublishButton,
32
32
  PublisherField,
33
+ ReferencesField,
33
34
  RelatedWorksField,
34
35
  ResourceTypeField,
35
- SaveButton,
36
36
  SubjectsField,
37
37
  TitlesField,
38
38
  VersionField,
39
- FundingField,
40
- } from "react-invenio-deposit";
41
- import { AccordionField, CustomFields } from "react-invenio-forms";
39
+ DepositFormApp,
40
+ CommunityHeader,
41
+ SaveButton,
42
+ } from "@js/invenio_rdm_records";
43
+ import { FundingField } from "@js/invenio_vocabularies";
42
44
  import { Card, Container, Grid, Ref, Sticky } from "semantic-ui-react";
43
45
  import PropTypes from "prop-types";
44
46
  import Overridable from "react-overridable";
47
+ import { CopyrightsField } from "@js/invenio_rdm_records/src/deposit/fields/CopyrightsField/CopyrightsField";
48
+ import { ShareDraftButton } from "./ShareDraftButton";
49
+ import { depositFormSectionsConfig, severityChecksConfig } from "./config";
50
+ import { RecordDeletion } from "../components/RecordDeletion";
51
+ import { FileModificationUntil } from "../components/FileModificationUntil";
45
52
 
46
53
  export class RDMDepositForm extends Component {
47
54
  constructor(props) {
48
55
  super(props);
49
56
  this.config = props.config || {};
50
57
  const { files, record } = this.props;
51
-
52
58
  // TODO: Make ALL vocabulary be generated by backend.
53
59
  // Currently, some vocabulary is generated by backend and some is
54
60
  // generated by frontend here. Iteration is faster and abstractions can be
@@ -61,16 +67,16 @@ export class RDMDepositForm extends Component {
61
67
  creators: {
62
68
  ...this.config.vocabularies.creators,
63
69
  type: [
64
- { text: "Person", value: "personal" },
65
- { text: "Organization", value: "organizational" },
70
+ { text: i18next.t("Person"), value: "personal" },
71
+ { text: i18next.t("Organization"), value: "organizational" },
66
72
  ],
67
73
  },
68
74
 
69
75
  contributors: {
70
76
  ...this.config.vocabularies.contributors,
71
77
  type: [
72
- { text: "Person", value: "personal" },
73
- { text: "Organization", value: "organizational" },
78
+ { text: i18next.t("Person"), value: "personal" },
79
+ { text: i18next.t("Organization"), value: "organizational" },
74
80
  ],
75
81
  },
76
82
  identifiers: {
@@ -87,563 +93,751 @@ export class RDMDepositForm extends Component {
87
93
  ) {
88
94
  this.noFiles = true;
89
95
  }
96
+
97
+ this.sectionsConfig = depositFormSectionsConfig;
98
+ this.severityChecks = severityChecksConfig;
99
+
100
+ // hide community header for branded communities
101
+ this.hide_community_selection = this.config.hide_community_selection || false;
90
102
  }
91
103
 
92
104
  formFeedbackRef = createRef();
93
105
  sidebarRef = createRef();
94
106
 
95
107
  render() {
96
- const { record, files, permissions, preselectedCommunity } = this.props;
97
- const customFieldsUI = this.config.custom_fields.ui;
108
+ const {
109
+ config,
110
+ record,
111
+ files,
112
+ permissions,
113
+ preselectedCommunity,
114
+ filesLocked,
115
+ recordRestrictionGracePeriod,
116
+ allowRecordRestriction,
117
+ recordDeletion,
118
+ fileModification,
119
+ groupsEnabled,
120
+ allowEmptyFiles,
121
+ useUppy,
122
+ } = this.props;
123
+
124
+ // Adding section id to custom fields UI, to be used for accordions
125
+ const customFieldsUI = this.config.custom_fields.ui.map((section) => ({
126
+ ...section,
127
+ id: section.section.toLowerCase().replace(/\s+/g, "-") + "-section",
128
+ }));
129
+ const UploaderField = useUppy ? UppyUploader : FileUploader;
98
130
 
99
131
  return (
100
- <DepositFormApp
101
- config={this.config}
132
+ <Overridable
133
+ id="InvenioAppRdm.Deposit.RDMDepositForm.layout"
102
134
  record={record}
103
- preselectedCommunity={preselectedCommunity}
104
135
  files={files}
136
+ config={config}
105
137
  permissions={permissions}
138
+ preselectedCommunity={preselectedCommunity}
139
+ filesLocked={filesLocked}
140
+ recordRestrictionGracePeriod={recordRestrictionGracePeriod}
141
+ allowRecordRestriction={allowRecordRestriction}
142
+ recordDeletion={recordDeletion}
143
+ fileModification={fileModification}
144
+ groupsEnabled={groupsEnabled}
145
+ allowEmptyFiles={allowEmptyFiles}
146
+ customFieldsUI={customFieldsUI}
106
147
  >
107
- <Overridable
108
- id="InvenioAppRdm.Deposit.FormFeedback.container"
109
- labels={this.config.custom_fields.error_labels}
110
- fieldPath="message"
148
+ <DepositFormApp
149
+ config={this.config}
150
+ record={record}
151
+ preselectedCommunity={preselectedCommunity}
152
+ files={files}
153
+ permissions={permissions}
154
+ errors={record.errors}
111
155
  >
112
- <FormFeedback
113
- fieldPath="message"
156
+ <Overridable
157
+ id="InvenioAppRdm.Deposit.FormFeedback.container"
114
158
  labels={this.config.custom_fields.error_labels}
115
- />
116
- </Overridable>
117
-
118
- <Overridable id="InvenioAppRdm.Deposit.CommunityHeader.container">
119
- <CommunityHeader imagePlaceholderLink="/static/images/square-placeholder.png" />
120
- </Overridable>
121
- <Container id="rdm-deposit-form" className="rel-mt-1">
122
- <Grid className="mt-25">
123
- <Grid.Column mobile={16} tablet={16} computer={11}>
124
- <Overridable
125
- id="InvenioAppRdm.Deposit.AccordionFieldFiles.container"
159
+ fieldPath="message"
160
+ >
161
+ <FormFeedback
162
+ fieldPath="message"
163
+ labels={this.config.custom_fields.error_labels}
164
+ sectionsConfig={this.sectionsConfig}
165
+ />
166
+ </Overridable>
167
+
168
+ <Overridable
169
+ id="InvenioAppRdm.Deposit.CommunityHeader.container"
170
+ record={record}
171
+ >
172
+ {!this.hide_community_selection && (
173
+ <CommunityHeader
174
+ imagePlaceholderLink="/static/images/square-placeholder.png"
126
175
  record={record}
127
- config={this.config}
128
- noFiles={this.noFiles}
129
- >
130
- <AccordionField
131
- includesPaths={["files.enabled"]}
132
- active
133
- label={i18next.t("Files")}
176
+ />
177
+ )}
178
+ </Overridable>
179
+ <Container id="rdm-deposit-form" className="rel-mt-1">
180
+ <Grid className="mt-25">
181
+ <Grid.Column mobile={16} tablet={16} computer={11}>
182
+ <Overridable
183
+ id="InvenioAppRdm.Deposit.AccordionFieldFiles.container"
184
+ record={record}
185
+ config={this.config}
186
+ noFiles={this.noFiles}
187
+ fileModification={fileModification}
188
+ filesLocked={filesLocked}
134
189
  >
135
- {this.noFiles && record.is_published && (
136
- <div className="text-align-center pb-10">
137
- <em>{i18next.t("The record has no files.")}</em>
138
- </div>
139
- )}
140
- <Overridable
141
- id="InvenioAppRdm.Deposit.FileUploader.container"
142
- record={record}
143
- config={this.config}
190
+ <AccordionField
191
+ includesPaths={this.sectionsConfig["files-section"]}
192
+ severityChecks={this.severityChecks}
193
+ active
194
+ label={
195
+ <>
196
+ {i18next.t("Files")}
197
+ {record.is_published && (
198
+ <FileModificationUntil
199
+ fileModification={fileModification}
200
+ filesLocked={filesLocked}
201
+ record={record}
202
+ />
203
+ )}
204
+ </>
205
+ }
206
+ id="files-section"
144
207
  >
145
- <FileUploader
146
- isDraftRecord={!record.is_published}
147
- quota={this.config.quota}
148
- decimalSizeDisplay={this.config.decimal_size_display}
149
- showMetadataOnlyToggle={permissions?.can_manage_files}
150
- />
151
- </Overridable>
152
- </AccordionField>
153
- </Overridable>
154
- <Overridable
155
- id="InvenioAppRdm.Deposit.AccordionFieldBasicInformation.container"
156
- config={this.config}
157
- record={record}
158
- vocabularies={this.vocabularies}
159
- >
160
- <AccordionField
161
- includesPaths={[
162
- "metadata.resource_type",
163
- "metadata.title",
164
- "metadata.additional_titles",
165
- "metadata.publication_date",
166
- "metadata.creators",
167
- "metadata.description",
168
- "metadata.additional_descriptions",
169
- "metadata.rights",
170
- ]}
171
- active
172
- label={i18next.t("Basic information")}
208
+ {this.noFiles && record.is_published && (
209
+ <div className="text-align-center pb-10">
210
+ <em>{i18next.t("The record has no files.")}</em>
211
+ </div>
212
+ )}
213
+ <Overridable
214
+ id="InvenioAppRdm.Deposit.FileUploader.container"
215
+ record={record}
216
+ config={this.config}
217
+ permissions={permissions}
218
+ filesLocked={filesLocked}
219
+ allowEmptyFiles={allowEmptyFiles}
220
+ >
221
+ <UploaderField
222
+ isDraftRecord={!record.is_published}
223
+ quota={this.config.quota}
224
+ decimalSizeDisplay={this.config.decimal_size_display}
225
+ showMetadataOnlyToggle={permissions?.can_manage_files}
226
+ allowEmptyFiles={allowEmptyFiles}
227
+ filesLocked={filesLocked}
228
+ fileUploadConcurrency={config.fileUploadConcurrency}
229
+ fileModification={fileModification}
230
+ />
231
+ </Overridable>
232
+ </AccordionField>
233
+ </Overridable>
234
+ <Overridable
235
+ id="InvenioAppRdm.Deposit.AccordionFieldBasicInformation.container"
236
+ config={this.config}
237
+ record={record}
238
+ vocabularies={this.vocabularies}
173
239
  >
174
- <Overridable
175
- id="InvenioAppRdm.Deposit.PIDField.container"
176
- config={this.config}
177
- record={record}
240
+ <AccordionField
241
+ includesPaths={this.sectionsConfig["basic-information-section"]}
242
+ severityChecks={this.severityChecks}
243
+ active
244
+ label={i18next.t("Basic information")}
245
+ id="basic-information-section"
178
246
  >
179
- <Fragment>
180
- {this.config.pids.map((pid) => (
181
- <Fragment key={pid.scheme}>
182
- <PIDField
183
- btnLabelDiscardPID={pid.btn_label_discard_pid}
184
- btnLabelGetPID={pid.btn_label_get_pid}
185
- canBeManaged={pid.can_be_managed}
186
- canBeUnmanaged={pid.can_be_unmanaged}
187
- fieldPath={`pids.${pid.scheme}`}
188
- fieldLabel={pid.field_label}
189
- isEditingPublishedRecord={
190
- record.is_published === true // is_published is `null` at first upload
191
- }
192
- managedHelpText={pid.managed_help_text}
193
- pidLabel={pid.pid_label}
194
- pidPlaceholder={pid.pid_placeholder}
195
- pidType={pid.scheme}
196
- unmanagedHelpText={pid.unmanaged_help_text}
197
- required
198
- />
199
- </Fragment>
200
- ))}
201
- </Fragment>
202
- </Overridable>
247
+ <Overridable
248
+ id="InvenioAppRdm.Deposit.PIDField.container"
249
+ config={this.config}
250
+ record={record}
251
+ >
252
+ <Fragment>
253
+ {this.config.pids.map((pid) => (
254
+ <Fragment key={pid.scheme}>
255
+ <PIDField
256
+ btnLabelDiscardPID={pid.btn_label_discard_pid}
257
+ btnLabelGetPID={pid.btn_label_get_pid}
258
+ canBeManaged={pid.can_be_managed}
259
+ canBeUnmanaged={pid.can_be_unmanaged}
260
+ optionalDOItransitions={pid.optional_doi_transitions}
261
+ fieldPath={`pids.${pid.scheme}`}
262
+ fieldLabel={pid.field_label}
263
+ isEditingPublishedRecord={
264
+ record.is_published === true // is_published is `null` at first upload
265
+ }
266
+ managedHelpText={pid.managed_help_text}
267
+ pidLabel={pid.pid_label}
268
+ pidPlaceholder={pid.pid_placeholder}
269
+ pidType={pid.scheme}
270
+ unmanagedHelpText={pid.unmanaged_help_text}
271
+ doiDefaultSelection={pid.default_selected}
272
+ required={this.config.is_doi_required}
273
+ record={record}
274
+ />
275
+ </Fragment>
276
+ ))}
277
+ </Fragment>
278
+ </Overridable>
203
279
 
204
- <Overridable
205
- id="InvenioAppRdm.Deposit.ResourceTypeField.container"
206
- vocabularies={this.vocabularies}
207
- fieldPath="metadata.resource_type"
208
- >
209
- <ResourceTypeField
210
- options={this.vocabularies.metadata.resource_type}
280
+ <Overridable
281
+ id="InvenioAppRdm.Deposit.ResourceTypeField.container"
282
+ vocabularies={this.vocabularies}
211
283
  fieldPath="metadata.resource_type"
212
- required
213
- />
214
- </Overridable>
284
+ >
285
+ <ResourceTypeField
286
+ options={this.vocabularies.metadata.resource_type}
287
+ fieldPath="metadata.resource_type"
288
+ required
289
+ />
290
+ </Overridable>
215
291
 
216
- <Overridable
217
- id="InvenioAppRdm.Deposit.TitlesField.container"
218
- vocabularies={this.vocabularies}
219
- fieldPath="metadata.title"
220
- record={record}
221
- >
222
- <TitlesField
223
- options={this.vocabularies.metadata.titles}
292
+ <Overridable
293
+ id="InvenioAppRdm.Deposit.TitlesField.container"
294
+ vocabularies={this.vocabularies}
224
295
  fieldPath="metadata.title"
225
- recordUI={record.ui}
226
- required
227
- />
228
- </Overridable>
296
+ record={record}
297
+ >
298
+ <TitlesField
299
+ options={this.vocabularies.metadata.titles}
300
+ fieldPath="metadata.title"
301
+ recordUI={record.ui}
302
+ required
303
+ />
304
+ </Overridable>
229
305
 
230
- <Overridable
231
- id="InvenioAppRdm.Deposit.PublicationDateField.container"
232
- fieldPath="metadata.publication_date"
233
- >
234
- <PublicationDateField
235
- required
306
+ <Overridable
307
+ id="InvenioAppRdm.Deposit.PublicationDateField.container"
236
308
  fieldPath="metadata.publication_date"
237
- />
238
- </Overridable>
309
+ >
310
+ <PublicationDateField
311
+ required
312
+ fieldPath="metadata.publication_date"
313
+ />
314
+ </Overridable>
239
315
 
240
- <Overridable
241
- id="InvenioAppRdm.Deposit.CreatorsField.container"
242
- vocabularies={this.vocabularies}
243
- config={this.config}
244
- fieldPath="metadata.creators"
245
- >
246
- <CreatibutorsField
247
- label={i18next.t("Creators")}
248
- labelIcon="user"
316
+ <Overridable
317
+ id="InvenioAppRdm.Deposit.CreatorsField.container"
318
+ vocabularies={this.vocabularies}
319
+ config={this.config}
249
320
  fieldPath="metadata.creators"
250
- roleOptions={this.vocabularies.metadata.creators.role}
251
- schema="creators"
252
- autocompleteNames={this.config.autocomplete_names}
253
- required
254
- />
255
- </Overridable>
321
+ >
322
+ <CreatibutorsField
323
+ label={i18next.t("Creators")}
324
+ labelIcon="user"
325
+ fieldPath="metadata.creators"
326
+ roleOptions={this.vocabularies.metadata.creators.role}
327
+ schema="creators"
328
+ autocompleteNames={this.config.autocomplete_names}
329
+ required
330
+ />
331
+ </Overridable>
256
332
 
257
- <Overridable
258
- id="InvenioAppRdm.Deposit.DescriptionsField.container"
259
- record={record}
260
- vocabularies={this.vocabularies}
261
- fieldPath="metadata.description"
262
- >
263
- <DescriptionsField
333
+ <Overridable
334
+ id="InvenioAppRdm.Deposit.DescriptionsField.container"
335
+ record={record}
336
+ vocabularies={this.vocabularies}
264
337
  fieldPath="metadata.description"
265
- options={this.vocabularies.metadata.descriptions}
266
- recordUI={_get(record, "ui", null)}
267
- editorConfig={{
268
- removePlugins: [
269
- "Image",
270
- "ImageCaption",
271
- "ImageStyle",
272
- "ImageToolbar",
273
- "ImageUpload",
274
- "MediaEmbed",
275
- "Table",
276
- "TableToolbar",
277
- "TableProperties",
278
- "TableCellProperties",
279
- ],
280
- }}
281
- />
282
- </Overridable>
338
+ >
339
+ <DescriptionsField
340
+ fieldPath="metadata.description"
341
+ options={this.vocabularies.metadata.descriptions}
342
+ recordUI={_get(record, "ui", null)}
343
+ />
344
+ </Overridable>
283
345
 
284
- <Overridable
285
- id="InvenioAppRdm.Deposit.LicenseField.container"
286
- fieldPath="metadata.rights"
287
- >
288
- <LicenseField
346
+ <Overridable
347
+ id="InvenioAppRdm.Deposit.LicenseField.container"
289
348
  fieldPath="metadata.rights"
290
- searchConfig={{
291
- searchApi: {
292
- axios: {
293
- headers: {
294
- Accept: "application/vnd.inveniordm.v1+json",
349
+ >
350
+ <LicenseField
351
+ fieldPath="metadata.rights"
352
+ searchConfig={{
353
+ searchApi: {
354
+ axios: {
355
+ headers: {
356
+ Accept: "application/vnd.inveniordm.v1+json",
357
+ },
358
+ url: "/api/vocabularies/licenses",
359
+ withCredentials: false,
295
360
  },
296
- url: "/api/vocabularies/licenses",
297
- withCredentials: false,
298
361
  },
299
- },
300
- initialQueryState: {
301
- filters: [["tags", "recommended"]],
302
- },
303
- }}
304
- serializeLicenses={(result) => ({
305
- title: result.title_l10n,
306
- description: result.description_l10n,
307
- id: result.id,
308
- link: result.props.url,
309
- })}
362
+ initialQueryState: {
363
+ filters: [["tags", "recommended"]],
364
+ sortBy: "bestmatch",
365
+ sortOrder: "asc",
366
+ layout: "list",
367
+ page: 1,
368
+ size: 12,
369
+ },
370
+ }}
371
+ serializeLicenses={(result) => ({
372
+ title: result.title_l10n,
373
+ description: result.description_l10n,
374
+ id: result.id,
375
+ link: result.props.url,
376
+ })}
377
+ />
378
+ </Overridable>
379
+ <Overridable
380
+ id="InvenioAppRdm.Deposit.CopyrightsField.container"
381
+ fieldPath="metadata.copyright"
382
+ >
383
+ <CopyrightsField fieldPath="metadata.copyright" />
384
+ </Overridable>
385
+ <Overridable
386
+ id="InvenioAppRdm.Deposit.AccordionFieldBasicInformation.extra"
387
+ record={record}
388
+ files={files}
389
+ permissions={permissions}
390
+ preselectedCommunity={preselectedCommunity}
391
+ filesLocked={filesLocked}
392
+ recordRestrictionGracePeriod={recordRestrictionGracePeriod}
393
+ allowRecordRestriction={allowRecordRestriction}
394
+ groupsEnabled={groupsEnabled}
395
+ allowEmptyFiles={allowEmptyFiles}
396
+ customFieldsUI={customFieldsUI}
397
+ config={this.config}
398
+ vocabularies={this.vocabularies}
399
+ noFiles={this.noFiles}
400
+ hideCommunitySelection={this.hide_community_selection}
310
401
  />
311
- </Overridable>
312
- </AccordionField>
313
- </Overridable>
314
- <Overridable
315
- id="InvenioAppRdm.Deposit.AccordionFieldRecommendedInformation.container"
316
- vocabularies={this.vocabularies}
317
- config={this.config}
318
- record={record}
319
- >
320
- <AccordionField
321
- includesPaths={[
322
- "metadata.contributors",
323
- "metadata.subjects",
324
- "metadata.languages",
325
- "metadata.dates",
326
- "metadata.version",
327
- "metadata.publisher",
328
- ]}
329
- active
330
- label={i18next.t("Recommended information")}
402
+ </AccordionField>
403
+ </Overridable>
404
+ <Overridable
405
+ id="InvenioAppRdm.Deposit.BasicInformation.after.container"
406
+ record={record}
407
+ files={files}
408
+ permissions={permissions}
409
+ preselectedCommunity={preselectedCommunity}
410
+ filesLocked={filesLocked}
411
+ recordRestrictionGracePeriod={recordRestrictionGracePeriod}
412
+ allowRecordRestriction={allowRecordRestriction}
413
+ groupsEnabled={groupsEnabled}
414
+ allowEmptyFiles={allowEmptyFiles}
415
+ customFieldsUI={customFieldsUI}
416
+ config={this.config}
417
+ vocabularies={this.vocabularies}
418
+ noFiles={this.noFiles}
419
+ hideCommunitySelection={this.hide_community_selection}
420
+ />
421
+ <Overridable
422
+ id="InvenioAppRdm.Deposit.AccordionFieldRecommendedInformation.container"
423
+ vocabularies={this.vocabularies}
424
+ config={this.config}
425
+ record={record}
331
426
  >
332
- <Overridable
333
- id="InvenioAppRdm.Deposit.ContributorsField.container"
334
- fieldPath="metadata.contributors"
335
- vocabularies={this.vocabularies}
336
- config={this.config}
427
+ <AccordionField
428
+ includesPaths={
429
+ this.sectionsConfig["recommended-information-section"]
430
+ }
431
+ severityChecks={this.severityChecks}
432
+ label={i18next.t("Recommended information")}
433
+ id="recommended-information-section"
337
434
  >
338
- <CreatibutorsField
339
- addButtonLabel={i18next.t("Add contributor")}
340
- label={i18next.t("Contributors")}
341
- labelIcon="user plus"
435
+ <Overridable
436
+ id="InvenioAppRdm.Deposit.ContributorsField.container"
342
437
  fieldPath="metadata.contributors"
343
- roleOptions={this.vocabularies.metadata.contributors.role}
344
- schema="contributors"
345
- autocompleteNames={this.config.autocomplete_names}
346
- modal={{
347
- addLabel: "Add contributor",
348
- editLabel: "Edit contributor",
349
- }}
350
- />
351
- </Overridable>
438
+ vocabularies={this.vocabularies}
439
+ config={this.config}
440
+ >
441
+ <CreatibutorsField
442
+ addButtonLabel={i18next.t("Add contributor")}
443
+ label={i18next.t("Contributors")}
444
+ labelIcon="user plus"
445
+ fieldPath="metadata.contributors"
446
+ roleOptions={this.vocabularies.metadata.contributors.role}
447
+ schema="contributors"
448
+ autocompleteNames={this.config.autocomplete_names}
449
+ modal={{
450
+ addLabel: i18next.t("Add contributor"),
451
+ editLabel: i18next.t("Edit contributor"),
452
+ }}
453
+ />
454
+ </Overridable>
352
455
 
353
- <Overridable
354
- id="InvenioAppRdm.Deposit.SubjectsField.container"
355
- vocabularies={this.vocabularies}
356
- fieldPath="metadata.subjects"
357
- record={record}
358
- >
359
- <SubjectsField
456
+ <Overridable
457
+ id="InvenioAppRdm.Deposit.SubjectsField.container"
458
+ vocabularies={this.vocabularies}
360
459
  fieldPath="metadata.subjects"
361
- initialOptions={_get(record, "ui.subjects", null)}
362
- limitToOptions={this.vocabularies.metadata.subjects.limit_to}
363
- />
364
- </Overridable>
460
+ record={record}
461
+ >
462
+ <SubjectsField
463
+ fieldPath="metadata.subjects"
464
+ initialOptions={_get(record, "ui.subjects", null)}
465
+ limitToOptions={this.vocabularies.metadata.subjects.limit_to}
466
+ searchOnFocus
467
+ />
468
+ </Overridable>
365
469
 
366
- <Overridable
367
- id="InvenioAppRdm.Deposit.LanguagesField.container"
368
- fieldPath="metadata.languages"
369
- record={record}
370
- >
371
- <LanguagesField
470
+ <Overridable
471
+ id="InvenioAppRdm.Deposit.LanguagesField.container"
372
472
  fieldPath="metadata.languages"
373
- initialOptions={_get(record, "ui.languages", []).filter(
374
- (lang) => lang !== null
375
- )} // needed because dumped empty record from backend gives [null]
376
- serializeSuggestions={(suggestions) =>
377
- suggestions.map((item) => ({
378
- text: item.title_l10n,
379
- value: item.id,
380
- key: item.id,
381
- }))
382
- }
383
- />
384
- </Overridable>
473
+ record={record}
474
+ >
475
+ <LanguagesField
476
+ fieldPath="metadata.languages"
477
+ initialOptions={_get(record, "ui.languages", []).filter(
478
+ (lang) => lang !== null
479
+ )} // needed because dumped empty record from backend gives [null]
480
+ serializeSuggestions={(suggestions) =>
481
+ suggestions.map((item) => ({
482
+ text: item.title_l10n,
483
+ value: item.id,
484
+ key: item.id,
485
+ }))
486
+ }
487
+ />
488
+ </Overridable>
385
489
 
386
- <Overridable
387
- id="InvenioAppRdm.Deposit.DateField.container"
388
- vocabularies={this.vocabularies}
389
- fieldPath="metadata.dates"
390
- >
391
- <DatesField
490
+ <Overridable
491
+ id="InvenioAppRdm.Deposit.DateField.container"
492
+ vocabularies={this.vocabularies}
392
493
  fieldPath="metadata.dates"
393
- options={this.vocabularies.metadata.dates}
394
- showEmptyValue
395
- />
396
- </Overridable>
494
+ >
495
+ <DatesField
496
+ fieldPath="metadata.dates"
497
+ options={this.vocabularies.metadata.dates}
498
+ showEmptyValue
499
+ />
500
+ </Overridable>
397
501
 
398
- <Overridable
399
- id="InvenioAppRdm.Deposit.VersionField.container"
400
- fieldPath="metadata.version"
401
- >
402
- <VersionField fieldPath="metadata.version" />
403
- </Overridable>
502
+ <Overridable
503
+ id="InvenioAppRdm.Deposit.VersionField.container"
504
+ fieldPath="metadata.version"
505
+ >
506
+ <VersionField fieldPath="metadata.version" />
507
+ </Overridable>
404
508
 
405
- <Overridable
406
- id="InvenioAppRdm.Deposit.PublisherField.container"
407
- fieldPath="metadata.publisher"
408
- >
409
- <PublisherField fieldPath="metadata.publisher" />
410
- </Overridable>
411
- </AccordionField>
412
- </Overridable>
413
- <Overridable
414
- id="InvenioAppRdm.Deposit.AccordionFieldFunding.container"
415
- ui={this.accordionStyle}
416
- >
417
- <AccordionField
418
- includesPaths={["metadata.funding"]}
419
- active
420
- label="Funding"
509
+ <Overridable
510
+ id="InvenioAppRdm.Deposit.PublisherField.container"
511
+ fieldPath="metadata.publisher"
512
+ >
513
+ <PublisherField fieldPath="metadata.publisher" />
514
+ </Overridable>
515
+ </AccordionField>
516
+ </Overridable>
517
+ <Overridable
518
+ id="InvenioAppRdm.Deposit.AccordionFieldFunding.container"
421
519
  ui={this.accordionStyle}
422
520
  >
423
- <Overridable
424
- id="InvenioAppRdm.Deposit.FundingField.container"
425
- fieldPath="metadata.funding"
521
+ <AccordionField
522
+ includesPaths={this.sectionsConfig["funding-section"]}
523
+ severityChecks={this.severityChecks}
524
+ active
525
+ label={i18next.t("Funding")}
526
+ ui={this.accordionStyle}
527
+ id="funding-section"
426
528
  >
427
- <FundingField
529
+ <Overridable
530
+ id="InvenioAppRdm.Deposit.FundingField.container"
428
531
  fieldPath="metadata.funding"
429
- searchConfig={{
430
- searchApi: {
431
- axios: {
432
- headers: {
433
- Accept: "application/vnd.inveniordm.v1+json",
532
+ >
533
+ <FundingField
534
+ fieldPath="metadata.funding"
535
+ searchConfig={{
536
+ searchApi: {
537
+ axios: {
538
+ headers: {
539
+ Accept: "application/vnd.inveniordm.v1+json",
540
+ },
541
+ url: "/api/awards",
542
+ withCredentials: false,
434
543
  },
435
- url: "/api/awards",
436
- withCredentials: false,
437
544
  },
438
- },
439
- initialQueryState: {
440
- sortBy: "bestmatch",
441
- sortOrder: "asc",
442
- layout: "list",
443
- page: 1,
444
- size: 5,
445
- },
446
- }}
447
- label="Awards"
448
- labelIcon="money bill alternate outline"
449
- deserializeAward={(award) => {
450
- return {
451
- title: award.title_l10n,
452
- number: award.number,
453
- funder: award.funder ?? "",
454
- id: award.id,
455
- ...(award.identifiers && {
456
- identifiers: award.identifiers,
457
- }),
458
- ...(award.acronym && { acronym: award.acronym }),
459
- };
460
- }}
461
- deserializeFunder={(funder) => {
462
- return {
463
- id: funder.id,
464
- name: funder.name,
465
- ...(funder.title_l10n && { title: funder.title_l10n }),
466
- ...(funder.pid && { pid: funder.pid }),
467
- ...(funder.country && { country: funder.country }),
468
- ...(funder.identifiers && {
469
- identifiers: funder.identifiers,
470
- }),
471
- };
472
- }}
473
- computeFundingContents={(funding) => {
474
- let headerContent,
475
- descriptionContent,
476
- awardOrFunder = "";
477
-
478
- if (funding.funder) {
479
- const funderName =
480
- funding.funder?.name ??
481
- funding.funder?.title ??
482
- funding.funder?.id ??
483
- "";
484
- awardOrFunder = "funder";
485
- headerContent = funderName;
486
- descriptionContent = "";
487
-
488
- // there cannot be an award without a funder
489
- if (funding.award) {
490
- awardOrFunder = "award";
491
- descriptionContent = funderName;
492
- headerContent = funding.award.title;
545
+ initialQueryState: {
546
+ sortBy: "bestmatch",
547
+ sortOrder: "asc",
548
+ layout: "list",
549
+ page: 1,
550
+ size: 5,
551
+ },
552
+ }}
553
+ label={i18next.t("Awards/Grants")}
554
+ labelIcon="money bill alternate outline"
555
+ deserializeAward={(award) => {
556
+ return {
557
+ title: award.title_l10n,
558
+ number: award.number,
559
+ funder: award.funder ?? "",
560
+ id: award.id,
561
+ ...(award.identifiers && {
562
+ identifiers: award.identifiers,
563
+ }),
564
+ ...(award.acronym && { acronym: award.acronym }),
565
+ };
566
+ }}
567
+ deserializeFunder={(funder) => {
568
+ return {
569
+ id: funder.id,
570
+ name: funder.name,
571
+ ...(funder.title_l10n && { title: funder.title_l10n }),
572
+ ...(funder.pid && { pid: funder.pid }),
573
+ ...(funder.country && { country: funder.country }),
574
+ ...(funder.country_name && {
575
+ country_name: funder.country_name,
576
+ }),
577
+ ...(funder.identifiers && {
578
+ identifiers: funder.identifiers,
579
+ }),
580
+ };
581
+ }}
582
+ computeFundingContents={(funding) => {
583
+ let headerContent,
584
+ descriptionContent,
585
+ awardOrFunder = "";
586
+
587
+ if (funding.funder) {
588
+ const funderName =
589
+ funding.funder?.name ??
590
+ funding.funder?.title ??
591
+ funding.funder?.id ??
592
+ "";
593
+ awardOrFunder = "funder";
594
+ headerContent = funderName;
595
+ descriptionContent = "";
596
+
597
+ // there cannot be an award without a funder
598
+ if (funding.award) {
599
+ const { acronym, title } = funding.award;
600
+ awardOrFunder = "award";
601
+ descriptionContent = funderName;
602
+ headerContent = acronym ? `${acronym} — ${title}` : title;
603
+ }
493
604
  }
494
- }
495
605
 
496
- return { headerContent, descriptionContent, awardOrFunder };
497
- }}
498
- />
499
- </Overridable>
500
- </AccordionField>
501
- </Overridable>
502
- <Overridable
503
- id="InvenioAppRdm.Deposit.AccordionFieldAlternateIdentifiers.container"
504
- vocabularies={this.vocabularies}
505
- >
506
- <AccordionField
507
- includesPaths={["metadata.identifiers"]}
508
- active
509
- label={i18next.t("Alternate identifiers")}
606
+ return { headerContent, descriptionContent, awardOrFunder };
607
+ }}
608
+ />
609
+ </Overridable>
610
+ </AccordionField>
611
+ </Overridable>
612
+ <Overridable
613
+ id="InvenioAppRdm.Deposit.AccordionFieldAlternateIdentifiers.container"
614
+ vocabularies={this.vocabularies}
510
615
  >
511
- <Overridable
512
- id="InvenioAppRdm.Deposit.IdentifiersField.container"
513
- vocabularies={this.vocabularies}
514
- fieldPath="metadata.identifiers"
616
+ <AccordionField
617
+ includesPaths={this.sectionsConfig["alternate-identifiers-section"]}
618
+ severityChecks={this.severityChecks}
619
+ active
620
+ label={i18next.t("Alternate identifiers")}
621
+ id="alternate-identifiers-section"
515
622
  >
516
- <IdentifiersField
623
+ <Overridable
624
+ id="InvenioAppRdm.Deposit.IdentifiersField.container"
625
+ vocabularies={this.vocabularies}
517
626
  fieldPath="metadata.identifiers"
518
- label={i18next.t("Alternate identifiers")}
519
- labelIcon="barcode"
520
- schemeOptions={this.vocabularies.metadata.identifiers.scheme}
521
- showEmptyValue
522
- />
523
- </Overridable>
524
- </AccordionField>
525
- </Overridable>
526
-
527
- <Overridable
528
- id="InvenioAppRdm.Deposit.AccordionFieldRelatedWorks.container"
529
- vocabularies={this.vocabularies}
530
- >
531
- <AccordionField
532
- includesPaths={["metadata.related_identifiers"]}
533
- active
534
- label={i18next.t("Related works")}
627
+ >
628
+ <IdentifiersField
629
+ fieldPath="metadata.identifiers"
630
+ label={i18next.t("Alternate identifiers")}
631
+ labelIcon="barcode"
632
+ schemeOptions={this.vocabularies.metadata.identifiers.scheme}
633
+ showEmptyValue
634
+ />
635
+ </Overridable>
636
+ </AccordionField>
637
+ </Overridable>
638
+
639
+ <Overridable
640
+ id="InvenioAppRdm.Deposit.AccordionFieldRelatedWorks.container"
641
+ vocabularies={this.vocabularies}
535
642
  >
536
- <Overridable
537
- id="InvenioAppRdm.Deposit.RelatedWorksField.container"
538
- fieldPath="metadata.related_identifiers"
539
- vocabularies={this.vocabularies}
643
+ <AccordionField
644
+ includesPaths={this.sectionsConfig["related-works-section"]}
645
+ severityChecks={this.severityChecks}
646
+ active
647
+ label={i18next.t("Related works")}
648
+ id="related-works-section"
540
649
  >
541
- <RelatedWorksField
650
+ <Overridable
651
+ id="InvenioAppRdm.Deposit.RelatedWorksField.container"
542
652
  fieldPath="metadata.related_identifiers"
543
- options={this.vocabularies.metadata.identifiers}
544
- showEmptyValue
545
- />
546
- </Overridable>
547
- </AccordionField>
548
- </Overridable>
549
- {!_isEmpty(customFieldsUI) && (
653
+ vocabularies={this.vocabularies}
654
+ >
655
+ <RelatedWorksField
656
+ fieldPath="metadata.related_identifiers"
657
+ options={this.vocabularies.metadata.identifiers}
658
+ showEmptyValue
659
+ />
660
+ </Overridable>
661
+ </AccordionField>
662
+ </Overridable>
550
663
  <Overridable
551
- id="InvenioAppRdm.Deposit.CustomFields.container"
552
- customFieldsUI={customFieldsUI}
664
+ id="InvenioAppRdm.Deposit.AccordionFieldReferences.container"
665
+ vocabularies={this.vocabularies}
553
666
  >
554
- <CustomFields
555
- config={customFieldsUI}
556
- templateLoaders={[
557
- (widget) => import(`@templates/custom_fields/${widget}.js`),
558
- (widget) => import(`react-invenio-deposit`),
559
- (widget) => import(`react-invenio-forms`),
560
- ]}
561
- fieldPathPrefix="custom_fields"
562
- />
667
+ <AccordionField
668
+ includesPaths={this.sectionsConfig["references-section"]}
669
+ severityChecks={this.severityChecks}
670
+ active
671
+ label={i18next.t("References")}
672
+ id="references-section"
673
+ >
674
+ <Overridable
675
+ id="InvenioAppRdm.Deposit.ReferencesField.container"
676
+ fieldPath="metadata.references"
677
+ vocabularies={this.vocabularies}
678
+ >
679
+ <ReferencesField fieldPath="metadata.references" showEmptyValue />
680
+ </Overridable>
681
+ </AccordionField>
563
682
  </Overridable>
564
- )}
565
- </Grid.Column>
566
- <Ref innerRef={this.sidebarRef}>
567
- <Grid.Column
568
- mobile={16}
569
- tablet={16}
570
- computer={5}
571
- className="deposit-sidebar"
572
- >
573
- <Sticky context={this.sidebarRef} offset={20}>
574
- <Overridable id="InvenioAppRdm.Deposit.CardDepositStatusBox.container">
575
- <Card>
576
- <Card.Content>
577
- <DepositStatusBox />
578
- </Card.Content>
579
- <Card.Content>
580
- <Grid relaxed>
581
- <Grid.Column
582
- computer={8}
583
- mobile={16}
584
- className="pb-0 left-btn-col"
585
- >
586
- <SaveButton fluid />
587
- </Grid.Column>
588
-
589
- <Grid.Column
590
- computer={8}
591
- mobile={16}
592
- className="pb-0 right-btn-col"
593
- >
594
- <PreviewButton fluid />
595
- </Grid.Column>
596
-
597
- <Grid.Column width={16} className="pt-10">
598
- <PublishButton fluid />
599
- </Grid.Column>
600
- </Grid>
601
- </Card.Content>
602
- </Card>
603
- </Overridable>
683
+ {!_isEmpty(customFieldsUI) && (
604
684
  <Overridable
605
- id="InvenioAppRdm.Deposit.AccessRightField.container"
606
- fieldPath="access"
685
+ id="InvenioAppRdm.Deposit.CustomFields.container"
686
+ record={record}
687
+ customFieldsUI={customFieldsUI}
607
688
  >
608
- <AccessRightField
609
- label={i18next.t("Visibility")}
610
- labelIcon="shield"
611
- fieldPath="access"
612
- showMetadataAccess={permissions?.can_manage_record_access}
689
+ <CustomFields
690
+ config={customFieldsUI}
691
+ record={record}
692
+ templateLoaders={[
693
+ (widget) => import(`@templates/custom_fields/${widget}.js`),
694
+ (widget) =>
695
+ import(`@js/invenio_rdm_records/src/deposit/customFields`),
696
+ (widget) => import(`react-invenio-forms`),
697
+ ]}
698
+ fieldPathPrefix="custom_fields"
699
+ severityChecks={this.severityChecks}
613
700
  />
614
701
  </Overridable>
615
- {permissions?.can_delete_draft && (
702
+ )}
703
+ </Grid.Column>
704
+ <Ref innerRef={this.sidebarRef}>
705
+ <Grid.Column
706
+ mobile={16}
707
+ tablet={16}
708
+ computer={5}
709
+ className="deposit-sidebar"
710
+ >
711
+ <Sticky context={this.sidebarRef} offset={20}>
616
712
  <Overridable
617
- id="InvenioAppRdm.Deposit.CardDeleteButton.container"
713
+ id="InvenioAppRdm.Deposit.CardDepositStatusBox.container"
618
714
  record={record}
715
+ permissions={permissions}
716
+ groupsEnabled={groupsEnabled}
619
717
  >
620
718
  <Card>
621
719
  <Card.Content>
622
- <DeleteButton fluid />
720
+ <DepositStatusBox />
721
+ </Card.Content>
722
+ <Card.Content>
723
+ <Grid relaxed>
724
+ <Grid.Column
725
+ computer={8}
726
+ mobile={16}
727
+ className="pb-0 left-btn-col"
728
+ >
729
+ <SaveButton fluid />
730
+ </Grid.Column>
731
+
732
+ <Grid.Column
733
+ computer={8}
734
+ mobile={16}
735
+ className="pb-0 right-btn-col"
736
+ >
737
+ <PreviewButton fluid />
738
+ </Grid.Column>
739
+
740
+ <Grid.Column width={16} className="pt-10">
741
+ <PublishButton fluid record={record} />
742
+ </Grid.Column>
743
+
744
+ <Grid.Column width={16} className="pt-0">
745
+ {(record.is_draft === null || permissions.can_manage) && (
746
+ <ShareDraftButton
747
+ record={record}
748
+ permissions={permissions}
749
+ groupsEnabled={groupsEnabled}
750
+ />
751
+ )}
752
+ </Grid.Column>
753
+ </Grid>
623
754
  </Card.Content>
624
755
  </Card>
625
756
  </Overridable>
626
- )}
627
- </Sticky>
628
- </Grid.Column>
629
- </Ref>
630
- </Grid>
631
- </Container>
632
- </DepositFormApp>
757
+ <Overridable
758
+ id="InvenioAppRdm.Deposit.AccessRightField.container"
759
+ fieldPath="access"
760
+ record={record}
761
+ permissions={permissions}
762
+ recordRestrictionGracePeriod={recordRestrictionGracePeriod}
763
+ allowRecordRestriction={allowRecordRestriction}
764
+ >
765
+ <AccessRightField
766
+ label={i18next.t("Visibility")}
767
+ record={record}
768
+ labelIcon="shield"
769
+ fieldPath="access"
770
+ showMetadataAccess={permissions?.can_manage_record_access}
771
+ recordRestrictionGracePeriod={recordRestrictionGracePeriod}
772
+ allowRecordRestriction={allowRecordRestriction}
773
+ id="visibility-section"
774
+ />
775
+ </Overridable>
776
+ {permissions?.can_delete_draft && (
777
+ <Overridable
778
+ id="InvenioAppRdm.Deposit.CardDeleteButton.container"
779
+ record={record}
780
+ >
781
+ <Card>
782
+ <Card.Content>
783
+ <Grid relaxed>
784
+ <Grid.Column width={16}>
785
+ <DeleteButton fluid />
786
+ </Grid.Column>
787
+
788
+ {record.is_published && recordDeletion["enabled"] && (
789
+ <Grid.Column width={16} className="pt-0">
790
+ <RecordDeletion
791
+ record={record}
792
+ permissions={permissions}
793
+ recordDeletion={recordDeletion}
794
+ options={
795
+ this.vocabularies.metadata
796
+ .deletion_request_removal_reasons
797
+ }
798
+ disabled={!recordDeletion["allowed"]}
799
+ />
800
+ </Grid.Column>
801
+ )}
802
+ </Grid>
803
+ </Card.Content>
804
+ </Card>
805
+ </Overridable>
806
+ )}
807
+ </Sticky>
808
+ </Grid.Column>
809
+ </Ref>
810
+ </Grid>
811
+ </Container>
812
+ </DepositFormApp>
813
+ </Overridable>
633
814
  );
634
815
  }
635
816
  }
636
817
 
637
818
  RDMDepositForm.propTypes = {
819
+ groupsEnabled: PropTypes.bool.isRequired,
638
820
  config: PropTypes.object.isRequired,
821
+ recordRestrictionGracePeriod: PropTypes.number.isRequired,
822
+ allowRecordRestriction: PropTypes.bool.isRequired,
823
+ recordDeletion: PropTypes.object,
824
+ fileModification: PropTypes.object,
639
825
  record: PropTypes.object.isRequired,
640
826
  preselectedCommunity: PropTypes.object,
641
827
  files: PropTypes.object,
642
828
  permissions: PropTypes.object,
829
+ filesLocked: PropTypes.bool,
830
+ allowEmptyFiles: PropTypes.bool,
831
+ useUppy: PropTypes.bool,
643
832
  };
644
833
 
645
834
  RDMDepositForm.defaultProps = {
646
835
  preselectedCommunity: undefined,
647
- permissions: null,
648
836
  files: null,
837
+ permissions: null,
838
+ filesLocked: false,
839
+ allowEmptyFiles: true,
840
+ useUppy: false,
841
+ recordDeletion: {},
842
+ fileModification: {},
649
843
  };