Skip to content

Commit 03aabd9

Browse files
authored
Merge pull request #581 from Hafsa-Naeem/i10263-stable_3_5_0-fix
pkp/pkp-lib#10263 Relax editing metadata on published/posted materials
2 parents 28c451d + 77646d7 commit 03aabd9

File tree

8 files changed

+34
-37
lines changed

8 files changed

+34
-37
lines changed

src/components/ListPanel/contributors/ContributorsListPanel.vue

+3-16
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@
1212
<Spinner v-if="isLoading" />
1313
<template #actions>
1414
<PkpButton
15-
v-if="
16-
publication.status !== getConstant('STATUS_PUBLISHED') &&
17-
canEditPublication
18-
"
15+
v-if="canEditPublication"
1916
icon="Sort"
2017
:is-active="isOrdering"
2118
:disabled="isLoading"
@@ -39,11 +36,7 @@
3936
{{ t('contributor.listPanel.preview') }}
4037
</PkpButton>
4138
<PkpButton
42-
v-if="
43-
!isOrdering &&
44-
publication.status !== getConstant('STATUS_PUBLISHED') &&
45-
canEditPublication
46-
"
39+
v-if="!isOrdering && canEditPublication"
4740
:disabled="isLoading"
4841
@click="openAddModal"
4942
>
@@ -65,13 +58,7 @@
6558
{{ localize(item.affiliation) }}
6659
</div>
6760
</template>
68-
<template
69-
v-if="
70-
publication.status !== getConstant('STATUS_PUBLISHED') &&
71-
canEditPublication
72-
"
73-
#item-actions="{item}"
74-
>
61+
<template v-if="canEditPublication" #item-actions="{item}">
7562
<template v-if="isOrdering">
7663
<Orderer
7764
:item-id="item.id"

src/managers/GalleyManager/useGalleyManagerConfig.js

-15
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,6 @@ export const GalleyManagerConfiguration = {
3434
Actions.GALLEY_EDIT,
3535
Actions.GALLEY_SORT,
3636
],
37-
actionsRequiresUnpublishedState: [
38-
Actions.GALLEY_ADD,
39-
Actions.GALLEY_CHANGE_FILE,
40-
Actions.GALLEY_DELETE,
41-
Actions.GALLEY_SORT,
42-
],
4337
};
4438

4539
export function useGalleyManagerConfig() {
@@ -84,15 +78,6 @@ export function useGalleyManagerConfig() {
8478
function getManagerConfig({submission, publication}) {
8579
const permittedActions = GalleyManagerConfiguration.actions
8680
.filter((action) => {
87-
if (
88-
publication.value.status === pkp.const.STATUS_PUBLISHED &&
89-
GalleyManagerConfiguration.actionsRequiresUnpublishedState.includes(
90-
action,
91-
)
92-
) {
93-
return false;
94-
}
95-
9681
return true;
9782
})
9883
.filter((action) => {

src/pages/workflow/WorkflowPageOJS.vue

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import WorkflowPublicationVersionControl from './components/publication/Workflow
2727
import WorkflowChangeSubmissionLanguage from './components/publication/WorkflowChangeSubmissionLanguage.vue';
2828
import WorkflowPrimaryBasicMetadata from './components/primary/WorkflowPrimaryBasicMetadata.vue';
2929
import WorkflowSubmissionStatus from './components/primary/WorkflowSubmissionStatus.vue';
30+
import WorkflowPublicationEditWarning from './components/publication/WorkflowPublicationEditWarning.vue';
3031
import WorkflowPublicationEditDisabled from './components/publication/WorkflowPublicationEditDisabled.vue';
3132
3233
import {useWorkflowConfigOJS as useWorkflowConfig} from './composables/useWorkflowConfig/useWorkflowConfigOJS';
@@ -57,6 +58,7 @@ const Components = markRaw({
5758
WorkflowPublicationVersionControl,
5859
WorkflowChangeSubmissionLanguage,
5960
WorkflowSubmissionStatus,
61+
WorkflowPublicationEditWarning,
6062
WorkflowPublicationEditDisabled,
6163
});
6264

src/pages/workflow/WorkflowPageOMP.vue

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import WorkflowPublicationVersionControl from './components/publication/Workflow
3232
import WorkflowChangeSubmissionLanguage from './components/publication/WorkflowChangeSubmissionLanguage.vue';
3333
import WorkflowPrimaryBasicMetadata from './components/primary/WorkflowPrimaryBasicMetadata.vue';
3434
import WorkflowSubmissionStatus from './components/primary/WorkflowSubmissionStatus.vue';
35+
import WorkflowPublicationEditWarning from './components/publication/WorkflowPublicationEditWarning.vue';
3536
import WorkflowPublicationEditDisabled from './components/publication/WorkflowPublicationEditDisabled.vue';
3637
3738
const props = defineProps({
@@ -60,6 +61,7 @@ const Components = markRaw({
6061
WorkflowPublicationVersionControl,
6162
WorkflowChangeSubmissionLanguage,
6263
WorkflowSubmissionStatus,
64+
WorkflowPublicationEditWarning,
6365
WorkflowPublicationEditDisabled,
6466
WorkflowMarketingForm,
6567
WorkflowWorkTypeOMP,

src/pages/workflow/WorkflowPageOPS.vue

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import WorkflowChangeSubmissionLanguage from './components/publication/WorkflowC
2626
import WorkflowPrimaryBasicMetadata from './components/primary/WorkflowPrimaryBasicMetadata.vue';
2727
import WorkflowPublicationRelationDropdownOPS from './components/publication/WorkflowPublicationRelationDropdownOPS.vue';
2828
import WorkflowSubmissionStatus from './components/primary/WorkflowSubmissionStatus.vue';
29+
import WorkflowPublicationEditWarning from './components/publication/WorkflowPublicationEditWarning.vue';
2930
import WorkflowPublicationEditDisabled from './components/publication/WorkflowPublicationEditDisabled.vue';
3031
3132
const props = defineProps({
@@ -49,6 +50,7 @@ const Components = markRaw({
4950
WorkflowPublicationVersionControl,
5051
WorkflowChangeSubmissionLanguage,
5152
WorkflowSubmissionStatus,
53+
WorkflowPublicationEditWarning,
5254
WorkflowPublicationEditDisabled,
5355
});
5456
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!-- file: WorkflowPublicationEditWarning.vue -->
2+
<template>
3+
<div
4+
class="bg -mx-5 -mt-5 bg-attention p-5 text-center text-base-normal text-on-dark"
5+
>
6+
{{ t('publication.editorEditWarning') }}
7+
</div>
8+
</template>
9+
10+
<script setup>
11+
import {useLocalize} from '@/composables/useLocalize';
12+
const {t} = useLocalize();
13+
</script>

src/pages/workflow/composables/useWorkflowConfig/workflowConfigEditorialOJS.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ export const PublicationConfig = {
712712
const items = [];
713713
if (selectedPublication.status === pkp.const.STATUS_PUBLISHED) {
714714
items.push({
715-
component: 'WorkflowPublicationEditDisabled',
715+
component: 'WorkflowPublicationEditWarning',
716716
props: {},
717717
});
718718
}
@@ -966,6 +966,7 @@ export const PublicationConfig = {
966966
props: {
967967
submission,
968968
publication: selectedPublication,
969+
canEdit: permissions.canEditPublication,
969970
},
970971
},
971972
];

src/pages/workflow/composables/useWorkflowPermissions.js

+10-5
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,16 @@ export function useWorkflowPermissions({submission, selectedPublication}) {
4949
});
5050

5151
canEditPublication = submission.value.canCurrentUserChangeMetadata;
52-
53-
if (
54-
selectedPublication.value &&
55-
selectedPublication.value?.status === pkp.const.STATUS_PUBLISHED
56-
) {
52+
const isAuthor = hasIntersection(activeStage.currentUserAssignedRoles, [
53+
pkp.const.ROLE_ID_AUTHOR,
54+
]);
55+
// block authors from editing any version if there is a published or scheduled version
56+
const hasBlockedPublication = submission.value.publications.some((p) =>
57+
[pkp.const.STATUS_PUBLISHED, pkp.const.STATUS_SCHEDULED].includes(
58+
p.status,
59+
),
60+
);
61+
if (isAuthor && hasBlockedPublication) {
5762
canEditPublication = false;
5863
}
5964

0 commit comments

Comments
 (0)