Discussion Poképédia:Gadget generations

De Poképédia
Aller à la navigation Aller à la recherche

Vote[modifier]

Ce vote va décider si le gadget va devenir activé par défaut, auquel cas tout le monde sera affecté par celui-ci, ou s'il restera désactivé par défaut comme aujourd'hui.
Début du vote : 29 avril 2017
Fin du vote : 14 mai 2017, soit deux semaines après.

Pour[modifier]

Contre[modifier]

Neutre[modifier]

Résultat[modifier]

Une grande majorité de vote pour et un seul neutre, proposition acceptée, le gadget est dès maintenant activé par défaut !
--XFusio (discussion) 14 mai 2017 à 19:41 (UTC)

Remarques[modifier]

Si vous avez une remarque, c'est l'endroit idéal pour en parler !

Problèmes[modifier]

Cette section sert à parler des bugs du gadget.

MediaWiki:Common.js inactif sur les infos ajoutées[modifier]

Les infos ajoutées par le gadget ne sont pas affectées par MediaWiki:Common.js. Autrement dit, les "HeadAnchors", les tableaux enroulables et les boutons afficher-masquer ne fonctionnent plus une fois chargés sur la page principale d'un Pokémon.
J'imagine qu'il suffit de recharger MediaWiki:Common.js à la fin du gadget pour corriger cela, mais ce n'est pas très optimal, donc en recherche d'une meilleure solution pour l'instant.
--X-Fusion (discussion) 29 avril 2017 à 21:11 (UTC)

Corrigé. --XFusio (discussion) 16 mai 2017 à 16:02 (UTC)

L'activation de l'éditeur visuel rend le sommaire moche quand on change de génération[modifier]

Bonjour,

J'ai activé l'éditeur visuel (c'est dans l'onglet Modification de Spécial:Préférences : décocher « Désactiver temporairement l’éditeur visuel tant qu’il est en version bêta »), et du coup, quand je change de génération, ou que je recharge la page et qu'une autre génération que les deux dernières est sélectionnée, j'ai des « [modifier | modifier le wikicode] » à la fin de chaque titre de section dans le sommaire. C'est très moche.

Je vois très bien le problème dans le code, c'est la ligne (vers le début) :

headings[i].name = $( headings[i] ).text().replace( "[modifier]", "" );

Ce n'est pas correct, il faut plutôt écrire :

headings[i].name = $( headings[i] ).find( '> .mw-headline' ).text();

Malheureusement, je n'ai pas les droits pour modifier moi-même.

Frigory (discussion) 4 juillet 2022 à 00:31 (UTC)

Ça a l'air de fonctionner de mon côté. Merci pour ton message ! --Matt.(discuter) 4 juillet 2022 à 08:22 (UTC)
Eh bien, quelle réactivité ! Merci ! — Frigory (discussion) 4 juillet 2022 à 19:42 (UTC)

Bogue de la section Stratégie[modifier]

Bonjour,

Je viens encore signaler un bogue de votre gadget. C’est que lorsqu’une section comportant le modèle Générations n’est pas remplacée lors du changement de génération, alors les évènements click s’accumulent sur les liens pour changer de génération. Je crois que ça n’arrive que pour les sections Stratégie.

Par exemple, allez à la section Stratégie de la page Celebi, et changez plusieurs fois de génération à l’aide du modèle qui se trouve à côté du titre de cette section, en ne choisissant que des générations précédant la n° 6 (pour lesquelles il n’y a pas de section Stratégie). Vous verrez dans l’onglet Réseau des outils de développement de votre navigateur web (qu’il faut avoir ouverts au préalable, en appuyant par exemple sur F12) que les chargements de la page « api.php » s’accumulent. Changez ainsi de génération une dizaine de fois (toujours dans la section Stratégie entre les générations 1 à 5) et vous verrez que ça va ramer. Certes, c’est pas quelque chose que les gens vont expérimenter souvent, mais ça reste un bogue.

Pour corriger ce bogue, je propose de remplacer la première occurrence de la ligne (en fait, c’est même la seule occurrence, puisque l’autre n’a pas autant d’indentation et n’a pas d’espace après le a) :

				$( '.permuter a ').click( function( e ) {

par :

				$( '.permuter a').off('click').click( function( e ) {

Cela dit, selon moi, le bogue est plutôt que la section Stratégie reste affichée alors qu’elle n’est pas dans la génération sélectionnée. Pourquoi laisser arbitrairement affichée la section Stratégie de la dernière génération sélectionnée qui en comporte ? Mais j’ai pas encore analysé suffisamment le code de votre gadget pour savoir comment modifier ça (franchement, il est mal codé, votre truc).

Frigory (discussion) 21 juillet 2022 à 14:53 (UTC)

En passant, j’en profite pour signaler un autre bogue (apparemment sans importance), c’est que les numéros des classes toclevel-* sont mal calculés, il manque un - 1. Ainsi, il faut remplacer :

						parent.find( '> ul' ).append( '<li class="toclevel-' + headings[i].level + ' tocsection-' + i + '"><a href="#' + headings[i].link + '"><span class="tocnumber">' + headings[i].number + '</span> <span class="toctext">' + headings[i].name + '</span></a></li>' );

par :

						parent.find( '> ul' ).append( '<li class="toclevel-' + (headings[i].level - 1) + ' tocsection-' + i + '"><a href="#' + headings[i].link + '"><span class="tocnumber">' + headings[i].number + '</span> <span class="toctext">' + headings[i].name + '</span></a></li>' );

Frigory (discussion) 21 juillet 2022 à 14:53 (UTC)

La section à partir de laquelle on change de génération s’en va parfois à l’autre bout de la page[modifier]

C’est encore moi. Le titre de cette section est exagéré, ce que je veux dire c’est que parfois, quand on change de génération, la section sur laquelle on l’a fait va en dehors de l’écran et c’est désagréable de devoir la retrouver à la main. Évidemment, cela survient surtout quand on change de génération depuis ou vers les deux dernières générations, puisque deux générations affichées à la fois prennent beaucoup plus de place qu’une seule génération, et donc ça change considérablement les positions des sections sur la page.

Je pense que ce problème doit être réglé. À votre place, je ferais ça en ajoutant une ligne du genre :

$(document).scrollTop($(bloc).offset().top);

juste après l’appel à createToc (avant le commentaire « Conserve en mémoire le dernier changement de génération effectué » ; d’ailleurs, ça sert à rien de mettre cette donnée dans une balise, une petite variable JavaScript aurait très bien fait l’affaire). Du coup, il faut passer le bloc en paramètre à la fonction generation.

Et s’il vous plait, condensez-moi vos conditions pour les appels à generation. Je parle de ça :

					if ( genApparente == genActuelle && gen != genApparente && gen != genApparente - 1 ) generation( gen );
					else if ( genApparente == genActuelle - 1 && gen != genApparente && gen != genActuelle ) generation( gen );
					else if ( gen != genApparente ) generation( gen );

À la place, il suffit d’écrire ça :

					if ( gen != genApparente && ( gen < genActuelle - 1 || genApparente < genActuelle - 1 ) ) {
						generation( gen, e.target );
					}

Frigory (discussion) 21 juillet 2022 à 15:39 (UTC)