[spip ↪ issue_5566_plainjs] 20 commits

placido/spip | 20 commits

Par placido, le 13 juin 2024 à 16h35min :

change : ajaxCallback.js réécrit en javascript natif

#5566

  • Le fichier gère notamment le rechargement des inclures ajaxés, des formulaires et des boutons d’action
  • Exit les dépendances à jQuery et jquery.form.js
  • Le fichier est ventilé en sous-modules pour faciliter lisibilité et maintenabilité
  • Il devient lui-même un module (esm) dont les fonctions utilitaires peuvent (doivent) être importées (ex. : onAjaxLoad, parametre_url, …)

Changements notables :

L’objet de configuration globale n’est plus attaché à jQuery ($.spip.xxx)

Il n’est plus une propriété directe de window (spipConfig.core) ; mais se trouve localisé dans un module JS (config.js.html). Étant déclaré dans le pipeline importmap, on peut y accéder et modifier les valeurs simplement, comme ceci :

<script type="module">
   import { default as spip } from "config.js";
   console.log(spip);
   spip.ajax_image_searching = "⌛";
</script>

Le fichier ajaxCallBack.js est généré via un empaqueteur (builder) afin de réduire le nombre de hits au chargement. Exécuter bun watch (compilation continue) ou bun run build (compilation et minification) depuis le dossier prive/javascript/ajaxCallback/ pour propager tout nouvelle modification.

Le fichier obsolete.js assure une compatibilité relative avec les anciens appels dont on peut voir la trace via le mode verbeux.

Introduction de 2 nouveaux fichiers dédiés à l’initialisation des modules : _prive_spip.js (espace privé) & _spip_init.js (site public)

Autres changements :

  • On peut activer le mode verbeux (log) simplement grâce au paramètre d’url?var_mode=debug_js. Des modules tiers peuvent s’appuyer sur ce dernier :
import {log} from "ajaxCallBack.js"; 
log('quelque_chose');
  • Les fonctions d’animations animateLoading(), endLoading(), animateRemove() et animateAppend(), reposent sur des déclarations CSS. Pour l’heure, seule animateLoading() est personnalisable via l’objet de config (spip.css.animateLoading)
  • La fonction positionner() implémente désormais scrollIntoView, et l’ajustement de la marge verticale est à personnalisée manuellement via la règle CSS : scroll-margin
  • Les fonctionsjQuery.spip.intercepted.xxx, sont considérées totalement dépréciées, et supprimées.
  • Les fonctions jQuery.uaMatch, et jQuery.browser sont considérées dépréciées, mais demeurent dans le fichier résiduel jquery.browser.js le temps d’opérer la transition avec les fonctions de l’espace privé qui les nécessitent.
  • jquery.form.js n’est plus appelé par le pipeline jquery_plugins
  • les sous-dossiers node_modules/ sont exclus de l’indexation git.

Ajouté
prive/javascript/_prive_init.js
prive/javascript/_spip_init.js
prive/javascript/ajaxCallback.min.js
prive/javascript/ajaxCallback/ajaxbloc.js
prive/javascript/ajaxCallback/ajaxform.js
prive/javascript/ajaxCallback/anim.js
prive/javascript/ajaxCallback/cvt_verifier.js
prive/javascript/ajaxCallback/history.js
prive/javascript/ajaxCallback/log.js
prive/javascript/ajaxCallback/main.js
prive/javascript/ajaxCallback/package.json
prive/javascript/ajaxCallback/reader.js
prive/javascript/ajaxCallback/url.js
prive/javascript/config.js.html
prive/javascript/jquery.browser.js
prive/javascript/obsolete.js.html
Modifié
.gitignore
CHANGELOG.md
ecrire/inc/importmap.php
ecrire/inc/pipelines.php
ecrire/inc/pipelines_ecrire.php
prive/javascript/ajaxCallback.js
prive/squelettes/inclure/head.html

Détails : change : ajaxCallback.js réécrit en javascript natif (de838d15) · Validations · placido / spip · GitLab

==============================
Par placido, le 13 juin 2024 à 16h13min :

feat : importmap

Ref #5566

Permet de créer des alias pour les ressources JS locales, ce qui facilite, côté navigateur, la syntaxe d’import des scripts de type module.

voir : <script type="importmap"> - HTML (HyperText Markup Language) | MDN

Cela résoud le problème des scripts dont l’url est changeante (via #PRODUIRE notamment).

NB : La balise <script [type=importmap]> est déclarée dans <head> avant l’appel du premier script de type module.

Nouveautés :

  • balise #IMPORT_JS : pour la résolution d’url de la ressource
  • un pipeline importmap : permet d’ajouter / supprimer les éléments à faire figurer dans l’annuaire, côté privé et/ou public, au choix.

2 cas d’usage pour l’exemple :

   import { default as spip } from "config.js"; // <- config.js.html étant un fichier dynamique référencé via le pipeline importmap
   console.log(spip);
<script type="module">
   import { init } from "#IMPORT_JS{module_x.js}";
   init();
</script>

Ajouté
ecrire/balise/import_js.php
ecrire/inc/importmap.php
prive/squelettes/inclure/importmap.html
prive/squelettes/inclure/importmap_fonctions.php
Modifié
CHANGELOG.md
ecrire/paquet.xml

Détails : feat : importmap (98a9d0b1) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 10 juin 2024 à 11h06min :

build(deps): up dependencies (& bigup branche dev)

Modifié
composer.json
composer.lock

Détails : build(deps): up dependencies (& bigup branche dev) (15b191f3) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 7 juin 2024 à 11h04min :

docs(changelog): #5178

Modifié
CHANGELOG.md

Détails : docs(changelog): #5178 (85ab6862) · Validations · placido / spip · GitLab

==============================
Par touti, le 7 juin 2024 à 11h00min :

fix: ajout d’une div class contenu_login pour pouvoir cibler le contenu de la page prive/login

Fix: #5178

Modifié
prive/login.html

Détails : fix: ajout d'une `div` class `contenu_login` pour pouvoir cibler le contenu de la page prive/login (0a2cdb1b) · Validations · placido / spip · GitLab

==============================
Par RastaPopoulos, le 7 juin 2024 à 10h37min :

doc(changelog): pour #5774

Modifié
CHANGELOG.md

Détails : doc(changelog): pour #5774 (71781e4b) · Validations · placido / spip · GitLab

==============================
Par RastaPopoulos, le 7 juin 2024 à 10h36min :

feat: nouveau pipeline get_spip_doc`` pour manipuler le résultat de la fonction get_spip_doc`

Refs: #5774

Modifié
ecrire/inc/documents.php
ecrire/paquet.xml

Détails : feat: nouveau pipeline `get_spip_doc`` pour manipuler le résultat de la fonction `get_spip_doc` (ca645377) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 7 juin 2024 à 09h43min :

build(deps): up dependencies

Modifié
composer.lock

Détails : build(deps): up dependencies (b1aafe50) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 6 juin 2024 à 17h01min :

docs(changelog): !5981

Modifié
CHANGELOG.md

Détails : docs(changelog): !5981 (76260fd0) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 6 juin 2024 à 11h26min :

fix: Ne pas afficher qu’une mise à jour est disponible alors qu’elle vient d’être faite

Ici on vérifie que info_maj_spip() indique une mise à jour.
L’autre solution serait de relancer le génie_mise_a_jour_dist().

Modifié
ecrire/inc/pipelines_ecrire.php

Détails : fix: Ne pas afficher qu’une mise à jour est disponible alors qu’elle vient d’être faite (8eec57fd) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 4 juin 2024 à 14h48min :

docs(changelog): #5953

Modifié
CHANGELOG.md

Détails : docs(changelog): #5953 (25d29f3e) · Validations · placido / spip · GitLab

==============================
Par Cerdic, le 4 juin 2024 à 14h28min :

fix: retablir le <div> autour des formulaires, supprimé par erreur par 124c9db937592f7761e959609406ac645cbc6e83

Modifié
prive/modeles/formulaire.html

Détails : fix: retablir le `<div>` autour des formulaires, supprimé par erreur par... (f3c2ad59) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 4 juin 2024 à 14h28min :

docs(changelog): retrait des entrées releasées

Modifié
CHANGELOG.md

Détails : docs(changelog): retrait des entrées releasées (70b0356b) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 31 mai 2024 à 10h08min :

build: up dependencies (sf 7.1 & ecran sécu 1.6.1 entre autres)

Modifié
composer.lock

Détails : build: up dependencies (sf 7.1 & ecran sécu 1.6.1 entre autres) (a4b0a599) · Validations · placido / spip · GitLab

==============================
Par Cerdic, le 30 mai 2024 à 09h59min :

fix: inclusion manquante pour attribut_url

Modifié
ecrire/inc/auth.php

Détails : fix: inclusion manquante pour attribut_url (2a970be8) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 29 mai 2024 à 10h16min :

build: up dependencies

Modifié
composer.lock

Détails : build: up dependencies (1ce72a25) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 29 mai 2024 à 10h08min :

fix: Correction de _image_ecrire_tag() suite à c5e866ff7 un peu fort

Refs: #5667

Modifié
ecrire/inc/filtres_images_lib_mini.php

Détails : fix: Correction de `_image_ecrire_tag()` suite à c5e866ff7 un peu fort (05f350f8) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 29 mai 2024 à 09h53min :

docs(changelog): #5939

Modifié
CHANGELOG.md

Détails : docs(changelog): #5939 (f61566e0) · Validations · placido / spip · GitLab

==============================
Par b_b, le 29 mai 2024 à 09h50min :

fix: rétablir la possibilité de masquer certains champs des formulaires editer_article & editer_rubrique depuis le pipeline formulaire_charger

Fix: #5939

Modifié
prive/formulaires/editer_article.html
prive/formulaires/editer_rubrique.html

Détails : fix: rétablir la possibilité de masquer certains champs des formulaires... (86a779d2) · Validations · placido / spip · GitLab

==============================
Par Matthieu Marcillaud, le 29 mai 2024 à 09h44min :

docs(changelog): #5912

Modifié
CHANGELOG.md

Détails : docs(changelog): #5912 (7ad67302) · Validations · placido / spip · GitLab