- Export button in AoE Timeline card title row (replaces bottom bar) - Import modal with mechanic-only vs with-mitigations choice, new plan vs merge into existing plan - Merge logic: match by abilityName + timestamp ±5s, keep existing assignments - Color-coded assignment badges: blue=buff, red=debuff, gold=shield - buffType stored in assignments for color rendering - Modal radio button layout fix (override global input width:100%) - Auto-switch to Planner tab after import - window.showTab exposed from tabs.js Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
91 lines
3.1 KiB
PHP
91 lines
3.1 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="mechanics" checked>
|
|
<span>Nur Mechaniken</span>
|
|
</label>
|
|
<label class="modal-radio-label">
|
|
<input type="radio" name="import-what" value="with-mitigations">
|
|
<span>Mechaniken + erkannte Mitigations als Startpunkt</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>
|
|
|
|
<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>
|