Files
mindflux/src/main/resources/templates/admin/bughunter-hunt.html
T
AliceDarkest 3f23f223ce
mindflux-ci / build (push) Successful in 23s
Restore Neural light theme and update contrast colors
2026-07-14 17:02:30 +02:00

2 lines
2.7 KiB
HTML

<!doctype html><html lang="de" data-theme="dark" xmlns:th="http://www.thymeleaf.org"><head><meta charset="utf-8"><title>BugHunter Fallakte</title><link rel="stylesheet" href="/css/theme.css?v=3"><script src="/js/theme.js?v=4"></script></head><body><main class="mf-container" th:if="${hunt != null}"><a class="mf-back" href="/admin/bughunter">← Fallakten</a><h1 th:text="${hunt.title}" style="margin:1rem 0;color:var(--heading)"></h1><div class="mf-grid"><form class="mf-panel" method="post" th:action="@{/admin/bughunter/{id}/files(id=${hunt.id})}"><h2>Datei hinzufügen</h2><div class="mf-field"><label class="mf-label">Dateiname</label><input class="mf-input" name="filename" required></div><div class="mf-field"><label class="mf-label">Code</label><textarea class="mf-input" rows="14" name="content" required></textarea></div><button class="mf-btn">Datei speichern</button></form><form class="mf-panel" method="post" th:action="@{/admin/bughunter/{id}/bugs(id=${hunt.id})}"><h2>Bug hinzufügen</h2><div class="mf-field"><label class="mf-label">Punkte</label><input class="mf-input" type="number" name="points" value="100"></div><div class="mf-field"><label class="mf-label">Payload JSON</label><textarea class="mf-input" rows="14" name="payload" required>{"file":"Datei.java","line":1,"category":"logik","evidence":"...","fixOptions":["..."],"fixIndex":0,"fixedLine":"...","explanation":"..."}</textarea></div><p style="color:var(--muted);font-size:.85rem">Dateiname und Zeile müssen zu einer vorhandenen Datei passen; Kategorie: syntax, logik, laufzeit oder sicherheit.</p><button class="mf-btn">Bug speichern</button></form></div><section class="mf-panel" style="margin-top:1rem"><h2>Dateien</h2><table class="mf-table"><tr><th>Datei</th><th>Zeilen</th><th></th></tr><tr th:each="f:${hunt.files}"><td th:text="${f.filename}"></td><td th:text="${#strings.arrayLength(#strings.arraySplit(f.content, '\n'))}"></td><td><form method="post" th:action="@{/admin/bughunter/files/{id}/delete(id=${f.id})}"><input type="hidden" name="huntId" th:value="${hunt.id}"><button class="mf-btn danger">Löschen</button></form></td></tr></table></section><section class="mf-panel" style="margin-top:1rem"><h2>Bugs</h2><table class="mf-table"><tr><th>Punkte</th><th>Payload</th><th></th></tr><tr th:each="b:${hunt.bugs}"><td th:text="${b.points}"></td><td><code th:text="${b.payload}"></code></td><td><form method="post" th:action="@{/admin/bughunter/bugs/{id}/delete(id=${b.id})}"><input type="hidden" name="huntId" th:value="${hunt.id}"><button class="mf-btn danger">Löschen</button></form></td></tr></table></section></main><main class="mf-container" th:unless="${hunt != null}"><p>Fallakte nicht gefunden.</p></main></body></html>