spip/prive | 7 commits
Par placido, le 25 novembre 2024 à 22h52min :
docs(changelog): spip/spip#6043
Modifié
CHANGELOG.md
Détails : docs(changelog): spip/spip#6043 (a5332bfe) · Validations · spip / prive · GitLab
==============================
Par placido, le 25 novembre 2024 à 22h52min :
build: ajaxCallback.js + presentation.js
Rétablir ajaxCallback.js, presentation.js et leur version minifiée dans le référentiel git, jusqu’alors écartés pour simplifier la fusion de commits
Ajouté
javascript/ajaxCallback.js
javascript/ajaxCallback.min.js
javascript/presentation.js
javascript/presentation.min.js
javascript/retrocompat.min.js
Modifié
.gitignore
Détails : build: ajaxCallback.js + presentation.js (81859077) · Validations · spip / prive · GitLab
==============================
Par placido, le 25 novembre 2024 à 22h52min :
feat: admin_vider_cache n’a pas besoin de jQuery
Modifié
squelettes/inclure/admin_vider_cache.html
Détails : feat: `admin_vider_cache` n'a pas besoin de jQuery (30e5b50c) · Validations · spip / prive · GitLab
==============================
Par placido, le 25 novembre 2024 à 22h52min :
fix: .formulaire_configurer_preferences
ref spip/spip#5566
L’attribut onchange sur les input s’avèrait être incompatible avec la nouvelle implémentation des formulaires dynamiques (peut-être liée à l’absence de jquery.forms.js ??)
Exit la syntaxe jQuery.
Modifié
formulaires/configurer_preferences.html
Détails : fix: `.formulaire_configurer_preferences` (c2a2d80f) · Validations · spip / prive · GitLab
==============================
Par placido, le 25 novembre 2024 à 22h52min :
fix: animations pour .formulaire_editer-liens
ref : spip/spip#5566
Modifié
formulaires/editer_liens.html
Détails : fix: animations pour `.formulaire_editer-liens` (8daa0a77) · Validations · spip / prive · GitLab
==============================
Par placido, le 25 novembre 2024 à 22h52min :
feat: un module « presentation » pour l’espace prive
ref spip/spip#5566
Un module boîte à outils pour les besoins d’animation / présentation de l’espace privé.
On y introduit les fonctionnalités naguère déclarées dans ajaxCallback.js + celles qui composaient le fichier presentation.js, mais cette fois-ci dans une version sans jQuery.
- logo_survol
- puce_survol
- blocs_depliants
- reloadExecPage
Plus quelques fonctions utilitaires :
slideUp,slideDown,slideTogglethrottleetdebouncepour la performance sur les événementshoverClass
D’autres fonctionnalités viendront enrichir le module le temps voulu.
L’ancienne version non modulaire presentation.js n’est plus chargée dans la head
Ajouté
javascript/_inits/35_logo_survol.js
javascript/_inits/38_puces_survol.js
javascript/_inits/40_depliants.js
javascript/presentation/package.json
javascript/presentation/src/depliants.js
javascript/presentation/src/dom-slide.js
javascript/presentation/src/hoverClass.js
javascript/presentation/src/logo.js
javascript/presentation/src/main.js
javascript/presentation/src/perf.js
javascript/presentation/src/puces.js
javascript/presentation/src/reloadExecPage.js
Supprimé
javascript/presentation.js
Modifié
.gitignore
javascript/_inits/05_retrocompat.js.html
squelettes/inclure/head.html
squelettes/inclure/importmap.html
Détails : feat: un module "presentation" pour l'espace prive (53f7f399) · Validations · spip / prive · GitLab
==============================
Par placido, le 25 novembre 2024 à 22h52min :
feat: méthode de chargement complémentaire « initjs » pour les ressources javascript
ref : spip/spip#5566
Principe : Dissocier le chargement des « libs » et le code d’initialisation.
Les ressources externes (libs) sont chargées, au choix :
- via
insert_headet concaténées par le compresseur (méthode classique, lorque cela concerne toutes les pages) - occasionnellement, pour un module ESM, depuis un squelette via une directive
import {fn} from #IMPORT_JS{module_foo};
Les codes d’initialisation :
- [CONCIS] : dans la mesure du possible, on n’y fait que :
*- compléter l’objet de configuration global (aussi appeléspipConfig)
*- cibler les éléments
*- attacher des écouteurs d’événements
*- lancer l’exécution (et sa persistance viaonAjaxLoad) ; de préférence une seule fonctionnalité à la fois - [GLOBAL] : s’applique sur toutes les pages (car repose sur
#INSERT_HEAD) - [AUTOMATIQUE] : insertion automatique du contenu au sein d’une balise
<script[type="module"]/>si le chemin du fichier contientjavascript/_inits/(un peu à la manière dont les plugins peuvent présenter une feuille de style dynamique pour l’espace privéstyle_prive_plugin_foo.html) - [POLYMORPHE] : fichiers statiques (.js) et dynamiques (.js.html) sont possibles.
- [ORDONNÉ] : on peut choisir dans quel ordre de la file ce code sera chargé en préfixant le nom du fichier d’un numéro (facultatif) qui fait office d’index ex :
javascript/_inits/20_popup.jssera inséré (et exécuté) avantjavascript/_inits/30_alert.js - [SURCHARGEABLE] : la logique spipienne d’un plugin pouvant surcharger un fichier d’un plugin qu’il nécessite, demeure (l’index, et l’extension, sont indifférents pour la surcharge)
- [SOUPLE] : un fichier d’initialisation dont le chemin contient (‹ prive/ ›) ne sera appelé que pour l’espace privé.
En complément, s’il existe, pour la partie publique, un fichier d’initialisation vide (dont le nom correspond à un fichier disponible depuis prive/) alors on charge le contenu de ce dernier (un peu à la manière d’un gabarit vide de formulaire ayant déclaré des saisies). Les avantages de cette méthode :
- Un bien meilleur contrôle sur l’enchaînement et l’ordre d’exécution dans la page (inspecter le code source d’une page avec
?var_mode=debug_jspour un contrôle visuel direct). - Le bénéfice inhérent à la balise
<script[type="module"]/>qui opère de manière différée : plus la peine de s’assurer qu’une lib est bien chargée avant de lancer l’exécution. - Simplifie la déclaration des variables de configuration, jusqu’ici déclarées en ligne dans le
<head>via#INSERT_HEAD_CSS(exwindow.mediabox_settings) - Vitesse de déploiement : Pas la peine de déclarer X entrées dans le pipeline
insert_head - Réemploi possible espace privé <=> partie publique
Quelques exemples (pas si) farfelus rendus possibles :
- Je suis hyperoptimiste et j’estime que mon tout nouveau site n’a besoin pas besoin de supporter les usages
legacy
echo '// neant' > squelettes/javascript/_inits/retrocompat.js - Je veux redéfinir le style embarqué des éléments lors d’une animation de chargement (
.loading) ref #4641
touch squelettes/javascript/_inits/15_style_anim.js
Puis dans le fichier :
import { default as spip } from "config.js"; spip.css.animateLoading = 'background-color:red;';
Ajouté
javascript/_init.js.html
javascript/_init.js_fonctions.php
javascript/_inits/03_prive_config.js.html
javascript/_inits/05_retrocompat.js.html
javascript/_inits/20_ajaxbloc.js
javascript/_inits/30_ajaxform.js
Modifié
squelettes/inclure/head.html