[prive ↪ spip_6043] 14 commits

spip/prive | 14 commits

Par placido, le 25 novembre 2024 à 13h48min :

docs(changelog): spip/spip#6043

Modifié
CHANGELOG.md

Détails : docs(changelog): spip/spip#6043 (0f02fc68) · Validations · spip / prive · GitLab

==============================
Par placido, le 25 novembre 2024 à 13h48min :

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 (40289aca) · Validations · spip / prive · GitLab

==============================
Par placido, le 25 novembre 2024 à 13h48min :

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 (8159205f) · Validations · spip / prive · GitLab

==============================
Par placido, le 25 novembre 2024 à 13h48min :

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` (6fdc9c16) · Validations · spip / prive · GitLab

==============================
Par placido, le 25 novembre 2024 à 13h48min :

fix: animations pour .formulaire_editer-liens

ref : spip/spip#5566

Modifié
formulaires/editer_liens.html

Détails : fix: animations pour `.formulaire_editer-liens` (fb4fbd72) · Validations · spip / prive · GitLab

==============================
Par placido, le 25 novembre 2024 à 13h48min :

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, slideToggle
  • throttle et debounce pour la performance sur les événements
  • hoverClass

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 (7ae67b0b) · Validations · spip / prive · GitLab

==============================
Par placido, le 25 novembre 2024 à 13h48min :

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_head et 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 via onAjaxLoad) ; 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 contient javascript/_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.js sera inséré (et exécuté) avant javascript/_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_js pour 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 (ex window.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

Détails : feat: méthode de chargement complémentaire "initjs" pour les ressources javascript (68ea79f7) · Validations · spip / prive · GitLab

==============================
Par placido, le 25 novembre 2024 à 13h48min :

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

un changement, pour être pris en compte, nécessite une compilation.

cd prive/javascript/ajaxCallBack/
bun run watch

Pour installer bun : https://bun.sh/

Ajouté
javascript/ajaxCallback/package.json
javascript/ajaxCallback/src/ajaxbloc.js
javascript/ajaxCallback/src/ajaxform.js
javascript/ajaxCallback/src/anim.js
javascript/ajaxCallback/src/cvt_verifier.js
javascript/ajaxCallback/src/history.js
javascript/ajaxCallback/src/log.js
javascript/ajaxCallback/src/main.js
javascript/ajaxCallback/src/reader.js
javascript/ajaxCallback/src/url.js
javascript/config.js.html
javascript/jquery.browser.js
javascript/retrocompat.js

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

==============================
Par placido, le 25 novembre 2024 à 13h48min :

feat: fond pour la génération de <script type="importmap"/>

Ajouté
squelettes/inclure/importmap.html
squelettes/inclure/importmap_fonctions.php

Détails : feat: fond pour la génération de `<script type="importmap"/>` (212840b0) · Validations · spip / prive · GitLab

==============================
Par placido, le 25 novembre 2024 à 13h48min :

chores: exclure les fichiers compilés du référentiel git

Supprimé
javascript/ajaxCallback.js
Modifié
.gitignore

Détails : chores: exclure les fichiers compilés du référentiel git (e7ffee31) · Validations · spip / prive · GitLab

==============================
Par tcharlss, le 23 novembre 2024 à 10h51min :

feat: afficher le nombre d’items sur certaines listes d’objets

Plutôt qu’afficher un titre invariant, on affiche le nombre d’items dans les listes de certaines pages :

  • rubrique
  • suivi éditorial
  • boîte d’articles de la même rubrique

Refs: #35

Modifié
objets/contenu/rubrique-enfants.html
objets/liste/articles-memerubrique.html
squelettes/contenu/suivi_edito.html

Détails : feat: afficher le nombre d'items sur certaines listes d'objets (daa26606) · Validations · spip / prive · GitLab

==============================
Par tcharlss, le 23 novembre 2024 à 10h51min :

docs: commentaires en début des listes d’objets

On explique de quoi il s’agit, et quels sont les paramètres possibles.
On distingue ces derniers en 2 groupes : ceux qui permettent de modifier les critères de sélection des contenus, et ceux qui jouent sur l’affichage.
Des fois c’est un peu à cheval entre les 2 mais bon, il faut bien choisir.

Refs: #35

Modifié
objets/liste/articles-trad.html
objets/liste/articles.html
objets/liste/articles_associer.html
objets/liste/articles_lies.html
objets/liste/auteurs.html
objets/liste/auteurs_associer.html
objets/liste/objets.html
objets/liste/rubriques.html
objets/liste/rubriques_associer.html
objets/liste/rubriques_lies.html
objets/liste/visiteurs.html

Détails : docs: commentaires en début des listes d'objets (d6ea7002) · Validations · spip / prive · GitLab

==============================
Par tcharlss, le 23 novembre 2024 à 10h51min :

feat: possibilité de personnaliser les chaînes de langue singulier et pluriel sur toutes les listes d’objets

On a ainsi 2 possibilités pour personnaliser le titre :

  • titre : pour avoir le même titre quel que soit le nombre d’items dans la liste
  • chaine_titre_singlier / chaine_titre_pluriel : identifiant d’une chaine de langue pour personnaliser selon le nombre d’items

(à l’exception de la liste auteurs_lies pour l’instant)

Refs: #35

Modifié
objets/liste/articles-trad.html
objets/liste/articles.html
objets/liste/articles_associer.html
objets/liste/articles_lies.html
objets/liste/auteurs.html
objets/liste/auteurs_associer.html
objets/liste/objets.html
objets/liste/rubriques.html
objets/liste/rubriques_associer.html
objets/liste/rubriques_lies.html
objets/liste/visiteurs.html

Détails : feat: possibilité de personnaliser les chaînes de langue singulier et pluriel... (e11a4949) · Validations · spip / prive · GitLab

==============================
Par tcharlss, le 22 novembre 2024 à 21h44min :

fix: div non fermé dans le formulaire de liens

Suite à d2138d5c

Closes: #45

Modifié
formulaires/editer_liens.html

Détails : fix: div non fermé dans le formulaire de liens (04fc020d) · Validations · spip / prive · GitLab