Export/import par campagne + espace de jeu (v2), fix du nombre de joueurs, et ergonomie de jeu
Export / import de contenu (format v2) - Export SÉLECTIF : on peut exporter une seule campagne (sa clôture : arcs → chapitres → scènes, PNJ, ennemis, catalogues, tables, système de jeu lié) au lieu de tout exporter. Options par export : inclure le lore, l'espace de jeu, les images. L'export global devient « Sauvegarde complète ». - ESPACE DE JEU désormais exporté/importé : parties (Playthrough), séances, journal, flags, progression de quêtes, et feuilles de perso (Character.playthroughId préservé au lieu d'être annulé). Remapping complet des références à l'import. - Format v2 rétro-compatible : un export v1 (sans section jeu) s'importe toujours (champs absents → null → traités comme vides). - Correction d'un bug latent : collectReferencedStorageKeys traitait les références d'images comme des clés de stockage alors que ce sont des IDs → les binaires d'images n'étaient en réalité pas embarqués dans le zip. Résolution ID → clé. - Images des Rooms d'une scène (illustration + plan) désormais collectées (elles étaient oubliées des deux collecteurs). - Endpoint : GET /api/admin/data/export?campaignId=&includeLore=&includePlay=&includeImages= ; écran « Sauvegarde des données » avec choix campagne + cases à cocher. - Tests : round-trip étendu au jeu + binaire image réel, export sélectif par campagne, import d'archive v1, et DataTransferController. Correction : nombre de joueurs non persisté - playerCount était saisi à la création mais jeté par le backend (absent du domaine/entité/DTO/mapper) → affichage « 0 joueurs ». Ajouté sur toute la stack + migration V7 (défaut 4 pour les campagnes existantes) + intégré à l'export. Ergonomie de l'espace de jeu et des listes - Description de campagne repliable (clamp 3 lignes + « Voir plus / moins »). - Dossiers repliables (chevron + compteur) dans les listes PNJ et Ennemis, sur la page campagne ET les pages dédiées. - Renommage en place des parties (« Mes parties ») via un crayon. - Panneau de session : onglets sur 2 rangs (« Scènes » n'est plus rogné) ; scènes triées par ordre manuel ; arcs repliables (repliés par défaut) ; PJ/PNJ repliables et PNJ regroupés par dossier.
This commit is contained in:
@@ -38,6 +38,18 @@
|
||||
flex-direction: column;
|
||||
gap: 0.15rem;
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.playthrough-rename-input {
|
||||
width: 100%;
|
||||
font-weight: 600;
|
||||
font-size: 0.95rem;
|
||||
padding: 0.15rem 0.4rem;
|
||||
border: 1px solid var(--color-primary, #2c6cd6);
|
||||
border-radius: 6px;
|
||||
background: var(--color-surface, #fff);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.playthrough-name {
|
||||
@@ -85,7 +97,29 @@
|
||||
color: #6b7280;
|
||||
font-size: 0.95rem;
|
||||
line-height: 1.6;
|
||||
margin-bottom: 0.4rem;
|
||||
white-space: pre-wrap;
|
||||
|
||||
// Replié : on borne à 3 lignes avec ellipse ; déplié = texte intégral.
|
||||
&--clamped {
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.desc-toggle {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin-bottom: 1rem;
|
||||
color: #8a7bc8;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover { text-decoration: underline; }
|
||||
}
|
||||
|
||||
.meta {
|
||||
@@ -508,12 +542,25 @@
|
||||
|
||||
// En-tête de dossier dans la grille des PNJ (regroupement par dossier).
|
||||
.persona-folder {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
width: 100%;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
color: #8a7bc8;
|
||||
margin: 0.9rem 0 0.4rem;
|
||||
// En-tête de dossier cliquable (repli) : reset du <button>.
|
||||
background: none; border: none; padding: 0; cursor: pointer; text-align: left;
|
||||
|
||||
&:hover { color: #a594e0; }
|
||||
|
||||
.persona-folder-count {
|
||||
font-weight: 400; text-transform: none; letter-spacing: 0;
|
||||
color: #6b7280;
|
||||
}
|
||||
|
||||
&--none { color: #6b7280; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user