Volle Mindflux-App ins Deploy-Repo übernehmen
Ersetzt das Hello-World-Gerüst durch die vollständige Anwendung (com.example.mindflux: 64 Klassen, Thymeleaf-Templates, Static-Assets, Flyway V1–V6). Deploy-Infrastruktur (.gitea, Dockerfile) bleibt erhalten. - pom: volle Abhängigkeiten (Security, Thymeleaf, JPA, Flyway), Spring Boot 3.4.4 / Java 17 - docker-compose: SPRING_DATASOURCE_* unverändert; App lauscht auf 8080 (nginx -> mindflux:8080); Uploads-Volume; Admin-Passwörter via Gitea-Secrets - Workflow: Deploy-Step injiziert MINDFLUX_ADMIN*_PASSWORD aus Secrets - .dockerignore ergänzt; Hello-World (com.mindflux) und Test-Datei 'main' entfernt Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de" data-theme="dark" xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>MindMatch – Mindflux</title>
|
||||
<link rel="stylesheet" href="/css/theme.css">
|
||||
<script src="/js/theme.js"></script>
|
||||
<link rel="stylesheet" href="/css/mindmatch.css?v=4">
|
||||
</head>
|
||||
<body class="mm-body">
|
||||
|
||||
<!-- Feste Viewport-Höhe, kein Scrollen: Kopf + Leiste oben, Brett füllt den Rest. -->
|
||||
<div class="mm-shell">
|
||||
|
||||
<header class="mm-header">
|
||||
<a href="/dashboard" class="mm-back">⟵ Dashboard</a>
|
||||
<h1 class="mm-title">MindMatch</h1>
|
||||
<div class="mm-header-tools">
|
||||
<button type="button" class="mf-theme"></button>
|
||||
<a href="/logout" class="mm-logout">Logout</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Kompakte Leiste: Steuerung links, Werte rechts -->
|
||||
<div class="mm-bar">
|
||||
<div class="mm-bar-group">
|
||||
<label class="mm-field">
|
||||
<span>Deck</span>
|
||||
<select id="mm-deck"></select>
|
||||
</label>
|
||||
<button type="button" id="mm-new" class="mm-btn">Neues Spiel</button>
|
||||
<button type="button" id="mm-cancel" class="mm-btn mm-btn-cancel" hidden>Spiel abbrechen</button>
|
||||
</div>
|
||||
|
||||
<div class="mm-bar-group mm-hud" aria-live="polite">
|
||||
<span class="mm-stat">Züge <b id="mm-moves">0</b></span>
|
||||
<span class="mm-stat">Zeit <b id="mm-time">0:00</b></span>
|
||||
<span class="mm-stat">Paare <b id="mm-pairs">0 / 0</b></span>
|
||||
<span class="mm-stat">Bestwert <b id="mm-best">–</b></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Spielfeld: füllt den verbleibenden Platz, kein Scrollen -->
|
||||
<main class="mm-stage">
|
||||
<section id="mm-board" class="mm-board" aria-label="Spielfeld"></section>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!-- Ergebnis-Overlay -->
|
||||
<div id="mm-result" class="mm-result" hidden>
|
||||
<div class="mm-result-card">
|
||||
<h2 id="mm-result-title">Geschafft! 🎉</h2>
|
||||
<p id="mm-result-stars" class="mm-stars"></p>
|
||||
<p class="mm-result-score">Score: <strong id="mm-result-score">0</strong></p>
|
||||
<p id="mm-result-detail" class="mm-result-detail"></p>
|
||||
<p id="mm-result-highscore" class="mm-result-highscore" hidden>🏆 Neuer Bestwert!</p>
|
||||
<div class="mm-result-actions">
|
||||
<button type="button" id="mm-again" class="mm-btn">Nochmal</button>
|
||||
<a href="/dashboard" class="mm-btn mm-btn-secondary">Zurück zum Dashboard</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/js/mindmatch.js?v=3" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user