diff --git a/.gitignore b/.gitignore index 8703365..0db40ed 100644 --- a/.gitignore +++ b/.gitignore @@ -91,3 +91,6 @@ sw.* # Files marked as sensitive *.nogit.* + +# Now by Vercel +.now/ diff --git a/components/LoadingSpinner.vue b/components/LoadingSpinner.vue new file mode 100644 index 0000000..585d91f --- /dev/null +++ b/components/LoadingSpinner.vue @@ -0,0 +1,134 @@ + + + diff --git a/components/ModalAddReport.vue b/components/ModalAddReport.vue index c4c811c..9a511d9 100644 --- a/components/ModalAddReport.vue +++ b/components/ModalAddReport.vue @@ -3,78 +3,87 @@ v-bind="{...description, action, validation}" @submit="handleSubmit()" @delete="$emit('delete')" - :add-button-text="canSubmit ? 'Envoyer' : false" + @close="handleClosed()" + :add-button-text="submitButtonText" :modal-title="modalTitle" :delete-button-text="null" + :close-on-form-submit="closeOnFormSubmit" + :close-button="!submitting" + :class="{submitting, submitted, errored, 'come-back-later': !canSubmit}" ) - template(v-if="canSubmit") - .report-type - InputButtonsSelect( - :values="reportTypes" - :value="value.type" - @input="$emit('input', { ...value, type: $event })" - ) - .report-title - InputField( - type="text" - name="title" - :value="value.title" - @input="$emit('input', { ...value, title: $event })" - ) Titre - .report-message - template(v-if="value.type === 'BUG'") + transition + template(v-if="submitting") + ScreenLoading(small :fullscreen="false") + p Soumission de votre {{ this.value.type === 'BUG' ? 'rapport' : 'idée' }}... + template(v-else-if="submitted") + ScreenSuccess(small @cta="seeReports()" image="thumbs-up" :fullscreen="false") + h1 Merci pour votre contribution ! + template(#cta) Voir vos rapports + template(v-else-if="canSubmit") + .report-type + InputButtonsSelect( + :values="reportTypes" + :value="value.type" + @input="$emit('input', { ...value, type: $event })" + ) + .report-title InputField( - type="block" - name="what" - :value="message.what", - @input="handleMessageInput('what', $event)" - placeholder="Décrivez le comportement du bug et comment vous l'avez rencontré" - ) Que s'est-il passé ? - InputField( - type="block" - name="expected" - :value="message.expected", - @input="handleMessageInput('expected', $event)" - placeholder="Décrivez le comportement correct qui aurait dû avoir lieu si le bug n'existait pas" - ) À quoi vous attendiez-vous ? - template(v-else) - InputField( - type="block" - name="problem" - :value="message.problem", - @input="handleMessageInput('problem', $event)" - placeholder="Si votre solution ne répond pas à un problème en particulier, expliquez pourquoi elle est utile" - ) Quel est le problème ? - InputField( - type="block" - name="solution" - :value="message.solution", - @input="handleMessageInput('solution', $event)" - placeholder="N'hésitez pas à rajouter des captures d'écrans et autres ressources que vous pensez utiles." - ) Quel est votre solution ? - p.notice - | Votre rapport sera publié #[a(href="https://github.com/schoolsyst/frontend/issues" target="_blank") sur GitHub], où votre nom d'utilisateur - | , navigateur, OS et type d'appareil seront visibles, afin d'aider le réglage de votre problème. - template(v-else-if="submitted") - ScreenSuccess(small @cta="$router.push('/reports')" image="thumbs-up") - h1 Merci pour votre contribution ! - template(#cta) Voir vos rapports - template(v-else="!canSubmit") - ScreenEmpty(small @cta="$router.push('/')") - template(#smiley) T_T - h1 Revenez demain. - p Pour éviter les abus, il est impossible de publier plus de 5 rapports par jour. Merci pour vos contributions acharnées ! - p Vous pouvez toujours créer votre demande sur github.com directement, mais il faudra vous faudra un compte GitHub. - template(#cta) Créer une demande sur GitHub + type="text" + name="title" + :value="value.title" + @input="$emit('input', { ...value, title: $event })" + ) Titre + .report-message + template(v-if="value.type === 'BUG'") + InputField( + type="block" + name="what" + :value="message.what", + @input="handleMessageInput('what', $event)" + placeholder="Décrivez le comportement du bug et comment vous l'avez rencontré" + ) Que s'est-il passé ? + InputField( + type="block" + name="expected" + :value="message.expected", + @input="handleMessageInput('expected', $event)" + placeholder="Décrivez le comportement correct qui aurait dû avoir lieu si le bug n'existait pas" + ) À quoi vous attendiez-vous ? + template(v-else) + InputField( + type="block" + name="problem" + :value="message.problem", + @input="handleMessageInput('problem', $event)" + placeholder="Si votre solution ne répond pas à un problème en particulier, expliquez pourquoi elle est utile" + ) Quel est le problème ? + InputField( + type="block" + name="solution" + :value="message.solution", + @input="handleMessageInput('solution', $event)" + placeholder="N'hésitez pas à rajouter des captures d'écrans et autres ressources que vous pensez utiles." + ) Quel est votre solution ? + p.notice + | Votre rapport sera publié #[a(href="https://github.com/schoolsyst/frontend/issues" target="_blank") sur GitHub], où votre nom d'utilisateur + | , navigateur, OS et type d'appareil seront visibles, afin d'aider le réglage de votre problème. + template(v-else) + ScreenEmpty(small @cta="$router.push('/')") + template(#smiley) T_T + h1 Revenez demain. + p Pour éviter les abus, il est impossible de publier plus de 5 rapports par jour. Merci pour vos contributions acharnées ! + p Vous pouvez toujours créer votre demande sur github.com directement, mais il faudra vous faudra un compte GitHub. + template(#cta) Créer une demande sur GitHub diff --git a/components/ScreenLoading.vue b/components/ScreenLoading.vue new file mode 100644 index 0000000..85ee0c0 --- /dev/null +++ b/components/ScreenLoading.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/components/ScreenSuccess.vue b/components/ScreenSuccess.vue index eeebb47..621f4ea 100644 --- a/components/ScreenSuccess.vue +++ b/components/ScreenSuccess.vue @@ -1,5 +1,5 @@