Json interprété dans champs des commandes - Bug Core?

Bonjour,

Dans :

  • le fichier jquery.utils.js
    • la fonction getValues

on retrouve 2 blocs :

          if ($.trim(elValue).substr(0, 1) == '{') {
              var elValue = JSON.parse($(this).value());
          }

image

Le problème
Lorsque l’on saisie une chaine de texte correspondant à un objet JSON dans un champs d’une commande, celui-ci est transformé en objet avant d’être sérialisé pour la sauvegarde de l’équipement.

Par la suite, celui-ci n’est donc pas sauvé dans la BDD correctement mais retransformé :
- {"bidule":true} devient {"bidule":"1"}
- {"bidule":null} devient {"bidule":""}

Question
Quelle est l’utilité de cette conversion en Objet des champs des commandes plutot que de les conserver sous forme de texte.

Portée
Tous les formulaires de saisie des commandes … et donc tous les plugins!

Reste à investiguer…
Même en bypassant cette conversion, et donc en faisant passer une requete ajax comportant un json d’équipement correct, la valeur stockée en BDD est toujours incorrecte.
il doit donc aussi y avoir une interpretation en json des chaines de texte dans eqLogic.ajax.php…

Je me répond.
le problème se trouve plus bas.
Même si la fonction JS getValues transforme le contenu en objet, ca semble géré à tous les niveaux.
C’est la fonction cmd::humanReadableToCmd qui transforme les booléen et null.
Ils ne rentrent dans aucun case et finissent par passer dans un str_replace() qui modifie l’information.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.