Discussion Projet:JavaScript

Une page de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Projet Fonctions disponibles Notices Discussion projet Signaler un bug Demander une nouvelle fonction

Javascript icon.svg

Raccourcis [+]
WP:JS
P:JS
PROJET JAVASCRIPT
Centraliser les fonctions JavaScript pour éviter la dispersion du code.


Cette page de discussion est destinée aux discussions sur le Projet:JavaScript.


Signer[modifier le code]

Bonjour, quelle est l'astuce pour signer en Javascript ? (ex : "{{Suppression Immédiate|"+motif+"|~~~}}\n" '''Demandé''' par ~~~ le ~~~~~\)

Je sais que c'est possible sans bidouillage monstre vu que je suis arrivé (miraculeusement) à obtenir le code entre parenthèse sur mon script. Malheureusement, je ne me souviens plus des manipulation que j'ai fait pour leurrer médiaWiki. J'ai essayé avec nowiki et includeonly mais ça ne fonctionne pas. Cordialement.— Gratus (discuter) 28 février 2015 à 11:07 (CET)

MediaWiki:Gadget-DeluxeHistory[modifier le code]

Hello,

Est-ce possible d'utiliser ce script ailleurs (Commons, Meta, etc.) ? Si oui, où puis-je trouver le code source ?

Bonne journée

Scoopfinder(d) 1 mars 2015 à 12:26 (CET)

Notification Scoopfinder :
Pour l'installer ailleurs, ajouter dans son common.js le code suivant :
// DeluxeHistory
mw.loader.load('//fr.wikipedia.org/w/index.php?title=MediaWiki:Gadget-DeluxeHistory.js&action=raw&ctype=text/javascript');
mw.loader.load('//fr.wikipedia.org/w/index.php?title=MediaWiki:Gadget-DeluxeHistory.css&action=raw&ctype=text/css', 'text/css');
⇨ Dr Brains ∞ Consultation ∞ 1 mars 2015 à 13:55 (CET)

MediaWiki:Gadgets-definition et MediaWiki:Gadget-monBrouillon[modifier le code]

Salut les scripteurs,

Notification Trizek a voulu rendre disponible par défaut le gadget monBrouillon, mais Notification Gratus a annulé sa modif car les utilisateurs non connectés étaient dirigés vers Utilisateur:null/Brouillon.

Deux questions :

  • Est-ce qu'il est possible de faire marcher le gadget pour les IP ? Une lecture rapide de mw:Manual:Interface/JavaScript me fait penser que non, il est d'ailleurs peut-être impossible de récupérer l'IP côté JS à dessein, pour des questions de confidentialité.
  • À défaut, j'imagine qu'on peut rendre le gadget inopérant pour les utilisateurs non enregistrés en ajoutant quelque chose comme if (mw.config.get('wgUserName')!= null) { au début de la fonction ? (ça fait longtemps que j'ai pas fait de JS).

Merci de votre attention,

El pitareio (discuter) 25 mars 2015 à 19:24 (CET)

Le gadget peut aussi n'être activé que pour les utilisateurs inscrits en requérant un droit (mwoauthmanagemygrants par exemple) dont les IPs ne disposent pas.
Mais pourquoi encore un gadget par défaut ? (Smiley: triste) Il est possible de contribuer directement à MediaWiki plutôt que d'ajouter du JavaScript partout pour modifier l'interface en local…
Amicalement — Arkanosis 25 mars 2015 à 20:58 (CET)
[conflit/grmf !] Effectivement, je doute qu’on ait l’IP disponible.
Plutôt mw.user.isAnon(), l’abstraction de la même chose, mais il me semble qu’on peut utiliser une dépendance en un droit spécifique aux utilisateurs enregistrés (typiquement sendemail) pour ne carrément pas exécuter le gadget pour les IPs.
— Ltrlg (discuter), le 25 mars 2015 à 21:00 (CET)
PS : ah, oui, j’ai trouvé : c’est l’option rights=…
Encore merci à Notification Gratus d'avoir veillé sur mes bêtises, et merci à vous de vous pencher sur le problème !
Arkanosis, j'avais posté un ticket sur Bugzilla où on m'avait envoyé aux fraises. Je n'ai donc pas insisté. Trizek bla 26 mars 2015 à 09:43 (CET)
Euh... finalement le gadget a été activé même pour les IP. C'est voulu ? Ça risque d'être un peu déconcertant pour ceux qui une IP dynamique. Orlodrim (discuter) 27 mars 2015 à 21:27 (CET)
C’était le but initial : il a été désactivé à cause du problème de la récupération d’un titre de page de brouillon, puis réactivé lorsqu’une solution a été trouvée. Ça risque effectivement d’être déroutant, d’autant que la consigne est « Pour revenir à tout moment sur votre brouillon, cliquez sur votre pseudonyme en haut à droite. », ce qui est franchement inadapté. Trizek ! — Ltrlg (discuter), le 27 mars 2015 à 22:34 (CET)
Faut avoir suivi le processus de relecture des articles mis en place depuis un bon moment, qui encourage IP et comptes à passer par un brouillon. La question à se poser est : faut-il demander sur phabricator la possibilité d'indiquer dans la définition des gadgets non pas un droit à avoir, mais un droit à ne pas avoir (comme autopatrol, ici). J'en ai discuté avec un commonist qui aurait besoin de la même chose. Discut' Frakir 28 mars 2015 à 10:14 (CET)
À l'heure actuelle, les pages d'aide encouragent les IP à créer d'abord un compte puis un brouillon.
Aide:Brouillon : « Vous devez avoir un compte et y être connecté pour faire cette action » et « Les pages de brouillon sont disponibles pour les utilisateurs ayant un compte »
Aide:Comment créer un article/3 : « Préparer mon article au brouillon - Méthode conseillée, nécessite un compte gratuit et anonyme ».
Faut-il changer les pages d'aide pour enlever ces consignes et dire à la place « le bouton Brouillon risque de mener à une page différente d'un jour sur l'autre ; pensez à mettre votre brouillon dans vos marques-pages pour ne pas le perdre » Euh ?
Orlodrim (discuter) 28 mars 2015 à 10:44 (CET)
Bonsoir
Désolé d'avoir fait des bêtises, ça m’embête vraiment. J’espère pouvoir compter sur votre aide pour en sortir.
Les différents messages et consignes sont adaptées au fait d'activer ce gadget pour les utilisateurs connectés seulement (hors de question de le faire pour les IP, vous savez que ce serait un foutoir monstre !). Seule la phrase « Pour revenir à tout moment sur votre brouillon, cliquez sur votre pseudonyme en haut à droite » est visiblement à revoir, car elle date de l’époque où l’activation du gadget par défaut n’était pas faite.
Frakir, ton idée m'a l'air cool. Si tu fais un ticket, peux-tu me mettre en copie ?
Trizek bla 29 mars 2015 à 21:24 (CEST)
Très bien, puisqu'on est d'accord, je le désactive pour les IP : Spécial:Diff/113368934. À vrai dire, les IP n'ont pratiquement pas utilisé le lien de toute façon (un seul brouillon créé aujourd'hui par une IP dans nouvelles pages, et avec l'éditeur visuel donc je ne sais pas s'il est passé par ce lien).
Concernant le droit à ne pas avoir : si le gadget est activé par défaut, autant le laisser activé pour tous ceux qui ne l'ont pas désactivé explicitement, non ? Parce qu'il y a de temps en temps des contributeurs qui deviennent autopatrolled, et s'ils utilisent le lien, ils ne vont pas comprendre pourquoi il disparaît.
Orlodrim (discuter) 29 mars 2015 à 21:55 (CEST)
Hello
Orlodrim, si j'ai bien suivi, c’est disponible pour tous les comptes enregistrés et ce par défaut ? J'ai essayé de voir pour l’activer ou le désactiver dans mes préférences, et, du coup, le lien ne s'affiche plus du tout, que je sois connecté ou non.
Est-ce normal ?
Merci, Trizek bla 9 avril 2015 à 17:12 (CEST)
C'est activé par défaut pour les utilisateurs enregistrés. Cela fonctionne correctement pour moi. Quand tu actives le gadget, est-ce que ça fonctionne mal sur toutes les pages ? Orlodrim (discuter) 9 avril 2015 à 19:29 (CEST)
Après deux ou trois purges de cache et quelques heures de navigation, c’est bon. Désolé du dérangement et encore merci pour la réparation ! Trizek bla 9 avril 2015 à 20:16 (CEST)
Nouvelle du jour : on peut demander à avoir la même chose sans gadget avec mw:Help:Extension:SandboxLink. En fait, ça vient d'être activé par défaut sur Wikipédia en anglais, pour tous les comptes (en:Wikipedia:Village pump (technical)#Sandbox link). Orlodrim (discuter) 9 avril 2015 à 21:19 (CEST)
J'ai fait la demande : phab:T95604. Orlodrim (discuter) 9 avril 2015 à 21:31 (CEST)

jQuery == Brainfuck[modifier le code]

Bonsoir. Je m’insurge avec véhémence contre la « décision » non discutée d’imposer sur Wikimedia l’usage de jQuery, qui n’est en fait qu’une pâle copie de Brainfuck (en aussi imbitable, mais en moins drôle(Smiley: triste)).

J’aimerais connaitre tous vos trucs pour ne surtout pas utiliser $(jQuery).

Amitiés. --GaAs 2 avril 2015 à 20:19 (CEST)

Extension MediaWiki : LiveRC[modifier le code]

Voir Discussion MediaWiki:Gadget-LiveRC.js#Extension Mediawiki : LiveRC

⇨ Dr Brains ∞ Consultation ∞ 3 avril 2015 à 23:03 (CEST)

Tooltip[modifier le code]

Bonjour,

Je ne suis pas sûr que ce soit le bon endroit pour ma question, mais je tente Clin d'œil.

J'ai développé le module Module:Échiquier à partir de la version anglaise pour remplacer les codes des différents modèles d'échiquier ({{Diagramme d'échecs}}, ...), et j'ai pour l'instant un petit souci de performance (l'utilisation du module demande un peu plus de ressources processeur que le modèle actuel). Actuellement, le module utilise une image de fond de l’échiquier et ajoute par dessus une image pour chaque case. J'aimerais bien ne pas ajouter d'image dans le cas des cases vides, mais je voudrais conserver l'affichage d'un tooltip sur la case, ce qui est actuellement fait par le code wiki pour l'image de la case (ligne 109 du module, return string.format( '[[File:Chess %s45.svg|%dx%dpx|alt=%s|%s]]', caseName, size, size, alt, alt )). Est-ce qu'il y a un moyen simple pour ajouter un tooltip seul sur un div ? --NicoV (discuter) 8 avril 2015 à 11:15 (CEST)

Il suffit d'ajouter un attribut title à ton div, avec comme valeur le texte du tooltip.
Tu est rapide pour remercier ! J'avais a à peine poster la réponse sur le projet modèle, sans te notifier, je passe à une autre page et la notification était là.
Zebulon84 (discuter) 8 avril 2015 à 11:48 (CEST)
Merci Zebulon84, ça marche. Bon, ça ne résoud pas mon écart de performance par contre (Smiley: triste) Les statistiques semblent plus en faveur de Variante Najdorf‎ qui utilise l’ancien modèle que Utilisateur:NicoV/Variante Najdorf‎ qui utilise le nouveau modèle. Quelqu'un aurait des idées d'optimisation ? --NicoV (discuter) 8 avril 2015 à 18:20 (CEST)
Y a-t-il vraiment un problème de performance ? Les 36 modèles {{diagramme d'échecs}} mettent entre 1 et 2 secondes à être exécutés, contre 1 à 2 secondes pour les 36 {{Utilisateur:NicoV/Diagramme d'échecs}}. Pas d'amélioration certes, mais c'est pas non plus un temps infini. Ces temps sont indiqués dans le code source à la fin de la page. J'utilise la console pour le trouver rapidement (sous firefox click droit vers le bas de la page, Examiner l'élément ; Inspecter l'élément sous IE11). Le temps lui-même est variable suivant le serveur qui traite la demande, mais assez stable en %.
Quelques éléments qui peuvent améliorer la performance de Scribunto, mais peut-être pas vraiment ce module (je n'ai fait que le survoler) :
  • mw.ustring est assez lent. Il vaut mieux éviter de l'utiliser lorsque c'est possible, surtout dans les boucles ou dans les fonction souvent utilisées. Lorsque le pattern ne contient pas de caractères non ASCII on peut à priori utilisé string sans risque. Attention %a,%w... contiennent les caratères unicodes dans mw.ustring, mais pas dans string. Attention aussi la syntaxe s:gsub(...) utilise string.gsub et non mw.ustring.gsub.
  • alt = alt .. xyz n'est pas optimal si souvent utilisé, surtout si les chaines xyz sont souvent les même. Lua gère en effet un tableau avec toutes les chaines utilisées. chaque concaténation de ce type va donc générer une nouvelle entrée dans le tableau, avec vérification de l'unicité... Si alt fini par être une grande chaine il est plus rapide de mettre tout les bouts de chaines dans un tableau, et de concaténé le tableau à la fin. Ceci dit la différence est minime tant que le nombre de concaténation est faible (il en faut plusieurs milliers pour que la différences soit mesurable)
Zebulon84 (discuter) 8 avril 2015 à 19:49 (CEST)
Autre élément éventuel : il me semble qu'utiliser string.format est plus gourmand que concaténer des valeurs (quand c'est possible, ce qui est le cas ici).
Après − mais je ne sais pas si ça s'applique ici − il est plus efficace de rechercher un élément indexé (truc[bidule]) que de parcourir des éléments. Donc parfois c'est intéressant de construire une table (un peu) plus grande complète pour piocher dedans plutôt que de construire un résultat.
Cordialement, Hexasoft (discuter) 8 avril 2015 à 20:15 (CEST)
Conflit d’édition
Merci Zebulon84, je vais regarder les pistes d'optimisation que tu m'as indiqué Sourire
En fait, si je cherche à optimiser, c'est aussi suite à cette discussion. Etant parti du module anglais, j’espérais améliorer les temps. Par rapport au module anglais, ma plus grosse modification a consisté à ajouter des tooltips même pour les cases vides de l’échiquier. Ce qui veut dire un nombre nettement plus important d'appels à la fonction qui calcule les tooltips, donc ça peut être une piste. --NicoV (discuter) 8 avril 2015 à 20:27 (CEST)
Merci Zebulon84 et Hexasoft, j'ai tenté vos suggestions:
  • pas réussi à utiliser string à la place de mw.ustring, ça ne marche pas, tant pis
  • j'ai simplifié les concaténations et remplacé le format : il est possible que ça ait amélioré les choses, c'est passé de environ 6s à environ 4.5s sur un test
--NicoV (discuter) 8 avril 2015 à 20:46 (CEST)

Icône lien externe, comment ne pas le copier ?[modifier le code]

Bonjour,

Voilà mon souci : le lien mediawik.org est immédiatement suivi de l'icône External small.svg. Comment le moteur s'y prend-il pour qu'on ne puisse copier/coller l'icône ? Je souhaite en effet utiliser cette technique de « non-copie » pour un texte de Wikisource. J'ai trouvé une longue recette dans http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting, mais je pense qu'il y a plus court. Par exemple, dans https://developer.mozilla.org/fr/docs/Web/CSS/:after, on propose plus court mais il faut utiliser la pseudo-classe :after.

Dans un fichier CSS :

.texte-interessant::after {
   content: "<- Là, ça devient intéressant !"; 
   color: green;
}

et dans HTML :

<p class="texte-ennuyeux">Du texte bien barbant.</p>

Comment inscrire la pseudo-classe directement dans le wikitexte ?

Merci de votre aide,

CdlEst discuter 17 avril 2015 à 18:04 (CEST)

L'icône en question n'est en fait pas une image (balise <img>) mais un background ajouté via la class css a.external.
Quelques exemples d'utilisation d'icônes en background pour des liens : Utilisateur:Dr Brains/common.css
⇨ Dr Brains ∞ Consultation ∞ 17 avril 2015 à 18:54 (CEST)

Boucle[modifier le code]

Bonjour, comment peut-on savoir quand une boucle est bien fini ? En effet, dans le script que j'écris, j'ai impérativement besoin que la boucle soit fini avant de lancer la suite. Merci d'avance.— Gratus (discuter) 19 avril 2015 à 17:23 (CEST)

C'est tout simple, après la boucle c'est plus la boucle :
for (var i = 0; i < 10; i++)
{
   console.log("C'est la boucle numéro " + i);
} 

console.log("La boucle est forcément finie quand on arrive ici");
Prométhée33 (discuter) 19 avril 2015 à 18:06 (CEST)
C'est plus complexe que ça car je crois qu'il y a des requêtes Ajax asynchrone dans la boucle.
Notification Gratus : On parle bien de Utilisateur:Gratus/PaFtec real.js ? Tu veux faire quoi exactement ?
⇨ Dr Brains ∞ Consultation ∞ 19 avril 2015 à 18:18 (CEST)
Notification Dr Brains : Bonjour. Oui, c'est bien ce script Sourire. La fonction « verification » vérifie que les articles existent. Si ce n'est pas le cas, il réactualise la page, mettant fin au script. La boucle dans « titrepaf » sert à faire vérifier que toutes les pages indiqués dans la variable « chaine » existent. Ce que je cherche à faire, c'est savoir quand la boucle est finie, c'est à dire, quand on est sûr que tous les articles existent avant de lancer la suite des opérations. — Gratus (discuter) 19 avril 2015 à 18:51 (CEST)
Fait Ca devrait fonctionner avec les modifs apportées.
⇨ Dr Brains ∞ Consultation ∞ 19 avril 2015 à 19:59 (CEST)
Notification Gratus : On peut même faire mieux. Avec le module prop=info, on peut tester plusieurs pages à la fois : une seule requête devrait donc suffire à toutes les tester.
⇨ Dr Brains ∞ Consultation ∞ 19 avril 2015 à 20:06 (CEST)
Notification Dr Brains : Bonjour et merci pour les améliorations. Pourrai tu m'expliquer comment fonctionne les « CallBack, CallBackArgs » de la ligne 22 ainsi que les lignes 39, 64 et 68 ? Cordialement.— Gratus (discuter) 20 avril 2015 à 07:08 (CEST)
Notification Gratus :
C'est relativement simple :
  • CallBack, c'est la fonction que tu passes en paramètre et que tu souhaites exécuter à la fin de la requête. Tu la définis au moment de l'appel de la fonction, ou ailleurs dans le script.
  • CallBackArgs c'est les arguments (dans un Object de préférence si tu veux en passer plusieurs) que tu souhaites que la fonction que tu exécutes à la fin utilise. Ces arguments sont facultatifs.
Un exemple simple :
// #### Fonction d'initialisation du bouzin
// - Pas d'arguments

var Init = function(){
      // Pas de lien pour les IP
    if(!mw.config.get('wgUserName')) return;
      // On définit le titre de la page "brouillon"
    var PageBrouillon = mw.config.get('wgFormattedNamespaces')[2] + ":" + mw.config.get('wgUserName') + '/Brouillon';
      // On crée un <li> et on l'ajoute aux liens personnels
    var BrouillonLi = document.createElement('li');
    document.getElementById('p-personal').getElementsByTagName('ul')[0].appendChild(BrouillonLi);
      // On définit les arguments nécessaires à la création du lien via la fonction "creerLien" définie plus bas
    var Args = { 
        page : PageBrouillon, 
        title : 'Votre brouillon', 
        text : 'Brouillon', 
        target : BrouillonLi
    };
      // On lance le test de la page
    testpage(PageBrouillon, creerLien, Args);
}


// #### Fonction pour tester l'existence d'une page
// - Page = titre d'une page
// - CallBack = fonction à exécuter après la fin du test
// - Args = Arguments à passer à la fonction CallBack

var testpage = function(Page, CallBack, Args){
      // On lance une requête API (asynchrone) pour avoir des infos sur la page
    var api = new mw.Api();
    api.get({
        action: 'query',
        prop: 'info',
        titles: Page
    }).then(function(data) { // La requête a aboutit
          // On vérifie si la page existe ( pageID < 0, si on a demandé des infos sur une seule page, la présence d'un item -1 indique que la page n'existe pas )
        var existe = !data.query.pages[-1];
          // Si la page n'existe pas, alors on ajoute un argument à passer à la fonction CallBack
        if(!existe) Args.missing = true; 
          // On vérifie que CallBack est bien une fonction et on l'exécute (avec les arguments)
        if(typeof(CallBack)==="function") CallBack(Args);
    });
}


// #### Fonction pour créer un lien
// - Args.title = infobulle du lien
// - Args.text = texte du lien
// - Args.page = page cible du lien
// - Args.missing = page manquante (facultatif)
// - Args.redirect = page redirigée (facultatif)
// - Args.target = node dans laquelle on insère le lien

var creerLien = function(Args){
      // On crée le lien
    var Lien = document.createElement('a');
      // On définit le titre
    Lien.title = Args.title;
      // On définit le texte du lien
    Lien.innerHTML = Args.text;
      // On définit la cible du lien
    Lien.href = mw.config.get('wgServer') + mw.config.get('wgArticlesPath').split('$1').join(Args.page);
      // Si Args.missing, la page est manquante (lien rouge via classe CSS "new")
    if(Args.missing) $(Lien).addClass("new");
      // Si Args.redirect, la page est une redirection (classe CSS "mw-redirect")
    if(Args.redirect) $(Lien).addClass("mw-redirect");
      // On met le lien dans la page,
    Args.target.appendChild(Lien);
}


// #### On lance le bouzin

$(Init);
Ce code rajoute un lien pour tout utilisateur enregistré vers sa sous-page /Brouillon après avoir testé son existence via une requête asynchrone sur l'API, et si elle n'existe pas alors elle est affichée en rouge (classe CSS "new").
⇨ Dr Brains ∞ Consultation ∞ 20 avril 2015 à 17:42 (CEST)
Notification Dr Brains : Bonsoir, désolé j'ai quasiment rien compris à l'exemple mais je crois comprendre lorsque je l'analyse avec mon script. En résumé, la fonction callback est la fonction qui est en variable de « vérification », les fonctions qui sont à effectuer à la fin sont inscrits dans la variable « CallBack ». Ensuite, quand la fonction « vérification » est exécutée, ce qui était gardé bien au chaud ressort grâce à « if(typeof(CallBack)==="function") CallBack(CallBackArgs) » qui peut être traduit par : si mon paramètre est en réalité une fonction, alors je « transforme » la variable en fonction et je récupère éventuellement CallBackArgs comme variables de la fonction « CallBack ». Mais dans ce cas, à quoi sert le « Args » dans « function(Args) » puisqu'elle ne semble pas être définie ? — Gratus (discuter) 20 avril 2015 à 18:50 (CEST)
Notification Gratus :
Avec les commentaires, ça va mieux ?
⇨ Dr Brains ∞ Consultation ∞ 20 avril 2015 à 19:24 (CEST)
Dr Brains : Beaucoup mieux Sourire, je pense comprendre le fonctionnement (j'ai juste dans mon raisonnement précédent ?). Comment fonctionnent les $ (par exemple : $(Lien)). En tout cas, merci pour tes réponses.— Gratus (discuter) 20 avril 2015 à 19:45 (CEST)
Notification Gratus :
Oui, tu as juste (même si c'est en des termes peu orthodoxes). $ c'est un alias de jQuery. Difficile à expliquer en quelques lignes. Tu trouveras un début de doc ici et surtout .
⇨ Dr Brains ∞ Consultation ∞ 20 avril 2015 à 20:06 (CEST)

Changement de l'API pour les requêtes concernant les journaux d'événements[modifier le code]

BREAKING CHANGE: Formatting of log parameters is changing in logevents, recentchanges, and watchlist queries

Le changement aura lieu le 29 janvier avril pour Wikipédia. Les scripts contenant "logevents" ou "loginfo" nécessitent pour la plupart une mise à jour. Je pense que LiveRC est concerné, en particulier.

Orlodrim (discuter) 20 avril 2015 à 22:46 (CEST)

Notification Orlodrim :
Merci pour l'info. En effet, LiveRC sera impacté.
29 janvier ? Tu veux dire avril bien sûr.
⇨ Dr Brains ∞ Consultation ∞ 20 avril 2015 à 22:57 (CEST)
Oups, oui, c'est bien ça. Orlodrim (discuter) 20 avril 2015 à 22:58 (CEST)
LiveRC prêt.
⇨ Dr Brains ∞ Consultation ∞ 20 avril 2015 à 23:34 (CEST)
Notification Dr Brains : Il y a aussi MediaWiki:Gadget-GlobalWatchlist.js qui contient "new_title", propriété qui va être renommée. Les scripts de certains utilisateurs pointent encore vers Utilisateur:Dr Brains/GlobalWatchlist.js, peut-être peux-tu le remplacer par un simple import du gadget.
Orlodrim (discuter) 21 avril 2015 à 19:59 (CEST)
Notification Orlodrim :
Fait Corrigé.
Je n'ai pas trouvé d'utilisateur utilisant Utilisateur:Dr Brains/GlobalWatchlist.js, hormis Utilisateur:H4stings/vector.js que j'ai corrigé. Tu en connais d'autres ?
⇨ Dr Brains ∞ Consultation ∞ 21 avril 2015 à 20:13 (CEST)
Utilisateur:Grind24/vector.js, Utilisateur:Mathieugp/vector.js, Utilisateur:NicoV/vector.js (en commentaire), ainsi que dans un grand nombre de sous-pages "/GlobalManager.js" [1] (j'ignore s'il est utile de modifier dans ces sous-pages). Orlodrim (discuter) 21 avril 2015 à 20:43 (CEST)

PàStec[modifier le code]

Bonjour, j'ai amélioré le script en ajoutant des tableaux, ce qui permet d'avertir plusieurs projets/contributeurs à la fois (contre 2 avant) et simultanément. Cependant, j'ai deux bugs principaux (mais suffisamment mineure pour que je le laisse dans le script le temps d'avoir une réponse) :

  1. Les noms avec espaces ne sont pas accepté par le script, l'ajout n'est pas réalisé (cependant les autres noms classiques sont acceptés, même s'ils se trouvent après le noms problématique).
  2. Le message « Traitement en cours, veuillez patienter. Si ce message persiste, une erreur a du survenir.  » ne se retire pas.

Gratus (discuter) 4 mai 2015 à 21:25 (CEST)

Notification Gratus : Avant que tu ailles plus loin : j'ai pas mal bossé de mon côté (miroir).
⇨ Dr Brains ∞ Consultation ∞ 4 mai 2015 à 23:26 (CEST)
Notification Dr Brains : Je viens de voir, ça à l'air d'être du lourd. Je te laisse faire pour éviter de me voir mon travail « écrasé » Sourire. En tout cas merci pour l'attention apporté à ce script. — Gratus (discuter) 5 mai 2015 à 01:03 (CEST)

Renommer onglet liste de suivi[modifier le code]

Bonjour,

Quelle fonction javascript faut-il utiliser si je souhaite par exemple changer le nom de l'onglet "liste de suivi" en haut de page par "LdS" ?

Cordialement. £e p$y £éon (discuter) 7 mai 2015 à 15:40 (CEST)

function RenameLdS(){
    var LdSLi = document.getElementById('pt-watchlist');
    if(!LdSLi) return;
    LdSLi.firstChild.innerHTML = "LdS";
}
$(RenameLdS);
Par exemple.
⇨ Dr Brains ∞ Consultation ∞ 7 mai 2015 à 17:41 (CEST)
Yes, c'est ça, merci ! £e p$y £éon (discuter) 7 mai 2015 à 22:32 (CEST)

Changement du format de query-continue dans l'API (3) (rappel)[modifier le code]

Le changement annoncé plus haut aura lieu à la fin du mois de juin (voir aussi Discussion Wikipédia:Bot#API BREAKING CHANGE: Default continuation mode for action=query will change at the end of this month).

J'ai mis à jour les scripts de l'espace MediaWiki le 21 avril, mais il y en a au moins un nouveau depuis (MediaWiki:Gadget-AddContribNumberInNewPages.js).

Je n'ai pas vérifié les sous-pages personnelles, il reste peut-être d'autres gadgets à mettre à jour.

Orlodrim (discuter) 3 juin 2015 à 19:38 (CEST)

afficher des suggestions basées sur les pages d'une catégorie[modifier le code]

bonjour tout le monde, je cherche a afficher (par fonction javascript) des suggestions basées sur les pages membres d'une catégorie. Quelque chose qui ressemble à ce que affiche BandeauxPortails.js.

Mon problème : l'api disponible (categorymember) ne permet pas d'afficher une partie de la liste basée sur un préfixe (exemple des titres commencent par « 2015 en .. ».

y-a-t-il une autre solution ?? --وهراني (discuter) 8 juin 2015 à 21:46 (CEST)

newCollapsible et target[modifier le code]

Le projet:Aide et accueil utilise abondamment le gadget newCollapsible via {{Section déroulante début}} / fin. Le problème c'est que les liens vers un titre à l'intérieur d'une section enroulée ne marchent pas.

J'arrive à les faire marcher avec le code suivant :

function openNewCollapsibleTarget() {
	$( this ).find('> .fr-collapsible-toggle-collapsed').click();
}
$( ':target()' ).parents( '.fr-collapsible' ).each( openNewCollapsibleTarget );
$( window ).on('hashchange', function(){ 
	$(':target').parents( '.fr-collapsible' ).each( openNewCollapsibleTarget );
});

C'est bien plus court que ce que j'imaginais initialement. J'ai malgré tout quelques questions :

  • y a-t-il moyen de mieux l'intégré au gadget.
  • avez-vous une solution pour que ça marche deux fois de suite sur le même lien. En effet avec la formule actuelle l'ouverture des boites n'est faite que lors du changement du target dans l'url. si on a refermer les boites recliquer sur le même lien ne les rouvre pas puisque l'adresse ne change pas.
  • Je ne comprend pas vraiment l'utilité du return au début de la fonction « newCollapsible ». Est-ce que ca marcherait sans ?

Zebulon84 (discuter) 13 juin 2015 à 18:43 (CEST)

DrapeauJaune[modifier le code]

Bonjour le projet JS Sourire,

J'ai développé il y a quelques mois de cela un script, DrapeauJaune.js, qui sert à marquer comme douteuse des modifications, afin d'éviter que celles-ci ne tombent dans l'oubli général et que quelqu'un de compétent dans le domaine puisse passer derrière pour vérifier.

Cela a aujourd'hui bien fait ses preuves, et suite à plusieurs demandes (sur IRC ou sur le Bistro), j'envisage

  1. de déplacer la liste des modifications douteuses dans l'espace Wikipédia ;
  2. de faire du script un gadget.

Est-ce que cela vous semble pertinent, vous qui avez plus l'habitude que moi des scripts ? Si oui, j'avertirais en premier lieu les utilisateurs actuel avant de déplacer quoi que se soit.

Merci — 0x010C ~discuter~ 15 juillet 2015 à 22:15 (CEST)

Flow[modifier le code]

Article connexe : Discussion Wikipédia:Bot#Flow.

Bonjour,

Flow arrive sur les pages de discussion utilisateur.

Pour l'instant, c'est en phase de test (trois utilisateurs qui l'ont fait activer manuellement). J'ai cherché les gadgets qui laissent des messages aux utilisateurs et qui doivent être mis à jour, pour l'instant j'ai repéré :

Les fonctions qui écrivent des pages de discussion utilisateur doivent être mise à jour pour utiliser action=flow&submodule=new-topic (j'ai donné des liens sur la page de discussion des bots). LiveRC est sans doute un gros morceau, si jamais vous avez du temps pour vous plonger dans le code...

Orlodrim (discuter) 20 juillet 2015 à 20:40 (CEST)

Pour poster des messages sur les PDD, MW core propose maintenant une API JS permettant de poster une nouvelle discussion que ce soit sur une PDD classique ou Flow. C'est le module mediawiki.messagePoster. Tpt (discuter) 21 juillet 2015 à 06:02 (CEST)

Dépréciation de document.write[modifier le code]

Bonjour,

La prochaine version de ResourceLoader étant complètement asynchrone, il ne sera plus possible d'effectuer des modifications synchrones à l'aide de document.write dans les gadgets, common.js. etc.

Sur la Wikipédia francophone, il y a encore une poignée de scripts qui se servent de cette fonction :

Amicalement — Arkanosis 6 août 2015 à 09:06 (CEST)

Projet:JavaScript/Notices/RevertDiff[modifier le code]

Un petit souci en ce qui concerne ce gadget : il semble qu'il ne soit plus possible de laisser un résumé de modif précis. La fenêtre popup ne s'ouvre plus lorsque l'on clique sur "message", mais peut-être est-ce un souci similaire à ceci, corrigé par Arkanosis ?--SammyDay (discuter) 24 août 2015 à 19:09 (CEST)

Est-ce encore d'actualité après un petit Ctrl + F5 ? Je pensais avoir corrigé ce problème vendredi soir suite à ce signalement
Pour information, il reste encore une belle poignée de gadgets à réparer.
Amicalement — Arkanosis 24 août 2015 à 20:25 (CEST)
C'est nickel, merci !--SammyDay (discuter) 24 août 2015 à 21:20 (CEST)

Suggestion : gadget "onglet WikiBlame"[modifier le code]

Bonsoir,

Seriez-vous intéressé par la création d'un gadget "OngletWikiBlame" ? Comme le nom l'indique, cela permettrait d'ouvrir la page en cours dans WikiBlame, un outil extrêmement utile !

L'ajout est très simple et se ferait à la suite des autres gadgets de type "onglet". Le code est le suivant :

if ( mw.config.get( 'wgNamespaceNumber' ) >= 0 ) {
    $( document ).ready( function () {
        mw.util.addPortletLink(
            'p-cactions',
            'http://wikipedia.ramselehof.de/wikiblame.php?lang=fr&article='
                + encodeURIComponent( mw.config.get( 'wgPageName' ) ).replace( /_/g, '+' ),
            'WikiBlame',
            'ca-wikiblame',
            'Ouvrir WikiBlame avec cette page pré-renseignée'
        );
    });
}

Ce message pour savoir si vous approuvez la suggestion. Personnellement j'utilise l'outil depuis des années, et on peut dire qu'il m'a rendu de fiers services. Clin d'œil

od†n ↗blah 14 septembre 2015 à 02:41 (CEST)

Il y a déjà un lien vers Wikiblame dans les historiques (« Rechercher l'auteur d'un passage de l'article »). Tu penses quand même que ce serait utile ? Orlodrim (discuter) 15 septembre 2015 à 00:07 (CEST)
Je n'avais pas remarqué ce lien dans les historiques ; du coup, ajouter un gadget pour faire gagner un clic de distance ne me parait pas rentable.
En revanche, j'ai remarqué que le paramètre "binary_search_inverse" (apparu ici, correction ici) est ineffectif, car la valeur reconnue est "on". Mais comme il serait inopportun de l'activer, il faudrait tout simplement le supprimer.
od†n ↗blah 15 septembre 2015 à 05:34 (CEST)
Je l'ai supprimé. Orlodrim (discuter) 15 septembre 2015 à 21:18 (CEST)

MediaWiki:Gadget-PageAuHasard.js et modèle {{Page au hasard}}[modifier le code]

Bonjour,

est-ce que quelqu'un saurai intégrer le Module:Random plutôt que le Modèle:Rand dans les modèles ci-dessus ? Ainsi, pour des pages telles que Portail:Bogota/Page au hasard/Liste, cela intégrerait directement le code [[{{#invoke:random|item|article1|article2|article3}}]] plutôt que {{#switch: {{{1|{{rand|1|3}}}}}|1=[[article1]]|2=[[article2]]|3=[[article3]]}}. Cela permettrait d'éliminer les "X=" et les "[[]]", soit 6 octets par ligne. Ça peut paraître dérisoire, mais pour des pages telles que Portail:Angleterre/Page au hasard/Liste pour lesquelles il y a près de 18000 articles liés, cela permettrait d'en réduire considérablement le poids et de pouvoir les générer plus rapidement (donc moins de ressources serveur).

N'ayant pas réussi à le faire par moi-même, un coup de main éventuel serait le bienvenu (cf un exemple d'utilisation du Module:Random sur cette page). Cordialement. £e p$y £éon (discuter) 24 septembre 2015 à 16:10 (CEST)

Je viens de faire une petite modification sur le code de MediaWiki:Gadget-PageAuHasard.js et je l'ai testé sur Portail:Psychologie/Page au hasard/Liste. Ce script semble toujours fonctionner sauf qu'au lieu d'avoir une page de 130 971 octets, elle n'est plus que de 88 389 octets ! Qu'en pensez vous ? Ce code vous semble-t-il correct ? Cordialement. £e p$y £éon (discuter) 24 septembre 2015 à 22:11 (CEST)
Ça semble correct. J'ai ajouté le remplacement de "=" par "{{=}}", sinon, sans la numérotation, les titres avec des signes "=" seraient interprétés comme des paramètres nommés du module. Je ne pense pas que le "rawcontinue=1" soit nécessaire. Orlodrim (discuter) 24 septembre 2015 à 22:44 (CEST)
Orlodrim, "rawcontinue=1" rajouté suite conseil de Notification Prométhée sur sa PDD. Après, si cela n'est effectivement pas nécessaire, on peut toujours l'enlever. £e p$y £éon (discuter) 24 septembre 2015 à 22:54 (CEST)
Orlodrim a raison ça sert à rien, Portail:Psychologie/Page au hasard/Liste contient a priori le même nombre d'article qu'avant donc le rawcontinue change rien : tu les récupérais déjà tous avant. La perte d'octet semble uniquement due au module random. Prométhée (discuter) 25 septembre 2015 à 08:05 (CEST)
"rawcontinue=1" supprimé. Il semblerait même engendre des problèmes car la page Portail:Afro-Américains/Page au hasard pour laquelle j'ai effectué un test s'est retrouvée catégorisée dans Catégorie:Page utilisant des arguments dupliqués dans les appels de modèle. £e p$y £éon (discuter) 25 septembre 2015 à 08:59 (CEST)
Le script semble fonctionner correctement avec des gains considérables pour certaines pages. Si vous voyez d'autres améliorations à apporter, je suis preneur, dans la mesure du possible. Cordialement. £e p$y £éon (discuter) 25 septembre 2015 à 10:00 (CEST)

hotcast[modifier le code]

(problème abordé ici: Wikipédia:Le Bistro/17 octobre 2015#Portails et catégories)

bonjour, sur cette page: Projet:JavaScript/Notices/BandeauxPortails vous dites (ligne 2) "Son fonctionnement est similaire à celui du gadget HotCats." voulez vous dire hotcatsmulti à la place de hotcats? (la redirection vers la notice hotcats est vide. une redirection vers la notice de hotcats multi serait peut être mieux?) --Vatadoshu... 17 octobre 2015 à 20:18 (CEST)

Bouton maison[modifier le code]

Bonsoir, j'ai essayé de me faire un bouton de modification pour wikifier et mettre en italliques un terme en un seul clic ( ''[[]]'' ). J'ai bidouillé un bouton existant mais ça me fait disparaitre la moitié de ma barre monobook. Qu'est-ce qu'il faut corriger Boulet ?

   mw.toolbar.addButton('//upload.wikimedia.org/wikipedia/commons/b/bd/Wikilinker.png',
    'Taxon',
    '''[[',
    ']]''',
    '',
    'mw-editbutton-taxon');  

-- Amicalement, Salix [Converser] 27 octobre 2015 à 18:04 (CET)

Notification Salix : Si tu veux insérer du texte qui contient des apostrophes comme ''[[, encadre-le avec des guillemets ("''[[") plutôt qu'avec des apostrophes ('''[['). Même chose pour la ligne suivante : ']]'''"]]''". Orlodrim (discuter) 27 octobre 2015 à 18:57 (CET)
Merci Orlodrim, ça marche impec' Clin d'œil ! -- Amicalement, Salix [Converser] 28 octobre 2015 à 21:30 (CET)

Spécial:GadgetUsage[modifier le code]

Nouvelle page spéciale (phab:T115152), résultats un peu inattendus il me semble. Il y a peut-être du ménage à faire vers la fin de la liste, qui allonge la liste des préférences alors que ce n'est utilisé par presque personne. — Oliv☮ Éppen hozzám? 7 novembre 2015 à 06:50 (CET)

Après retrait des gadgets qui n’existent plus
Ordre (section/no ) Gadget Nombre d’utilisateurs
01/13 Popups 3 160
01/11 LastContrib 3 030
09/01 DeluxeHistory 2 958
01/08 FlecheHaut 2 887
04/04 ResumeDeluxe 2 739
04/08 WikEd 2 537
03/01 EditZeroth 2 491
04/05 QPreview 2 429
03/02 OngletGoogle 2 380
06/01 CaracteresHTML 2 305
06/02 CaracteresMagic 2 244
02/02 SousPages 2 054
11/02 RevertDiff 1 846
03/04 OngletPurge 1 795
02/01 NavigAdmin 1 794
13/04 Evaluation 1 721
07/03 HotCatsMulti 1 674
06/03 CaracteresParser 1 614
03/03 OngletJournal 1 606
02/03 TriInterWiki 1 597
01/02 AncreTitres 1 573
10/02 OptimizedSuivi 1 534
01/03 dictionaryLookupHover 1 487
01/09 HomonymiesEnCouleur 1 474
10/01 LiveRC 1 422
07/02 BandeauxPortails 1 376
01/18 ZoomOnThumb 1 358
13/01 Accessibility 1 312
01/15 tooltipRef 1 279
07/01 BandeauxEbauches 1 241
01/01 AffMasLiens 1 220
01/04 EbauchesOff 1 118
12/02 AdvancedResearch 1 081
06/05 specialchars 981
01/14 referencederoulante 974
04/02 iRef 938
13/02 AvertissementImage 928
13/05 OptimizedShort 924
04/06 searchbox 904
08/01 AdvancedContribs 887
03/06 UTCLiveClock 861
08/02 ContribColors 766
05/03 MonobookToolbarSources 759
08/03 contribsrange 638
02/04 verifHomon 631
03/05 SupprimerInfoBulles 596
01/07 ExtendedCache 583
10/03 recentchangesbox 563
13/07 SuppressionDeluxe 485
02/05 verifEbauche 472
05/01 ForceMonobookToolbar 467
01/10 interProjets 466
12/03 OldSearchBox 454
05/04 MonobookToolbarPatrouille 453
04/03 MagnusEditBox 440
10/04 SuiviSimple 395
05/08 MonobookToolbarChangeCase 374
04/01 DotsSyntaxHighlighter 370
06/04 CaracteresOff 363
05/07 MonobookToolbarSmiliesAlien 337
05/09 MonobookToolbarDiacritiques 335
05/06 MonobookToolbarNotif 314
13/09 BugStatusUpdate 216
10/05 GlobalWatchlist 173
01/19 VectorClassic 158
04/07 TiretSignature 150
13/08 AllmessagesDeluxe 109
01/20 MiseEnPageEspaceAide 85
13/06 PaStec 85
01/05 LabelsOff 84
13/03 DeleteBot 31
11/01 ConfirmRollback 24
08/04 FusionContribs 4
Cette copie pourra aussi servir de référence future pour voir les évolutions.
En plus d’un éventuel ménage, il serait intéressant de comparer avec l’ordre dans lequel ils sont présentés (et éventuellement adapter celui-ci).
— bonnes contributions, Ltrlg (discuter), le 7 novembre 2015 à 18:28 (CET)
Aparté : sur la page en question, le tri des colonnes se fait incorrectement ; les valeurs sont traitées commes des chaînes et non comme des nombres. À part cela, une nouvelle page très utile Clin d'œil od†n ↗blah 31 janvier 2016 à 03:56 (CET)

Compter les unread[modifier le code]

Bonsoir,

existe-il une fonction javascript pour compter le nombre de unread (pages modifiées non lues) de notre liste de suivi ?

Cordialement. £e p$y £éon (discuter) 23 novembre 2015 à 23:01 (CET)

Bonjour, je pensais avoir trouvé la solution en générant un JSON (exemple) et en récupérant la valeur de unreadcount mais je n'y parviens pas. Quelqu'un sait-il comment faire ? Cordialement. £e p$y £éon (discuter) 25 novembre 2015 à 11:02 (CET)

Ça dépend comment tu veux l'utiliser exactement, mais si par exemple tu veux modifier le lien « Liste de suivi » dans la barre personnelle pour y ajouter le résultat, tu peux faire comme ça :

var api = new mw.Api();
api.get({action: 'query', meta: 'userinfo', uiprop: 'unreadcount'}).done(function (data) {
    $('#pt-watchlist a').text('Liste de suivi (' + data.query.userinfo.unreadcount + ')');
});

Orlodrim (discuter) 25 novembre 2015 à 20:14 (CET)

Bonsoir Notification Orlodrim. J'avais trouvé le code suivant qui semble aboutir au même résultat mais en plus de lignes :
var req= new XMLHttpRequest();
req.open("GET", mw.config.get('wgServer') + mw.config.get('wgScriptPath') + "/api.php?action=query&meta=userinfo&format=json&uiprop=unreadcount", true);
req.onreadystatechange = function() {
  if (req.readyState === 4 && req.status === 200) {
    var json = JSON.parse(req.response);
    document.write(json.query.userinfo.unreadcount);
  }
};
req.send(null);
Néanmoins, que ce soit mon code ou le tien, je ne parviens pas à l'insérer dans le code d'Utilisateur:Lepsyleon/MajLdS.js qui permettrait d'avoir, quand il y a de nouveaux éléments non lus dans la liste de suivi, un fond rouge ET le nombre d'éléments non lus. Si tu as une solution, je suis preneur ! Cordialement. £e p$y £éon (discuter) 25 novembre 2015 à 21:19 (CET)
Bizarrerie : alors que je n'ai plus que deux éléments non lus dans ma liste de suivi, ton script comme le mien indiquent que j'en aurais 4. Comment cela peut-il être expliqué ? Cordialement. £e p$y £éon (discuter) 25 novembre 2015 à 21:37 (CET)

api.get() ne renvoie pas le résultat, elle exécute une autre fonction en lui donnant en paramètre le résultat (que j'ai nommé data). Tout ce que tu veux faire avec ce résultat, il faut donc le mettre dans le fonction appelée par api.get().

var api = new mw.Api();
api.get({action: 'query', meta: 'userinfo', uiprop: 'unreadcount'}).done(function (data) {
    if (data.query.userinfo.unreadcount == 0) return;
    $('#pt-watchlist a').text('Liste de suivi (' + data.query.userinfo.unreadcount + ')').css({
        "background-color": "#C00",
        // Autres attributs CSS...
    });
});

Quant au nombre de messages non lus, je n'ai jamais regardé en détail comment ça fonctionnait (personnellement, j'ai entièrement désactivé la mise en évidence des modifications non consultées). Peut-être s'agit-il de modifications par des bots, masquées par défaut ? Ou alors des modifications trop anciennes pour être encore affichées ? Orlodrim (discuter) 25 novembre 2015 à 22:21 (CET)

Notification Orlodrim, merci pour l'aide. J'ai réussi à l'intégré dans mon code et il semblerait que cela fonctionne. Mais, j'ai toujours le problème avec le nombre de messages non lus, alors que les modifications des bots sont affichées ainsi que celles de wikidata. Même quand je désactive ces options, le bug demeure. Lepsyleon (discuter) 25 novembre 2015 à 22:43 (CET)
Notification Orlodrim, pour info, bug qui semble avoir disparu maintenant que je ne fais plus charger le brouillon de mon code javascript. Encore merci ! Cordialement. £e p$y £éon (discuter) 26 novembre 2015 à 12:12 (CET)
Bonjour Orlodrim. Je pense avoir trouvé la source du problème d'écart entre le nombre généré par le script et ce que je vois dans ma liste de suivi. En fait, il comptabilise les modifications apportées sur un article via wikidata, bien que celles-ci soient masquées dans ma liste de suivi. Sais tu comment faire pour que les modifications sous wikidata ne soient pas comptabilisées ? --Cordialement. £e p$y £éon (discuter) 27 novembre 2015 à 18:01 (CET)
Pas directement. Tu peux utiliser la fonction qui renvoie les articles de la liste de suivi qui satisfont certains critères et afficher le nombre d'éléments du résultat. La requête suivante renvoie les dernières modifications non vues (au plus 500) ayant n'importe quel type sauf « external » (c'est-à-dire Wikidata), sans inclure ni le titre ni aucune autre propriété (vu que ça ne sert qu'à compter) : https://fr.wikipedia.org/w/api.php?action=query&list=watchlist&wltype=edit%7Cnew%7Clog&wlprop=&wlshow=unread&wllimit=500. Orlodrim (discuter) 27 novembre 2015 à 21:03 (CET)
non désolé, ça ne semble pas fonctionner car il m'inclut un article modifié via wikidata dans le total des non lus. Tant pis, je vais voir pour faire autrement. --Cordialement. £e p$y £éon (discuter) 29 novembre 2015 à 21:56 (CET)

fr-collapsible fr-collapsed[modifier le code]

Bonsoir, je vous signale la discussion sur Wikipédia:Le Bistro/30 janvier 2016#Bandeau d'admissibilité "hors normes" selon laquelle, il faudrait corriger le script java pour "fr-collapsible fr-collapsed" utilisé par {{admissibilité à vérifier}} et {{suppression}}. Notification Jacques Ballieu et Pic-Sou : ont tous deux rencontré des problèmes d'affichage alors que sur mon navigateur tout semble ok. Salutations, Orphée [||] 30 janvier 2016 à 21:26 (CET)

Bonjour, j'ai le même souci avec Firefox 38.4 (pas de souci sur Chrome par contre). Quelque soit les paramètres dans le modèle, la partie "suppléments" reste affichée, ce qui rend le bandeau énorme. Par exemple, sur Hippolyte Brun (d · h · j · · PàS), dans ma console d'inspection JS sur Firefox, j'ai l'erreur suivante :
"NS_ERROR_DOM_QUOTA_REACHED: Persistent storage maximum size reached" DOMException [NS_ERROR_DOM_QUOTA_REACHED: "Persistent storage maximum size reached"
code: 1014
nsresult: 0x805303f6
location: https://fr.wikipedia.org/w/load.php?debug=false&lang=fr&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=M%2BuGO6Lg:175]

. — H4stings d 1 février 2016 à 10:46 (CET)

[édit.] en réactivant le gadget "NewCollapsible", tout est revenu dans l'ordre. — H4stings d 1 février 2016 à 10:50 (CET)
Cette erreur est causée par le problème décrit sur T67364, ce n’est pas lié à une absence d’exécution de gadget (en général…) — bonnes contributions, Ltrlg (discuter), le 1 février 2016 à 15:54 (CET)

Je commence à me lasser de ces problèmes récurrents à cause de la gestion par gadget. L’intégrer au common.js, même si moins pratique à gérer, les éviterait. Des avis ? — bonnes contributions, Ltrlg (discuter), le 1 février 2016 à 15:54 (CET)

Anniversaires du jour[modifier le code]

Bonjour à tous,

Notification Dr Brains m'avait créé il y a quelques temps un script affichant les anniversaires du jour à l'entrée de Wikipédia, mais il semble ne plus fonctionner. Quelqu'un pourrait le corriger ?

Merci et bon dimanche, — Superjuju10 [Aubline à votre disposition], le 8 mai 2016 à 10:35 (CEST)

Notification Superjuju10 : je peux regarder, il faudrait juste que tu me précises où ça apparaissait exactement ? Prométhée (discuter) 8 mai 2016 à 14:34 (CEST)
En haut de la page, derrière les onglets « Lire », « Modifier le code », etc mais devant le titre de la page. — Superjuju10 [Aubline à votre disposition], le 8 mai 2016 à 14:36 (CEST)
Sur Utilisateur:Prométhée/test.js, j'ai réussi à récupérer le bandeau. Après pas sûr que le lien de remise a zéro fonctionne comme avant. Prométhée (discuter) 8 mai 2016 à 17:43 (CEST)
Notification Prométhée Tout semble marcher. Merci à toi SourireSuperjuju10 [Aubline à votre disposition], le 8 mai 2016 à 23:35 (CEST)

Affichage des modifications Wikidata dans la liste de suivi (groupée par page)[modifier le code]

Bonjour bonjour. Il n'a pas du échapper à la plupart d'entre vous les tensions autour de Wikidata. Un des reproches les plus récurrents est l'impossibilité d'afficher les modifications de Wikidata dans la liste de suivi de Wikipédia, dès que cette dernière est groupée par page. Il avait été question d'une évolution du logiciel Mediawiki, mais visiblement ce n'est pas prioritaire (le ticket n'a pas beaucoup bougé depuis un an...).

Or je me suis rendu compte hier qu'un contributeur russe avait réalisé un script qui corrige exactement ça : Ru:MediaWiki:Gadget-wefwatchlist.js. Sur WPru, c'est devenu un simple gadget à activer dans les préférences, qui marche visiblement plutôt bien (je l'ai testé pour vous là-bas). Du coup j'ai tenté de reprendre le truc pour ici. Le problème c'est que je suis une pipe en Javascript. Et, le développeur, Vlsergey (d · c · b), que j'ai interrogé sur sa Pdd russe, n'a pas donné de nouvelles depuis février. J'ai peur qu'il ne faille donc pas trop compter sur lui…

Bref. J'ai copié le code sur meta et fait quelques bidouilles. Ca fonctionne en partie pour le transfert de la liste de suivi WP vers Wikidata (il y a un problème de limite à 300 pages, mais bon c'est accessoire). Par contre ça n'affiche rien du tout en retour dans la liste de suivi, alors que les éléments Wikidata semblent bien être récupérés (ma console JS sur Firefox indique juste « mal formé »…).

Certains partageraient-ils suffisamment mon enthousiasme pour ce script, susceptible de ramener paix et bonheur sur WPfr, pour y jeter un coup d'œil ? Pour info, il a un github associé, avec tous les gadgets dedans, mais je m'y perds un peu. Ce serait cool. Sourire Merci d'avance. — H4stings d 1 juin 2016 à 18:15 (CEST)

Ah, on dirait que ça marche. SourireH4stings d 2 juin 2016 à 00:09 (CEST)
Mon code est là : Utilisateur:H4stings/wef-watchlist.js. N'hésitez pas à le tester et à me faire des retours. S'il fait bien le taf, je suis preneur de votre expertise sur où et comment le mettre à disposition de tout un chacun (sur Projet:JavaScript/Liste des fonctions disponibles j'imagine, mais encore ?). — H4stings d 2 juin 2016 à 18:10 (CEST)

wgWikibaseItemId[modifier le code]

Hello. Question aux habitués du Javascript. Je souhaite récupérer le wgWikibaseItemId d'une page depuis son historique, mais ça ne fonctionne pas (la commande mw.config.get( 'wgWikibaseItemId' ) fonctionne depuis un article, mais renvoie null depuis l'historique du même article). Quelqu'un aurait un conseil / unbe idée ? Merci ! — H4stings d 4 juin 2016 à 10:51 (CEST)

C'est bon j'ai trouvé une fonction qui fait le truc dans les pages de code du cher vlsergey, j'en suis à récupérer l'historique de l'élément sur Wikidata avec l'API. Reste ensuite à afficher le résultat de façon lisible. A suivre... — H4stings d 4 juin 2016 à 15:36 (CEST)

Accès Wikidata dans gadget[modifier le code]

Notification H4stings : et tous : juste pour savoir parce que ça n'a pas l'air clair : en JS on ne peut pas appeler l'accès Lua à Wikidata (mw:Extension:Wikibase Client/Lua), par exemple le libellé à partir d'un élément Qxxx de modifs Wikidata en liste de suivi / historique ? — Oliv☮ Éppen hozzám? 8 juin 2016 à 16:29 (CEST)

A priori, le plus simple (mais pas le plus rapide...) sera d'appeler l'API Wikidata pour pouvoir remplacer les ID par les labels correspondants. Ça je peux faire en JS. — H4stings d 8 juin 2016 à 16:44 (CEST)

Défi[modifier le code]

Ô Grands Maîtres Goa'uld du code,

Pourriez-vous, à l'aide de vos doigts magiques, voir si Xpatrol.js, créé par le génialissime Arkanosis (mais qui semble un peu occupé en ce moment), nécessite une intervention de grande ampleur ou juste un petit point de suture pour que les demandes de purges d'historique soient de nouveau disponibles avec cet outil. Et si cela ne nécessite qu'un patch d'ampleur réduite, est-ce que vous pourriez voir si c'est dans vos cordes ? Sourire

Pour vous donner un peu plus envie de vous pencher dessus, l'outil est cassé depuis le 30 avril 2015 et l'activation des balises personnalisables dans les historiques. Ci-dessous le nombre de modifications par mois sur la page WP:DPH en 2015.

Merci d'avance, — Mattho69 me joindre 28 juin 2016 à 17:16 (CEST)

Je me suis penché là dessus, ça devrait déjà aller mieux. On était clairement du côté « point de suture ». (pas implémenté le support pour le funeste Flow, c'est probablement tout simple à faire, mais je vous laisse gérer ce truc infâme) – od†n ↗blah 29 juin 2016 à 04:10 (CEST)
Loués soient les Oris od†n. Merci SourireMattho69 me joindre 29 juin 2016 à 04:19 (CEST)
Merci Od1n ! Sourire
Et merci à toi aussi, Mattho69 Clin d'œilArkanosis 29 juin 2016 à 12:24 (CEST)

Projet:JavaScript/Notices/ListAllPortals[modifier le code]

Depuis quelques jours mon bot plante systématiquement sur une partie de MediaWiki:Gadget-ListAllPortals.js.

Cf cette édition : [2] par exemple.

Je n'ai pas d'erreur en console et rien ne semble avoir bougé dans le code. Une idée de ce qui pourrait faire planter ? Prométhée (discuter) 24 juillet 2016 à 11:39 (CEST)

Fait J'ai trouvé et corrigé le bug. De manière plus générale, ce gadget aurait besoin d'un ravalement, mais bon c'est loin d'être le seul, et du moment qu'il est fonctionnel… od†n ↗blah 24 juillet 2016 à 20:57 (CEST)
merci, difficile à voir comme changement. J'ai vu aussi des choses obsolètes mais ça demande du temps de faire des modifs... Prométhée (discuter) 24 juillet 2016 à 21:04 (CEST)

tufte.css[modifier le code]

ça fait longtemps que je me dis que les réflexions d'Edward Tufte sur la mise en page sont très intéressantes et que ce serait génial de pouvoir adapter ces principes à Wikipedia. Je ne suis pas développeur web et j'ai donc tenté une adaptation sauvage de la css Tufte (source). Vous pouvez faire un test rapide en copiant collant : Utilisateur:PAC2/tufte.css dans votre Utilisateur:yourusername/common.css. Le résultat pour le texte me semble très intéressant : - la largeur du texte est réduite (et donc plus facile à lire) - la police est élégante - les liens soulignés sont élégants - les images de droite sont à côté du texte, pas intercalées dedans

Par contre, il y aurait un peu de boulot pour faire en sorte que ce qu'il y a autour du texte (logo, sidebar, barre en haut) soit à peu près correct. Si ça intéresse quelqu'un, je serai intéressé pour qu'on y travaille ensemble. --PAC2 (discuter) 28 août 2016 à 22:35 (CEST)

MonobookToolbar  : Comment ajouter des boutons personnalisés ?[modifier le code]

Bonjour,

J'ai essayé toute sorte de manip pour ajouter des boutons personnalisés à l'aise de la MonobookToolbar et du script ForceMonobookToolbar activé mais sans succès.

En voici des exemples : https://fr.wikipedia.org/w/index.php?title=Utilisateur:Neiluj10/BàS.js&oldid=129485763, ou encore https://fr.wikipedia.org/wiki/Utilisateur:Superjuju10/WikiEditor.js.

Mais le plus étrange, c'est que même en recopiant en entier un script (par ex : MediaWiki:gadget-MonobookToolbarPatrouille.js sur mon bac à sable (bien importé dans mon common.js ^^), cela ne marche pas également !

Bug ou autre chose ?

Merci. Amicalement, — Le stagiaire de la Aubline [J'ai encore frappé ?], le 17 septembre 2016 à 14:18 (CEST)

Notification Superjuju10 :
Bonjour,
J'ai complété Aide:Personnaliser l'interface#Ajouter des boutons à ma barre de modifications. Je crois avoir réussi à trouver une méthode qui marche pour chaque cas possible (ce sera la deuxième ou la troisième méthode pour la barre d'outils classique).
Orlodrim (discuter) 9 octobre 2016 à 19:46 (CEST)

API : token[modifier le code]

Bonjour, lorsque je tente de récupérer un jeton (token) via l'API de Wikidata, j'obtiens l'erreur : Tokens may not be obtained when the same-origin policy is not applied. Je ne comprends pas, c'est-ce pas le rôle du paramètre type=csrf justement ? Merci pour votre aide. R [CQ, ici W9GFO] 22 septembre 2016 à 17:36 (CEST)

Ça semble fonctionner en retirant le paramètre &callback=?. od†n ↗blah 22 septembre 2016 à 19:59 (CEST)
J'ai pourtant essayé, je vais retenter ma chance... R [CQ, ici W9GFO] 22 septembre 2016 à 20:18 (CEST) EDIT : c'est bien ce qui me semblait : XMLHttpRequest cannot load https://www.wikidata.org/w/api.php?format=json&action=query&meta=tokens&type=csrf. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://fr.wikipedia.org' is therefore not allowed access. R [CQ, ici W9GFO] 22 septembre 2016 à 20:26 (CEST)
Si tu veux faire des requêtes sur Wikidata depuis une page de Wikipédia, regarde du côté de mw:Manual:CORS. Orlodrim (discuter) 22 septembre 2016 à 20:19 (CEST)
Merci Orlodrim, je vais jeter un œil. R [CQ, ici W9GFO] 22 septembre 2016 à 20:26 (CEST) EDIT : en effet, ça tout de suite mieux, d'où venait le problème ça restera un mystère ! R [CQ, ici W9GFO] 22 septembre 2016 à 20:35 (CEST)
Ok, donc pour l'explication il fallait supprimer le callback=? et ajouter origin=https://fr.wikipedia.org :-) R [CQ, ici W9GFO] 22 septembre 2016 à 20:44 (CEST)
Si restes à $.ajax, ajoute xhrFields: {withCredentials: true}, sinon tu auras un token d'utilisateur déconnecté (du genre "+\") et tu feras des éditions sous IP. Orlodrim (discuter) 22 septembre 2016 à 20:50 (CEST)

Gadget BandeauxPortails[modifier le code]

On me signale sur ma page de discussion une incohérence concernant l'ancien portail "Montagne bourbonnaise" (supprimé en 2014) : il est toujours proposé par le gadget.

Bonjour,
J'ai vu ICI que vous indiquiez que le portail n'existait plus. Mais il y a encore un logo le représentant et il est proposé lorsque l'on utilise l'outil de modification de bandeaux. Est-ce possible de le supprimer intégralement pour ne pas induire en erreur ?
Cordialement.
Nezdek (discuter) 23 septembre 2016 à 20:12 (CEST)

Quelqu'un peut-il faire une mise à jour de la liste à laquelle se réfère le gadget ? Merci d'avance. Hadrianus (d) 23 septembre 2016 à 22:24 (CEST)

En faite c'est parce que le modèle {{Portail Montagne bourbonnaise}} existe. Le lien redirige actuellement vers Portail:Allier. Je vais faire une demande de suppression (j'ai aussi trouvé Projet:Montagne bourbonnaise qui n'est plus associé a un portail). Prométhée (discuter) 23 septembre 2016 à 22:29 (CEST)
Merci beaucoup. Hadrianus (d) 24 septembre 2016 à 00:01 (CEST) 

Mise à jour gadget newCollapsible[modifier le code]

Bonjour, le gadget newCollapsible (doc, définition, js, css) (activé par défaut pour tous les utilisateurs…) aurait besoin d'être mis à jour. Le warning JavaScript suivant se produit actuellement :

Gadget "newCollapsible" styles loaded twice. Migrate to type=general. See <https://phabricator.wikimedia.org/T42284>.

Mais a priori, la résolution de ce problème ne semble pas consister à migrer vers "type=general". Ce gadget ajoute du CSS qui concerne aussi l'affichage avec JavaScript désactivé. Donc si j'ai bien compris, il faudrait séparer en 2 gadgets… Consulter notamment mw:ResourceLoader/Migration guide (users)#Gadget type.
De manière plus générale, ce code semble bien délaissé… Depuis le temps, il n'est toujours pas utilisé pour les palettes, et il a accumulé quatre ans et demi de retard sur le code collapsible natif de mediawiki…
od†n ↗blah 19 novembre 2016 à 20:41 (CET)

J'ai traité les warnings, par contre il reste le gros du problème, à savoir qu'il faudrait faire disparaître ce gadget. od†n ↗blah 19 avril 2017 à 23:59 (CEST)
Notification Od1n : est-ce qu'il y a un rapport avec la demande d'IP plus bas #Palettes sur la version mobile ? — Oliv☮ Éppen hozzám? 20 avril 2017 à 07:57 (CEST)
Non, le newCollapsible fonctionne sur des classes différentes, e.g. .fr-collapsible, .palette, autrement dit il est appliqué uniquement dans les articles/modèles qui utilisent spécifiquement ces classes. od†n ↗blah 20 avril 2017 à 09:32 (CEST)

AddPortlet et autres questions de débutant[modifier le code]

J'essaie de personnaliser mon interface et notamment d'ajouter des liens dans le menu de gauche vers Reasonator, Pageviews, etc.

  • Je voudrais créer une nouvelle section qui pourrait s'appeler quelque chose comme "Stats". Existe-t-il une fonction du type mw.util.addPortletLink() qui permettrait de créer cette nouvelle section dans le menu de gauche ?
  • Je voudrais supprimer des liens que je n'utilise pas dans le menu de gauche. Par exemple, le lien vers contact ou le lien vers Article au hasard ou même toute la section "Contribuer" que je n'utilise jamais. Existe-t-il une fonction mw.util.hide() pour supprimer des liens dans le menu de gauche ?
  • Plus généralement, où se trouve la doc pour la bibliothèque de fonction mw.util, etc ?

--PAC2 (discuter) 31 décembre 2016 à 19:20 (CET)

  • À ma connaissance non, mais cela peut se faire facilement manuellement, en reprenant la structure des autres sections (en prenant soin de ne pas recopier les ids, bien entendu).
  • Le mieux est d'utiliser du CSS perso, en ciblant les ids des éléments indésirables.
  • Bonne lecture : mw:ResourceLoader/Modules et API Documentation. Il est bon de consulter aussi les codes des modules, accessibles avec les liens « view source » dans la documentation API, qui apparaissent au survol à droite.
od†n ↗blah 8 février 2017 à 20:28 (CET)

Mise à jour gadget ExternalSearch[modifier le code]

Bonjour, sur les pages de recherche, les liens « Recherche interne », « Exalead », « Google », etc. sont mal positionnés depuis quelques temps.

Cela est dû à un changement récent de l'apparence de la boîte de recherche, et le gadget ExternalSearch (activé par défaut) aurait besoin d'être mis à jour.

À première vue, on est un peu obligé de copier le margin-top (1.640625em…) du .oo-ui-fieldLayout… ce qui me gonfle, c'est qu'au moindre changement futur du DOM le gadget est bon à encore devoir mettre à jour…

od†n ↗blah 8 février 2017 à 15:00 (CET)

Avant, les options de recherche étaient renvoyées à la ligne. Elles ne le sont plus car .oo-ui-actionFieldLayout flotte à gauche. Avec #mw-search-top-table div.oo-ui-actionFieldLayout { float: none; }, c'est plus joli.
Orlodrim (discuter) 8 février 2017 à 17:53 (CET)
Possible en effet, et surtout sur pas mal d'écrans il n'y a pas assez de place pour faire tenir ces options sans retour à la ligne. Du coup le correctif devrait être plus simple que je ne pensais. od†n ↗blah 8 février 2017 à 18:19 (CET)
Fait Script mis à jour. od†n ↗blah 8 février 2017 à 20:14 (CET)

Gadget tooltipRef : module déprécié jquery.ui.position[modifier le code]

Bonjour,

Le gadget tooltipRef (code, css, documentation) produit à ce jour cet avertissement JavaScript : « This page is using the deprecated ResourceLoader module "jquery.ui.position". ». Refs phab:T142418, gerrit:302732. Le module en question est utilisé depuis cette modif.

J'avais fait quelques essais avec mw:OOjs UI/Widgets/Popups, mais c'était compliqué et le résultat était vraiment pourri. De toute façon ce qui nous intéresse ce n'est pas la création d'un popup, mais seulement le positionnement d'un élément déjà créé. Ping Orlodrim, si jamais tu as la solution dans un tiroir.

od†n ↗blah 7 mars 2017 à 16:06 (CET)

J'avais fait le changement pour résoudre un problème d'affichage dans Chrome (Discussion utilisateur:Orlodrim/Archive 19#Projet:JavaScript/Notices/refErrors 2).
en:MediaWiki:Gadget-ReferenceTooltips.js semble marcher sans utiliser jquery UI.
Orlodrim (discuter) 7 mars 2017 à 20:09 (CET)
J'ai mis en place une première version, à première vue cela fonctionne, même si je ne suis pas pleinement satisfait. En particulier car du calcul de positionnement se base sur les dimensions du tooltip, obtenues dynamiquement, ce qui nécessite que le CSS soit déjà chargé, et que le tooltip soit préalablement visible.
Aussi quelques bugs, déjà présents dans la version précédente. Un majeur et un mineur :
  • lorsqu'un tooltip est affiché et que l'on redimensionne ensuite la fenêtre, le tooltip se retrouve aux quatre vents.
  • pendant qu'un tooltip est affiché, un espacement vide est présent tout en bas de la page.
Donc au final, cela semble fonctionner aussi bien que la version précédente, mais sans la dépendance dépréciée jquery.ui.position. od†n ↗blah 8 mars 2017 à 18:39 (CET)

Gadget OpenStreetMap : modules jquery.ui dépréciés[modifier le code]

Le gadget MediaWiki:Gadget-osm.js (définition) (activé par défaut !) utilise des modules jquery.ui dépréciés et produit des avertissements JavaScript. od†n ↗blah 7 mars 2017 à 19:02 (CET)

Relooking de printemps[modifier le code]

Hello,

Sur une remarque de 0x010C, j'ai mis à jour le design des pages du projet (sur Projet:JavaScript/intro et Projet:JavaScript/Cadre), car il commençait à vieillir un peu — enfin, c'est subjectif, évidemment. J'ai proposé une couleur qui représente le projet, mais on peut très bien la changer Sourire.

Amicalement, — Jules Discuter 27 mars 2017 à 00:15 (CEST)

Palettes sur la version mobile[modifier le code]

Est-ce qu'un jour les palettes déroulantes verront le jour sur la version mobile ? Car celles-ci amélioreraient le confort d'utilisation notamment sur l'application Wikipédia ou bien même sur un navigateur mobile. Serait-il possible d'avoir cette fonctionnalité qui est indispensable pour parcourir les articles liés à une page ?  109.223.24.37 (discuter) 19 avril 2017 à 12:41 (CEST)

Bonsoir, il s’agit d’une demande formulée à WP:DIMS qui est en attente depuis le 24 août 2016. --FDo64 (discuter) 21 avril 2017 à 22:56 (CEST)

Petit code perso pour amélioration ergonomie des palettes[modifier le code]

Salut à tous, alors ce soir j'ai fait une petiteuh vidéo un petit script, pour améliorer le confort d'utilisation des palettes de navigation. (vous savez, ces boîtes plus importantes que les articles et qui sont affichées seulement sur les vrais ordinateurs, et pas sur les game boy)

Donc voilà le code en question. Ça permet de dérouler/enrouler les palettes de navigation en cliquant n'importe où sur l'entête. Des fois que ça vous plaise aussi.

od†n ↗blah 19 mai 2017 à 19:25 (CEST)

sajax_init_object[modifier le code]

Bonjour, un petit message pour rappeler que le code ajax "pré-jquery", déprécié en 2012, est supprimé depuis 2015. On a quelques dizaines de pages qui utilisent encore ce code et qui sont donc cassées.

od†n ↗blah 22 mai 2017 à 07:38 (CEST)

Je vais repasser sur les pages d'aides du projet, dont beaucoup contiennent encore des mentions d'ajax pré-jquery (voir des paragraphes entiers (voir entièrement centré dessus)) et les réécrire selon les bonnes pratiques actuelles. — 0x010C ~discuter~ 1 juin 2017 à 13:23 (CEST)

Demande légitime[modifier le code]

Bonjour à tous et à toutes !
Nous souhaiterons que vous rendiez ces gadgets compatibles avec le nouveau mode de wikitexte :

  1. La compatibilité du gadget DotsSyntaxHighlighter au nouveau mode de wikitexte actuellement en bêta
  2. La compatibilité du gadget Quick Preview au nouveau mode de wikitexte actuellement en bêta

J'espère que vous pourrez rendre cela possible. — Sourire Menthe à l'eau - 7 juin 2017 à 13:23 (CEST)