Refactor node relationship handling in app.py and introduce new routes for thoughts association with nodes.
This commit is contained in:
@@ -14,11 +14,12 @@
|
||||
<meta name="keywords" content="systades, wissen, visualisierung, lernen, gedanken, theorie">
|
||||
<meta name="author" content="Systades-Team">
|
||||
|
||||
<!-- Tailwind CSS - Beide Optionen verfügbar -->
|
||||
<!-- Tailwind CSS - CDN für Entwicklung und Produktion (laut Vorgabe) -->
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<!-- Alternative lokale Version, falls die CDN-Version blockiert wird -->
|
||||
<link href="{{ url_for('static', filename='css/tailwind.min.css') }}" rel="stylesheet">
|
||||
<script>
|
||||
tailwind = window.tailwind || {};
|
||||
tailwind.config = {
|
||||
darkMode: 'class',
|
||||
theme: {
|
||||
@@ -113,32 +114,33 @@
|
||||
|
||||
<!-- Custom dark mode styles -->
|
||||
<style>
|
||||
/* Dark mystical theme */
|
||||
/* Dezenter Hintergrund für beide Modi */
|
||||
.dark {
|
||||
--bg-primary: #0a0e19;
|
||||
--bg-secondary: #111827;
|
||||
--bg-primary: #181c24;
|
||||
--bg-secondary: #232837;
|
||||
--text-primary: #f9fafb;
|
||||
--text-secondary: #e5e7eb;
|
||||
--accent-primary: #6d28d9;
|
||||
--accent-secondary: #8b5cf6;
|
||||
--glow-effect: 0 0 15px rgba(124, 58, 237, 0.5);
|
||||
--glow-effect: 0 0 8px rgba(124, 58, 237, 0.15);
|
||||
}
|
||||
|
||||
/* Light theme with mystical tones */
|
||||
:root {
|
||||
--bg-primary: #f8fafc;
|
||||
--bg-secondary: #f1f5f9;
|
||||
--text-primary: #1e293b;
|
||||
--bg-primary: #f4f6fa;
|
||||
--bg-secondary: #e9ecf3;
|
||||
--text-primary: #232837;
|
||||
--text-secondary: #475569;
|
||||
--accent-primary: #7c3aed;
|
||||
--accent-secondary: #8b5cf6;
|
||||
--glow-effect: 0 0 15px rgba(139, 92, 246, 0.3);
|
||||
--glow-effect: 0 0 8px rgba(139, 92, 246, 0.08);
|
||||
}
|
||||
|
||||
body.dark {
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
body {
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* Mystical glowing effects */
|
||||
.mystical-glow {
|
||||
@@ -611,5 +613,38 @@
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Dark/Light-Mode persistent und robust -->
|
||||
<script>
|
||||
(function() {
|
||||
function applyMode(mode) {
|
||||
if (mode === 'dark') {
|
||||
document.documentElement.classList.add('dark');
|
||||
localStorage.setItem('colorMode', 'dark');
|
||||
} else {
|
||||
document.documentElement.classList.remove('dark');
|
||||
localStorage.setItem('colorMode', 'light');
|
||||
}
|
||||
}
|
||||
// Beim Laden: Präferenz aus localStorage oder System übernehmen
|
||||
const stored = localStorage.getItem('colorMode');
|
||||
if (stored === 'dark' || stored === 'light') {
|
||||
applyMode(stored);
|
||||
} else {
|
||||
// Systempräferenz als Fallback
|
||||
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
applyMode(prefersDark ? 'dark' : 'light');
|
||||
}
|
||||
// Umschalter für alle Mode-Toggles
|
||||
window.toggleColorMode = function() {
|
||||
const isDark = document.documentElement.classList.contains('dark');
|
||||
applyMode(isDark ? 'light' : 'dark');
|
||||
};
|
||||
// Optional: globales Event für andere Skripte
|
||||
window.addEventListener('storage', function(e) {
|
||||
if (e.key === 'colorMode') applyMode(e.newValue);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -391,7 +391,7 @@
|
||||
<div id="mindmap-canvas"></div>
|
||||
|
||||
<!-- Control Panel -->
|
||||
<div class="control-panel p-4 w-64">
|
||||
<div class="control-panel p-4 w-64" x-data="{ isExpanded: true }">
|
||||
<div class="panel-toggle" @click="isExpanded = !isExpanded">
|
||||
<i class="fa-solid" :class="isExpanded ? 'fa-chevron-left' : 'fa-chevron-right'"></i>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user