Filtre de colonnes + panneau de détail d'une entrée (onglet Données)
Un objet avec beaucoup de champs rendait le tableau "Données enregistrées" illisible (toutes les colonnes serrées sur une ligne, valeurs tronquées) — deux ajouts pour compenser : 1) "🔧 Colonnes" : menu déroulant (une case à cocher par champ, toutes cochées par défaut) au-dessus du tableau — décocher un champ masque sa colonne (th + td, via [data-col]) sans reconstruire le tableau. Un seul menu ouvert à la fois, fermé au clic ailleurs sur la page. 2) 👁️ par ligne : ouvre un panneau de détail (déplaçable/redimensionnable/ plein écran par défaut, comme les autres) listant TOUS les champs de cette entrée, un par ligne, valeur complète non tronquée — reprend le style .rowDetailField/.rowDetailLabel/.rowDetailValue de l'ancienne modale Bulma de data_list.html (retirée, mais ce CSS ne dépendait pas du template et a été gardé). Un seul panneau PAR OBJET (pas par ligne) : son contenu est reconstruit à l'ouverture en lisant en direct la ligne du tableau déjà affiché (via [data-row-id] sur chaque <tr>) — reflète donc aussi une modification tout juste saisie mais pas encore "Enregistrer"ée, sans aller-retour serveur. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
943bf265de
commit
b21f56e364
+19
-2
@@ -78,8 +78,9 @@ button.danger{ color:var(--danger); border-color:rgba(226,104,95,.4); }
|
||||
.dataTable td{ max-width:220px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
||||
|
||||
/* ---------- Détail d'une entrée (bouton 👁️) ---------- */
|
||||
/* Contenu de la modale Bulma (.modal/.modal-card, voir data_list.html) —
|
||||
affiche chaque champ en entier, sans troncature. */
|
||||
/* Contenu du panneau de détail (voir openRowDetailPanel() dans
|
||||
game_dashboard.html) — affiche chaque champ en entier, sans troncature,
|
||||
contrairement au tableau dense qui les tronque. */
|
||||
.rowDetailField{ padding:10px 0; border-bottom:1px solid var(--border); }
|
||||
.rowDetailField:last-child{ border-bottom:none; }
|
||||
.rowDetailLabel{ font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.05em; margin-bottom:4px; }
|
||||
@@ -535,3 +536,19 @@ code{ background:var(--panel2); border:1px solid var(--border); border-radius:4p
|
||||
.dashCreateBar{ display:flex; gap:8px; align-items:center; margin-bottom:12px; padding:10px; border:1px solid var(--border); border-radius:8px; background:var(--panel); }
|
||||
.dashCreateBar input, .dashCreateBar select{ width:auto; flex:1 1 160px; }
|
||||
.dashDangerZone{ margin-top:28px; }
|
||||
|
||||
/* ---------- Filtre de colonnes (onglet Données, game_dashboard.html) ---------- */
|
||||
/* Menu déroulant compact sous le bouton "🔧 Colonnes" — un objet avec
|
||||
beaucoup de champs rend le tableau illisible, ce menu permet d'en
|
||||
masquer certains (voir toggleDataColumn() : agit directement sur
|
||||
[data-col] plutôt que de reconstruire le tableau). */
|
||||
.columnFilterWrap{ position:relative; display:inline-block; }
|
||||
.columnFilterMenu{
|
||||
position:absolute; top:100%; left:0; margin-top:4px; z-index:70;
|
||||
background:var(--panel); border:1px solid var(--border); border-radius:8px;
|
||||
padding:8px; box-shadow:0 12px 40px rgba(0,0,0,.55);
|
||||
display:flex; flex-direction:column; gap:2px; min-width:180px; max-height:280px; overflow-y:auto;
|
||||
}
|
||||
.columnFilterMenu.hidden{ display:none; }
|
||||
.columnFilterOption{ display:flex; align-items:center; gap:6px; padding:4px 6px; border-radius:4px; font-size:12.5px; white-space:nowrap; }
|
||||
.columnFilterOption:hover{ background:var(--panel2); }
|
||||
|
||||
Reference in New Issue
Block a user