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
Raccourcis [+]
WP:JS
P:JS

Javascript icon.svg

Projet JavaScript
Ce projet essaie de centraliser les fonctions JavaScript pour éviter la dispersion du code.


modifier

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


Monobook icon.svg
Personnaliser l'interface
Aide AideExemples
Aide Fonctions avancées
Aide Apparence vector
Wikimedia (en) User styles
CSS
page perso. common.css personnel
espace MediaWiki common.css
espace MediaWiki monobook.css commun
espace MediaWiki vector.css commun
(en) Catalogue of classes
Index des propriétés CSS2
JavaScript
page perso. common.js personnel
MediaWiki common.js commun
Projet Projet:JavaScript
Catégories Fonctions JavaScript
Cliquez ici pour purger le cache

Signer[modifier | 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 | 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 | 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 | 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 | modifier le code]

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

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

Tooltip[modifier | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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)