Files
fvtt-chroniques-de-l-etrange/templates/apps/cde-migration-app.html
T
uberwald faf8c4ca92
Release Creation / build (release) Successful in 1m13s
Import de masse des PNJ ancien système
2026-06-10 22:16:25 +02:00

118 lines
4.2 KiB
HTML

{{! Migration Dialog — Chroniques de l'Étrange }}
<div class="cde-migration-body">
{{! Drop zone / file picker }}
<div class="cde-migration-drop-zone">
<i class="fa-solid fa-file-import cde-migration-drop-icon"></i>
<p class="cde-migration-drop-hint">{{ localize "CDE.MigrationDropHint" }}</p>
<label class="cde-migration-file-btn">
<i class="fa-solid fa-folder-open"></i>
{{ localize "CDE.MigrationChooseFiles" }}
<input type="file" class="cde-migration-file-input" accept=".json" multiple hidden>
</label>
</div>
{{! Preview table }}
{{#if (and hasPending (ne importState "importing"))}}
<div class="cde-migration-preview">
<div class="cde-migration-preview-header">
<span>{{ localize "CDE.MigrationPreviewTitle" }}</span>
<button type="button" class="cde-migration-clear-btn" data-action="clearFiles">
<i class="fa-solid fa-xmark"></i>
{{ localize "CDE.MigrationClear" }}
</button>
</div>
<table class="cde-migration-table">
<thead>
<tr>
<th></th>
<th>{{ localize "CDE.MigrationColName" }}</th>
<th>{{ localize "CDE.MigrationColType" }}</th>
<th>{{ localize "CDE.MigrationColItems" }}</th>
<th>{{ localize "CDE.MigrationColFile" }}</th>
</tr>
</thead>
<tbody>
{{#each pending}}
<tr class="{{#if _duplicate}}cde-migration-row-duplicate{{/if}}">
<td><img src="{{img}}" class="cde-migration-thumb" alt=""></td>
<td class="cde-migration-name">
{{#if _duplicate}}<i class="fa-solid fa-triangle-exclamation cde-migration-duplicate-icon" title="{{ localize 'CDE.MigrationDuplicate' }}"></i>{{/if}}
{{name}}
</td>
<td>
<span class="cde-migration-type-badge cde-migration-type-{{type}}">
{{#if (eq type "character")}}
<i class="fa-solid fa-user"></i> Personnage
{{else}}
<i class="fa-solid fa-skull"></i> PNJ
{{/if}}
</span>
</td>
<td class="cde-migration-items-count">{{items.length}}</td>
<td class="cde-migration-srcfile">{{_srcFile}}</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
{{/if}}
{{! Duplicate warning banner (confirmation step) }}
{{#if (eq importState "confirm")}}
<div class="cde-migration-confirm-bar">
<p class="cde-migration-confirm-msg">
<i class="fa-solid fa-triangle-exclamation"></i>
{{ localize "CDE.MigrationImportConfirm" count=count }}
</p>
{{#if hasDuplicates}}
<p class="cde-migration-confirm-duplicates">
<i class="fa-solid fa-triangle-exclamation"></i>
{{ localize "CDE.MigrationDuplicateCount" count=duplicateCount }}
</p>
{{/if}}
<div class="cde-migration-confirm-actions">
<button type="button" class="cde-migration-confirm-btn" data-action="confirmImport">
<i class="fa-solid fa-download"></i>
{{ localize "CDE.MigrationConfirmAction" }} ({{count}})
</button>
<button type="button" class="cde-migration-cancel-btn" data-action="cancelImport">
<i class="fa-solid fa-xmark"></i>
{{ localize "CDE.Cancel" }}
</button>
</div>
</div>
{{/if}}
{{! Progress (importing state) }}
{{#if (eq importState "importing")}}
<div class="cde-migration-progress">
<i class="fa-solid fa-spinner fa-spin"></i>
<span>{{ localize "CDE.MigrationImporting" }}</span>
<span class="cde-migration-progress-count">{{progress}}/{{total}}</span>
</div>
{{/if}}
{{! Errors }}
{{#if hasErrors}}
<ul class="cde-migration-errors">
{{#each errors}}
<li><i class="fa-solid fa-triangle-exclamation"></i> {{this}}</li>
{{/each}}
</ul>
{{/if}}
{{! Action bar }}
<div class="cde-migration-actions">
{{#if (and hasPending (eq importState "idle"))}}
<button type="button" class="cde-migration-import-btn" data-action="doImport">
<i class="fa-solid fa-download"></i>
{{ localize "CDE.MigrationImport" }} ({{count}})
</button>
{{else if (and (not hasPending) (eq importState "idle"))}}
<p class="cde-migration-hint">{{ localize "CDE.MigrationHint" }}</p>
{{/if}}
</div>
</div>