Dotclear

Ticket #1452 (closed defect: fixed)

Opened 10 years ago

Last modified 10 years ago

Les ancres sur les onglets ne marche pas partout

Reported by: lipki Owned by: lipki+nikrou
Priority: normal Milestone: 2.5.3
Component: module:core Version: 2.5
Severity: normal Keywords:
Cc:

Description

?tab="truc"&#truc

pas d'autres infos.

Change History

comment:1 Changed 10 years ago by lipki

C'est quoi le principe ? si on met en # l'id du div que représente l'onglet, on est sensé switcher ?

Dans ce cas je ne trouve aucun morceaux de code sensé faire ça. Mais j'ai fait un patch.

 https://bitbucket.org/dotclear/dotclear/pull-request/37/ticket-1452

j'utilise onhashchange qui n'est pas bien supporter par d'ancien navigateur.

comment:2 Changed 10 years ago by franck

  • Owner changed from team to akewea

comment:3 Changed 10 years ago by lipki

Alors :

Suite à un commentaire sur IRC, je me suis rendu compte que je n'avais pas vraiment compris la demande (faut-dire la description est courte).

Donc apparemment le but (logique) est de pouvoir accéder aux onglet indépendamment avec un lien unique. Et accessoirement de pouvoir trouver facilement le lien de chaque onglet indépendamment.

On peux détecter le changement de # dans l'url via "onhashchange" pour les navigateurs récent, et via un plugin jQuery "hashchange" pour les vieux ie 6 et 7. (mais ce qui suis concerne tout les navigateurs.)

Pour récupérer le lien on à deux possibilités, laisser le comportement normal des liens qui compose les onglets. Ou modifier l'URL en JavaScript? en attrapant le clic sur les onglets.

Sachant que l'on attrape déjà le clic sur l'onglet, pour switcher le contenu de la page.

Si on garde le comportement actuel en ajoutant le (on)hashchange, on ce retrouve avec un comportement redondant.

  • 1 Le clic est attrapé, le javascript switch la page.
  • 2 L'url change
  • 3 Le hashchange switch la page :/

C'est pas gênant, on switch deux fois vers le même onglet mais c'est pas terrible et ça peux causer des erreurs invisible aujourd'hui.

Du coup je propose de supprimer le comportement actuel qui attrape les clics sur les onglets. De garder le comportement basique d'une ancre.

  • 1 L'url change
  • 2 Le hashchange switch la page.

Mais du coup le switchage d'onglet qui fonctionne très bien aujourd'hui dépendra de onhashchange, et du plugin jQuery hashchange.

Ce sera plus clair avec le code :  https://bitbucket.org/lipki/dotclear/pull-request/6/ticket-1452/diff

comment:4 Changed 10 years ago by bruno

Quitte à partir sur un truc jquery en plus, autant tout de suite remplacer le jquery.pagetab.js par les tabs de jquery-ui, qui supportent les ancres...

cf.  http://jqueryui.com/tabs

comment:5 Changed 10 years ago by lipki

Je ne trouve pas d'exemple ou les tabs modifie l'url comme une ancre..
J'ai peut-être mal chercher.

comment:6 Changed 10 years ago by bruno

Pourquoi vouloir modifier l'URL ? Si tu vas sur  http://jqueryui.com/tabs/#tabs-2, ça pointe bien vers le 2e onglet.

comment:7 Changed 10 years ago by lipki

Pour pouvoir faire des signer, modifier l'historique, permettre de copier l'URL pour la donner à quelqu'un ou facilité le débogage sur le forum.

Enfin tout ce qui fait l'avantage d'un URL modifier.

(Il ne prend pas en compte la modification de l'URL à la main. C'est un détail ?)

Après je suis plutôt pour profiter des avantages de jQuery Ui s'il répond aux besoins et peut-être que l'on peux faire des modifs pour que ça marche comme décrit plus haut.

comment:8 Changed 10 years ago by franck

  • Owner changed from akewea to lipki+nikrou

comment:9 Changed 10 years ago by Franck Paul <carnet.franck.paul@…>

  • Status changed from new to closed
  • Resolution set to fixed

(In [81665c0f2d15]) Merged in lipki/dotclear/Ticket #1452 (pull request #70) - Fixes #1452

comment:10 Changed 10 years ago by Franck Paul <carnet.franck.paul@…>

(In [b0df245846d5]) Merged in lipki/dotclear/Ticket #1452 2.5 (pull request #75) - addresses #1452

comment:11 Changed 10 years ago by Franck Paul <carnet.franck.paul@…>

(In [768f2c0b6b0e]) Merged in lipki/dotclear/Ticket #1452 (pull request #76) - addresses #1452

Note: See TracTickets for help on using tickets.

Sites map