xziino 6024560e61 Planner: Namen + Job Import aus beliebigem Report
- Neues api/players.php: playerDetails + maxHp aus DamageTaken in einem GQL-Query
- Import-Modal übernimmt Jobs UND Namen (Heiler → DPS → Tank → Alphabet)
- buildPlayerRoster/extractJobComp: einheitliche Sortierreihenfolge
- Ref-Fight Export überträgt jetzt auch die Jobaufstellung
- Job-Slots zeigen importierte Spielernamen an

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 08:08:22 +02:00

131 lines
4.7 KiB
PHP

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>FFLogs Report Viewer</title>
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/layout.css">
<link rel="stylesheet" href="css/components.css">
<link rel="stylesheet" href="css/analysis.css">
<link rel="stylesheet" href="css/planner.css">
</head>
<body>
<?php if (!$authenticated): ?>
<?php require __DIR__ . '/login.php'; ?>
<?php else: ?>
<div id="app">
<?php require __DIR__ . '/topbar.php'; ?>
<main id="main">
<?php if ($errorText): ?>
<div class="error section-gap"><?= htmlspecialchars($errorText) ?></div>
<?php endif; ?>
<div id="tab-report" class="tab-content">
<?php require __DIR__ . '/tab-report.php'; ?>
</div>
<div id="tab-analysis" class="tab-content" style="display:none">
<?php require __DIR__ . '/tab-analysis.php'; ?>
</div>
<div id="tab-planner" class="tab-content" style="display:none">
<?php require __DIR__ . '/tab-planner.php'; ?>
</div>
</main>
</div>
<!-- Planner Import Modal -->
<div id="planner-import-modal" class="modal-overlay" style="display:none">
<div class="modal-box">
<div class="modal-title">In Planer exportieren</div>
<div class="modal-section">
<div class="modal-label">Was importieren?</div>
<label class="modal-radio-label">
<input type="radio" name="import-what" value="with-mitigations" checked>
<span>Mechaniken + Mitigation</span>
</label>
<label class="modal-radio-label">
<input type="radio" name="import-what" value="mechanics">
<span>Nur Mechaniken</span>
</label>
</div>
<div class="modal-section">
<div class="modal-label">Wohin?</div>
<label class="modal-radio-label">
<input type="radio" name="import-where" value="new" checked>
<span>Neuer Plan</span>
</label>
<div id="import-new-section" class="modal-subsection">
<input type="text" id="import-plan-name" placeholder="Plan-Name…">
</div>
<label class="modal-radio-label" id="import-merge-label">
<input type="radio" name="import-where" value="merge">
<span>In bestehenden Plan mergen</span>
</label>
<div id="import-merge-section" class="modal-subsection" style="display:none">
<select id="import-plan-select">
<option value="">— Plan auswählen —</option>
</select>
<div class="modal-hint">Neue Mechaniken werden hinzugefügt, bestehende Assignments bleiben erhalten.</div>
</div>
</div>
<div class="modal-actions">
<button id="import-confirm-btn" class="btn btn-gold">Importieren</button>
<button id="import-cancel-btn" class="btn">Abbrechen</button>
</div>
</div>
</div>
<!-- Name Import Modal (Planner) -->
<div id="planner-name-import-modal" class="modal-overlay" style="display:none">
<div class="modal-box">
<div class="modal-title">Namen importieren</div>
<div class="modal-section">
<div class="modal-label">Report-Code</div>
<div class="name-import-input-row">
<input type="text" id="name-import-report-input" placeholder="Report-Code oder URL…">
<button id="name-import-load-btn" class="btn btn-sm">Laden</button>
</div>
</div>
<div class="modal-section" id="name-import-fight-section" style="display:none">
<div class="modal-label">Fight</div>
<select id="name-import-fight-select">
<option value="">— Fight auswählen —</option>
</select>
</div>
<div id="name-import-preview" class="name-import-preview" style="display:none"></div>
<div class="modal-actions" style="margin-top:16px">
<button id="name-import-confirm-btn" class="btn btn-gold" style="display:none">Übernehmen</button>
<button id="name-import-cancel-btn" class="btn">Abbrechen</button>
</div>
</div>
</div>
<!-- Ability Assignment Modal -->
<div id="planner-ability-modal" class="modal-overlay" style="display:none">
<div class="modal-box ability-modal-box">
<div class="modal-title" id="ability-modal-title">Mitigations</div>
<div id="ability-modal-content"></div>
<div class="modal-actions" style="margin-top:16px">
<button id="ability-modal-close" class="btn">Schließen</button>
</div>
</div>
</div>
<script src="js/app.js"></script>
<script src="js/tabs.js"></script>
<script src="js/analysis.js"></script>
<script src="js/planner.js"></script>
<?php endif; ?>
</body>
</html>