# Changelog
## Unreleased
- #252 Fonction d'API `saisies_encapsuler_noms`
### Fixed
- #284 Mise à jour de la saisie `selecteur_lang` en uniformisant avec les autres sélections (option `intro_vide` notamment)
- #262 Prendre en compte tout les statuts possible pour la saisie `statuts_auteur`
## [4.8.0] - 2023-05-29
### Added
- Option `minlength` pour la saisie `input`
### Fixed
- #279 faire fonctionner correctement les tests d'inégalité en afficher_si lorsque les deux nombres n'ont pas le même nombre de caractère.
- #274 Correction de cohérence JS/PHP pour un afficher_si court (`@champ@`) lorsque `@champ@` vaut `'0'` (string)
## [4.7.1] - 2023-03-24
### Fixed
- yaml/#7 compatibilité avec le plugin `YAML` v3.0.3
- #254 #259 #264 refaire fonctionner `_T_ou_typo()` en SPIP 4.2 et >
- #258 permettre d'envoyer une valeur `0` ou `'0'` (mais pas `empty` ) dans une saisie multivaluée (type `checkbox` )
## [4.7.0] - 2023-01-07
### Added
- #123 Option `onglet_vertical` pour les `fieldsets` en `onglet` ; si un seul onglet est désigné comme vertical, tous les onglets le sont
### Changed
- #123 Dans un constructeur de formulaire, les onglets sont désormais verticaux
- Dans un constructeur de formulaire, les options globales du formulaire sont en `pleine_largeur`
### Fixed
- auth_email/#1 Lorsqu'on a une erreur dans un ou plusieurs onglets, se rendre au premier onglet avec erreurs
fix: Affiner la compatibilité entre les `fieldsets` en onglets et `select2`.
Au sein des onglets, imposer le container de select2 à 100%. Ca manque
de flexibilité, mais ca marche.
A supprimer lorsque
https://git.spip.net/spip-contrib-extensions/select2/issues/4 sera
résolu.
close #240
exemple pour reproduire :
````
id_formulaire: '111'
identifiant: onglets
titre: onglets
descriptif: ''
css: ''
message_retour: ''
saisies:
-
options: { label: 'Groupe de champs', onglet: on, onglet_vertical: on, nom: fieldset_1 }
identifiant: '@63948849014e5'
verifier: { }
saisie: fieldset
saisies: [{ options: { label: 'Liste déroulante / sélection', datas: "choix1|Un\r\nchoix2|Deux\r\nchoix3|Trois", class: select2, nom: selection_1 }, verifier: { }, identifiant: '@639488520242a', saisie: selection }]
-
options: { label: 'Groupe de champs (copie)', onglet: on, nom: fieldset_2 }
identifiant: '@6394886e71407'
verifier: { }
saisie: fieldset
saisies: [{ options: { label: 'Liste déroulante / sélection', datas: "choix1|Un\r\nchoix2|Deux\r\nchoix3|Trois", class: select2, nom: selection_2 }, verifier: { }, identifiant: '@6394886e7140c', saisie: selection }]
-
saisie: input
options: { nom: input_1, label: 'Ligne de texte', size: 40, sql: 'text DEFAULT '''' NOT NULL' }
identifiant: '@639488fb2f5e9'
-
options: { label: 'Liste déroulante / sélection (copie)', datas: "choix1|Un\r\nchoix2|Deux\r\nchoix3|Trois", class: select2, afficher_si: '@input_1@ == ''1''', nom: selection_3 }
verifier: { }
identifiant: '@639488f4c8c8d'
saisie: selection
traitements: { }
public: non
statut: prop
date_creation: '2022-12-10 14:22:57'
maj: '2022-12-10 14:33:00'
apres: formulaire
url_redirect: ''
````
Ref #240
6 months ago
- #240 : Compatibilité entre les fieldset en onglets et `select2`
## [4.6.1] - 2022-12-01
### Added
- #236 Ajout de la saisie `type_mime` (utilisé pour constructeur de formulaire) depuis CVT-Upload
### Fixed
- #236 Correction d'un bug sur constructeur de formulaire lorsque CVT-Upload n'est pas disponible
- #236 Ne pas proposer la vérification `fichiers` pour des saisies non `fichiers`
- #237 `saisie_transformer_option()` ajoute l'option si jamais elle est inexistante (bug introduit en v4.5.0)
- #237 Constructeur de formulaire : toutes les saisies sont en pleine largeur (comportement qui avait été cassé en v4.5.0)
- #237 `saisie_mapper_option()` ajoute l'option si jamais elle est inexistante
- #238 Saisie `destinataires` : ne pas afficher de label si jamais tout est caché
## [4.6.0] - 2022-11-21
### Changed
- Dans le constructeur de formulaires, on ne gère plus directement les exceptions de vérification pour la saisie `fichiers` du plugin CVT-Upload. On n'utilise à la place un pipeline `saisies_verifier_lister_disponibles` .
### Fixed
- #233 Lorsqu'un constructeur de formulaire ajoute ses propres fieldsets racine à la configuration d'une saisie, les afficher en onglet à côté des autres fieldset, pas en dessous
- inserer_modeles/#12 Faire fonctionner la saisie `selecteur_documents` appelée au sein d'une modalbox
- #226 Debug des `afficher_si` au chargement des pages qui chargent également du contenu/javascript en Ajax
- cvt-upload/#12 Constructeur de formulaire : afficher les options de vérification pour la saisie fichier
### Removed
- La saisie `selecteur_documents` n'a plus besoin de `_modalbox_retour`
## [4.5.2] - 2022-09-23
### Fixed
- #225 : un input avec une valeur 0 (ou '0') affichait une chaine vide : saisies_utf8_restaurer_planes() ne retourne plus une chaine vide
## [4.5.1] - 2022-09-14
### Fixed
- Refait fonctionner la vérification de (certains) formulaires
## [4.5.0] - 2022-09-11
### Fixed
- formidable/#120: Pour la saisie explication, seul le bouton d'affichage/masquage affiche/masque, pas les boutons du constructeur de formulaire.
- #208 Générer une exception dans `saisies_lister_disponibles()` et `saisies_charger_infos()` si le plugin `YAML` n'est pas actif.
- formidable_participation/#9 + #207 Dans l'espace privé, éviter les problèmes de marge supérieur lorsqu'un fieldset suit un élèment masqué par `afficher_si` .
- #216 Eviter une rupture de compat brutal en v4 concernant l'emplacement de `nouveau_type_saisie` dans l'argument `$modifs` dans `saisie_modifier()` .
### Added
- #208 Tenir compte des options pour dev lorsqu'on nettoie l'environnement de `#GENERER_SAISIES`
- #222 Nouvelle fonction `saisie_mapper_option()` pour appliquer une fonction de rappel sur une (ou plusieurs) options données d'un ensemble de saisies
- #222 `saisie_transformer_option()` peut recevoir une liste d'options à modifier, plutôt qu'une option unique
## [4.4.1] - 2022-06-06
### Fixed
- #206 Pour la saisie radio, si les clés sont des entiers, ne pas considérer que l'absence de valeur par défaut vaut valeur par défaut == 0
- Correction de `selecteur_document.yaml` mal formaté
## [4.4.0] - 2022-05-31
### Added
- #200 Ajout de `saisies_verifier_coherence_afficher_si()` (utilisable par les constructeurs de formulaire)
- #171 Option de saisie `explication_apres` , pour insérer une explication après le champ, en plus ou à la place de l'explication avant
- #171 Dans l'aide de saisies, les messages d'attention accolés aux options sont affichés
- #185 Les emoji apparaissent sous la forme normale, et non pas la forme entité HTML, dans les saisies `textarea` et `input`
- #198 Ajout de quatre `trigger` Javascript sur les `afficher_si` :
* `afficher_si_visible_pre` (avant de rendre visible un champ);
* `afficher_si_visible_post` (après avoir rendu visible);
* `afficher_si_masque_pre` (avant de masquer un champ);
* `afficher_si_masque_post` (après avoir masqué un champ);
### Changed
- formidable/#70 Vue des `fieldset` : utiliser aussi un markup `fieldset` /`legend`, pour affichage correct dans les emails
- #198 `afficher_si` : ne faire les actions de masquage/demasquage que si la saisie n'est pas déjà masquée/démasquée
- #199 Constructeur de saisie : tout ce qui est `afficher_si` dans un
onglet `condition` à part
- #188 Constructeur de formulaire : positionner l'écran sur la saisie en cours d'édition
### Fixed
- #196 Debug du constructeur de formulaire, qui ne doit pas proposer les saisies obsolètes, même aprés une première vérification de saisies
- #198 Lors de l'édition d'un formulaire, les fieldsets ne sont pas mis en mode onglet
- #198 Les fieldset en onglets restent à leur emplacement ; il est possible de mettre du contenu hors onglet entre deux fieldset
- #194 La saisie `fieldset` n'hérite plus de l'`id` du formulaire
- #193 Afficher correctement les erreurs des champs dont le nom est déclarée selon la syntaxe SPIP `cle/souscle/nom`
- Le `describedby` d'un champ lorsque l'on a une erreur sur une saisie avec un `name` contenant des crochets est corrigé
- #198 Les `afficher_si` fonctionnent désormais sur les onglets
- #198 Attribut `aria-labelledby` correct sur les onglets
- #180 Sous firefox : pouvoir sélectionner la barre de scroll pour les onglets horizontaux + ne pas la superposer avec la bordure des onglets
- #166 Constructeur de formulaire : rendre visible les boutons d'action lorsqu'une saisie non `fieldset` suit un `fieldset`