[prive ↪ forms_exit_jQuery] 20 commits

spip/prive | 20 commits

Par placido, le 11 septembre 2025 à 11h44min :

build(ESM): ajaxCallBack.js + presentation.js

Modifié
javascript/ajaxCallback.js
javascript/ajaxCallback.min.js
javascript/presentation.js
javascript/presentation.min.js
javascript/retrocompat.min.js

Détails : build(ESM): ajaxCallBack.js + presentation.js (0bd734a0) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

chore(gitattributes): ne pas inclure les dossiers de build/tests des modules ESM lors de l’export

Modifié
.gitattributes

Détails : chore(gitattributes): ne pas inclure les dossiers de build/tests des modules ESM lors de l'export (433bc056) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

test: nouveaux tests unitaires, notamment pour ajaxReload

Ajoute un mock de la fonction fetch pour simuler les requêtes/retours serveur
Privilégier { describe, it } à { test }
Mise à jour de la dépendance happy-dom

Ajouté
javascript/ajaxCallback/tests/helpers.js
javascript/ajaxCallback/tests/mocks/fetch.js
javascript/ajaxCallback/tests/ajaxReload.test.js
javascript/ajaxCallback/tests/onAjaxLoad.test.js
Supprimé
javascript/ajaxCallback/tests/triggerAjaxload.test.js
Modifié
javascript/ajaxCallback/package.json
javascript/ajaxCallback/preload.js
javascript/ajaxCallback/tests/formulaire_fix_markup_post_submit.test.js
javascript/ajaxCallback/tests/formulaire_switch_ajax.test.js

Détails : test: nouveaux tests unitaires, notamment pour ajaxReload (83262f31) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

remove(followLink): retrait de jQuery.fn.followLink() du module ajaxbloc.js

Introduit par 91b93a2640e1875bb3ef067e5d9a8c35c9c8bf16 pour contourner une limitation propre à l’écosystème jQuery, followLink()
ne semble plus nécessaire au module ajaxbloc ; la méthode native click() sur l’objet HTMLElement suffit.

La fonction est déplacée dans le fichier retrocompat.js, et son usage considéré comme déprécié.

Modifié
echafaudage/contenu/objet_edit.html
echafaudage/contenu/objet_edit.sans_rubrique.html
javascript/ajaxCallback/src/ajaxbloc.js
javascript/ajaxCallback/src/main.js
javascript/retrocompat.js

Détails : remove(followLink): retrait de `jQuery.fn.followLink()` du module `ajaxbloc.js` (c829fb6a) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(log.js): pas besoin d’utiliser parametre_url à chaque appel (perf_issue)

Modifié
javascript/ajaxCallback/src/log.js

Détails : fix(log.js): pas besoin d'utiliser `parametre_url` à chaque appel (perf_issue) (f18c3e9f) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(ajaxbloc): ajout d’un tableau defaults

Simplifie l’initialisation du paramètre _options pour les focntions ajaxReload(), loadAjax(), ajaxClick()

ajaxReload() renvoie désormais une promesse pour un usage asynchrone
loadAjax() renvoie désormais une valeur booléenne qui signe le succès
ajaxbloc() accepte de nouveau un unique parametre source

Modifié
javascript/_inits/20_ajaxbloc.js
javascript/ajaxCallback/src/ajaxbloc.js
javascript/ajaxCallback/src/ajaxform.js
javascript/retrocompat.js

Détails : fix(ajaxbloc): ajout d'un tableau `defaults` (6ed253f8) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

remove(spipConfig.stat): retrait de cette entrée manifestement jamais utilisée

Modifié
javascript/_inits/03_prive_config.js.html
javascript/retrocompat.js

Détails : remove(spipConfig.stat): retrait de cette entrée manifestement jamais utilisée (e78c800d) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

remove(_OUTILS_DEVELOPPEURS): retrait de cette entrée depuis spipConfig, manifestement jamais utilisée

Modifié
javascript/_inits/03_prive_config.js.html

Détails : remove(_OUTILS_DEVELOPPEURS): retrait de cette entrée depuis `spipConfig`,... (8a3aacfe) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(positionner): création d’un sous-module scroll.js dédié

Calculer naïvement si l’élément est visible avant de déclencher le défilement
Ajouter une classe body--noscroll et suspendre les événements molette de la souris le temps de l’animation, pour éviter un comportement erratique.

setfocus: si l’élément « focusable » contient la classe nofocus, il ne reçoit pas le focus.

Ajouté
javascript/ajaxCallback/src/scroll.js
Modifié
javascript/ajaxCallback/src/ajaxbloc.js
javascript/ajaxCallback/src/anim.js
javascript/ajaxCallback/src/main.js
themes/spip/ajax.css

Détails : fix(positionner): création d'un sous-module `scroll.js` dédié (1584168a) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix: ajustements des styles sur image_loading

Ajouter la classe --clicked sur le submitter, même s’il n’y a d’attribut name
animateLoading(): insérer .image_loading à côté du bouton submit, sinon dans la barre .boutons, sinon au début de la cible.

CSS : Revoir à la baisse le spectre d’application de position:relative (sautillements)

Modifié
javascript/ajaxCallback/src/ajaxform.js
javascript/ajaxCallback/src/anim.js
themes/spip/ajax.css

Détails : fix: ajustements des styles sur `image_loading` (16d9fec5) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(editer_logo): afficher/masquer la zone d’ajout du logo survol sans jQuery

Ce cas d’usage se prête bien à un remplacement par un markup :

<details>
   <summary></summary>
   ...
</details>

Le masquage de la zone .boutons est déjà géré par bigUp.

Modifié
formulaires/editer_logo.html

Détails : fix(editer_logo): afficher/masquer la zone d'ajout du logo survol sans jQuery (a7f33f06) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(rediriger_article): afficher .boutons au focus sans jQuery

Modifié
formulaires/rediriger_article.html

Détails : fix(rediriger_article): afficher `.boutons` au focus sans jQuery (c462f30c) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(formulaire_recherche): n’a pas besoin de jQuery

Ajout d’une fonction dédiée recherche() au sein du module « presentation.js »

Ajouter systématiquement l’argument class à #FORMULAIRE_RECHERCHE_ECRIRE, afin de calculer un identifiant #ENV{_champ_id} vraiment unique suivant le contexte (bando, page_recherche, modalbox, …)

On diffère 3 comportements suivant la position du champ de recherche :

  • depuis le bando : le soumission déclenche l’ouverture d’une modale en mode sideBar
  • depuis un bloc ajax: rechargement avec mise à jour de la valeur saisie
  • defaut: lien vers la page recherche avec la valeur saisie

Le comportement du bouton interne .cancel au clic évolue :
Si le champ contient une valeur : on vide le champ et rétablit le focus
Si le champ est vide, on soumet le formulaire avec une valeur vide
Ainsi, 2 clics successifs donne un résultat identique au comportement historique (c-à-d soumission avec valeur vide)
L’icone interne change pour indiquer visuellement la subtilité de comportement du bouton

Ajouté
javascript/presentation/src/recherche.js
Modifié
formulaires/recherche_ecrire.html
javascript/presentation/src/main.js
squelettes/contenu/recherche.html
squelettes/inclure/barre-nav.html
themes/spip/forms.css
themes/spip/vars.css_fonctions.php

Détails : fix(formulaire_recherche): n'a pas besoin de jQuery (c4c2e32d) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(reloadExecPage) : appeller la fonction avec la syntaxe ESM

Désactiver le défilement
N’appliquer la mise à jour du l’historique qu’une seule fois

On crée un fichier init dédié pour les fonctions propres au privé dont on assure la retrocompatibilité (reloadExecPage en l’occurence)

Ajouté
javascript/_inits/06_prive_retrocompat.js
Modifié
echafaudage/contenu/objet.html
echafaudage/contenu/objet_edit.html
echafaudage/contenu/objet_edit.sans_rubrique.html
javascript/_inits/05_retrocompat.js.html
javascript/presentation/src/reloadExecPage.js
squelettes/contenu/article.html
squelettes/contenu/auteur.html
squelettes/contenu/auteur_edit.html
squelettes/contenu/rubrique.html

Détails : fix(reloadExecPage) : appeller la fonction avec la syntaxe ESM (8989fe33) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(configurer_reducteur): afficher/masquer les champs sans jQuery

Quelques règles CSS conditionnées par un data-value dont la valeur change à la faveur de celle de l’input radio.
Ajout d’un attribut pattern="\[0-9\]+" sur input#taille_preview
Ajustement de la position du background pour les .vignette_reducteur>button, pour les cas en echec (taille plus petite)

Modifié
formulaires/configurer_reducteur.html
themes/spip/forms.css

Détails : fix(configurer_reducteur): afficher/masquer les champs sans jQuery (b5cd30c5) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(configurer_annonces): afficher/masquer les champs sans jQuery

Quelques règles CSS conditionnées par un data-value dont la valeur change à la faveur de celle de l’input radio.
ajout d’un attribut pattern="\[0-9\]+" sur input#jours_neuf

Modifié
formulaires/configurer_annonces.html

Détails : fix(configurer_annonces): afficher/masquer les champs sans jQuery (5a40c57f) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(formulaire_editer_auteur): supprimer la marge blanche au bas du formulaire

Modifié
themes/spip/forms.css

Détails : fix(formulaire_editer_auteur): supprimer la marge blanche au bas du formulaire (93091567) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

remove(inc-instituer_auteur_fonctions.php): suppression fichier inutilisé

Supprimé
formulaires/inc-instituer_auteur_fonctions.php

Détails : remove(inc-instituer_auteur_fonctions.php): suppression fichier inutilisé (ac98c269) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(inc-instituer_auteur): afficher/masquer les champs sans jQuery

Quelques règles CSS + un peu de vanilla JS font l’affaire

Modifié
formulaires/inc-instituer_auteur.html

Détails : fix(inc-instituer_auteur): afficher/masquer les champs sans jQuery (865f6401) · Validations · spip / prive · GitLab

==============================
Par placido, le 11 septembre 2025 à 11h44min :

fix(formulaire_traduire): afficher/masquer les champs sans jQuery

Utiliser la condition #ENV{_saisie_en_cours} une seule fois sur la balise <form>, avec un attribut data-open;
Animations de dépli en CSS, d’après la présence/valeur de data-open

fix(formulaires_traduire_charger_dist): _request('changer_id_trad') n’existe pas, c’est _request('id_trad') qu’il faut tester pour $valeurs['_saisie_en_cours']

fix(ui): Ajouter l’icone langue en background de .editer_changer_lang

Modifié
formulaires/traduire.html
formulaires/traduire.php
themes/spip/forms.css

Détails : fix(formulaire_traduire): afficher/masquer les champs sans jQuery (966c39ec) · Validations · spip / prive · GitLab