diff --git a/resources/js/components/entries/PublishActions.vue b/resources/js/components/entries/PublishActions.vue index c43faf9a5c..05d7c17510 100644 --- a/resources/js/components/entries/PublishActions.vue +++ b/resources/js/components/entries/PublishActions.vue @@ -76,11 +76,12 @@ export default { collection: String, reference: String, publishContainer: String, + canManagePublishState: Boolean, }, data() { return { - action: 'publish', + action: this.canManagePublishState ? 'publish' : 'revision', revisionMessage: null, saving: false, } @@ -89,17 +90,19 @@ export default { computed: { options() { - let options = [ - { value: 'publish', label: __('Publish Now'), }, - ]; + const options = []; - if (this.published) { - options.push({ value: 'unpublish', label: __('Unpublish') }); + if (this.canManagePublishState) { + options.push({ value: 'publish', label: __('Publish Now') }); + + if (this.published) { + options.push({ value: 'unpublish', label: __('Unpublish') }); + } } - return options.concat([ - { value: 'revision', label: __('Create Revision'), }, - ]); + options.push({ value: 'revision', label: __('Create Revision') }); + + return options; }, actionInfoText() { diff --git a/resources/js/components/entries/PublishForm.vue b/resources/js/components/entries/PublishForm.vue index 484900e9bd..42efcb9cd4 100644 --- a/resources/js/components/entries/PublishForm.vue +++ b/resources/js/components/entries/PublishForm.vue @@ -248,6 +248,7 @@ :collection="collectionHandle" :reference="initialReference" :publish-container="publishContainer" + :can-manage-publish-state="canManagePublishState" @closed="confirmingPublish = false" @saving="saving = true" @saved="publishActionCompleted" diff --git a/resources/js/components/terms/PublishActions.vue b/resources/js/components/terms/PublishActions.vue index f217870fd4..ac9ed2a924 100644 --- a/resources/js/components/terms/PublishActions.vue +++ b/resources/js/components/terms/PublishActions.vue @@ -74,12 +74,13 @@ export default { props: { actions: Object, - published: Boolean + published: Boolean, + canManagePublishState: Boolean, }, data() { return { - action: 'publish', + action: this.canManagePublishState ? 'publish' : 'revision', revisionMessage: null, saving: false, } @@ -88,17 +89,19 @@ export default { computed: { options() { - let options = [ - { value: 'publish', label: 'Publish Now', }, - ]; + const options = []; - if (this.published) { - options.push({ value: 'unpublish', label: 'Unpublish' }); + if (this.canManagePublishState) { + options.push({ value: 'publish', label: __('Publish Now') }); + + if (this.published) { + options.push({ value: 'unpublish', label: __('Unpublish') }); + } } - return options.concat([ - { value: 'revision', label: 'Create Revision', }, - ]); + options.push({ value: 'revision', label: __('Create Revision') }); + + return options; }, actionInfoText() { diff --git a/resources/js/components/terms/PublishForm.vue b/resources/js/components/terms/PublishForm.vue index 1412d46d17..8b3521cc6d 100644 --- a/resources/js/components/terms/PublishForm.vue +++ b/resources/js/components/terms/PublishForm.vue @@ -225,6 +225,7 @@ v-if="confirmingPublish" :actions="actions" :published="published" + :can-manage-publish-state="canManagePublishState" @closed="confirmingPublish = false" @saving="saving = true" @saved="publishActionCompleted"