- improved vies and controllers for rejecting datasets with email for reviewer and editor role
Some checks failed
CI Pipeline / japa-tests (push) Failing after 1m8s

- falsh also error via config/inertia.ts
- npm updates
This commit is contained in:
Kaimbacher 2024-09-26 13:51:35 +02:00
parent b06ccae603
commit 2235f3905a
12 changed files with 627 additions and 370 deletions

View file

@ -19,6 +19,12 @@ const props = defineProps({
default: () => ({}),
},
});
const computedLabel = computed(() => {
return `Reject to editor: ${props.dataset.editor?.login || ''}`;
});
const computedEmailLabel = computed(() => {
return props.dataset.editor?.email || '';
});
const flash: Ref<any> = computed(() => {
return usePage().props.flash;
@ -30,9 +36,10 @@ const errors: Ref<any> = computed(() => {
const form = useForm({
server_state: 'rejected_reviewer',
reject_reviewer_note: '',
send_email: false,
});
const handleSubmit = async (e) => {
const handleSubmit = async (e: SubmitEvent) => {
e.preventDefault();
await form.put(stardust.route('reviewer.dataset.rejectUpdate', [props.dataset.id]));
// await form.put(stardust.route('editor.dataset.update', [props.dataset.id]));
@ -63,13 +70,25 @@ const handleSubmit = async (e) => {
</FormField>
<FormField label="reject note" :class="{ 'text-red-400': form.errors.reject_reviewer_note }">
<FormControl v-model="form.reject_reviewer_note" type="textarea"
placeholder="-- reject note for editor --" :error="form.errors.reject_reviewer_note">
:placeholder="`-- reject note for editor ${dataset.editor.login}--`" :error="form.errors.reject_reviewer_note">
<div class="text-red-400 text-sm" v-if="form.errors.reject_reviewer_note">
{{ form.errors.reject_reviewer_note }}
</div>
</FormControl>
</FormField>
<FormField label="Email Notification">
<label for="send_email" class="flex items-center mr-6 mb-3">
<input type="checkbox" id="send_email" v-model="form.send_email" class="mr-2" />
<span class="check"></span>
<a class="pl-2 " target="_blank">send email to
<span class="text-blue-600 hover:underline">
{{ computedEmailLabel }}
</span>
</a>
</label>
</FormField>
<!-- <NotificationBar v-if="flash && flash.message" color="warning" :icon="mdiAlertBoxOutline">
{{ flash.message }}
@ -84,7 +103,7 @@ const handleSubmit = async (e) => {
<template #footer>
<BaseButtons>
<BaseButton type="submit" color="info" label="Reject to editor"
<BaseButton type="submit" color="info" :label="computedLabel"
:class="{ 'opacity-25': form.processing }" :disabled="form.processing" />
</BaseButtons>
</template>