invenio-app-rdm 13.0.0b1.dev30__py2.py3-none-any.whl → 13.0.0b2.dev1__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 (19) hide show
  1. invenio_app_rdm/__init__.py +1 -1
  2. invenio_app_rdm/administration/records/records.py +0 -5
  3. invenio_app_rdm/config.py +0 -3
  4. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUserForm.js +1 -0
  5. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RecordResourceActions.js +2 -41
  6. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js +0 -5
  7. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js +0 -3
  8. invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.overrides +0 -2
  9. invenio_app_rdm/theme/webpack.py +0 -5
  10. {invenio_app_rdm-13.0.0b1.dev30.dist-info → invenio_app_rdm-13.0.0b2.dev1.dist-info}/METADATA +42 -39
  11. {invenio_app_rdm-13.0.0b1.dev30.dist-info → invenio_app_rdm-13.0.0b2.dev1.dist-info}/RECORD +15 -19
  12. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/CompareRevisionsDropdown.js +0 -83
  13. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js +0 -77
  14. invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/CompareRevisions.js +0 -128
  15. invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/administration_page.html +0 -15
  16. {invenio_app_rdm-13.0.0b1.dev30.dist-info → invenio_app_rdm-13.0.0b2.dev1.dist-info}/LICENSE +0 -0
  17. {invenio_app_rdm-13.0.0b1.dev30.dist-info → invenio_app_rdm-13.0.0b2.dev1.dist-info}/WHEEL +0 -0
  18. {invenio_app_rdm-13.0.0b1.dev30.dist-info → invenio_app_rdm-13.0.0b2.dev1.dist-info}/entry_points.txt +0 -0
  19. {invenio_app_rdm-13.0.0b1.dev30.dist-info → invenio_app_rdm-13.0.0b2.dev1.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,6 @@
17
17
  #
18
18
  # See PEP 0440 for details - https://www.python.org/dev/peps/pep-0440
19
19
 
20
- __version__ = "13.0.0b1.dev30"
20
+ __version__ = "13.0.0b2.dev1"
21
21
 
22
22
  __all__ = ("__version__",)
@@ -56,11 +56,6 @@ class RecordAdminListView(AdminResourceListView):
56
56
  "payload_schema": None,
57
57
  "order": 1,
58
58
  },
59
- "compare": {
60
- "text": _("Compare revisions"),
61
- "payload_schema": None,
62
- "order": 1,
63
- },
64
59
  }
65
60
 
66
61
  search_config_name = "RDM_SEARCH"
invenio_app_rdm/config.py CHANGED
@@ -1461,9 +1461,6 @@ from invenio_app_rdm import __version__
1461
1461
  ADMINISTRATION_DISPLAY_VERSIONS = [("invenio-app-rdm", f"v{__version__}")]
1462
1462
  """Show the InvenioRDM version in the administration panel."""
1463
1463
 
1464
- ADMINISTRATION_THEME_BASE_TEMPLATE = "invenio_app_rdm/administration_page.html"
1465
- """Administration base template."""
1466
-
1467
1464
 
1468
1465
  APP_RDM_SUBCOMMUNITIES_LABEL = "Subcommunities"
1469
1466
  """Label for the subcommunities in the community browse page."""
@@ -83,6 +83,7 @@ export class ImpersonateUserForm extends Component {
83
83
  render() {
84
84
  const { error, loading } = this.state;
85
85
  const { user } = this.props;
86
+ console.log({ user });
86
87
  return (
87
88
  <Formik
88
89
  onSubmit={this.handleSubmit}
@@ -7,7 +7,6 @@
7
7
  */
8
8
 
9
9
  import TombstoneForm from "./TombstoneForm";
10
- import { CompareRevisions } from "./CompareRevisions";
11
10
  import React, { Component } from "react";
12
11
  import PropTypes from "prop-types";
13
12
  import { Button, Modal, Icon } from "semantic-ui-react";
@@ -23,34 +22,16 @@ export class RecordResourceActions extends Component {
23
22
  modalOpen: false,
24
23
  modalHeader: undefined,
25
24
  modalBody: undefined,
26
- modalProps: undefined,
27
25
  };
28
26
  }
29
27
 
30
28
  onModalTriggerClick = (e, { payloadSchema, dataName, dataActionKey }) => {
31
29
  const { resource } = this.props;
32
30
 
33
- if (dataActionKey === "compare") {
34
- this.setState({
35
- modalOpen: true,
36
- modalHeader: i18next.t("Compare revisions"),
37
- modalProps: {
38
- size: "large",
39
- },
40
- modalBody: (
41
- <CompareRevisions
42
- actionSuccessCallback={this.handleSuccess}
43
- actionCancelCallback={this.closeModal}
44
- resource={resource}
45
- />
46
- ),
47
- });
48
- }
49
31
  if (dataActionKey === "delete") {
50
32
  this.setState({
51
33
  modalOpen: true,
52
34
  modalHeader: i18next.t("Delete record"),
53
- modalProps: undefined, // default size
54
35
  modalBody: (
55
36
  <TombstoneForm
56
37
  actionSuccessCallback={this.handleSuccess}
@@ -64,7 +45,6 @@ export class RecordResourceActions extends Component {
64
45
  this.setState({
65
46
  modalOpen: true,
66
47
  modalHeader: i18next.t("Restore record"),
67
- modalProps: undefined, // default size
68
48
  modalBody: (
69
49
  <RestoreConfirmation
70
50
  actionSuccessCallback={this.handleSuccess}
@@ -96,30 +76,11 @@ export class RecordResourceActions extends Component {
96
76
 
97
77
  render() {
98
78
  const { actions, Element, resource } = this.props;
99
- const { modalOpen, modalHeader, modalBody, modalProps } = this.state;
79
+ const { modalOpen, modalHeader, modalBody } = this.state;
100
80
  let icon;
101
81
  return (
102
82
  <>
103
83
  {Object.entries(actions).map(([actionKey, actionConfig]) => {
104
- if (actionKey === "compare" && !resource.deletion_status.is_deleted) {
105
- icon = "file code outline";
106
- return (
107
- <Element
108
- key={actionKey}
109
- onClick={this.onModalTriggerClick}
110
- payloadSchema={actionConfig.payload_schema}
111
- dataName={actionConfig.text}
112
- dataActionKey={actionKey}
113
- icon={icon}
114
- fluid
115
- basic
116
- labelPosition="left"
117
- >
118
- {icon && <Icon name={icon} />}
119
- {actionConfig.text}
120
- </Element>
121
- );
122
- }
123
84
  if (actionKey === "delete" && !resource.deletion_status.is_deleted) {
124
85
  icon = "trash alternate";
125
86
  return (
@@ -159,7 +120,7 @@ export class RecordResourceActions extends Component {
159
120
  }
160
121
  return null;
161
122
  })}
162
- <ActionModal modalOpen={modalOpen} resource={resource} modalProps={modalProps}>
123
+ <ActionModal modalOpen={modalOpen} resource={resource}>
163
124
  {modalHeader && <Modal.Header>{modalHeader}</Modal.Header>}
164
125
  {!_isEmpty(modalBody) && modalBody}
165
126
  </ActionModal>
@@ -22,12 +22,7 @@ const restoreRecord = async (record) => {
22
22
  return await http.post(APIRoutes.restore(record));
23
23
  };
24
24
 
25
- const getRevisions = async (record) => {
26
- return await http.get(APIRoutes.compare(record));
27
- };
28
-
29
25
  export const RecordModerationApi = {
30
26
  deleteRecord: deleteRecord,
31
27
  restoreRecord: restoreRecord,
32
- getRevisions: getRevisions,
33
28
  };
@@ -12,9 +12,6 @@ const APIRoutesGenerators = {
12
12
  delete: (record, idKeyPath = "id") => {
13
13
  return `/api/records/${_get(record, idKeyPath)}/delete`;
14
14
  },
15
- compare: (record, idKeyPath = "id") => {
16
- return `/api/records/${_get(record, idKeyPath)}/revisions`;
17
- },
18
15
 
19
16
  restore: (record, idKeyPath = "id") => {
20
17
  return `/api/records/${_get(record, idKeyPath)}/restore`;
@@ -552,5 +552,3 @@ dl.details-list {
552
552
  vertical-align: sub;
553
553
  }
554
554
  }
555
-
556
-
@@ -58,7 +58,6 @@ theme = WebpackThemeBundle(
58
58
  "react-invenio-forms": "^4.0.0",
59
59
  "react-searchkit": "^3.0.0",
60
60
  "yup": "^0.32.0",
61
- "json-diff-kit": "^1.0.30",
62
61
  },
63
62
  aliases={
64
63
  # Define Semantic-UI theme configuration needed by
@@ -88,10 +87,6 @@ theme = WebpackThemeBundle(
88
87
  "from": "../node_modules/tinymce/skins/ui/oxide/content.min.css",
89
88
  "to": "../../static/dist/js/skins/ui/oxide",
90
89
  },
91
- {
92
- "from": "../node_modules/json-diff-kit/dist/viewer.css",
93
- "to": "../../static/css/json-diff-kit.css",
94
- },
95
90
  ],
96
91
  ),
97
92
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: invenio-app-rdm
3
- Version: 13.0.0b1.dev30
3
+ Version: 13.0.0b2.dev1
4
4
  Summary: Invenio Research Data Management.
5
5
  Home-page: https://github.com/inveniosoftware/invenio-app-rdm
6
6
  Author: CERN
@@ -11,53 +11,52 @@ Platform: any
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Requires-Python: >=3.7
13
13
  License-File: LICENSE
14
- Requires-Dist: invenio-app<2.0.0,>=1.4.0
15
- Requires-Dist: invenio-base<2.0.0,>=1.3.0
16
- Requires-Dist: invenio-cache<2.0.0,>=1.3.0
17
- Requires-Dist: invenio-celery<2.0.0,>=1.2.4
14
+ Requires-Dist: invenio-app<3.0.0,>=2.0.0
15
+ Requires-Dist: invenio-base<3.0.0,>=2.0.0
16
+ Requires-Dist: invenio-cache<3.0.0,>=2.0.0
17
+ Requires-Dist: invenio-celery<3.0.0,>=2.0.0
18
18
  Requires-Dist: invenio-config<2.0.0,>=1.0.3
19
- Requires-Dist: invenio-i18n<3.0.0,>=2.0.0
20
- Requires-Dist: invenio-db[mysql,postgresql]<2.0.0,>=1.1.0
21
- Requires-Dist: invenio-assets<4.0.0,>=3.1.0
22
- Requires-Dist: invenio-formatter<3.0.0,>=2.0.0
23
- Requires-Dist: invenio-logging<3.0.0,>=2.0.0
19
+ Requires-Dist: invenio-i18n<4.0.0,>=3.0.0
20
+ Requires-Dist: invenio-db[mysql,postgresql]<3.0.0,>=2.0.0
21
+ Requires-Dist: invenio-assets<5.0.0,>=4.0.0
22
+ Requires-Dist: invenio-formatter<4.0.0,>=3.0.0
23
+ Requires-Dist: invenio-logging<5.0.0,>=4.0.0
24
24
  Requires-Dist: invenio-mail<3.0.0,>=2.0.0
25
- Requires-Dist: invenio-rest<2.0.0,>=1.3.0
26
- Requires-Dist: invenio-theme<4.0.0,>=3.0.0
27
- Requires-Dist: invenio-access<4.0.0,>=3.0.0
28
- Requires-Dist: invenio-accounts<6.0.0,>=5.0.0
29
- Requires-Dist: invenio-oauth2server<3.0.0,>=2.0.0
30
- Requires-Dist: invenio-oauthclient<5.0.0,>=4.0.0
31
- Requires-Dist: invenio-userprofiles<4.0.0,>=3.0.0
32
- Requires-Dist: invenio-indexer<3.0.0,>=2.2.0
33
- Requires-Dist: invenio-jsonschemas<2.0.0,>=1.1.4
34
- Requires-Dist: invenio-oaiserver<3.0.0,>=2.2.0
35
- Requires-Dist: invenio-pidstore<2.0.0,>=1.3.0
36
- Requires-Dist: invenio-records-rest<3.0.0,>=2.2.0
37
- Requires-Dist: invenio-records-ui<2.0.0,>=1.2.0
38
- Requires-Dist: invenio-records<3.0.0,>=2.2.1
39
- Requires-Dist: invenio-search-ui<4.0.0,>=3.0.0
40
- Requires-Dist: invenio-files-rest<3.0.0,>=2.0.0
41
- Requires-Dist: invenio-previewer<3.0.0,>=2.2.0
25
+ Requires-Dist: invenio-rest<3.0.0,>=2.0.0
26
+ Requires-Dist: invenio-theme<5.0.0,>=4.0.0
27
+ Requires-Dist: invenio-access<5.0.0,>=4.0.0
28
+ Requires-Dist: invenio-accounts<7.0.0,>=6.0.0
29
+ Requires-Dist: invenio-oauth2server<4.0.0,>=3.0.0
30
+ Requires-Dist: invenio-oauthclient<6.0.0,>=5.0.0
31
+ Requires-Dist: invenio-userprofiles<5.0.0,>=4.0.0
32
+ Requires-Dist: invenio-indexer<4.0.0,>=3.0.0
33
+ Requires-Dist: invenio-jsonschemas<3.0.0,>=2.0.0
34
+ Requires-Dist: invenio-oaiserver<4.0.0,>=3.0.0
35
+ Requires-Dist: invenio-pidstore<3.0.0,>=2.0.0
36
+ Requires-Dist: invenio-records-rest<4.0.0,>=3.0.0
37
+ Requires-Dist: invenio-records-ui<3.0.0,>=2.0.0
38
+ Requires-Dist: invenio-records<4.0.0,>=3.0.0
39
+ Requires-Dist: invenio-search-ui<5.0.0,>=4.0.0
40
+ Requires-Dist: invenio-files-rest<4.0.0,>=3.0.0
41
+ Requires-Dist: invenio-previewer<4.0.0,>=3.0.0
42
42
  Requires-Dist: invenio-records-files<2.0.0,>=1.2.1
43
- Requires-Dist: invenio-communities<18.0.0,>=17.0.0
44
- Requires-Dist: invenio-rdm-records<17.0.0,>=16.0.0
43
+ Requires-Dist: invenio-communities<19.0.0,>=18.0.0.dev2
44
+ Requires-Dist: invenio-rdm-records<18.0.0,>=17.0.0.dev2
45
45
  Requires-Dist: CairoSVG<3.0.0,>=2.5.2
46
- Requires-Dist: invenio-banners<4.0.0,>=3.0.0
47
- Requires-Dist: invenio-pages<5.0.0,>=4.0.0
48
- Requires-Dist: Flask<2.3.0,>=2.2.0
46
+ Requires-Dist: invenio-banners<5.0.0,>=4.0.0
47
+ Requires-Dist: invenio-pages<6.0.0,>=5.0.0
49
48
  Provides-Extra: tests
50
49
  Requires-Dist: pytest-black-ng>=0.4.0; extra == "tests"
51
- Requires-Dist: pytest-invenio<3.0.0,>=2.1.0; extra == "tests"
50
+ Requires-Dist: pytest-invenio<4.0.0,>=3.0.0; extra == "tests"
52
51
  Requires-Dist: Sphinx>=4.5.0; extra == "tests"
53
52
  Provides-Extra: elasticsearch7
54
- Requires-Dist: invenio-search[elasticsearch7]<3.0.0,>=2.1.0; extra == "elasticsearch7"
53
+ Requires-Dist: invenio-search[elasticsearch7]<4.0.0,>=3.0.0; extra == "elasticsearch7"
55
54
  Provides-Extra: opensearch1
56
- Requires-Dist: invenio-search[opensearch1]<3.0.0,>=2.1.0; extra == "opensearch1"
55
+ Requires-Dist: invenio-search[opensearch1]<4.0.0,>=3.0.0; extra == "opensearch1"
57
56
  Provides-Extra: opensearch2
58
- Requires-Dist: invenio-search[opensearch2]<3.0.0,>=2.1.0; extra == "opensearch2"
57
+ Requires-Dist: invenio-search[opensearch2]<4.0.0,>=3.0.0; extra == "opensearch2"
59
58
  Provides-Extra: s3
60
- Requires-Dist: invenio-s3~=1.0.5; extra == "s3"
59
+ Requires-Dist: invenio-s3<3.0.0,>=2.0.0; extra == "s3"
61
60
 
62
61
  ..
63
62
  Copyright (C) 2019 CERN.
@@ -97,9 +96,13 @@ https://inveniordm.docs.cern.ch
97
96
  Changes
98
97
  =======
99
98
 
100
- Version v13.0.0b1.dev30 (released 2025-01-27)
99
+ Version v13.0.0b2.dev1 (released 2025-01-23)
101
100
 
102
- - administration: add record revision comparison
101
+ Version v13.0.0b2.dev0 (released 2024-12-16)
102
+
103
+ - setup: remove flask pin
104
+ - setup: change to reusable workflows
105
+ - setup: bump major dependencies
103
106
 
104
107
  Version v13.0.0b1.dev29 (released 2025-01-23)
105
108
 
@@ -1,6 +1,6 @@
1
- invenio_app_rdm/__init__.py,sha256=u4q_SFxQYGGR04phk4HQNcPmPh5_YK-1RsLpWt6JFz0,700
1
+ invenio_app_rdm/__init__.py,sha256=2I9EH-QSGqp5d52brpwumTCuAJPcKk-Xc0iXRvrBs4o,699
2
2
  invenio_app_rdm/cli.py,sha256=G6QqNU2W6n6ICtTMnpeKFXIsdorncDmVXwwwsGH5F2k,2746
3
- invenio_app_rdm/config.py,sha256=eg8JHluXVF6qkcom-YsaFdQj7CniqN2kc3S7JxbRU0E,50382
3
+ invenio_app_rdm/config.py,sha256=huHWP7FzjvRb7r_VOL33A9LQWKdmkUVJyEJaibKp3d4,50265
4
4
  invenio_app_rdm/ext.py,sha256=PkZhATGJDgYqBJQh41NdvBZWR83mgI3Eej6rj10UVJE,5278
5
5
  invenio_app_rdm/tasks.py,sha256=XAbl8KeAWaJ5lC_4OUWUPstvCT7lYs5tRR1zSVBDfRk,1275
6
6
  invenio_app_rdm/urls.py,sha256=VRbpuN3kQ2fcmKvEIGQ5O1EnaSsEE2kyhLwUmONwZO8,2192
@@ -8,7 +8,7 @@ invenio_app_rdm/administration/__init__.py,sha256=8r9LeoE9fNHZSVS5QsCfVhRU7MAiEO
8
8
  invenio_app_rdm/administration/domains/__init__.py,sha256=Qob5kqjRPxpuSE5yDV2tesN6tmaKp5JcxCxGA8Mrcak,487
9
9
  invenio_app_rdm/administration/domains/domains.py,sha256=vafLa-mqkg_tQLjx328E64P_4mksB5kjBlsfunvdatg,5599
10
10
  invenio_app_rdm/administration/records/__init__.py,sha256=WpNHBm_Mk9FF8GzvrXWjL79URMSgBhpqgxvrLXNooqg,434
11
- invenio_app_rdm/administration/records/records.py,sha256=ODMtYaeU2gO6wYQChqCz14fiiFOKknAGIAo4tzMchC8,5345
11
+ invenio_app_rdm/administration/records/records.py,sha256=zgdxIh5Mfs9lLtpYkCGJUNeP4OnjNP2XoqcQL0dzVT8,5209
12
12
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/domains_search.html,sha256=NP8HPfOQPIR9psNDMFRXJH8fjok2AbXCentD_3Q1wWw,338
13
13
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation.html,sha256=koXd8lV_KBgAl1Wll7aM3xR0NgYcOl2PiFqD2Xkcp2w,348
14
14
  invenio_app_rdm/administration/templates/semantic-ui/invenio_app_rdm/administration/user_moderation_details.html,sha256=g6YZh9yWqDfzd5kMgIrO4c5k4iKa61y04RsuT_ZbMJI,350
@@ -102,13 +102,11 @@ invenio_app_rdm/requests_ui/views/requests.py,sha256=gREAyePWlE-E3LIebTuSkzZ6VGl
102
102
  invenio_app_rdm/requests_ui/views/ui.py,sha256=DBysYQa__gOCg-pikO6HmoVLmRmMAVWeTBiYhPa7PmA,2359
103
103
  invenio_app_rdm/theme/__init__.py,sha256=QbkxNjjOmGKRlie96HfTXgnFeVQjOX0GdiZnHP7pIhs,277
104
104
  invenio_app_rdm/theme/views.py,sha256=UJs2_C28BWsXY1JqbRK4_ML1JRtGo1yM2S0_W37JJo4,4545
105
- invenio_app_rdm/theme/webpack.py,sha256=5ucwIJQgM1y9EFdRcsxv_ThPs7hXRzdmipVBxoU1McI,5090
105
+ invenio_app_rdm/theme/webpack.py,sha256=9G0V-vj4Mr32x3Smr9OLWUKIs8zIxpMJogLvpJHjIPk,4868
106
106
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/theme.js,sha256=2-BWDEH3YQPwPt1ey3jUHnMrKTyb0JBPRlydk5_reH8,4151
107
107
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/utils.js,sha256=zKROcc3qE64-UhM8ha42K-EDDxAXMupxoocZZ9bjEHo,3452
108
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/CompareRevisionsDropdown.js,sha256=h7ilYSO4XYwdIqO75R1aREzCdp-EFeHbMbYvQ-Iq41A,2342
109
108
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUser.js,sha256=GmZGEPOylGXr6fyNJxS_0hPwCGdO98F2u6Pn8Qrt9ew,2291
110
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUserForm.js,sha256=qsjNiOsHWx9rrP3uA4nxthUEoY9b82n0IO8PfdObxHQ,6815
111
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js,sha256=N8dEcGupDr1_TG858E6uU64TDtGVR4zJ_mgKiASG90s,1823
109
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUserForm.js,sha256=qWau-q5G9cw5zcZ0vV_YShzVLYDciLyNWtYbTVonOXM,6842
112
110
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaAction.js,sha256=wwvYfTJ7pBEdoeqcEqmxFLaEwpJnnFW0oRQTyAdDSBw,3038
113
111
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaForm.js,sha256=Ltr03KlCogkg2NjqWc1GkxJlYPWB2LDLHL04w6eJiRU,5749
114
112
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/index.js,sha256=soELMxc1jf_rL62CJ9wtWGVG13yk1PRY7JqseqnKkqU,297
@@ -116,16 +114,15 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domai
116
114
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domains/search/SearchResultItemLayout.js,sha256=sWIHw6tSCmRa0dYCHTa-fbxnHr9MhyDhMUiGlGV-HWE,6097
117
115
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/domains/search/index.js,sha256=uajCJbGiHGjRH_YapCGGXATKtAUlXTr0jirx1UfqjCQ,283
118
116
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/drafts/index.js,sha256=DuPY4wnnwyWF61Oyef1S4SvQrg-DrkZZjjQKlA0DeJo,1159
119
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/CompareRevisions.js,sha256=wqJrxHi5kW83PJhJMinpuX-He1NPBVjRVHyyhBoHoQ4,3723
120
117
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RecordActions.js,sha256=FAjkK7TZ4ebjsQh1ZcFFHkVePP2T8msa1OAIjxktKJo,1935
121
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RecordResourceActions.js,sha256=l3Ed1_cgUlLC6zjRkwA7v48sPfXqQKsNZGdGWBHGDfY,5519
118
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RecordResourceActions.js,sha256=zfsJh-_UHSXcFdfl0cZttyohvJlHs2NhOkK0DsmgvN4,4226
122
119
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RemovalReasonsSelect.js,sha256=8y1YRo1ZyqDfeQL4aNbO9ig3689YpzEBse8kLf_qI8o,2192
123
120
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RestoreConfirmation.js,sha256=Bo2_psfPKys0Xn6jzozxePzW3x9VbyvNYI64Qlqmh7w,3085
124
121
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/TombstoneForm.js,sha256=maPIZMR6QQsLUlr3S7G203muRbZ9wTRoZR2DCy0aAXg,6943
125
122
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/index.js,sha256=kWIIp7kzH3oe4xbByiUC3SpgEjAt4R3mWH8vneGWhiU,1460
126
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js,sha256=aVg7q92xn-wRx7Uff0EXBA04qYrvhYNu7IbbzfDT_LY,982
123
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js,sha256=N2Xvve7SicOPD4DRPozAi_e-pF58P4t_84joLQHALrM,855
127
124
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/index.js,sha256=8D199izj4qOxNVS1XrS3JutmuBYIjHkvshUdv1aU92U,261
128
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js,sha256=scsibLhOtl8m6rI1w2IZEgW5eP_z8nRPkBSSFJXoOKQ,668
125
+ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js,sha256=lxEaU0S-1ngOR-Cd6HLjmv7TO2ODR-0l5MZ3ApdNcGc,556
129
126
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/AdministrationSearchLayout.js,sha256=3pRQVkFOnyqRFWmbE3vXMB75Vnrvf-Y5pzZF79iT9q0,1854
130
127
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/RecordSearchLayout.js,sha256=F3Ht0kMf6-cSmbTSRo-PnJLneCqoqh7d0ea1A2Lj2i8,2544
131
128
  invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/SearchResultItemLayout.js,sha256=CsbdG5fVx2hw1SenJ5wHVd468-n5qp2yhB5x3ceGCuE,5611
@@ -251,7 +248,7 @@ invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/seg
251
248
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/elements/segment.variables,sha256=HwtfX97PrCMjVYBHj323pUmrjBuUl41yVthXQL_8YHs,141
252
249
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/reset.overrides,sha256=ms-coZLC-kFoWoZ4UNyJq0FRQ0bSLRziXzbyP7tnmNA,139
253
250
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/reset.variables,sha256=Luyh-V1w5wDFv2j77bYmTxfn22Cp7h1vLjRsqhf207Y,139
254
- invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.overrides,sha256=8LBnXXf0lYLQEhw-1BBhKj9tGYCS1Gpw0qVxKG_Vomo,9011
251
+ invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.overrides,sha256=MdrtvnaxaehWWhitoz_ZVjWPpVP6_XiPpMERM7mbuTc,9009
255
252
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/globals/site.variables,sha256=j59x9AQ5p4omynVitye2tIM3h0GCXSqcajNYJElKxjI,3043
256
253
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/accordion.overrides,sha256=7SK2kGZU-KMda2SVbuLfP-6hk0vTe_4gFk6O_RvU_hs,3306
257
254
  invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/modules/accordion.variables,sha256=JFUnfiL_Xve48EwxRjYq0T-QJA8jboC606L08IjrBXg,322
@@ -381,7 +378,6 @@ invenio_app_rdm/theme/static/images/icons8-web-design-80.png,sha256=lRi5Dfc01unG
381
378
  invenio_app_rdm/theme/static/images/invenio-rdm.svg,sha256=UPCbTYMkSmnFj0SqQ2o_oJdybZtH_Q4HguqS0x-FS2U,6831
382
379
  invenio_app_rdm/theme/static/images/orcid.svg,sha256=D79IRA7Ul2mfO9deW-Xocz_FTR-Ol5q3Nepya34pjWY,1117
383
380
  invenio_app_rdm/theme/static/images/ror-icon.svg,sha256=aIth5_-aYB7yx1nswjM6XgHAFW6dvJc5khkR9khWCZM,3712
384
- invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/administration_page.html,sha256=KkfcHLi4vx-Pd4K0ZZvgPBx6lGK5l9xCLV3hkklvYVw,394
385
381
  invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/default_static_page.html,sha256=Un6KtaKmNlM-R7Qu1eeh0FFckgym3mq1zHV-AOew5pY,1178
386
382
  invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/footer.html,sha256=rZ5XGaoYNIOCii6W7ClPv6sgjeU5HPLR6TeEqTWzDZ0,2975
387
383
  invenio_app_rdm/theme/templates/semantic-ui/invenio_app_rdm/frontpage.html,sha256=l-u25QOE2OkkPt-f7Cce469u4W2TnBdB_HVXpSZx3DE,1605
@@ -523,9 +519,9 @@ invenio_app_rdm/users_ui/views/__init__.py,sha256=SMdY2NJj9GICfr3Xuok7qdNYVtA2bJ
523
519
  invenio_app_rdm/users_ui/views/dashboard.py,sha256=iUn2PrODAwb8ugmMosJKAjPhUzjCiWiAWoXQr9RUFuc,1793
524
520
  invenio_app_rdm/users_ui/views/ui.py,sha256=W_eXM8dLVIrNHQB2UEh37C9BYoHauft6RyvcDNFHovA,1742
525
521
  invenio_app_rdm/utils/files.py,sha256=CruDyO2gDVadSlWEJD-WHpWHeOQ0juh-Ei9jz3D9yjc,3923
526
- invenio_app_rdm-13.0.0b1.dev30.dist-info/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
527
- invenio_app_rdm-13.0.0b1.dev30.dist-info/METADATA,sha256=3_x0mc0UjZZiexx0iri9AuiPfUlBQVnWzZClrRHqeYQ,9651
528
- invenio_app_rdm-13.0.0b1.dev30.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
529
- invenio_app_rdm-13.0.0b1.dev30.dist-info/entry_points.txt,sha256=r1vTqYNABeWqRMWitzyR9FnBsAy-KYZKZCp95IziyLY,2070
530
- invenio_app_rdm-13.0.0b1.dev30.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
531
- invenio_app_rdm-13.0.0b1.dev30.dist-info/RECORD,,
522
+ invenio_app_rdm-13.0.0b2.dev1.dist-info/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
523
+ invenio_app_rdm-13.0.0b2.dev1.dist-info/METADATA,sha256=6b7qhVtUx5qhc5k6NlIADxKZnNsX7f8U1mnskIlHkDg,9725
524
+ invenio_app_rdm-13.0.0b2.dev1.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
525
+ invenio_app_rdm-13.0.0b2.dev1.dist-info/entry_points.txt,sha256=r1vTqYNABeWqRMWitzyR9FnBsAy-KYZKZCp95IziyLY,2070
526
+ invenio_app_rdm-13.0.0b2.dev1.dist-info/top_level.txt,sha256=quZejDUw2vLfKQboNIuVLJ9fxZifdnCT_s2PNf1dfmk,16
527
+ invenio_app_rdm-13.0.0b2.dev1.dist-info/RECORD,,
@@ -1,83 +0,0 @@
1
- /*
2
- * // This file is part of Invenio-App-Rdm
3
- * // Copyright (C) 2025 CERN.
4
- * //
5
- * // Invenio-App-Rdm is free software; you can redistribute it and/or modify it
6
- * // under the terms of the MIT License; see LICENSE file for more details.
7
- */
8
-
9
- import React, { useState } from "react";
10
- import PropTypes from "prop-types";
11
- import { Grid, Dropdown, Button } from "semantic-ui-react";
12
-
13
- export const CompareRevisionsDropdown = ({
14
- loading,
15
- options,
16
- onCompare,
17
- srcRevision: srcOption,
18
- targetRevision: targetOption,
19
- }) => {
20
- // Local state for selected revisions
21
- const [srcRevision, setSrcRevision] = useState(srcOption);
22
- const [targetRevision, setTargetRevision] = useState(targetOption);
23
-
24
- const handleCompare = () => {
25
- onCompare(srcRevision, targetRevision);
26
- };
27
-
28
- return (
29
- <Grid>
30
- <Grid.Column mobile={16} computer={6} tablet={16} largeScreen={6} widescreen={6}>
31
- <label htmlFor="source-revision">From</label>
32
- <Dropdown
33
- id="source-revision"
34
- loading={loading}
35
- placeholder="Source revision..."
36
- fluid
37
- selection
38
- value={srcRevision}
39
- onChange={(e, { value }) => setSrcRevision(value)}
40
- options={options}
41
- scrolling
42
- />
43
- </Grid.Column>
44
- <Grid.Column mobile={16} computer={6} tablet={16} largeScreen={6} widescreen={6}>
45
- <label htmlFor="target-revision">To</label>
46
- <Dropdown
47
- id="target-revision"
48
- loading={loading}
49
- placeholder="Target revision..."
50
- fluid
51
- selection
52
- value={targetRevision}
53
- onChange={(e, { value }) => setTargetRevision(value)}
54
- options={options}
55
- scrolling
56
- />
57
- </Grid.Column>
58
- <Grid.Column
59
- verticalAlign="bottom"
60
- mobile={16}
61
- computer={2}
62
- tablet={16}
63
- largeScreen={2}
64
- widescreen={2}
65
- >
66
- <Button
67
- onClick={handleCompare}
68
- disabled={loading || !srcRevision || !targetRevision}
69
- >
70
- Compare
71
- </Button>
72
- </Grid.Column>
73
- </Grid>
74
- );
75
- };
76
-
77
- CompareRevisionsDropdown.propTypes = {
78
- loading: PropTypes.bool.isRequired,
79
- options: PropTypes.array.isRequired,
80
- onCompare: PropTypes.func.isRequired,
81
- srcRevision: PropTypes.object,
82
- targetRevision: PropTypes.object,
83
- };
@@ -1,77 +0,0 @@
1
- /*
2
- * // This file is part of Invenio-App-Rdm
3
- * // Copyright (C) 2025 CERN.
4
- * //
5
- * // Invenio-App-Rdm is free software; you can redistribute it and/or modify it
6
- * // under the terms of the MIT License; see LICENSE file for more details.
7
- */
8
-
9
- import React, { Component } from "react";
10
- import PropTypes from "prop-types";
11
- import { Grid, Container } from "semantic-ui-react";
12
- import { Differ, Viewer } from "json-diff-kit";
13
-
14
- export class RevisionsDiffViewer extends Component {
15
- constructor(props) {
16
- super(props);
17
- this.differ = new Differ({
18
- detectCircular: true,
19
- maxDepth: null,
20
- showModifications: true,
21
- arrayDiffMethod: "lcs",
22
- ignoreCase: false,
23
- ignoreCaseForKey: false,
24
- recursiveEqual: true,
25
- });
26
-
27
- this.viewerProps = {
28
- indent: 4,
29
- lineNumbers: true,
30
- highlightInlineDiff: true,
31
- inlineDiffOptions: {
32
- mode: "word",
33
- wordSeparator: " ",
34
- },
35
- hideUnchangedLines: true,
36
- syntaxHighlight: false,
37
- virtual: true,
38
- };
39
-
40
- this.state = {
41
- currentDiff: undefined,
42
- };
43
- }
44
-
45
- componentDidUpdate(prevProps) {
46
- const { diff } = this.props;
47
-
48
- if (diff !== prevProps.diff) {
49
- this.computeDiff();
50
- }
51
- }
52
-
53
- computeDiff = () => {
54
- const { diff } = this.props;
55
- const _diff = this.differ.diff(diff?.srcRevision, diff?.targetRevision);
56
- this.setState({ currentDiff: _diff });
57
- };
58
-
59
- render() {
60
- const { currentDiff } = this.state;
61
-
62
- return currentDiff ? (
63
- <Grid>
64
- <Grid.Column width={16}>
65
- <Container fluid>
66
- <Viewer diff={currentDiff} {...this.viewerProps} />
67
- </Container>
68
- </Grid.Column>
69
- </Grid>
70
- ) : null;
71
- }
72
- }
73
-
74
- RevisionsDiffViewer.propTypes = {
75
- diff: PropTypes.object,
76
- viewerProps: PropTypes.object.isRequired,
77
- };
@@ -1,128 +0,0 @@
1
- /*
2
- * // This file is part of Invenio-App-Rdm
3
- * // Copyright (C) 2025 CERN.
4
- * //
5
- * // Invenio-App-Rdm is free software; you can redistribute it and/or modify it
6
- * // under the terms of the MIT License; see LICENSE file for more details.
7
- */
8
- import React, { Component } from "react";
9
- import PropTypes from "prop-types";
10
- import { RecordModerationApi } from "./api";
11
- import { withCancel, ErrorMessage } from "react-invenio-forms";
12
- import { Modal, Button, Grid } from "semantic-ui-react";
13
- import { i18next } from "@translations/invenio_app_rdm/i18next";
14
- import { CompareRevisionsDropdown } from "../components/CompareRevisionsDropdown";
15
- import { RevisionsDiffViewer } from "../components/RevisionsDiffViewer";
16
-
17
- export class CompareRevisions extends Component {
18
- constructor(props) {
19
- super(props);
20
-
21
- this.state = {
22
- loading: true,
23
- error: undefined,
24
- allRevisions: {},
25
- srcRevision: undefined,
26
- targetRevision: undefined,
27
- diff: undefined,
28
- };
29
- }
30
-
31
- async fetchRevisions() {
32
- const { resource } = this.props;
33
- this.setState({ loading: true });
34
-
35
- try {
36
- this.cancellableAction = withCancel(RecordModerationApi.getRevisions(resource));
37
- const response = await this.cancellableAction.promise;
38
- const revisions = await response.data;
39
-
40
- this.setState({
41
- allRevisions: revisions,
42
- targetRevision: revisions[0],
43
- srcRevision: revisions.length > 1 ? revisions[1] : revisions[0],
44
- loading: false,
45
- });
46
- } catch (error) {
47
- if (error === "UNMOUNTED") return;
48
- this.setState({ error: error, loading: false });
49
- console.error(error);
50
- }
51
- }
52
-
53
- componentDidMount() {
54
- this.fetchRevisions();
55
- }
56
-
57
- componentWillUnmount() {
58
- this.cancellableAction && this.cancellableAction.cancel();
59
- }
60
-
61
- handleModalClose = () => {
62
- const { actionCancelCallback } = this.props;
63
- actionCancelCallback();
64
- };
65
-
66
- handleCompare = (srcRevision, targetRevision) => {
67
- this.setState({ diff: { srcRevision, targetRevision } });
68
- };
69
-
70
- render() {
71
- const { error, loading, allRevisions, srcRevision, targetRevision, diff } =
72
- this.state;
73
- const options = Object.values(allRevisions).map((rev) => ({
74
- key: rev.updated,
75
- text: `${rev.updated} (${rev.revision_id})`,
76
- value: rev,
77
- }));
78
-
79
- return loading ? (
80
- <p>Loading...</p>
81
- ) : (
82
- <>
83
- <Modal.Content>
84
- <CompareRevisionsDropdown
85
- loading={loading}
86
- options={options}
87
- srcRevision={srcRevision}
88
- targetRevision={targetRevision}
89
- onCompare={this.handleCompare}
90
- />
91
- {error && (
92
- <Modal.Content>
93
- <ErrorMessage
94
- header={i18next.t("Unable to fetch revisions.")}
95
- content={error}
96
- icon="exclamation"
97
- className="text-align-left"
98
- negative
99
- />
100
- </Modal.Content>
101
- )}
102
- <Modal.Content scrolling>
103
- <RevisionsDiffViewer diff={this.state.diff} />
104
- </Modal.Content>
105
- </Modal.Content>
106
- <Modal.Actions>
107
- <Grid>
108
- <Grid.Column floated="left" width={8} textAlign="left">
109
- <Button
110
- onClick={this.handleModalClose}
111
- disabled={loading}
112
- loading={loading}
113
- aria-label={i18next.t("Cancel revision comparison")}
114
- >
115
- Close
116
- </Button>
117
- </Grid.Column>
118
- </Grid>
119
- </Modal.Actions>
120
- </>
121
- );
122
- }
123
- }
124
-
125
- CompareRevisions.propTypes = {
126
- resource: PropTypes.object.isRequired,
127
- actionCancelCallback: PropTypes.func.isRequired,
128
- };
@@ -1,15 +0,0 @@
1
- {# -*- coding: utf-8 -*-
2
-
3
- This file is part of Invenio.
4
- Copyright (C) 2015-2025 CERN.
5
-
6
- Invenio is free software; you can redistribute it and/or modify it
7
- under the terms of the MIT License; see LICENSE file for more details.
8
- #}
9
-
10
- {%- extends "invenio_theme/page.html" -%}
11
-
12
- {%- block css %}
13
- {{ super()}}
14
- <link rel="stylesheet" href="/static/css/json-diff-kit.css">
15
- {%- endblock css %}