浏览代码

complete form error management and loading state

Olivier Massot 2 年之前
父节点
当前提交
ee83f4a60d
共有 3 个文件被更改,包括 13 次插入2 次删除
  1. 3 0
      components/Ui/Form.vue
  2. 1 1
      composables/data/useAp2iRequestService.ts
  3. 9 1
      lang/fr.json

+ 3 - 0
components/Ui/Form.vue

@@ -199,6 +199,7 @@ const submit = async (next: string|null = null) => {
   }
 
   try {
+    usePageStore().loading = true
     // TODO: est-ce qu'il faut re-fetch l'entité après le persist?
     const updatedEntity = await em.persist(props.model, props.entity)
 
@@ -230,6 +231,8 @@ const submit = async (next: string|null = null) => {
 
       usePageStore().addAlert(TYPE_ALERT.ALERT, ['invalid_form'])
     }
+  } finally {
+    usePageStore().loading = false
   }
 }
 

+ 1 - 1
composables/data/useAp2iRequestService.ts

@@ -81,7 +81,7 @@ export const useAp2iRequestService = () => {
             console.error('! Request error: Forbidden')
             usePageStore().addAlert(TYPE_ALERT.ALERT, ['forbidden'])
         }
-        else if (response && response.status >= 404) {
+        else if (response && (response.status === 400 || response.status >= 404)) {
             // @see https://developer.mozilla.org/fr/docs/Web/HTTP/Status
             const error_msg = error ? error.message : response.statusText
             console.error('! Request error: ' + error_msg)

+ 9 - 1
lang/fr.json

@@ -634,5 +634,13 @@
   "effectiveLabel": "Libellés actuellement utilisés",
   "allow_to_configure_teachings_with_played_instrument_choice": "Permettre de configurer les enseignements avec le choix sur l'instrument joué",
   "label": "Libellé",
-  "undefined": "Indéfini"
+  "undefined": "Indéfini",
+  "define_validation_periods_for_teachers": "Définir des périodes de saisie pour les professeurs",
+  "mandatory_validation_for_evaluations": "Valider obligatoirement les évaluations",
+  "evaluation_criterium_edition_is_admin_only": "Autoriser uniquement l'administration à modifier les critères d'évaluation",
+  "evaluations_periodicity": "Périodicité des évaluations",
+  "evaluation_grid_type": "Type de grilles d'évaluation",
+  "max_note_for_pedagogical_followup": "Note maximale pour les notes du suivi pédagogique (entre 1 et 100) ",
+  "Bad Request": "Requête invalide"
+
 }