Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Log reviewer response #350

Open
wants to merge 26 commits into
base: main
Choose a base branch
from
Open
Changes from 6 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
4fe0a59
logresponse modal made in vue
rob-a-ubiquity May 18, 2024
9173b25
modal store prepared to take props
rob-a-ubiquity May 18, 2024
7505ae9
cleared commented out code
rob-a-ubiquity May 20, 2024
21c6d90
close modal in success of ajax call
rob-a-ubiquity May 20, 2024
114179e
Merge branch 'main' of github.com:MrRob100/ui-library
rob-a-ubiquity May 21, 2024
8241a3b
Merge branch 'main' into log-response
rob-a-ubiquity May 21, 2024
1064705
modal form validation working
rob-a-ubiquity May 29, 2024
caa6243
removed unused imports
rob-a-ubiquity May 29, 2024
2c8c444
vue store added for component
rob-a-ubiquity May 29, 2024
5a5368d
Merge branch 'main' into log-response
rob-a-ubiquity May 29, 2024
7d76ca1
Merge branch 'main' into log-response
rob-a-ubiquity Jun 14, 2024
a1e0d9e
Merge branch 'main' into log-response
rob-a-ubiquity Jun 19, 2024
eca2803
vue modal added to storybook
rob-a-ubiquity Jun 24, 2024
4ff2db6
npm run format ran
rob-a-ubiquity Jun 27, 2024
b2b32b8
updated storybook mdx
rob-a-ubiquity Jun 27, 2024
1967435
Merge branch 'main' into log-response
rob-a-ubiquity Aug 2, 2024
5c93d28
Merge branch 'main' into log-response
rob-a-ubiquity Sep 4, 2024
31092c0
Merge branch 'main' into log-response
rob-a-ubiquity Sep 9, 2024
4891318
reverted unintended changes
rob-a-ubiquity Sep 10, 2024
4cba851
linting ran
rob-a-ubiquity Sep 10, 2024
8e4ed59
using useForm composable which contains updateForm instead of writing…
rob-a-ubiquity Sep 10, 2024
c8e5bdb
legacy options removed on vue modal
rob-a-ubiquity Sep 10, 2024
7b3f0da
attempts to put log response button at the bottom reverted
rob-a-ubiquity Sep 10, 2024
5973dd0
targeting children of just vueModal to get the footer button on the b…
rob-a-ubiquity Sep 10, 2024
ccc2332
reverted css changes on modal. Submit button will be off the bottom f…
rob-a-ubiquity Sep 11, 2024
923084e
Merge branch 'main' into log-response
MrRob100 Oct 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
156 changes: 132 additions & 24 deletions src/pages/workflow/WorkflowLogResponseForModal.vue
Original file line number Diff line number Diff line change
@@ -1,39 +1,147 @@
<template>
<SideModalBody>
<template #pre-title>
{{ 15 }}
{{ submissionId }}
</template>
<template #title>
<span>Title</span>
<span>{{ t('editor.review.logResponse.for') }}</span>
</template>
<template #description>Description</template>
<div class="p-4">
<div class="bg-secondary p-4">
<div>SubmissionId {{ submissionId }}</div>
<div>ReviewAssignmentId {{ reviewAssignmentId }}</div>
<template #description>
<span>{{ description }}</span>
</template>
<div class="px-8 h-full">
<div class="bg-secondary h-full">
<form class="pkpForm -pkpClearfix h-full">
<div class="form-flex h-full">
MrRob100 marked this conversation as resolved.
Show resolved Hide resolved
<fieldset class="pkpFormGroup -pkpClearfix">
<FieldOptions
v-bind="logResponseForm"
@change="change"
/>
</fieldset>
<div>
<div class="buttonRow pkpFormPage__footer">
<div>
MrRob100 marked this conversation as resolved.
Show resolved Hide resolved
<PkpButton :is-warnable="true" class="cancelButton" @click="cancel">{{ t('common.cancel') }}</PkpButton>
<PkpButton class="saveFormButton bg-primary" @click="submit">{{ t('editor.review.logResponse') }}</PkpButton>
</div>
</div>
</div>
</div>
</form>
</div>
<PkpButton @click="submitThings">Submit Things</PkpButton>
</div>
</SideModalBody>
</template>

<script setup>
import {inject} from 'vue';
<script>
import {ref, inject} from 'vue';
MrRob100 marked this conversation as resolved.
Show resolved Hide resolved
import SideModalBody from '@/components/Modal/SideModalBody.vue';
import PkpForm from '@/components/Form/Form.vue';
import PkpButton from '@/components/Button/Button.vue';
import FieldOptions from '@/components/Form/fields/FieldOptions.vue';
import {t} from "@/utils/i18n";
import ajaxError from '@/mixins/ajaxError';
import ButtonRow from '@/components/ButtonRow/ButtonRow.vue';

export default {
components: {
SideModalBody,
PkpButton,
FieldOptions,
ButtonRow,
PkpForm,
},
mixins: [ajaxError],
props: {
description: {
type: String,
required: true
},
submissionLocale: {
type: String,
required: true
},
journalLocales: {
type: Object,
required: true
},
submissionId: {
type: Number,
required: true
},
reviewAssignmentId: {
type: Number,
required: true
},
legacyOptions: {
type: Object,
required: true
},
url: {
type: String,
required: true
}
},
setup(props) {
const acceptReview = ref(0);
const closeModal = inject('closeModal');

const logResponseForm = {
// groupId: 'preferences',
formId: 'default',
isRequired: true,
primaryLocale: props.submissionLocale,
locales: props.journalLocales,
// allErrors: {
// acceptReview: [this.responseRequired],
// },
name: 'acceptReview',
component: 'field-options',
label: t('editor.review.logResponse.form.detail'),
description: t('editor.review.logResponse.form.subDetail'),
value: {},
type: 'radio',
showWhen: 'options-confirmation',
options: {
0: {value: 1, label: t('editor.review.logResponse.form.option.accepted')},
1: {value: 0, label: t('editor.review.logResponse.form.option.declined')},
}
}

function change(field, label, value) {
acceptReview.value = value;
}

function submit() {
$.ajax({
url: props.url,
MrRob100 marked this conversation as resolved.
Show resolved Hide resolved
type: 'POST',
data: {
acceptReview: acceptReview.value,
csrfToken: pkp.currentUser.csrfToken,
},
success(r) {
closeModal();
},
});
}

function cancel() {
acceptReview.value = null;
closeModal();
}

return {submit, change, cancel, acceptReview, logResponseForm};
}
MrRob100 marked this conversation as resolved.
Show resolved Hide resolved
};

const props = defineProps({
submissionId: {type: Number, required: true},
reviewAssignmentId: {type: Number, required: true},
legacyOptions: {type: Object, required: true},
});
const closeModal = inject('closeModal');

function submitThings() {
// pass events to the Grid, to trigger reload if action changed the data
props.legacyOptions.modalHandler
.getHtmlElement()
.trigger('dataChanged', props.reviewAssignmentId);
closeModal();
}
</script>

<style lang="less" scoped>
.form-flex {
display: flex;
flex-direction: column;
justify-content: space-between;
}
</style>