yeswiki icon indicating copy to clipboard operation
yeswiki copied to clipboard

Rendre les formulaires bazar identifiables au niveau HTML

Open acheype opened this issue 4 years ago • 7 comments

Actuellement, pour chaque formulaire bazar on a la même chose <form .. name="formulaire" id="formulaire" ...>.

Je pense que c'est une bonne pratique d'avoir des noms différents mais je me propose pour modifier avant la version finale de doryphore car j'aimerais mettre en place sur mes instances de yeswiki une sauvegarde des saisies des formulaires dans le local storage du navigateur au cas où l'utilisateur change de page par mégarde avant de valider le formulaire.

Au niveau du local storage, les saisies sont enregistrées dans un tableau avec les clé [name][id], j'aurais donc besoin que ça se différencie en fonction de ces deux attributs de la balise form. On a sous la main l'id du formulaire avec {{ form.bn_id_nature }}, ça pourrait nous servir à la différencier.

déjà si on met formulaireXX et formulaireXX avec XX l'id, ça me va. Pour bien faire (gestion de plusieurs formulaire sur la même page), il faudrait générer un nombre unique pour l'id comme on le fait pour les accordéons (avec du coup, l'utilisation d'une variable GLOBALE ? berkk -> faudrait nous faire un service qui gère ces id un jour).

  1. est-ce que déjà pour faire au plus simple, ça vous irait si je mets "formulaireXX" dans les 2 ? ou dans un ?

  2. a priori il faudrait faire la modif à 2 endroits : dans form.twig, form_edit_entry.tpl.html, @srosset81 pourrais tu me le confirmer ? vu que j'ai pas trop regardé dans quel contexte est utilisé l'un ou l'autre. J'ai vu qu'il y avait la même occurence dans forms_form.twig mais celui-ci est utilisé dans form-builder.

acheype avatar Jan 28 '21 19:01 acheype

Hello, je suis ok pour cette proposition, attention toutefois aux js et css qui peuvent utiliser #formulaire comme https://github.com/YesWiki/yeswiki/blob/be625439e55aff172931a0621bd61085140947ca/tools/bazar/libs/bazar.js#L63 (et si t'as le double clic active dans les formulaires, c'est le chaos).
Tant qu'a faire j'essayerais de mettre le nom en anglais genre formXX plutôt que formulaireXX , voire yeswiki-form-xx, yw-form-xx ou bazar-form-XX histoire d'avoir un id un peu corporate, quoi! ;)

mrflos avatar Jan 28 '21 19:01 mrflos

:+1: pour bazar-form-XX

en effet pour les js et css, est-ce que je change du coup que le name ? sinon si je change les 2, il faudrait faire une classe 'bazar-form', plutôt non ? (je suis pas fan des selectors de type ^= quand on peut s'en passer)

acheype avatar Jan 28 '21 19:01 acheype

yes, il me semble que le mieux c'est que le id soit précis bazar-form-XX et que les formulaires aient aussi une classe bazar-form et que les sélecteurs css et js s'appliquent à la classe plutto que l'id.

mrflos avatar Jan 29 '21 06:01 mrflos

on est d'accord mieux vaut une classe, je m'en occuperai.

"le mieux" serait à mon sens d'avoir des id et name uniques s'il on se retrouve avec des pages où 2 formulaires bazar sont intégrés (mais pour mon besoin, toujours les mêmes si on réaffiche la page : genre bazar-form-XX puis si un deuxième formulaire bazar-form-XX-2 et ainsi de suite) mais là, je propose juste de modifier un minimum de code, donc d'aller au plus simple.

et pouvez-vous me dire la différence entre form.twi et form_edit_entry.tpl.html ? je modifie bien les 2 ?

acheype avatar Jan 29 '21 09:01 acheype

Un doit etre le formulaire d'édition des formulaires, l'autre celui des fiches, non?

mrflos avatar Jan 29 '21 11:01 mrflos

j'ai regardé de plus près du coup, form_edit_entry.tpl.html n'est plus référencé dans le code, et semble avoir été remplacé par form.twig. c'est normal @srosset81 qu'il y soit toujours ?

acheype avatar Jan 29 '21 11:01 acheype

J'imagine que non :-)

srosset81 avatar Jan 29 '21 14:01 srosset81