pluginsGLPI / formcreator

GLPI Plugin Formcreator (DOWNLOAD : https://github.com/pluginsGLPI/formcreator/releases)
http://www.teclib-edition.com
GNU General Public License v3.0
174 stars 125 forks source link

Message d'erreur "Une Erreur interne est survenue" lors de la validation d'un formulaire #3412

Open benjy2006 opened 1 year ago

benjy2006 commented 1 year ago

Describe the bug Lorsqu'un utilisateur rempli un formulaire en oubliant de renseigner un champ obligatoire, un message générique s'affiche "Une erreur interne est survenue. Veuillez en informer l'administrateur.".

Le formulaire n'est donc pas enregistré et les cibles ne sont pas jouées.

Pour obtenir la raison de la non validation du formulaire, il faut rafraichir la page. Problème : l'utilisateur perd tout ce qu'il a renseigné précédemment.

To Reproduce Steps to reproduce the behavior:

  1. Se rendre dans le menu Assistance -> Formulaire
  2. Ouvrir un nouveau formulaire
  3. Remplir le formulaire en oubliant de renseigner un champ obligatoire
  4. Cliquer sur "Envoyer"

Expected behavior Une fenêtre "popup" doit indiquer la / les raisons du problème lorsque nous cliquons sur le bouton "Envoyer"

Screenshots

image

GLPI / Plugins (please complete the following information):

Desktop (please complete the following information):

Additional context Add any other context about the problem here.

btry commented 11 months ago

Bingo, il y a quelque chose qui introduit un caractère dans la réponse. Essayez de désactiver tous les autres plugins pour voir si le problème persiste.

Avez vous aussi des patchs sur les plugins ou sur GLPI ?

informatiqueCHSA commented 11 months ago

Bingo, il y a quelque chose qui introduit un caractère dans la réponse. Essayez de désactiver tous les autres plugins pour voir si le problème persiste.

Avez vous aussi des patchs sur les plugins ou sur GLPI ?

image

ils sont tous à jour

je viens essayer de désactiver les autres et refaire un test toujours le même message que tout à l'heure

btry commented 11 months ago

Il ya des patchs appliqués dans glpi ou des plugins ?

btry commented 11 months ago

Je pense que le caractère est un espace. Essayez de changer la ligne marquée d'une flèche rouge. Vous suarez la repérer facilement, j'ai ajouté .trim() pour tenter de supprimer les espaces.

image

informatiqueCHSA commented 11 months ago

Je pense que le caractère est un espace. Essayez de changer la ligne marquée d'une flèche rouge. Vous suarez la repérer facilement, j'ai ajouté .trim() pour tenter de supprimer les espaces.

image

ça fonctionne !!!! c'était bien celà du coup nouvelle version à corriger du plugin formcreator ?

btry commented 11 months ago

C'est un fix palliatif qui cache un problème dans un fichier de glpi ou un plugin.

Je verserai le fix dans le code, mais il n'y a pas de date prévue pour une prochaine release pour le moment.

informatiqueCHSA commented 11 months ago

C'est un fix palliatif qui cache un problème dans un fichier de glpi ou un plugin.

Je verserai le fix dans le code, mais il n'y a pas de date prévue pour une prochaine release pour le moment.

ok merci une autre question, quand un utilisateur ne remplis par un champ obligatoire, peux-t'on lui expliciter le message d'erreur ? image

btry commented 11 months ago

Quand un champ obligatoire n'est pas rempli, un toast doit apparaitre pour signaler l'erreur.

informatiqueCHSA commented 11 months ago

Quand un champ obligatoire n'est pas rempli, un toast doit apparaitre pour signaler l'erreur.

oui mais c'est toujours ce message "Une erreur interne est survenue. Veuillez en informer l'administrateur.". On ne pas donner plus de précision à l'utilisateur ?

btry commented 11 months ago

Bonjour

Un message est supposé apparaître pour dire quels champs ne sont pas remplis correctement. Je pense qu'un fix similaire au premier doit être ajouté à un autre endroit. Votre problème étant marginal les fix que je prépare ne font que cacher un autre problème, vraisemblablement hors du plugin.

btry commented 11 months ago

Retirez les lignes console.log ajoutées la semaine dernière, et appliquez ce patch

diff --git a/js/scripts.js b/js/scripts.js
index cfc1291b0..c9ca0f7ba 100644
--- a/js/scripts.js
+++ b/js/scripts.js
@@ -1377,6 +1377,8 @@ var plugin_formcreator = new function() {
             displayAjaxMessageAfterRedirect();
             return;
          }
+         console.log("Formcreator: response len=" + xhr.responseText.length)
+         console.log("Formcreator: response texxt=" + xhr.responseText)
          if (typeof(xhr.responseJSON) == 'undefined') {
             alert(i18n.textdomain('formcreator').__('An internal error occurred. Please report it to administrator.', 'formcreator'));
          }
informatiqueCHSA commented 11 months ago

Bonjour,

c'est parfait on a bien le nom champ qui n'est pas rempli sur le formulaire merci beaucoup