Discussion Projet:Scripts et gadgets

(Redirigé depuis Discussion Projet:JavaScript)
Dernier commentaire : il y a 13 jours par Jules* dans le sujet LiveRC et comptes temporaires
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Portail de qualité
  • Bon portail
  • Lumière sur
  • À faire
  • Archives
  • Commons
Le projet « Scripts et gadgets » a 1 notification (voir).
Le projet « JavaScript » a 1 notification (voir).
PROJET SCRIPTS ET GADGETS
Centraliser les fonctions JavaScript et CSS pour éviter la dispersion du code.


Cette page de discussion est destinée aux discussions sur le Projet:Scripts et gadgets.


Template gadgets

modifier
Enregistré sur Phabricator
Tâche 204201
Enregistré sur Phabricator
Tâche 63007
Ne pas archiver.

Bonjour,

Depuis phab:T204201#9559072 il est possible de restreindre l'activation de gadgets aux pages dans une certaine catégorie, ce qui permet de faire des mw:Template gadgets : du code javascript qui ne s'active que lorsqu'un certain modèle est présent dans la page (le modèle doit juste ajouter une catégorie). Cela fonctionne car les gadgets activés par défaut sont aussi activés pour les IPs.

Beaucoup de code dans MediaWiki:Common.js a précisément pour rôle de ne s'activer que lorsqu'un modèle précis est présent : Modèle:Titre incorrect, Modèle:Sous-titre, Modèle:Méta palette de navigation, Modèle:Boîte déroulante, Modèle:Animation, Modèle:Aide contextuelle et indirectement Modèle:Édition et Modèle:Page de discussion. On pourrait déplacer ce code dans des gadgets dédiés pour alléger la taille du fichier js livré par défaut à tous les visiteurs.

Liens utiles :

Escargot (discuter) 4 juin 2024 à 18:14 (CEST)Répondre

C'est effectivement intéressant. Une petite mise en garde au sujet de Modèle:Page de discussion (la classe "transformeEnPageDeDiscussion"), vu que tu l'as mentionné : dans le MediaWiki:Common.js il y a tout un code lourdingue où l'on teste sur le nom de la page pour déterminer si la page est à "transformer", plutôt que de se baser sur la présence du modèle. Ceci permet d'appliquer la transformation aussi lorsque l'on modifie une section (et non la page entière), car dans ce cas le modèle ne peut pas être détecté. C'est un code que je n'aime franchement pas, en raison de cette grosse liste de pages qui se trouve dans le code, mais je ne vois vraiment pas d'autre solution. od†n ↗blah 4 juin 2024 à 20:36 (CEST)Répondre
Le passage de ns-subject à ns-talk n'est pas suffisant pour faire fonctionner les outils de discussion (activés par défaut sur mobile et en beta sur bureau). Il faut obligatoirement que le mot magique __NEWSECTIONLINK__ soit présent, éventuellement en combinaison avec __NONEWSECTIONLINK__ si on veut désactiver le bouton « Ajouter un sujet ».
En considérant que ce mot magique sera forcément présent sur les pages qu'on veut changer en page de discussion (et qu'il sera absent sinon), il y a peut-être moyen de le détecter et d'utiliser ça pour déterminer que ns-subject doit être remplacé par ns-talk (même si je n'ai pas trouvé comment). Escargot (discuter) 7 juin 2024 à 21:40 (CEST)Répondre
J'ai fait le changement en question pour MediaWiki:Gadget-Diaporama.js qui charge maintenant avec la catégorie Catégorie:Page utilisant le modèle Animation.
Le modèle fonctionne correctement en prévisualisation, y compris pour une section, mais pas avec l'aperçu rapide, même avec la page complète, ni avec l'éditeur visuel.
Je ne reviens pas en arrière sur mon changement qui permet quand même de faire fonctionner le modèle sur mobile. Escargot (discuter) 9 juin 2024 à 13:12 (CEST)Répondre
modifier

Bonjour,

Je viens de modifier

pour que les onglets de menu créer par ces différents gadgets apparaissent aussi sur l'habillage Minerva, ce qui n'était pas le cas précédemment.

Ces gadgets ajoutaient leur onglet au portlet p-cactions, qui n'existe pas sur Minerva où il est fusionné avec p-tb. J'ai modifié pour qu'ils ajoutent le portletlink à p-tb si l'habillage utilisé est Minerva.

Les portlets autorisés sur Minerva sont p-personal, p-navigation, p-tb, p-associated-pages et p-dock-bottom (et p-interaction et pt-preferences fonctionnent peut-être, même si la documentation ne les mentionne pas).

Mes modifications font que quelqu'un qui aurait activé simultanément tous ces gadgets se retrouve avec un menu déroulant assez long sur mobile, mais je ne considère pas ça comme un problème.

Sur Minerva, tous les liens des menus ont une icône associée (via CSS), que je n'ai pas ajoutée pour le moment pour ces gadgets. Escargot (discuter) 26 mars 2025 à 14:29 (CET)Répondre

Super ! Merci beaucoup. 🐢 Monsieur Tortue (💬) 26 mars 2025 à 14:38 (CET)Répondre

Comptes temporaires: Comment mettre à jour votre code

modifier

Étant donné que les comptes temporaires seront déployés cette année, l'équipe de confiance et sécurité des produits envoie cette communication pour garantir que les outils, gadgets, robots, scripts utilisateur, filtres d'abus et tout autre code géré par la communauté continuent de fonctionner correctement.

Que sont les comptes temporaires?

Les comptes temporaires sont un nouveau type de comptes pour les rédacteurs non enregistrés. Lorsqu'un·e utilisateur·trice déconnecté·e tente d'effectuer une modification, un compte temporaire lui est attribué pour s'y connecter. Les outils dédiés aux flux de travail des utilisateurs déconnectés pourraient nécessiter des mises à jour pour fonctionner correctement. Les outils utilisant les adresses IP des rédacteurs·trices déconnecté·es ne fonctionneront pas, et leur fonctionnalité devra être réécrite pour utiliser les comptes temporaires. Les comptes temporaires sont déjà disponibles sur certaines Wikis pilotes, et le déploiement complet sur tous les Wikis aura lieu cette année.

Comment vous pouvez aider:

  • Vérifiez si le code (c'est-à-dire les outils, gadgets, robots ou scripts utilisateur, que ce soit sur Toolforge ou sur Wiki) que vous avez créé ou que vous utilisez fréquemment fonctionne sur les Wikis où des comptes temporaires sont déjà actifs. Voici la liste des Wikis de contenu, et voici la liste des wikis bêta et de test avec des comptes temporaires.
  • Si vous remarquez qu'un outil pourrait être impacté, nous vous encourageons à essayer de le mettre à jour en vous basant sur notre guide de documentation des développeurs. Nous vous invitons également à créer une tâche Phabricator avec le hashtag #temporary-accounts. Cela nous permettra de suivre l'impact de nos modifications sur le code qui est propriété de la communauté.
  • Ajoutez les outils qui vous semblent impactés sur cette page. Nous souhaitons les surveiller pour nous assurer que tout fonctionne comme prévu.
  • Jetez un coup d’œil sur les filtres anti-abus utilisés sur votre Wiki. Tout filtre utilisant des adresses IP via user_name ne pourra plus le faire. Ces filtres doivent être mis à jour pour utiliser désormais user_unnamed_ip variable. Commentaire de nos ingénieurs : "Le cas d'utilisation principal devrait être l'utilisation d'une variable comme ip_in_range(s). Les éléments qui correspondent à des noms d'utilisateur devraient être globalement acceptables, car ils continueront à correspondre à des noms de compte temporaires." Pour toute question concernant les filtres d'abus, vous pouvez laisser un commentaire sur le ticket Phabricator T369611.
  • Si vous rencontrez des problèmes ou avez des commentaires ou des questions, n'hésitez pas à nous en faire part sur la page de discussion du projet ou à créer une tâche Phabricator avec le tag #temporary-accounts. Vous pouvez également rejoindre le fil de discussion Discord en anglais dédié (assurez-vous de rejoindre le serveur auparavant) pour obtenir de l'aide et partager vos commentaires avec l'équipe.

En participant aux tests et aux rapports, vous garantirez le bon fonctionnement d'outils importants avec cette mise à jour. Merci de votre soutien! Udehb-WMF (discuter) 2 avril 2025 à 18:02 (CEST)Répondre

Bonjour,
Pour mémoire, j'avais commencé à recenser les outils concernés, et j'ai continué .
Les comptes temporaires vont probablement débarquer dès le moins prochain, et au plus tard en juillet, donc il est temps de s'y pencher, pour les bonnes âmes rompues aux codes des gadgets, scripts et outils. — Jules* 💬 21 mai 2025 à 19:25 (CEST)Répondre

Classer sans suite les vieilles demandes de fonctionnalité ?

modifier

Bonjour, il y a, sur la page des demandes de fonction, des requêtes vieilles de plusieurs années (la plus vieille étant de 15 ans). Y a-t-il des oppositions à ce que je classe sans suite les requêtes vieilles de plus de 2 ans ? Sans opposition d’ici dimanche prochain, je procèderai au classement sans suite. Bon weekend, Lepticed7 (Viens tcharer ! :D) 24 mai 2025 à 19:18 (CEST)Répondre

Un nettoyage total ne me semble pas nécessaire au vu de la faible quantité de nouvelles demandes et certaines comme Discussion Projet:Scripts et gadgets/Demande de fonction#c-LD-2021-07-06T03:28:00.000Z-MediaWiki:Gadget-BandeauxEbauches.js sont toujours pertinentes à traiter, bien qu'elles aient plus de deux ans.
Pour d'autres comme Discussion Projet:Scripts et gadgets/Demande de fonction#c-Nonovian-2019-09-08T16:21:00.000Z-Masquer le sommaire des pages de discussion naturellement, qui concerne l'ancien format des sommaires et a donc moins de pertinence aujourd'hui, je ne suis pas opposé à un classement sans suite. Escargot (discuter) 24 mai 2025 à 19:57 (CEST)Répondre

Proposition de délistage du gadget UTCLiveClock

modifier

Quelque chose qui me démange depuis un certain temps :

UTCLiveClock (code) porte bien son nom de "gadget" : il sert à afficher l'heure en haut à droite de la page. Voilà, c'est tout. En prime, avec les secondes horripilantes qui n'arrêtent pas de défiler (heureusement il est possible de configurer pour les enlever).

Il a aussi une autre fonctionnalité, dont on se demande bien ce que cela vient f*utre ici : quand on clique sur cette heure, cela purge la page. Fonctionnalité aussi remplie, de façon beaucoup plus adéquate, par le gadget OngletPurge.

De plus, en consultant le code distant mw:MediaWiki:Gadget-UTCLiveClock.js, on constate que le chargement que nous effectuons n'est pas idéal, il manque des CSS (notamment pour éviter un FOUC). Bref, il faudrait en théorie deux définitions de gadget, totalisant deux CSS et un JS, avec soit des forks locaux (donc de la maintenance en plus), soit des requêtes HTTP (mal cachées) supplémentaires. Tout ça pour afficher une heure.

Le délistage de ce gadget (dans les définitions de gadgets) permettrait d'alléger légèrement la page des préférences de gadgets. Cela permettrait aussi d'économiser exactement 43 octets dans le startup module (exemple), bien que cela soit une goutte d'eau vu la quantité de JS et CSS qui sont maintenant chargés sur MediaWiki.

od†n ↗blah 16 juin 2025 à 21:30 (CEST)Répondre

Il y aurait aussi à mettre à jour sur la page Projet:Scripts et gadgets/Liste des fonctions disponibles#Divers. Mais comme le chargement manuel de ce gadget serait complexe en raison des moult fichiers, je serais d'avis de carrément le virer de la page. Ce n'est pas parce que ce gadget existe, qu'il est pertinent pour autant. Je pense qu'il est préférable d'aller dans le sens de focaliser la page (qui est bien grande…) sur les gadgets ayant au moins un peu d'utilité. od†n ↗blah 16 juin 2025 à 21:40 (CEST)Répondre
Pour le retrait du gadget de la liste. J'ai aussi du mal à voir son utilité, sachant que l'heure utilisée sur Wikipédia en français est l'heure de Paris et qu'il n'y a rien qui utilise l'heure UTC. Escargot (discuter) 16 juin 2025 à 21:51 (CEST)Répondre
La dernière fois que j'ai posé la question, Arkanosis avait mentionné que c'était très utilisé sur Wikipédia en anglais. Cependant, maintenant qu'on a des statistiques pour Wikipédia en français, on voit que ce n'est pas le cas ici. On est plutôt en bas de la liste quand on tri par nombre d'utilisateurs actifs. Seul FrankyLeRoutier avait indiqué qu'il trouvait le gadget utile, mais il n'est plus actif. Orlodrim (discuter) 16 juin 2025 à 22:02 (CEST)Répondre
FrankyLeRoutier parle de l'heure utilisée pour la clôture des votes. Je ne sais pas quel était l'usage en 2014, mais tous les sondages / prises de décision / candidatures récents utilisent l'heure CEST / CET et jamais l'heure UTC. Escargot (discuter) 16 juin 2025 à 22:13 (CEST)Répondre
@Escargot : je n'avais pas précisé pour ne pas alourdir encore plus mon message, mais c'est configurable pour afficher un autre fuseau horaire.
@Orlodrim : j'avais déjà aussi consulté les stats d'utilisation sur frwiki, et c'est justement le faible nombre d'utilisations qui m'avait fait repérer ce gadget. En revanche, tu viens de me faire découvrir le nombre élevé d'utilisations sur enwiki (stats à jour). Comme dirait Tariq Ramadan, « je n'ai pas d'explication ». Toutefois, ce n'est pas parce que les utilisateurs font quelque chose ailleurs, que l'on serait obligé de faire pareil ici.
od†n ↗blah 16 juin 2025 à 22:17 (CEST)Répondre
Pour Wikipédia en anglais, ça ne me surprend pas puisque l'heure locale de la majorité des utilisateurs n'est pas l'heure UTC et cette horloge leur permet d'avoir l'heure du serveur.
Pour le paramètrage du gadget, je ne savais pas, mais visiblement une seule personne l'utilise : [1]. Escargot (discuter) 16 juin 2025 à 22:39 (CEST)Répondre
  • Bien vu, sur enwiki les messages sont signés en heure UTC, tandis qu'ici ils sont signés en heure CET/CEST. Cela confirme donc l'inutilité de ce gadget ici.
  • Je ne comprends pas trop l'utilisation de FrankyLeRoutier, surtout qu'il n'avait pas configuré en heure locale (la fonctionnalité n'est apparue qu'en 2020). Pour la forme, xkcd 1172.
od†n ↗blah 16 juin 2025 à 22:54 (CEST)Répondre
Néanmoins, il y a la question des utilisateurs francophones, mais situés hors de France. Ce qui était justement le cas de FrankyLeRoutier. Peut-être qu'il utilisait le gadget en gérant mentalement la différence de une ou deux heures.
Mais ces utilisateurs ont-ils réellement besoin du gadget ? Peut-être sont-ils déjà habitués à gérer la situation ?
od†n ↗blah 16 juin 2025 à 23:44 (CEST)Répondre
On pourrait remplacer temporairement le gadget par un lien "Où est l'horloge ?", renvoyant vers une page recommandant de désactiver le gadget et soit d'activer OngletPurge à la place, soit de mettre mw.loader.load( '//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-UTCLiveClock.js&action=raw&ctype=text/javascript' ); dans Spécial:MaPage/common.js (le gadget charge ses propres dépendances si besoin, c'est pas idéal mais ça marche). Orlodrim (discuter) 16 juin 2025 à 23:59 (CEST)Répondre
L'idée me semble plutôt bonne, bien qu'elle soit un peu laborieuse à mettre en place, et à suivre derrière (à la base, je pensais simplement à délister le gadget et fin de l'histoire). L'intérêt principal est que cela permettrait de détecter si des utilisateurs se plaignent du changement.
J'ai un peu essayé le gadget, et sur Vector classique, même avec les CSS "peer" il reste un léger FOUC, en particulier un décalage en hauteur de la barre personnelle, en raison de la taille de texte plus grande de l'horloge.
J'avais pensé que l'on pourrait développer en remplacement (ssi le besoin en est exprimé) un script "minimaliste" qui servirait seulement à afficher l'heure UTC (ou autre) : sans les secondes, sans lien de purge, et surtout qui serait positionné ailleurs, de sorte à ne pas avoir de problématique de FOUC, et donc de multiples CSS à rajouter. Ce script ne serait bien entendu pas listé en gadget, en revanche il serait aisément chargeable avec un simple obtenir().
edit : à la réflexion, il me semble préférable de charger le mw:MediaWiki:Gadget-UTCLiveClock.js (comme tu as suggéré), au lieu de s'embêter à développer un truc local qui ne serait qu'une version tronquée. Le script est assez bien fichu : il est censé supporter le cas où le JS est chargé directement, l'affichage est moins problématique sur Vector 2022, il y a diverses configurations possibles, et on peut même défaire le gros texte en overridant le CSS appliqué à #utcdate a.
tl;dr : ton approche me semble être la bonne : avant suppression, temporairement (mais relativement longtemps, on n'est pas pressés) envoyer vers une page indiquant que l'on peut ajouter le mw.loader.load() pour l'horloge, et/ou le gadget OngletPurge pour… les purges. Aussi, indiquer que l'on peut décocher le gadget UTCLiveClock si on en a marre du message "Où est l'horloge ?". Et une page de discussion pour recueillir les éventuelles protestations.
od†n ↗blah 17 juin 2025 à 02:02 (CEST)Répondre

LiveRC et comptes temporaires

modifier

LiveRC n'a pas totalement cassé (bonne nouvelle), mais les contributions des comptes temporaires s'affichent quand on coche « Utilisateurs débutants » (qui affichait auparavant les comptes enregistrés non autopatrolled), et plus rien ne s'affiche si on coche uniquement « Utilisateurs sous IP ». Autrement dit on ne peut pas afficher uniquement les contributions des comptes temporaires.

Il faudrait renommer la case « Utilisateurs sous IP » en « Comptes temporaires » et changer le code sous-jacent pour que cette case affiche les contributions des comptes temporaires.

Jules* 💬 24 juin 2025 à 11:20 (CEST)Répondre

  • Pour détecter des parties du code qui auraient besoin d'être mises à jour, on peut chercher /state.+["']IP["']/ (j'ai actuellement cinq résultats).
  • J'ai repéré un autre endroit à mettre à jour : dans la fonction addUsertypesCheckInMenu, les arrays de la ligne var UserValues = ... (cette fonction produit des valeurs d'attributs HTML showUser_FOOBAR et des clés i18n SHOWUSER_FOOBAR)
  • Et aussi divers messages, noms de modèles, etc. : recherche à l'arrache
  • J'ai le sentiment qu'il serait (légèrement) plus simple de remplacer toutes ces parties "IP" par des parties "TEMPUSER" (ou plutôt "TEMPACCOUNT" ?), plutôt que d'ajouter un mode supplémentaire "TEMPUSER". J'ai l'impression que seulement en remplaçant le case 'anon': par case 'temp': on aurait déjà quelque chose de totalement fonctionnel, et les autres modifications ne concerneraient que l'interface affichée.
od†n ↗blah 24 juin 2025 à 22:11 (CEST)Répondre
J'ai remplacé les IP par TEMP et case 'anon': par case 'temp':. Pour la mise en forme des liens Spécial:Contributions/ au lieu de User:, je n'ai pas réussi. Il faut remplacer l'ensemble des usages de UserIsIP ou aucun. Escargot (discuter) 25 juin 2025 à 21:20 (CEST)Répondre
Super, merci beaucoup à tous les deux ! — Jules* 💬 25 juin 2025 à 22:26 (CEST)Répondre

Popups et comptes temporaires

modifier

Bonjour, lorsqu'on visualise un historique dans une fenêtre popup, et qu'on clique sur un compte temporaire, on tombe par défaut sur la page Utilisateur:~XXXX-XXXXX, comme pour un compte enregistré. Serait-il possible d'avoir à la pace un lien vers la page Spécial:Contributions/~XXXX-XXXX, comme c'est le cas pour une IP ? 🐾 tiloudeux (on papote ?) 25 juin 2025 à 15:22 (CEST)Répondre

Bonjour @Tiloudeux,
Le gadget est sur Wikipédia en anglais : en:MediaWiki:Gadget-popups.js, c'est là-bas qu'il faut faire la demande. Le gadget en français contient juste les traductions des messages du gadget. Escargot (discuter) 25 juin 2025 à 15:29 (CEST)Répondre
Aïe, ça va être compliqué avec mon niveau d'anglais proche de zéro. Merci quand même pour la réponse Émoticône 🐾 tiloudeux (on papote ?) 25 juin 2025 à 15:34 (CEST)Répondre
Revenir à la page « Scripts et gadgets ».