Rend le tableau de bord du jeu plus compact, sobre et sans défilement de page
Réutilise le système déjà en place pour l'édition d'objet (body.objectEditBody
+ .content-objectEdit) : la page occupe exactement la hauteur de la fenêtre,
seules les deux colonnes défilent chacune de leur côté si besoin - plus la
page elle-même, qui ne doit jamais défiler.
Colonne de gauche ("Créer") : nouvelle nav à une ligne (.navRow/.navList,
icône + libellé, sous-titre en info-bulle) plutôt que des cartes à deux
lignes - plus dense, plus sobre.
Colonne de droite ("Objets définis") : remplace les cartes par le tableau
compact à en-tête collant déjà utilisé pour les champs d'un objet
(.fieldsTable) - format nettement plus adapté à beaucoup de lignes.
Réduit aussi le padding par défaut de .listRow/.dangerZone (encore utilisés
par la page Variables), dans le même esprit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
20ef86e039
commit
ac0f003663
@@ -1,6 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ game.name }} — Forge Engine{% endblock %}
|
||||
{% block content_class %}content-wide{% endblock %}
|
||||
{% block content_class %}content-wide content-objectEdit{% endblock %}
|
||||
{% block body_class %}objectEditBody{% endblock %}
|
||||
{% block breadcrumb %}<li class="is-active"><a>{{ game.name }}</a></li>{% endblock %}
|
||||
{% block content %}
|
||||
<h1 class="title">{{ game.name }}</h1>
|
||||
@@ -9,27 +10,12 @@
|
||||
<div class="twoCol">
|
||||
<div class="colLeft">
|
||||
<h2>Créer</h2>
|
||||
<div class="list">
|
||||
<a href="{{ url_for('screens_list', slug=game.slug) }}" class="listRow">
|
||||
<div class="rowTitle">🖥️ Écrans du jeu</div>
|
||||
<div class="rowSub">Créer et enchaîner les écrans jouables (accueil, formulaires, scènes...)</div>
|
||||
</a>
|
||||
<a href="{{ url_for('element_types', slug=game.slug) }}" class="listRow">
|
||||
<div class="rowTitle">🧩 Éléments de jeu</div>
|
||||
<div class="rowSub">Catalogue réutilisable (Personnage, Outil, IA...)</div>
|
||||
</a>
|
||||
<a href="{{ url_for('game_variables', slug=game.slug) }}" class="listRow">
|
||||
<div class="rowTitle">🔧 Variables</div>
|
||||
<div class="rowSub">Valeurs globales au jeu entier (ex. porte ouverte, niveau débloqué...)</div>
|
||||
</a>
|
||||
<a href="{{ url_for('game_play', slug=game.slug) }}" target="_blank" class="listRow">
|
||||
<div class="rowTitle">▶️ Jouer</div>
|
||||
<div class="rowSub">Aperçu jouable du jeu</div>
|
||||
</a>
|
||||
<a href="{{ url_for('object_new', slug=game.slug) }}" class="listRow">
|
||||
<div class="rowTitle">🗂️ Objet</div>
|
||||
<div class="rowSub">Comme une table de base de données : un nom, et des champs typés</div>
|
||||
</a>
|
||||
<div class="navList">
|
||||
<a href="{{ url_for('screens_list', slug=game.slug) }}" class="navRow" title="Créer et enchaîner les écrans jouables">🖥️ Écrans du jeu</a>
|
||||
<a href="{{ url_for('element_types', slug=game.slug) }}" class="navRow" title="Catalogue réutilisable (Personnage, Outil, IA...)">🧩 Éléments de jeu</a>
|
||||
<a href="{{ url_for('game_variables', slug=game.slug) }}" class="navRow" title="Valeurs globales au jeu entier">🔧 Variables</a>
|
||||
<a href="{{ url_for('game_play', slug=game.slug) }}" target="_blank" class="navRow" title="Aperçu jouable du jeu">▶️ Jouer</a>
|
||||
<a href="{{ url_for('object_new', slug=game.slug) }}" class="navRow" title="Comme une table de base de données : un nom, et des champs typés">🗂️ Objet</a>
|
||||
</div>
|
||||
|
||||
<div class="dangerZone">
|
||||
@@ -51,18 +37,23 @@
|
||||
<div class="colRight">
|
||||
<h2>Objets définis</h2>
|
||||
{% if definitions %}
|
||||
<div class="list">
|
||||
{% for d in definitions %}
|
||||
<div class="listRow listRowFlex">
|
||||
<a href="{{ url_for('object_view', slug=game.slug, definition_id=d.id) }}" class="rowLink">
|
||||
<div class="rowTitle">{{ d.name }}</div>
|
||||
<div class="rowSub">table SQL : {{ d.table_name }}</div>
|
||||
</a>
|
||||
<div class="rowActions">
|
||||
<a class="button is-small" href="{{ url_for('object_edit', slug=game.slug, definition_id=d.id) }}" title="Modifier cet objet">✏️</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="fieldsTableWrap">
|
||||
<table class="table is-fullwidth is-hoverable fieldsTable">
|
||||
<thead>
|
||||
<tr><th>Nom</th><th>Table SQL</th><th></th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for d in definitions %}
|
||||
<tr>
|
||||
<td><a href="{{ url_for('object_view', slug=game.slug, definition_id=d.id) }}">{{ d.name }}</a></td>
|
||||
<td class="has-text-grey">{{ d.table_name }}</td>
|
||||
<td class="fieldsTableActions">
|
||||
<a class="button is-small" href="{{ url_for('object_edit', slug=game.slug, definition_id=d.id) }}" title="Modifier cet objet">✏️</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p class="hint">Aucun objet défini pour l'instant — un objet, c'est comme une table de base de données : un nom, et des champs typés.</p>
|
||||
|
||||
Reference in New Issue
Block a user