xziino 4107779e2a Add Planner import flow (Schritt 3): export from Analysis tab
- 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>
2026-05-22 08:46:37 +02:00

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>