Skip to content

#1428 [List] fix: working column sort popover and invalid sortfield guard#1429

Merged
evarisk-kilyan merged 1 commit into
Evarisk:developfrom
evarisk-kilyan:fix/1428-list-sort-popover
Jun 30, 2026
Merged

#1428 [List] fix: working column sort popover and invalid sortfield guard#1429
evarisk-kilyan merged 1 commit into
Evarisk:developfrom
evarisk-kilyan:fix/1428-list-sort-popover

Conversation

@evarisk-kilyan

Copy link
Copy Markdown
Contributor

Contexte

Deux problèmes liés au tri par colonne des listes saturne :

  1. Les boutons « Trier de A à Z » / « Trier de Z à A » du popover de colonne ne fonctionnaient pas (reconstruction d'URL fragile par replace du sortorder sur le lien toggle).
  2. Sur la liste des contrôles, un sortfield pointant vers une colonne d'élément lié non triable (t.fk_product, disablesort) — resté dans l'URL ou la session « lastsearch » — faisait planter la requête (DB_ERROR_NOSUCHFIELD) avant le rendu, masquant toute la liste.

Changements

js/modules/filter.js

  • Tri reconstruit proprement depuis window.location (filtres/contexte préservés) : sortfield lu sur le vrai lien de tri de la colonne, sortorder forcé, page remis à 0, preventDefault/stopPropagation.
  • Options « Trier » grisées (comme « Grouper »/« Figer ») sur les colonnes non triables (disablesort, sans lien de tri) : pas de tri impossible proposé, donc aucune URL invalide générée.

core/tpl/list/objectfields_list_build_sql_select.tpl.php

  • Garde générique avant le ORDER BY : construction de l'ensemble des identifiants réellement produits par le SELECT (colonnes t.xxx, alias calculés, extrafields) et abandon de tout sortfield absent de cet ensemble.
  • La liste s'auto-répare : un sortfield invalide (URL/session périmée, signet) est purgé pour le reste de la page (formulaire + session) au lieu de planter. Protection valable pour toutes les listes saturne.

Vérifications

  • JSHint : aucune nouvelle erreur (préexistantes inchangées).
  • php -l OK ; test unitaire de la garde sur le SELECT réel du contrôle (DROP t.fk_product/t.fk_soc ; KEEP t.ref/t.date_creation/days_remaining_before_next_control/extrafields).
  • js/saturne.min.js non commité (compilé par la CI sur push develop).

Fichiers modifiés

  • js/modules/filter.js
  • core/tpl/list/objectfields_list_build_sql_select.tpl.php

Issue

Closes #1428

@evarisk-kilyan evarisk-kilyan merged commit 1176a98 into Evarisk:develop Jun 30, 2026
1 of 5 checks passed
@evarisk-kilyan evarisk-kilyan deleted the fix/1428-list-sort-popover branch June 30, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant