developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.
Opened 10 years ago
Closed 6 years ago
#1347 closed enhancement (fixed)
jControllerDaoCrud - Ajout de la possibilité de modifier l'ordre d'apparition des résultats
Reported by: | brunto | Owned by: | laurentj |
---|---|---|---|
Priority: | normal | Milestone: | Jelix 1.7 |
Component: | jelix:controllers | Version: | trunk |
Severity: | normal | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Documentation needed: | no | |
Hosting Provider: | Php version: |
Description
Pouvoir classer l'ordre d'apparition des résultats en cliquant sur le titre de chaque colonne. A chaque clique l'ordre de la colonne passe de "asc" à "desc" puis à "null", ainsi de suite. L'ordre des cliques sur les titres est pris en compte.
Attachments (4)
Change History (11)
Changed 10 years ago by brunto
comment:1 Changed 10 years ago by brunto
- review set to review?
comment:2 Changed 10 years ago by laurentj
- Component changed from jelix to jelix:controllers
- review changed from review? to review-
le nom du dao n'est pas assez discriminant pour le stockage dans la session. On peut très bien avoir deux crud avec le même dao. il faut je pense plutôt utiliser module~controlleur.
+ if (array_key_exists($lo, $this->propertiesForListOrder)) { + if (isset($_SESSION['CRUD_LISTORDER'][$this->dao][$lo]) && $_SESSION['CRUD_LISTORDER'][$this->dao][$lo] == 'asc') + $_SESSION['CRUD_LISTORDER'][$this->dao][$lo] = 'desc'; + elseif (isset($_SESSION['CRUD_LISTORDER'][$this->dao][$lo]) && $_SESSION['CRUD_LISTORDER'][$this->dao][$lo] == 'desc') + unset($_SESSION['CRUD_LISTORDER'][$this->dao][$lo]); + else + $_SESSION['CRUD_LISTORDER'][$this->dao][$lo] = 'asc'; + }
ça manque de lisibilité. on pourrait passer par des variables temporaires pour éviter d'avoir à manipuler $_SESSION à toutes les lignes.
il y a une notice dans _indexSetConditions. tester l'existence de la variable de session. Il me semble qu'il y a moyen d'optimiser, de faire tout en une seule boucle.
Changed 10 years ago by laurentj
deuxième version du patch non corrigé, mais qui s'applique sans erreur et avec l'image incluse
comment:3 Changed 10 years ago by brunto
- review changed from review- to review?
- Modification pour le stockage dans la session en module~controlleur:dao utilisation de $this->_getAction($this->dao)
- Variable temporaire pour $_SESSION + allégement du code.
- Notice dans _indexSetConditions() corrigée.
Changed 10 years ago by brunto
comment:4 Changed 9 years ago by nesswaw
Bonjour,
Ce ticket est toujours d'actualité? J'aurais une solution simple à proposer...mais je ne sais pas faire de patch...
comment:5 Changed 9 years ago by brunto
Bonjour nesswaw,
Comme tu peux le voir, j'ai proposé un patch que tu peux trouver ci-dessus "jControllerDaoCrud-3.diff" Bien entendu libre à toi de proposer une solution.
Tu peux consulter la page suivante Proposer un patch afin de proposer ton patch.
comment:6 Changed 9 years ago by laurentj
- Owner set to laurentj
- review review? deleted
- Status changed from new to reviewing
comment:7 Changed 6 years ago by laurentj
- Milestone set to Jelix 1.7
- Resolution set to fixed
- Status changed from reviewing to closed
C'est intégré dans la branche 1.7 ;-)
https://github.com/jelix/jelix/commit/238be05e46bb71f8524fb33a2e3aa95a424694da
Icon order