invenio-app-rdm 13.0.0b3.dev14__py2.py3-none-any.whl → 13.0.0b3.dev16__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- invenio_app_rdm/__init__.py +1 -1
- invenio_app_rdm/administration/audit_logs/audit_logs.py +22 -18
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html +1 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html +1 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html +1 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html +1 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html +1 -1
- invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/versions.html +1 -1
- invenio_app_rdm/records_ui/views/records.py +1 -2
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/AuditLogActions.js +136 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewJson.js +35 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewRecentChanges.js +119 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/index.js +2 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/SearchResultItemLayout.js +34 -18
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js +1 -1
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js +5 -0
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js +7 -1
- invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package.json +2 -1
- invenio_app_rdm/theme/webpack.py +1 -0
- {invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/METADATA +9 -1
- {invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/RECORD +25 -23
- invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewAction.js +0 -0
- {invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/WHEEL +0 -0
- {invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/entry_points.txt +0 -0
- {invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/licenses/LICENSE +0 -0
- {invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/top_level.txt +0 -0
invenio_app_rdm/__init__.py
CHANGED
|
@@ -34,36 +34,40 @@ class AuditLogListView(AdminResourceListView):
|
|
|
34
34
|
display_edit = False
|
|
35
35
|
|
|
36
36
|
item_field_list = {
|
|
37
|
-
"id": {
|
|
38
|
-
"text": _("Log ID"),
|
|
39
|
-
"order": 1,
|
|
40
|
-
"width": 3,
|
|
41
|
-
"width": 3,
|
|
42
|
-
},
|
|
43
37
|
"resource.type": {
|
|
44
38
|
"text": _("Resource"),
|
|
45
|
-
"order":
|
|
39
|
+
"order": 1,
|
|
46
40
|
"width": 2,
|
|
47
41
|
},
|
|
48
|
-
"resource.id": {
|
|
42
|
+
"resource.id": {
|
|
49
43
|
"text": _("Resource ID"),
|
|
50
|
-
"order":
|
|
51
|
-
"width": 2,
|
|
44
|
+
"order": 2,
|
|
52
45
|
},
|
|
53
46
|
"action": {
|
|
54
47
|
"text": _("Action"),
|
|
55
|
-
"order":
|
|
56
|
-
"width": 2,
|
|
48
|
+
"order": 3,
|
|
57
49
|
},
|
|
58
|
-
"user.id": {
|
|
50
|
+
"user.id": {
|
|
59
51
|
"text": _("User"),
|
|
60
|
-
"order":
|
|
61
|
-
"width": 3,
|
|
52
|
+
"order": 4,
|
|
62
53
|
},
|
|
63
54
|
"created": {
|
|
64
|
-
"text": _("
|
|
65
|
-
"order":
|
|
66
|
-
|
|
55
|
+
"text": _("Created"),
|
|
56
|
+
"order": 5,
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
actions = {
|
|
61
|
+
"view_log": {
|
|
62
|
+
"text": _("View Log"),
|
|
63
|
+
"payload_schema": None,
|
|
64
|
+
"order": 1,
|
|
65
|
+
},
|
|
66
|
+
"view_changes": {
|
|
67
|
+
"text": _("View Changes"),
|
|
68
|
+
"payload_schema": None,
|
|
69
|
+
"order": 2,
|
|
70
|
+
"show_for": ["record.publish"],
|
|
67
71
|
},
|
|
68
72
|
}
|
|
69
73
|
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
<div id="recordManagementMobile"
|
|
205
205
|
role="dialog"
|
|
206
206
|
class="ui flowing popup transition hidden"
|
|
207
|
-
data-record='{{
|
|
207
|
+
data-record='{{ record | tojson }}'
|
|
208
208
|
data-permissions='{{ permissions | tojson }}'
|
|
209
209
|
data-is-draft="{{ is_draft | tojson }}"
|
|
210
210
|
{% if config.RDM_DETAIL_SIDE_BAR_MANAGE_ATTRIBUTES_EXTENSION_TEMPLATE %}
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
</div>
|
|
34
34
|
{% endif %}
|
|
35
35
|
<div id="access-request-form-root"
|
|
36
|
-
data-record='{{
|
|
36
|
+
data-record='{{ record | tojson }}'
|
|
37
37
|
data-user-anonymous='{{ current_user.is_anonymous | tojson }}'
|
|
38
38
|
data-user-full-name='{{ full_name | tojson }}'
|
|
39
39
|
data-user-email='{{ email | tojson }}'>
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
it under the terms of the MIT License; see LICENSE file for more details.
|
|
8
8
|
#}
|
|
9
9
|
|
|
10
|
-
<div id="recordCitation" data-record='{{
|
|
10
|
+
<div id="recordCitation" data-record='{{ record | tojson }}'
|
|
11
11
|
data-styles='{{ config.get("RDM_CITATION_STYLES") | tojson }}'
|
|
12
12
|
data-defaultstyle='{{ config.get("RDM_CITATION_STYLES_DEFAULT") | tojson }}'
|
|
13
13
|
data-include-deleted='{{ include_deleted | tojson }}'>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
{% endmacro %}
|
|
21
21
|
|
|
22
22
|
{% set rights = record.ui.get('rights', []) %}
|
|
23
|
-
{% set copyrights = record.
|
|
23
|
+
{% set copyrights = record.get('metadata', {}).get('copyright') %}
|
|
24
24
|
{% if rights or copyrights %}
|
|
25
25
|
<div class="sidebar-container">
|
|
26
26
|
<h2 class="ui medium top attached header mt-0">{{ _('Rights') }}</h2>
|
|
@@ -12,7 +12,7 @@ it under the terms of the MIT License; see LICENSE file for more details.
|
|
|
12
12
|
>
|
|
13
13
|
<div class="column"
|
|
14
14
|
id="recordManagement"
|
|
15
|
-
data-record='{{
|
|
15
|
+
data-record='{{ record | tojson }}'
|
|
16
16
|
data-permissions='{{ permissions | tojson }}'
|
|
17
17
|
data-is-draft="{{ is_draft | tojson }}"
|
|
18
18
|
data-is-preview-submission-request="{{ is_preview_submission_request | tojson }}"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<h2 class="ui medium top attached header mt-0">{{ _('Versions')}}</h2>
|
|
13
13
|
<div id="record-versions" class="ui segment rdm-sidebar bottom attached pl-0 pr-0 pt-0">
|
|
14
14
|
<div class="versions">
|
|
15
|
-
<div id="recordVersions" data-record='{{
|
|
15
|
+
<div id="recordVersions" data-record='{{ record | tojson }}' data-preview='{{ is_preview | tojson }}'>
|
|
16
16
|
<div class="rel-p-1"></div>
|
|
17
17
|
<div class="ui fluid placeholder rel-mr-1 rel-ml-1"></div>
|
|
18
18
|
<div class="header">
|
|
@@ -233,8 +233,7 @@ def record_detail(
|
|
|
233
233
|
return render_community_theme_template(
|
|
234
234
|
current_app.config.get("APP_RDM_RECORD_LANDING_PAGE_TEMPLATE"),
|
|
235
235
|
theme=theme,
|
|
236
|
-
record=
|
|
237
|
-
record_ui=record_ui,
|
|
236
|
+
record=record_ui,
|
|
238
237
|
files=files_dict,
|
|
239
238
|
media_files=media_files_dict,
|
|
240
239
|
user_communities_memberships=get_user_communities_memberships(),
|
|
@@ -0,0 +1,136 @@
|
|
|
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 { Button, Modal, Icon } from "semantic-ui-react";
|
|
12
|
+
import { ActionModal } from "@js/invenio_administration";
|
|
13
|
+
import _isEmpty from "lodash/isEmpty";
|
|
14
|
+
import { i18next } from "@translations/invenio_app_rdm/i18next";
|
|
15
|
+
import { ViewRecentChanges } from "./ViewRecentChanges";
|
|
16
|
+
import { ViewJson } from "./ViewJson";
|
|
17
|
+
|
|
18
|
+
export class AuditLogActions extends Component {
|
|
19
|
+
constructor(props) {
|
|
20
|
+
super(props);
|
|
21
|
+
this.state = {
|
|
22
|
+
modalOpen: false,
|
|
23
|
+
modalHeader: undefined,
|
|
24
|
+
modalBody: undefined,
|
|
25
|
+
modalProps: undefined,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
onModalTriggerClick = (e, { payloadSchema, dataName, dataActionKey }) => {
|
|
30
|
+
const { resource } = this.props;
|
|
31
|
+
|
|
32
|
+
if (dataActionKey === "view_changes") {
|
|
33
|
+
this.setState({
|
|
34
|
+
modalOpen: true,
|
|
35
|
+
modalHeader: i18next.t("Recent changes"),
|
|
36
|
+
modalProps: {
|
|
37
|
+
size: "large",
|
|
38
|
+
},
|
|
39
|
+
modalBody: (
|
|
40
|
+
<ViewRecentChanges
|
|
41
|
+
actionCancelCallback={this.closeModal}
|
|
42
|
+
resource={resource}
|
|
43
|
+
/>
|
|
44
|
+
),
|
|
45
|
+
});
|
|
46
|
+
} else if (dataActionKey === "view_log") {
|
|
47
|
+
this.setState({
|
|
48
|
+
modalOpen: true,
|
|
49
|
+
modalHeader: i18next.t("Audit Log Details"),
|
|
50
|
+
modalProps: {
|
|
51
|
+
size: "large",
|
|
52
|
+
},
|
|
53
|
+
modalBody: <ViewJson jsonData={resource} onCloseHandler={this.closeModal} />,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
closeModal = () => {
|
|
59
|
+
this.setState({
|
|
60
|
+
modalOpen: false,
|
|
61
|
+
modalHeader: undefined,
|
|
62
|
+
modalBody: undefined,
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
render() {
|
|
67
|
+
const { actions, Element, resource } = this.props;
|
|
68
|
+
const { action } = resource;
|
|
69
|
+
const { modalOpen, modalHeader, modalBody, modalProps } = this.state;
|
|
70
|
+
let icon;
|
|
71
|
+
return (
|
|
72
|
+
<>
|
|
73
|
+
{Object.entries(actions).map(([actionKey, actionConfig]) => {
|
|
74
|
+
if (actionKey === "view_log") {
|
|
75
|
+
icon = "eye";
|
|
76
|
+
return (
|
|
77
|
+
<Element
|
|
78
|
+
key={actionKey}
|
|
79
|
+
onClick={this.onModalTriggerClick}
|
|
80
|
+
payloadSchema={actionConfig.payload_schema}
|
|
81
|
+
dataName={actionConfig.text}
|
|
82
|
+
dataActionKey={actionKey}
|
|
83
|
+
icon={icon}
|
|
84
|
+
fluid
|
|
85
|
+
basic
|
|
86
|
+
labelPosition="left"
|
|
87
|
+
>
|
|
88
|
+
{icon && <Icon name={icon} />}
|
|
89
|
+
{actionConfig.text}...
|
|
90
|
+
</Element>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
if (actionKey === "view_changes" && actionConfig.show_for.includes(action)) {
|
|
94
|
+
icon = "file code outline";
|
|
95
|
+
return (
|
|
96
|
+
<Element
|
|
97
|
+
key={actionKey}
|
|
98
|
+
onClick={this.onModalTriggerClick}
|
|
99
|
+
payloadSchema={actionConfig.payload_schema}
|
|
100
|
+
dataName={actionConfig.text}
|
|
101
|
+
dataActionKey={actionKey}
|
|
102
|
+
icon={icon}
|
|
103
|
+
fluid
|
|
104
|
+
basic
|
|
105
|
+
labelPosition="left"
|
|
106
|
+
>
|
|
107
|
+
{icon && <Icon name={icon} />}
|
|
108
|
+
{actionConfig.text}...
|
|
109
|
+
</Element>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
})}
|
|
114
|
+
<ActionModal modalOpen={modalOpen} resource={resource} modalProps={modalProps}>
|
|
115
|
+
{modalHeader && <Modal.Header>{modalHeader}</Modal.Header>}
|
|
116
|
+
{!_isEmpty(modalBody) && modalBody}
|
|
117
|
+
</ActionModal>
|
|
118
|
+
</>
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
AuditLogActions.propTypes = {
|
|
124
|
+
resource: PropTypes.object.isRequired,
|
|
125
|
+
actions: PropTypes.shape({
|
|
126
|
+
text: PropTypes.string.isRequired,
|
|
127
|
+
payload_schema: PropTypes.object.isRequired,
|
|
128
|
+
order: PropTypes.number.isRequired,
|
|
129
|
+
}),
|
|
130
|
+
Element: PropTypes.node,
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
AuditLogActions.defaultProps = {
|
|
134
|
+
Element: Button,
|
|
135
|
+
actions: undefined,
|
|
136
|
+
};
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewJson.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
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 { Button, Modal } from "semantic-ui-react";
|
|
11
|
+
import PropTypes from "prop-types";
|
|
12
|
+
import ReactJson from "react-json-view";
|
|
13
|
+
|
|
14
|
+
export class ViewJson extends Component {
|
|
15
|
+
render() {
|
|
16
|
+
const { jsonData, onCloseHandler } = this.props;
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
<Modal.Content>
|
|
20
|
+
<Modal.Description>
|
|
21
|
+
<ReactJson src={jsonData} name={null} />
|
|
22
|
+
</Modal.Description>
|
|
23
|
+
</Modal.Content>
|
|
24
|
+
<Modal.Actions>
|
|
25
|
+
<Button onClick={onCloseHandler}>Close</Button>
|
|
26
|
+
</Modal.Actions>
|
|
27
|
+
</>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
ViewJson.propTypes = {
|
|
33
|
+
jsonData: PropTypes.object.isRequired,
|
|
34
|
+
onCloseHandler: PropTypes.object.isRequired,
|
|
35
|
+
};
|
|
@@ -0,0 +1,119 @@
|
|
|
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 "../records/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 { RevisionsDiffViewer } from "../components/RevisionsDiffViewer";
|
|
15
|
+
|
|
16
|
+
export class ViewRecentChanges extends Component {
|
|
17
|
+
constructor(props) {
|
|
18
|
+
super(props);
|
|
19
|
+
|
|
20
|
+
this.state = {
|
|
21
|
+
loading: true,
|
|
22
|
+
error: undefined,
|
|
23
|
+
diff: undefined,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async fetchPreviousRevision() {
|
|
28
|
+
const { resource } = this.props;
|
|
29
|
+
const {
|
|
30
|
+
resource: record,
|
|
31
|
+
metadata: { revision_id: targetRevision } = { revision_id: null },
|
|
32
|
+
} = resource;
|
|
33
|
+
this.setState({ loading: true });
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
if (!targetRevision) {
|
|
37
|
+
this.setState({
|
|
38
|
+
error: i18next.t("No revision ID found."),
|
|
39
|
+
loading: false,
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.cancellableAction = withCancel(
|
|
44
|
+
RecordModerationApi.getLastRevision(record, targetRevision, true)
|
|
45
|
+
);
|
|
46
|
+
const response = await this.cancellableAction.promise;
|
|
47
|
+
const revisions = await response.data;
|
|
48
|
+
|
|
49
|
+
this.setState({
|
|
50
|
+
diff: {
|
|
51
|
+
targetRevision: revisions[0],
|
|
52
|
+
srcRevision: revisions.length > 1 ? revisions[1] : revisions[0],
|
|
53
|
+
},
|
|
54
|
+
loading: false,
|
|
55
|
+
});
|
|
56
|
+
} catch (error) {
|
|
57
|
+
if (error === "UNMOUNTED") return;
|
|
58
|
+
this.setState({ error: error, loading: false });
|
|
59
|
+
console.error(error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
componentDidMount() {
|
|
64
|
+
this.fetchPreviousRevision();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
componentWillUnmount() {
|
|
68
|
+
this.cancellableAction && this.cancellableAction.cancel();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
handleModalClose = () => {
|
|
72
|
+
const { actionCancelCallback } = this.props;
|
|
73
|
+
actionCancelCallback();
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
render() {
|
|
77
|
+
const { error, loading, diff } = this.state;
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<>
|
|
81
|
+
<Modal.Content>
|
|
82
|
+
{error && (
|
|
83
|
+
<Modal.Content>
|
|
84
|
+
<ErrorMessage
|
|
85
|
+
header={i18next.t("Unable to fetch revisions.")}
|
|
86
|
+
content={error}
|
|
87
|
+
icon="exclamation"
|
|
88
|
+
className="text-align-left"
|
|
89
|
+
negative
|
|
90
|
+
/>
|
|
91
|
+
</Modal.Content>
|
|
92
|
+
)}
|
|
93
|
+
</Modal.Content>
|
|
94
|
+
<Modal.Content scrolling>
|
|
95
|
+
<RevisionsDiffViewer diff={diff} />
|
|
96
|
+
</Modal.Content>
|
|
97
|
+
<Modal.Actions>
|
|
98
|
+
<Grid>
|
|
99
|
+
<Grid.Column floated="left" width={8} textAlign="left">
|
|
100
|
+
<Button
|
|
101
|
+
onClick={this.handleModalClose}
|
|
102
|
+
disabled={loading}
|
|
103
|
+
loading={loading}
|
|
104
|
+
aria-label={i18next.t("Cancel revision comparison")}
|
|
105
|
+
>
|
|
106
|
+
Close
|
|
107
|
+
</Button>
|
|
108
|
+
</Grid.Column>
|
|
109
|
+
</Grid>
|
|
110
|
+
</Modal.Actions>
|
|
111
|
+
</>
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
ViewRecentChanges.propTypes = {
|
|
117
|
+
resource: PropTypes.object.isRequired,
|
|
118
|
+
actionCancelCallback: PropTypes.func.isRequired,
|
|
119
|
+
};
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import { createSearchAppInit } from "@js/invenio_search_ui";
|
|
|
9
9
|
import { NotificationController } from "@js/invenio_administration";
|
|
10
10
|
import { SearchResultItemLayout } from "./search";
|
|
11
11
|
import { SearchFacets } from "@js/invenio_administration";
|
|
12
|
+
import { AuditLogActions } from "./AuditLogActions";
|
|
12
13
|
|
|
13
14
|
const domContainer = document.getElementById("invenio-search-config");
|
|
14
15
|
|
|
@@ -18,6 +19,7 @@ const overridenComponents = {
|
|
|
18
19
|
...defaultComponents,
|
|
19
20
|
"InvenioAdministration.SearchResultItem.layout": SearchResultItemLayout,
|
|
20
21
|
"SearchApp.facets": SearchFacets,
|
|
22
|
+
"InvenioAdministration.ResourceActions": AuditLogActions,
|
|
21
23
|
};
|
|
22
24
|
|
|
23
25
|
createSearchAppInit(
|
|
@@ -8,26 +8,24 @@
|
|
|
8
8
|
|
|
9
9
|
import PropTypes from "prop-types";
|
|
10
10
|
import React, { Component } from "react";
|
|
11
|
-
import { Item, Table } from "semantic-ui-react";
|
|
12
|
-
import { Image } from "react-invenio-forms";
|
|
11
|
+
import { Button, Item, Table } from "semantic-ui-react";
|
|
12
|
+
import { Image, toRelativeTime } from "react-invenio-forms";
|
|
13
13
|
import { withState } from "react-searchkit";
|
|
14
14
|
import { i18next } from "@translations/invenio_app_rdm/i18next";
|
|
15
|
+
import { Actions } from "@js/invenio_administration";
|
|
16
|
+
import { AdminUIRoutes } from "@js/invenio_administration/src/routes";
|
|
15
17
|
|
|
16
18
|
class SearchResultItemComponent extends Component {
|
|
17
|
-
componentDidMount() {
|
|
18
|
-
console.error("result", this.props.result);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
19
|
refreshAfterAction = () => {
|
|
22
20
|
const { updateQueryState, currentQueryState } = this.props;
|
|
23
21
|
updateQueryState(currentQueryState);
|
|
24
22
|
};
|
|
25
23
|
|
|
26
24
|
render() {
|
|
27
|
-
const { result } =
|
|
25
|
+
const { title, resourceName, result, actions, idKeyPath, listUIEndpoint } =
|
|
26
|
+
this.props;
|
|
28
27
|
|
|
29
28
|
const {
|
|
30
|
-
id,
|
|
31
29
|
created,
|
|
32
30
|
action,
|
|
33
31
|
resource: { id: resourceId, type: resourceType },
|
|
@@ -36,14 +34,9 @@ class SearchResultItemComponent extends Component {
|
|
|
36
34
|
|
|
37
35
|
return (
|
|
38
36
|
<Table.Row>
|
|
39
|
-
<Table.Cell data-label={i18next.t("Log ID")}>
|
|
40
|
-
<a target="_blank" rel="noreferrer noopener" href={result.links.self}>
|
|
41
|
-
{id}
|
|
42
|
-
</a>
|
|
43
|
-
</Table.Cell>
|
|
44
37
|
<Table.Cell data-label={i18next.t("Resource")}>{resourceType}</Table.Cell>
|
|
45
38
|
<Table.Cell data-label={i18next.t("Resource ID")}>
|
|
46
|
-
<a href={`/
|
|
39
|
+
<a target="_blank" rel="noreferrer noopener" href={`/uploads/${resourceId}`}>
|
|
47
40
|
{resourceId}
|
|
48
41
|
</a>
|
|
49
42
|
</Table.Cell>
|
|
@@ -51,12 +44,30 @@ class SearchResultItemComponent extends Component {
|
|
|
51
44
|
<Table.Cell data-label={i18next.t("User")}>
|
|
52
45
|
<Item className="flex" key={userId}>
|
|
53
46
|
<Image src={`/api/users/${userId}/avatar.svg`} avatar loadFallbackFirst />
|
|
54
|
-
<a href={`/administration/users?q=id:${userId}`}>
|
|
55
|
-
{userEmail} ({userId})
|
|
56
|
-
</a>
|
|
47
|
+
<a href={`/administration/users?q=id:${userId}`}>{userEmail}</a>
|
|
57
48
|
</Item>
|
|
58
49
|
</Table.Cell>
|
|
59
|
-
<Table.Cell data-label={i18next.t("
|
|
50
|
+
<Table.Cell data-label={i18next.t("Created")}>
|
|
51
|
+
{toRelativeTime(created)}
|
|
52
|
+
</Table.Cell>
|
|
53
|
+
|
|
54
|
+
{/* Actions */}
|
|
55
|
+
<Table.Cell collapsing>
|
|
56
|
+
<Button.Group size="tiny" basic widths={5} compact className="margined">
|
|
57
|
+
<Actions
|
|
58
|
+
title={title}
|
|
59
|
+
resourceName={resourceName}
|
|
60
|
+
editUrl={AdminUIRoutes.editView(listUIEndpoint, result, idKeyPath)}
|
|
61
|
+
displayEdit={false}
|
|
62
|
+
displayDelete={false}
|
|
63
|
+
actions={actions}
|
|
64
|
+
resource={result}
|
|
65
|
+
idKeyPath={idKeyPath}
|
|
66
|
+
successCallback={this.refreshAfterAction}
|
|
67
|
+
listUIEndpoint={listUIEndpoint}
|
|
68
|
+
/>
|
|
69
|
+
</Button.Group>
|
|
70
|
+
</Table.Cell>
|
|
60
71
|
</Table.Row>
|
|
61
72
|
);
|
|
62
73
|
}
|
|
@@ -64,8 +75,13 @@ class SearchResultItemComponent extends Component {
|
|
|
64
75
|
|
|
65
76
|
SearchResultItemComponent.propTypes = {
|
|
66
77
|
result: PropTypes.object.isRequired,
|
|
78
|
+
idKeyPath: PropTypes.string.isRequired,
|
|
67
79
|
updateQueryState: PropTypes.func.isRequired,
|
|
68
80
|
currentQueryState: PropTypes.object.isRequired,
|
|
81
|
+
listUIEndpoint: PropTypes.string.isRequired,
|
|
82
|
+
title: PropTypes.string.isRequired,
|
|
83
|
+
resourceName: PropTypes.string.isRequired,
|
|
84
|
+
actions: PropTypes.object.isRequired,
|
|
69
85
|
};
|
|
70
86
|
|
|
71
87
|
export const SearchResultItemLayout = withState(SearchResultItemComponent);
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js
CHANGED
|
@@ -26,8 +26,13 @@ const getRevisions = async (record) => {
|
|
|
26
26
|
return await http.get(APIRoutes.compare(record));
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
+
const getLastRevision = async (record, revisionId, includePrevious) => {
|
|
30
|
+
return await http.get(APIRoutes.lastRevision(record, revisionId, includePrevious));
|
|
31
|
+
};
|
|
32
|
+
|
|
29
33
|
export const RecordModerationApi = {
|
|
30
34
|
deleteRecord: deleteRecord,
|
|
31
35
|
restoreRecord: restoreRecord,
|
|
32
36
|
getRevisions: getRevisions,
|
|
37
|
+
getLastRevision: getLastRevision,
|
|
33
38
|
};
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* under the terms of the MIT License; see LICENSE file for more details.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import { last } from "lodash";
|
|
9
10
|
import _get from "lodash/get";
|
|
10
11
|
|
|
11
12
|
const APIRoutesGenerators = {
|
|
@@ -15,10 +16,15 @@ const APIRoutesGenerators = {
|
|
|
15
16
|
compare: (record, idKeyPath = "id") => {
|
|
16
17
|
return `/api/records/${_get(record, idKeyPath)}/revisions`;
|
|
17
18
|
},
|
|
18
|
-
|
|
19
19
|
restore: (record, idKeyPath = "id") => {
|
|
20
20
|
return `/api/records/${_get(record, idKeyPath)}/restore`;
|
|
21
21
|
},
|
|
22
|
+
lastRevision: (record, revisionId, includePrevious = false, idKeyPath = "id") => {
|
|
23
|
+
return `/api/records/${_get(
|
|
24
|
+
record,
|
|
25
|
+
idKeyPath
|
|
26
|
+
)}/revisions/${revisionId}?include_previous=${includePrevious}`;
|
|
27
|
+
},
|
|
22
28
|
};
|
|
23
29
|
export const APIRoutes = {
|
|
24
30
|
...APIRoutesGenerators,
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"i18next-conv": "^10.2.0",
|
|
42
42
|
"i18next-scanner": "^3.0.0",
|
|
43
|
-
"react-i18next": "^11.11.3"
|
|
43
|
+
"react-i18next": "^11.11.3",
|
|
44
|
+
"react-json-view": "^1.21.3"
|
|
44
45
|
},
|
|
45
46
|
"scripts": {
|
|
46
47
|
"extract_messages": "i18next-scanner --config i18next-scanner.config.js '../../js/**/*.{js,jsx}'",
|
invenio_app_rdm/theme/webpack.py
CHANGED
{invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: invenio-app-rdm
|
|
3
|
-
Version: 13.0.0b3.
|
|
3
|
+
Version: 13.0.0b3.dev16
|
|
4
4
|
Summary: Invenio Research Data Management.
|
|
5
5
|
Home-page: https://github.com/inveniosoftware/invenio-app-rdm
|
|
6
6
|
Author: CERN
|
|
@@ -98,6 +98,14 @@ https://inveniordm.docs.cern.ch
|
|
|
98
98
|
Changes
|
|
99
99
|
=======
|
|
100
100
|
|
|
101
|
+
Versino v13.0.0b3.dev16 (released 2025-05-23)
|
|
102
|
+
|
|
103
|
+
- administration: audit_logs: Add View Changes and View Log button and modals
|
|
104
|
+
|
|
105
|
+
Version v13.0.0b3.dev15 (released 2025-05-23)
|
|
106
|
+
|
|
107
|
+
- Revert "views: pass record object to record details"
|
|
108
|
+
|
|
101
109
|
Version v13.0.0b3.dev14 (released 2025-05-23)
|
|
102
110
|
|
|
103
111
|
- views: pass record object to record details
|
{invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/RECORD
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
invenio_app_rdm/__init__.py,sha256=
|
|
1
|
+
invenio_app_rdm/__init__.py,sha256=Q0vXNeDts4DzUCAVkBt7DTtlo26Ee6X1SNM8YIFnIfo,700
|
|
2
2
|
invenio_app_rdm/cli.py,sha256=G6QqNU2W6n6ICtTMnpeKFXIsdorncDmVXwwwsGH5F2k,2746
|
|
3
3
|
invenio_app_rdm/config.py,sha256=xfA5wbNl9L1U-LZXdMCHz509LlvyHinPXAa_YPxDxQM,50880
|
|
4
4
|
invenio_app_rdm/ext.py,sha256=PkZhATGJDgYqBJQh41NdvBZWR83mgI3Eej6rj10UVJE,5278
|
|
@@ -6,7 +6,7 @@ invenio_app_rdm/tasks.py,sha256=FyrIQXVuPjms-dNEnLrVmmdwrX_IykJ87gcSNgOR6O0,1373
|
|
|
6
6
|
invenio_app_rdm/views.py,sha256=SDr9NwZEWQcgT_3GFRYdDf6eUaK9DfnoafIkhUf9nSI,785
|
|
7
7
|
invenio_app_rdm/administration/__init__.py,sha256=8r9LeoE9fNHZSVS5QsCfVhRU7MAiEOWJk9MA3Y--4F8,251
|
|
8
8
|
invenio_app_rdm/administration/audit_logs/__init__.py,sha256=jsBXeKSY5YNn1juF9sFyHPYo_XYpwdP3Dye-de7cMK0,318
|
|
9
|
-
invenio_app_rdm/administration/audit_logs/audit_logs.py,sha256=
|
|
9
|
+
invenio_app_rdm/administration/audit_logs/audit_logs.py,sha256=6tZvqPKt54Hc8gL3Lz5LLwwKHABU3fWWhU5t0DHhgPk,2166
|
|
10
10
|
invenio_app_rdm/administration/domains/__init__.py,sha256=Qob5kqjRPxpuSE5yDV2tesN6tmaKp5JcxCxGA8Mrcak,487
|
|
11
11
|
invenio_app_rdm/administration/domains/domains.py,sha256=vafLa-mqkg_tQLjx328E64P_4mksB5kjBlsfunvdatg,5599
|
|
12
12
|
invenio_app_rdm/administration/records/__init__.py,sha256=WpNHBm_Mk9FF8GzvrXWjL79URMSgBhpqgxvrLXNooqg,434
|
|
@@ -45,15 +45,15 @@ invenio_app_rdm/records_ui/utils.py,sha256=0ljPFPC1dAEY_ySZSIT_LRYka2bfsUyvFk_QQ
|
|
|
45
45
|
invenio_app_rdm/records_ui/previewer/__init__.py,sha256=T32i_ssGKONDpNB3gECpn20ubHvGYYVrNuIgCADioOM,267
|
|
46
46
|
invenio_app_rdm/records_ui/previewer/iiif_simple.py,sha256=lGxB3g0hNVJDWnq5jV_KrKPwC-LR1C51DMjas1-UpBM,1589
|
|
47
47
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/deposit.html,sha256=x1JF-cRmkbSSeroh2SWgKHIwGc34FaPJiaYQlwiUkQw,2413
|
|
48
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html,sha256=
|
|
48
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/detail.html,sha256=0a6IafQL0I9Vo_TErRkn4voZAirWSSrNZSgMY_Lgegw,20349
|
|
49
49
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/draft_not_found.html,sha256=_FPflgqVZ556Xw349mHPSFb0FOhxYkIHfmUUTX53_LU,624
|
|
50
50
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/export.html,sha256=2h-FGJvNKS9ASZ0mErL2vz5jXQYiLL8u8rTO2_D3FVQ,1166
|
|
51
51
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/iiif_preview.html,sha256=RningdsVBXsJ8qnQjzurf0Ty8R5Tq08eS31s53c3DNE,444
|
|
52
52
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/restricted_with_doi_tombstone.html,sha256=d2_LrLbWG_vQuR-Gz8P2nrgGuBZONk36kGBMT6iW3uE,987
|
|
53
53
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/search.html,sha256=MdDMzWNIqvZRH-7Blvb9lBdJCA-TK0MXdPpyVWjjBo8,606
|
|
54
54
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/tombstone.html,sha256=oXt0IHIF_AL3b0zLfBgl_meMBzDupNBwFaRGD2EIofY,1902
|
|
55
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html,sha256=
|
|
56
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html,sha256=
|
|
55
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/access-form.html,sha256=lCi9_NmOeFy3JcAStqKaaTtuUta9wxkCwOtMAKkZweM,2314
|
|
56
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/citation.html,sha256=zQO0X5Fdk9MG_ODPoe2w4RMGUp35eF7KD_6u4rf332A,561
|
|
57
57
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/contact.html,sha256=czuC-Ec5zJaKzFOaqhz7JqhWiCS3U3NKaQmPw9-rzks,403
|
|
58
58
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/creatibutors.html,sha256=vOC6Tnlkn3wrYUfLQDVWRTRFmy3jgv1E9vIMwRV13XI,2090
|
|
59
59
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/description.html,sha256=wqLb_Z6cJ026KEDedJMSsQhQnKWpe7TnMuMVwFAMDX0,912
|
|
@@ -69,12 +69,12 @@ invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details
|
|
|
69
69
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/export.html,sha256=DoDrQFd_OJcJzqBEQ2FRbcfJpD3TLRjESU68mBLWVyU,1392
|
|
70
70
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/external_resources.html,sha256=Ia92YMRlxuGRTMsWU4hQTLJDeRy8BX8bnSSaLXKst4Y,1934
|
|
71
71
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/keywords_subjects.html,sha256=LvsA6JiosfwSSwUUg6--3xx1OZepvN7mxQdIWyl9caE,708
|
|
72
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html,sha256=
|
|
72
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/licenses.html,sha256=ktAwgEUpB6X8uMk9-ThNEg0_CkyTqfBurTudXNd6mFo,3131
|
|
73
73
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/locations.html,sha256=i1EnmQrnmSAYfocoMYtneAB7JyUI309whyu3bZJTR6M,715
|
|
74
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html,sha256=
|
|
74
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/manage_menu.html,sha256=RdX32DFR0Skau0sBmNCfY51u7gkBvJbokGCWHeic5Qc,1493
|
|
75
75
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/metrics.html,sha256=3OptZ6iQYaQ3GjNw5O-h9FloISUzFE0nSNTmazjTQgQ,520
|
|
76
76
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/technical_metadata.html,sha256=N5VUwCygKG-zXvyu0YeFJb7A0eHIcKWuMAVm9Kbrb_M,658
|
|
77
|
-
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/versions.html,sha256=
|
|
77
|
+
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/details/side_bar/versions.html,sha256=sPYG81XFcU1ND6roeYmN4SY419iyvQj9ozCv9Pctw5E,932
|
|
78
78
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/creatibutors.html,sha256=N53nwtlEZjxweCx70qFJa1s6uL1pPSzWZgk8p1vodE4,4277
|
|
79
79
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/detail.html,sha256=YEF5tR22t2QUO-tKpjsS4gKhYMZpfyjbO6wWf8LKhJw,10598
|
|
80
80
|
invenio_app_rdm/records_ui/templates/semantic-ui/invenio_app_rdm/records/macros/doi.html,sha256=NZUtJSCwQScJsmz7vxglslEVqPwG7Ldul_wl7yce0fg,1489
|
|
@@ -86,7 +86,7 @@ invenio_app_rdm/records_ui/views/__init__.py,sha256=9DaDls04IQv7fYttDjLofIWGsRRj
|
|
|
86
86
|
invenio_app_rdm/records_ui/views/decorators.py,sha256=MUUmgGuigmFMigcpyJbNvM0yPKUyeAw5LE6MJ69BoFA,15883
|
|
87
87
|
invenio_app_rdm/records_ui/views/deposits.py,sha256=KRR_fpl98EhNZie0Q-_uZtgG2QKsQAW2fhb-kvnQ4s4,21561
|
|
88
88
|
invenio_app_rdm/records_ui/views/filters.py,sha256=Rm55fXJv97cqq8B_6KCe-3PxxHUH4VRu-jd9fTea6r4,6994
|
|
89
|
-
invenio_app_rdm/records_ui/views/records.py,sha256=
|
|
89
|
+
invenio_app_rdm/records_ui/views/records.py,sha256=GdxG3JnXrV1QT0KxOqeYWoDGIiZRZ9w5poihPPd-wTo,16428
|
|
90
90
|
invenio_app_rdm/redirector/__init__.py,sha256=AYCTGmfbmkHW3YJXMqXlWBXcBrUsta-QmL9ULX2bjwA,243
|
|
91
91
|
invenio_app_rdm/redirector/resource.py,sha256=XuH6ZK0HVE5LdXoorlm8aI3deizvnZ5gFa9d1ihYosk,3312
|
|
92
92
|
invenio_app_rdm/redirector/views.py,sha256=CTJ3EGEFKfc0lFwNb9pwH7MbMLiqaWnF8LA3xGIwahc,563
|
|
@@ -105,17 +105,19 @@ invenio_app_rdm/requests_ui/views/requests.py,sha256=Ww3ewDciAvcrheOwtirS6Qewj21
|
|
|
105
105
|
invenio_app_rdm/requests_ui/views/ui.py,sha256=DBysYQa__gOCg-pikO6HmoVLmRmMAVWeTBiYhPa7PmA,2359
|
|
106
106
|
invenio_app_rdm/theme/__init__.py,sha256=QbkxNjjOmGKRlie96HfTXgnFeVQjOX0GdiZnHP7pIhs,277
|
|
107
107
|
invenio_app_rdm/theme/views.py,sha256=Ucn6o7mF8qR7gtOeliKC73gIBhy5LgY65rvteC1Uiog,4312
|
|
108
|
-
invenio_app_rdm/theme/webpack.py,sha256=
|
|
108
|
+
invenio_app_rdm/theme/webpack.py,sha256=aPWl26SIJApTCN9IESlUwbCXNaUC5yAoGJFSC-omOwk,5247
|
|
109
109
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/theme.js,sha256=EBda1oklPz8u6cDz5fHU8EeDjUqyNMzOL8Quik-lCks,4592
|
|
110
110
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/utils.js,sha256=oTCQkmr7j6FwVsOfM6hsKrPHfadW7m9IurrqYVDgxDw,3628
|
|
111
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/
|
|
112
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/
|
|
113
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/
|
|
111
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/AuditLogActions.js,sha256=ugQ-0b_6_O5rDeP7JUlNJ5SLGGlip_tP3OoTT4hRcak,3984
|
|
112
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewJson.js,sha256=UX4-c4gtXOih4T7GQ1c_9zvlAEa0ljTiz22GU8A05Ps,955
|
|
113
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewRecentChanges.js,sha256=RKqpLDHZR1UNJjPYBC-XhSr4YVv5B4_BbUxAWhEqZOg,3279
|
|
114
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/index.js,sha256=Ruks4rwRBgtKrFop72ZoGNr4-BXoqqv7I-qiflZWzKg,1078
|
|
115
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/SearchResultItemLayout.js,sha256=CvH3a5Ws57x_FqZjK6vIz1AO4s6WmI0T-BkHNd8kOo0,3077
|
|
114
116
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/search/index.js,sha256=q1WaQ-kNNMvNdnsONMw2c4GWobizoPWsmIdWL2fRCPc,283
|
|
115
117
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/CompareRevisionsDropdown.js,sha256=BNdMxfFYPhlrGKPg47oc4X8ILllfCngN61L1b7Yt_8Q,2483
|
|
116
118
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUser.js,sha256=1tnHc9PaCQvVS1PVsDWtfpWzVxJJ5_eltn9WJEYygiY,2366
|
|
117
119
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/ImpersonateUserForm.js,sha256=Z21KrMyAJ1rKF5IEzM088-pTvTga21LBnG4GPYvh5g4,6890
|
|
118
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js,sha256
|
|
120
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/RevisionsDiffViewer.js,sha256=Q-aAVC9jhOaOb7rL9SD48oGuI1fTmoskX8tKGRnpt9c,1921
|
|
119
121
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaAction.js,sha256=wwvYfTJ7pBEdoeqcEqmxFLaEwpJnnFW0oRQTyAdDSBw,3038
|
|
120
122
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/SetQuotaForm.js,sha256=Ltr03KlCogkg2NjqWc1GkxJlYPWB2LDLHL04w6eJiRU,5749
|
|
121
123
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/components/index.js,sha256=soELMxc1jf_rL62CJ9wtWGVG13yk1PRY7JqseqnKkqU,297
|
|
@@ -130,9 +132,9 @@ invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/recor
|
|
|
130
132
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/RestoreConfirmation.js,sha256=8hPHqYpvXuzaeFeGbs_XVhK3O4Wd941JGU0l7ylaQhY,3160
|
|
131
133
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/TombstoneForm.js,sha256=ip9H3wYZJl0oxYXyUgJlzIxyeT8FGAmSoEoe59U5hVQ,7048
|
|
132
134
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/index.js,sha256=kWIIp7kzH3oe4xbByiUC3SpgEjAt4R3mWH8vneGWhiU,1460
|
|
133
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js,sha256=
|
|
135
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/api.js,sha256=NxrBwrejTwqBq0LMVAuQeyFLIlwDAVHGbJi009TiLEQ,1181
|
|
134
136
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/index.js,sha256=8D199izj4qOxNVS1XrS3JutmuBYIjHkvshUdv1aU92U,261
|
|
135
|
-
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js,sha256=
|
|
137
|
+
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/api/routes.js,sha256=4Jg17NQH_CMbI3ydjyFStMZ4W5VkXKNavkX5fmDBgwc,920
|
|
136
138
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/AdministrationSearchLayout.js,sha256=3pRQVkFOnyqRFWmbE3vXMB75Vnrvf-Y5pzZF79iT9q0,1854
|
|
137
139
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/RecordSearchLayout.js,sha256=F3Ht0kMf6-cSmbTSRo-PnJLneCqoqh7d0ea1A2Lj2i8,2544
|
|
138
140
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/records/search/SearchResultItemLayout.js,sha256=CsbdG5fVx2hw1SenJ5wHVd468-n5qp2yhB5x3ceGCuE,5611
|
|
@@ -282,7 +284,7 @@ invenio_app_rdm/theme/assets/semantic-ui/less/invenio_app_rdm/theme/views/item.v
|
|
|
282
284
|
invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next-scanner.config.js,sha256=FeZ5h48vChch-KettQYhwpwRUladl2HXQJ_6m9kEMXQ,1860
|
|
283
285
|
invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/i18next.js,sha256=t-NhnwBb106Zxx66Hz7BBV7nxtC_Tj6_0HOncxUkzww,1070
|
|
284
286
|
invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package-lock.json,sha256=5A9oCU6BbPW4FH4uFR8fxMHzwEo3HnjWFohHs6J13Cw,58457
|
|
285
|
-
invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package.json,sha256=
|
|
287
|
+
invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/package.json,sha256=5wzqrQr6HXsh_gsuMLHbXByWILvldYej2aP5CijBizw,979
|
|
286
288
|
invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/translations.pot,sha256=S5c69QZYivrze2u_gPbz7jxr1CuilDfnsXvkQ6fRaDw,18625
|
|
287
289
|
invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/index.js,sha256=9nLEfmBCv9z6skLd1nnOE8XEWugRbk_QHfimnFJBvzA,2898
|
|
288
290
|
invenio_app_rdm/theme/assets/semantic-ui/translations/invenio_app_rdm/messages/ar/messages.po,sha256=t0ijS-AHKe8xZL6FVmqcvlw6sSqyatfeI1ezE18MIzU,6654
|
|
@@ -475,7 +477,7 @@ invenio_app_rdm/users_ui/views/__init__.py,sha256=SMdY2NJj9GICfr3Xuok7qdNYVtA2bJ
|
|
|
475
477
|
invenio_app_rdm/users_ui/views/dashboard.py,sha256=iUn2PrODAwb8ugmMosJKAjPhUzjCiWiAWoXQr9RUFuc,1793
|
|
476
478
|
invenio_app_rdm/users_ui/views/ui.py,sha256=W_eXM8dLVIrNHQB2UEh37C9BYoHauft6RyvcDNFHovA,1742
|
|
477
479
|
invenio_app_rdm/utils/files.py,sha256=CruDyO2gDVadSlWEJD-WHpWHeOQ0juh-Ei9jz3D9yjc,3923
|
|
478
|
-
invenio_app_rdm-13.0.0b3.
|
|
480
|
+
invenio_app_rdm-13.0.0b3.dev16.dist-info/licenses/LICENSE,sha256=AZXFHRrZa5s4m9DV7zZr4bPGTMUvcEPCodeV_AmFI8k,1204
|
|
479
481
|
tests/__init__.py,sha256=yKVf0yYRuxmXvyAtLjmfpHGVCsEkZOhs_FojAAM_w-8,244
|
|
480
482
|
tests/conftest.py,sha256=FQ_aSBxGo0gNfV64RJ117GcmgjVbZKwpxF9_3VNdNJY,7931
|
|
481
483
|
tests/test_tasks.py,sha256=YAf2mryFK6Vfzk2053XLBA2e92vbNCTWqJ6ThWhGOuQ,6645
|
|
@@ -509,8 +511,8 @@ tests/ui/test_filters.py,sha256=Q90wsJffjMVir7wNX8taGf2KZleLtPbXZXHLTkBpzLA,284
|
|
|
509
511
|
tests/ui/test_signposting_ui.py,sha256=KCSjQlMD2VKlwQCyZYDwYjtVNL35x3u-ZC4ceD5y21w,3847
|
|
510
512
|
tests/ui/test_static.py,sha256=vO3OQAOhrQESJifnQfM1pw7JYz3J874O8BAb7Cc_PPA,868
|
|
511
513
|
tests/ui/test_stats_ui.py,sha256=LHa_0hjvpYvliSk_jknWy-90CO82jVElUfK5Ua_ZmfA,3554
|
|
512
|
-
invenio_app_rdm-13.0.0b3.
|
|
513
|
-
invenio_app_rdm-13.0.0b3.
|
|
514
|
-
invenio_app_rdm-13.0.0b3.
|
|
515
|
-
invenio_app_rdm-13.0.0b3.
|
|
516
|
-
invenio_app_rdm-13.0.0b3.
|
|
514
|
+
invenio_app_rdm-13.0.0b3.dev16.dist-info/METADATA,sha256=GPwRcGyrnNnAk7WI6gYPFpXqf-JAehp4aYogAtzKmsY,14216
|
|
515
|
+
invenio_app_rdm-13.0.0b3.dev16.dist-info/WHEEL,sha256=egKm5cKfE6OqlHwodY8Jjp4yqZDBXgsj09UsV5ojd_U,109
|
|
516
|
+
invenio_app_rdm-13.0.0b3.dev16.dist-info/entry_points.txt,sha256=rfzEeOEdtGy99NlpWzeW-32CoO5XrEpBvlZwLD2Th88,2158
|
|
517
|
+
invenio_app_rdm-13.0.0b3.dev16.dist-info/top_level.txt,sha256=NqTqrntInEAci7EXcNBvouXFMqwyjVQhEI0b7izYRBY,22
|
|
518
|
+
invenio_app_rdm-13.0.0b3.dev16.dist-info/RECORD,,
|
invenio_app_rdm/theme/assets/semantic-ui/js/invenio_app_rdm/administration/auditLogs/ViewAction.js
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{invenio_app_rdm-13.0.0b3.dev14.dist-info → invenio_app_rdm-13.0.0b3.dev16.dist-info}/top_level.txt
RENAMED
|
File without changes
|