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,34 @@
|
||||
/* Mindflux Theme – Dark/Light-Umschaltung, zentral.
|
||||
Im <head> einbinden (ohne defer), dann setzt es das Theme vor dem Rendern (kein Flash).
|
||||
Jeder Button mit Klasse .mf-theme wird automatisch zum Umschalter. */
|
||||
(function () {
|
||||
var KEY = 'mf-theme';
|
||||
function read() { try { return localStorage.getItem(KEY) || 'dark'; } catch (e) { return 'dark'; } }
|
||||
function apply(mode) { document.documentElement.setAttribute('data-theme', mode); }
|
||||
|
||||
apply(read()); // früh -> kein Aufblitzen
|
||||
|
||||
var SUN = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></svg>';
|
||||
var MOON = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>';
|
||||
|
||||
function paint() {
|
||||
var dark = document.documentElement.getAttribute('data-theme') === 'dark';
|
||||
document.querySelectorAll('.mf-theme').forEach(function (b) { b.innerHTML = dark ? SUN : MOON; });
|
||||
}
|
||||
function toggle() {
|
||||
var next = document.documentElement.getAttribute('data-theme') === 'dark' ? 'light' : 'dark';
|
||||
apply(next);
|
||||
try { localStorage.setItem(KEY, next); } catch (e) {}
|
||||
paint();
|
||||
}
|
||||
window.MindfluxTheme = { toggle: toggle, apply: apply };
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
document.querySelectorAll('.mf-theme').forEach(function (b) {
|
||||
b.setAttribute('role', 'button');
|
||||
b.setAttribute('aria-label', 'Theme umschalten');
|
||||
b.addEventListener('click', toggle);
|
||||
});
|
||||
paint();
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user