Skip to content

Commit

Permalink
pkp/pkp-lib#9992 Migrate error doi message modals to useDialog
Browse files Browse the repository at this point in the history
  • Loading branch information
jardakotesovec committed Jun 25, 2024
1 parent e2081d9 commit 5829257
Show file tree
Hide file tree
Showing 9 changed files with 116 additions and 102 deletions.
16 changes: 16 additions & 0 deletions src/components/ListPanel/doi/DoiFailedActionDialogBody.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<template>
<p>{{ t('manager.dois.update.partialFailure') }}</p>
<ul>
<li v-for="errorMessage in failedDoiActions" :key="errorMessage.index">
{{ errorMessage }}
</li>
</ul>
</template>

<script setup>
import {useLocalize} from '@/composables/useLocalize';
defineProps({
failedDoiActions: {type: Array, required: true},
});
const {t} = useLocalize();
</script>
25 changes: 0 additions & 25 deletions src/components/ListPanel/doi/DoiFailedActionModal.vue

This file was deleted.

23 changes: 23 additions & 0 deletions src/components/ListPanel/doi/DoiItemViewErrorDialogBody.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<template>
<p>{{ errorMessageAgencyPreamble }}</p>
<div class="depositErrorMessage">
<pre>{{ errorMessage }}</pre>
</div>
</template>

<script setup>
defineProps({
errorMessageAgencyPreamble: {type: String, required: true},
errorMessage: {type: String, required: true},
});
</script>

<style lang="less">
@import '../../../styles/_import';
.depositErrorMessage {
background: rgb(234, 237, 238);
> pre {
white-space: pre-wrap;
}
}
</style>
24 changes: 0 additions & 24 deletions src/components/ListPanel/doi/DoiItemViewErrorModal.vue

This file was deleted.

22 changes: 0 additions & 22 deletions src/components/ListPanel/doi/DoiItemViewRegisteredMessage.vue

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<template>
<p>{{ registeredMessageAgencyPreamble }}</p>
<p>{{ registeredMessage }}</p>
</template>

<script setup>
defineProps({
registeredMessageAgencyPreamble: {type: String, required: true},
registeredMessage: {type: String, required: true},
});
</script>
60 changes: 40 additions & 20 deletions src/components/ListPanel/doi/DoiListItem.vue
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,8 @@
import Expander from '@/components/Expander/Expander.vue';
import PkpTable from '@/components/Table/Table.vue';
import TableCell from '@/components/Table/TableCell.vue';
import DoiItemViewErrorModal from './DoiItemViewErrorModal.vue';
import DoiItemViewRegisteredMessage from './DoiItemViewRegisteredMessage.vue';
import DoiItemViewErrorDialogBody from './DoiItemViewErrorDialogBody.vue';
import DoiItemViewRegisteredMessageDialogBody from './DoiItemViewRegisteredMessageDialogBody.vue';
import DoiItemVersionModal from './DoiItemVersionModal.vue';
import {computed} from 'vue';
import {useModal} from '@/composables/useModal';
Expand Down Expand Up @@ -465,11 +465,25 @@ export default {
methods: {
openViewErrorModal() {
const {openSideModal} = useModal();
openSideModal(DoiItemViewErrorModal, {
errorMessageAgencyPreamble:
this.registrationAgencyInfo['errorMessagePreamble'],
errorMessage: this.currentVersionDoiObjects[0]['errorMessage'],
const {openDialog} = useModal();
openDialog({
title: this.t('manager.dois.registration.viewError.title'),
bodyComponent: DoiItemViewErrorDialogBody,
bodyProps: {
errorMessageAgencyPreamble:
this.registrationAgencyInfo['errorMessagePreamble'],
errorMessage: this.currentVersionDoiObjects[0]['errorMessage'],
},
actions: [
{
label: this.t('common.ok'),
isPrimary: true,
callback: (close) => {
close();
},
},
],
});
},
openVersionModal() {
Expand Down Expand Up @@ -746,12 +760,25 @@ export default {
return this.isDeposited ? this.viewRecord() : this.triggerDeposit();
},
viewRecord() {
const {openSideModal} = useModal();
openSideModal(DoiItemViewRegisteredMessage, {
registeredMessageAgencyPreamble:
this.registrationAgencyInfo['registeredMessagePreamble'],
registeredMessage:
this.currentVersionDoiObjects[0]['registeredMessage'],
const {openDialog} = useModal();
openDialog({
title: this.t('manager.dois.registration.viewRecord.title'),
bodyComponent: DoiItemViewRegisteredMessageDialogBody,
bodyProps: {
registeredMessageAgencyPreamble:
this.registrationAgencyInfo['registeredMessagePreamble'],
registeredMessage:
this.currentVersionDoiObjects[0]['registeredMessage'],
},
actions: [
{
label: this.t('common.ok'),
isPrimary: true,
callback: (close) => {
close();
},
},
],
});
},
triggerDeposit() {
Expand All @@ -773,13 +800,6 @@ export default {
<style lang="less">
@import '../../../styles/_import';
.depositErrorMessage {
background: rgb(234, 237, 238);
> pre {
white-space: pre-wrap;
}
}
.doiListItem__depositorDetails {
//width: 100%;
//max-width: 100%;
Expand Down
32 changes: 21 additions & 11 deletions src/components/ListPanel/doi/DoiListPanel.vue
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ import PkpFilterAutosuggest from '@/components/Filter/FilterAutosuggest.vue';
import PkpHeader from '@/components/Header/Header.vue';
import Search from '@/components/Search/Search.vue';
import DoiStatusInfoModal from './DoiStatusInfoModal.vue';
import DoiFailedActionModal from './DoiFailedActionModal.vue';
import DoiFailedActionDialogBody from './DoiFailedActionDialogBody.vue';
import fetch from '@/mixins/fetch';
import ajaxError from '@/mixins/ajaxError';
import {useModal} from '@/composables/useModal';
Expand Down Expand Up @@ -361,14 +361,29 @@ export default {
* @param {Array} oldVal
*/
failedDoiActions(newVal, oldVal) {
const {openSideModal, isSideModalOpened} = useModal();
const {openDialog} = useModal();
if (newVal.length !== 0) {
openSideModal(DoiFailedActionModal, {
failedDoiActions: this.failedDoiActions,
openDialog({
title: this.t('manager.dois.update.failedCreation'),
actions: [
{
label: this.t('common.ok'),
isPrimary: true,
callback: (close) => {
this.failedDoiActions = [];
close();
},
},
],
bodyComponent: DoiFailedActionDialogBody,
bodyProps: {
failedDoiActions: this.failedDoiActions,
},
close: () => {
this.failedDoiActions = [];
},
});
} else if (isSideModalOpened(DoiFailedActionModal)) {
this.closeFailedDoiActionModal();
}
},
},
Expand Down Expand Up @@ -934,11 +949,6 @@ export default {
...props,
};
},
closeFailedDoiActionModal() {
const {closeSideModal} = useModal();
closeSideModal(DoiFailedActionModal);
this.failedDoiActions = [];
},
},
};
</script>
Expand Down
5 changes: 5 additions & 0 deletions src/components/Modal/Dialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@
</div>
<div class="modal-content p-4">
<div v-html="dialogProps.message" />
<component
:is="dialogProps.bodyComponent"
v-if="dialogProps.bodyComponent"
v-bind="dialogProps.bodyProps"
/>
</div>
<div class="flex items-center justify-end p-4">
<spinner v-if="isLoading" />
Expand Down

0 comments on commit 5829257

Please sign in to comment.