Finalize aappv2 data models migration

This commit is contained in:
2026-02-27 14:36:54 +01:00
parent 8735b7e4a4
commit c45837ea31
87 changed files with 10701 additions and 1225 deletions

View File

@@ -1,86 +1,73 @@
<form class="{{cssClass}} flexcol character-summary-container" autocomplete="off">
<div class="character-summary-container">
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-field item-name item-name-label-long">Nom</div>
{{#each config.attributs as |attr key|}}
<div class="item-field item-name-label-short">{{attr}}</div>
<div class="item-field item-name-label-short">{{attr}}</div>
{{/each}}
<div class="item-field item-name-label-short">Destin</div>
<div class="item-field item-name-label-short">Fluide</div>
<div class="item-field item-name-label-short">MPMB</div>
<div class="item-field item-name-label-short">MPMN</div>
</div>
<div class="item-field flex1 right"></div>
</li>
{{#each pcs as |pc key|}}
<li class="item flexrow" data-actor-id="{{pc.id}}">
<div class="item-field item-name item-name-label-long">
<a class="actor-open character-summary-rollable">{{pc.name}}</a>
</div>
{{#each pc.system.attributs as |attr key|}}
<div class="item-field flex2 item-name-label-short">
<a class="summary-roll character-summary-rollable" data-type="attribut" data-key="{{key}}">{{attr.value}}</a>
</div>
{{/each}}
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="destin" data-key="pointdestin">{{pc.system.pointdestin}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="fluide" data-key="fluide">{{pc.system.fluide}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmb" data-key="mpmb">{{pc.system.mpmb}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmn" data-key="mpmn">{{pc.system.mpmn}}</a>
</div>
</div>
</li>
{{/each}}
<li class="item flexrow item-header">
<div class="item-field item-name item-name-label-long">PNJs</div>
{{#each config.attributs as |attr key|}}
<div class="item-field flex2 item-name-label-short">attr</div>
{{/each}}
<div class="item-field flex2 item-name-label-short">Destin</div>
<div class="item-field flex2 item-name-label-short">Fluide</div>
<div class="item-field flex2 item-name-label-short">MPMB</div>
<div class="item-field flex2 item-name-label-short">MPMN</div>
<div class="item-field item-name item-name-label-long">
<a class="actor-open character-summary-rollable">{{pc.name}}</a>
</div>
</li>
{{#each npcs as |pc key|}}
<li class="item flexrow" data-actor-id="{{pc.id}}">
<div class="item-field item-name item-name-label-long">
<a class="actor-open character-summary-rollable">{{pc.name}}</a>
</div>
{{#each pc.system.attributs as |attr key|}}
<div class="item-field flex2 item-name-label-short">
<a class="summary-roll character-summary-rollable" data-type="attribute" data-key="{{key}}">{{attr.value}}</a>
</div>
{{/each}}
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="destin" data-key="pointdestin">{{pc.system.pointdestin}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="fluide" data-key="fluide">{{pc.system.fluide}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmb" data-key="mpmb">{{pc.system.mpmb}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmn" data-key="mpmn">{{pc.system.mpmn}}</a>
</div>
</div>
<div class="item-field flex1 right">
<a class="item-control actor-delete" title="{{localize "BOL.ui.delete"}}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{#each pc.system.attributs as |attr key|}}
<div class="item-field flex2 item-name-label-short">
<a class="summary-roll character-summary-rollable" data-type="attribut" data-key="{{key}}">{{attr.value}}</a>
</div>
{{/each}}
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="destin" data-key="pointdestin">{{pc.system.pointdestin}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="fluide" data-key="fluide">{{pc.system.fluide}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmb" data-key="mpmb">{{pc.system.mpmb}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmn" data-key="mpmn">{{pc.system.mpmn}}</a>
</div>
<div class="item-field flex1 right"></div>
</li>
{{/each}}
{{#each extras as |pc key|}}
<li class="item flexrow" data-actor-id="{{pc.id}}">
<div class="item-field item-name item-name-label-long">
<a class="actor-open character-summary-rollable">{{pc.name}}</a>
</div>
{{#each pc.system.attributs as |attr key|}}
<div class="item-field flex2 item-name-label-short">
<a class="summary-roll character-summary-rollable" data-type="attribut" data-key="{{key}}">{{attr.value}}</a>
</div>
{{/each}}
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="destin" data-key="pointdestin">{{pc.system.pointdestin}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="fluide" data-key="fluide">{{pc.system.fluide}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmb" data-key="mpmb">{{pc.system.mpmb}}</a>
</div>
<div class="item-field flex item-name-label-short">
<a class="summary-roll" data-type="mpmn" data-key="mpmn">{{pc.system.mpmn}}</a>
</div>
<div class="item-field flex1 right">
<a class="item-control actor-delete" title="Retirer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
</form>
</div>

View File

@@ -1,34 +1,37 @@
<form class="skill-roll-dialog">
<div class="skill-roll-dialog">
<header class="roll-dialog-header">
{{#if img}}
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
<img class="actor-icon" src="{{img}}" title="{{name}}" />
{{/if}}
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
<div class="dialog-roll-title">{{title}}</div>
</header>
<div class="flexcol">
<div class="flexrow">
<span class="roll-dialog-label">{{attr.label}} : </span>
<span class="roll-dialog-label">
{{attr.value}}
</span>
</div>
<div class="flexrow">
<span class="roll-dialog-label">Degré de la confrontation : </span>
<div class="dialog-separator"></div>
<div class="dialog-body">
<div class="dialog-attribute-row">
<span class="dialog-attr-label">{{attr.label}}</span>
<span class="dialog-attr-value">{{attr.value}}</span>
</div>
<div class="dialog-modifiers">
<div class="dialog-modifier-row">
<label class="dialog-modifier-label">Degré de la confrontation</label>
<select id="confrontationDegre" name="confrontationDegre">
{{selectOptions config.confrontationDegreOptions selected=confrontationDegre}}
</select>
</select>
</div>
<div class="flexrow">
<span class="roll-dialog-label">Modificateur de confrontation : </span>
<div class="dialog-modifier-row">
<label class="dialog-modifier-label">Modificateur de confrontation</label>
<select id="confrontationModif" name="confrontationModif">
{{selectOptions config.confrontationModifOptions selected=confrontationModif}}
</select>
</select>
</div>
</div>
</div>
</form>
</div>

View File

@@ -1,68 +1,67 @@
<form class="skill-roll-dialog">
<div class="skill-roll-dialog">
<header class="roll-dialog-header">
{{#if img}}
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
<img class="actor-icon" src="{{img}}" title="{{name}}" />
{{/if}}
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
<div class="dialog-roll-title">{{title}}</div>
</header>
<div class="flexcol">
<div class="dialog-separator"></div>
{{#if attr}}
<div class="flexrow">
<span class="roll-dialog-label">{{attr.label}} : </span>
<span class="roll-dialog-label">
<div class="dialog-body">
{{#if attr}}
<div class="dialog-attribute-row">
<span class="dialog-attr-label">{{attr.label}}</span>
<span class="dialog-attr-value">
{{attr.value}}
{{#if (eq attr.abbrev "physique")}}
{{#if phyMalus}}
({{phyMalus}})
{{/if}}
{{/if}}
{{#if (eq attr.abbrev "physique")}}{{#if phyMalus}} ({{phyMalus}}){{/if}}{{/if}}
</span>
</div>
{{/if}}
{{/if}}
<div class="flexcol">
<span class="roll-dialog-label">Rappel des élements biographiques : </span>
<ul class="ul-level1 item-list alternate-list">
{{#each elementsbio as |elem key|}}
<li class="item flexrow">
<span class="roll-dialog-label">{{elem.name}}</span>
</li>
{{/each}}
</ul>
</div>
{{#if elementsbio.length}}
<div class="dialog-section-title">Éléments biographiques</div>
<ul class="dialog-bio-list">
{{#each elementsbio as |elem|}}
<li>{{elem.name}}</li>
{{/each}}
</ul>
{{/if}}
<div class="flexrow">
<span class="roll-dialog-label">Bonus/Malus biographique : </span>
<div class="dialog-modifiers">
<div class="dialog-modifier-row">
<label class="dialog-modifier-label">Bonus/Malus biographique</label>
<select id="bonusMalusPerso" name="bonusMalusPerso">
{{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso valueAttr="value" labelAttr="label"}}
</select>
</div>
<div class="flexrow">
<span class="roll-dialog-label">Bonus/Malus de situation : </span>
<div class="dialog-modifier-row">
<label class="dialog-modifier-label">Bonus/Malus de situation</label>
<select id="bonusMalusSituation" name="bonusMalusSituation">
{{selectOptions config.bonusMalusPersoOptions selected=bonusMalusSituation valueAttr="value" labelAttr="label"}}
</select>
</div>
{{#if arme}}
<div class="flexrow">
<span class="roll-dialog-label">Défense : </span>
<select id="bonusMalusDef" name="bonusMalusDef">
{{selectOptions config.bonusMalusDefOptions selected=bonusMalusDef valueAttr="value" labelAttr="label"}}
</select>
</div>
<div class="dialog-modifier-row">
<label class="dialog-modifier-label">Défense</label>
<select id="bonusMalusDef" name="bonusMalusDef">
{{selectOptions config.bonusMalusDefOptions selected=bonusMalusDef valueAttr="value" labelAttr="label"}}
</select>
</div>
<div class="flexrow">
<span class="roll-dialog-label">Portée : </span>
<select id="bonusMalusPortee" name="bonusMalusPortee">
{{selectOptions config.bonusMalusPorteeOptions selected=bonusMalusPortee valueAttr="value" labelAttr="label"}}
</select>
</div>
<div class="dialog-modifier-row">
<label class="dialog-modifier-label">Portée</label>
<select id="bonusMalusPortee" name="bonusMalusPortee">
{{selectOptions config.bonusMalusPorteeOptions selected=bonusMalusPortee valueAttr="value" labelAttr="label"}}
</select>
</div>
{{/if}}
</div>
</div>
</form>
</div>

View File

@@ -1,72 +1,77 @@
<form class="skill-roll-dialog">
<header class="roll-dialog-header">
<h1 class="dialog-roll-title roll-dialog-header">Joueur : {{user.name}}</h1>
</header>
<div class="tirage-tarot-dialog">
<div class="flexcol">
{{!-- Sélection joueur ou attribution acteur --}}
{{#if (eq state "select-player")}}
<div class="tirage-select-row">
<label class="tirage-select-label">Sélectionnez le joueur pour le tirage</label>
<select id="playerId" name="playerId" class="tirage-select">
<option value="none">— choisir —</option>
{{#each players as |player id|}}
<option value="{{player._id}}">{{player.name}}</option>
{{/each}}
</select>
</div>
{{/if}}
{{#if (eq state "select-player")}}
<div class="flexrow">
<span>Sélectionnez le joueur pour faire le tirage</span>
<select id="playerId" name="playerId">
{{#select playerId}}
<option value="none"></option>
{{#each players as |player id|}}
<option value="{{player._id}}">{{player.name}}</option>
{{/each}}
{{/select}}
</select>
</div>
{{/if}}
{{#if (eq state "attribute-to-actor")}}
<div class="tirage-select-row tirage-attribute-row">
<label class="tirage-select-label">Attribuer les tarots à un personnage</label>
<select id="actorId" name="actorId" class="tirage-select">
<option value="none">— choisir —</option>
{{#each actors as |actor id|}}
<option value="{{actor._id}}">{{actor.name}}</option>
{{/each}}
</select>
</div>
{{/if}}
{{#if (eq state "attribute-to-actor")}}
<div class="flexrow">
<span>Sélectionnez l'acteur pour lui attribuer les tarots</span>
<select id="actorId" name="actorId">
{{#select actorId}}
<option value="none"></option>
{{#each actors as |actor id|}}
<option value="{{actor._id}}">{{actor.name}}</option>
{{/each}}
{{/select}}
</select>
</div>
{{/if}}
<div class="flexcol">
<span><h2>Main du joueur : </h2></span>
<div class="flexrow">
{{#each cards as |card index|}}
<div class="flexcol">
<div class="tarot-fixed-width flexcol">
<img class="tarot-fixed-width {{#if card.system.ispositif}} {{else}}flip-tarot{{/if}}" src="{{card.img}}">
<span class="tarot-title">{{card.name}}</span>
{{#if card.system.isdualside}}
<span class="tarot-title">{{#if card.system.ispositif}}Positif{{else}}Négatif{{/if}}</span>
{{/if}}
</div>
{{!-- Main du joueur --}}
<div class="tirage-section">
<div class="tirage-section-title">
<i class="fa-solid fa-hand"></i> Main du joueur
{{#if user}}<span class="tirage-player-name">— {{user.name}}</span>{{/if}}
</div>
<div class="tirage-cards-row">
{{#each cards as |card|}}
<div class="tirage-card {{#unless card.system.ispositif}}tirage-card-negatif{{/unless}}">
<img class="tirage-card-img {{#unless card.system.ispositif}}flip-tarot{{/unless}}" src="{{card.img}}" alt="{{card.name}}" />
<div class="tirage-card-name">{{card.name}}</div>
{{#if card.system.isdualside}}
<div class="tirage-card-side {{#if card.system.ispositif}}tirage-positif{{else}}tirage-negatif{{/if}}">
{{#if card.system.ispositif}}⬆ Positif{{else}}⬇ Négatif{{/if}}
</div>
{{/each}}
</div>
<hr>
<span><h2>Main secrête : </h2></span>
<div class="flexrow">
{{#each secretCards as |card index|}}
<div class="flexcol">
<div class="tarot-fixed-width flexcol">
<img class="tarot-fixed-width {{#if card.system.ispositif}} {{else}}flip-tarot{{/if}}" src="{{card.img}}">
<span class="tarot-title">{{card.name}}</span>
{{#if card.system.isdualside}}
<span class="tarot-title">{{#if card.system.ispositif}}Positif{{else}}Négatif{{/if}}</span>
{{/if}}
</div>
</div>
{{/each}}
</div>
</div>
{{/if}}
</div>
{{/each}}
</div>
</div>
</form>
<div class="tirage-separator"></div>
{{!-- Main secrète --}}
<div class="tirage-section">
<div class="tirage-section-title tirage-secret-title">
<i class="fa-solid fa-eye-slash"></i> Main secrète
</div>
<div class="tirage-cards-row">
{{#each secretCards as |card|}}
<div class="tirage-card tirage-card-secret {{#unless card.system.ispositif}}tirage-card-negatif{{/unless}}">
<img class="tirage-card-img {{#unless card.system.ispositif}}flip-tarot{{/unless}}" src="{{card.img}}" alt="{{card.name}}" />
<div class="tirage-card-name">{{card.name}}</div>
{{#if card.system.isdualside}}
<div class="tirage-card-side {{#if card.system.ispositif}}tirage-positif{{else}}tirage-negatif{{/if}}">
{{#if card.system.ispositif}}⬆ Positif{{else}}⬇ Négatif{{/if}}
</div>
{{/if}}
</div>
{{/each}}
</div>
</div>
<footer class="tirage-footer">
<button type="button" class="tirage-close-btn">
<i class="fa-solid fa-times"></i> Fermer
</button>
</footer>
</div>