Implementierung Wissensmanagement

Dieser Commit ist enthalten in:
HG
2025-12-30 22:49:56 +00:00
committet von Server Deploy
Ursprung 9bf298c26b
Commit 395598c2b0
51 geänderte Dateien mit 7598 neuen und 32 gelöschten Zeilen

Datei anzeigen

@ -25,6 +25,7 @@
<link rel="stylesheet" href="css/proposals.css">
<link rel="stylesheet" href="css/notifications.css">
<link rel="stylesheet" href="css/gitea.css">
<link rel="stylesheet" href="css/knowledge.css">
<link rel="stylesheet" href="css/responsive.css">
<!-- Favicon -->
@ -235,6 +236,7 @@
<button class="view-tab" data-view="calendar">Kalender</button>
<button class="view-tab" data-view="proposals">Genehmigung</button>
<button class="view-tab" data-view="gitea">Gitea</button>
<button class="view-tab" data-view="knowledge">Wissen</button>
</nav>
</div>
@ -886,6 +888,100 @@
</div>
<!-- Knowledge View (Wissensmanagement) -->
<div id="view-knowledge" class="view view-knowledge hidden">
<!-- Mobile: Kategorien als horizontale Chips -->
<div id="knowledge-mobile-categories" class="knowledge-mobile-categories">
<!-- Wird dynamisch befüllt -->
</div>
<!-- Haupt-Layout: Sidebar + Main -->
<div class="knowledge-layout">
<!-- Sidebar (links) - Kategorien -->
<aside class="knowledge-sidebar">
<div class="knowledge-sidebar-header">
<h3 class="knowledge-sidebar-title">Kategorien</h3>
<button id="btn-new-category" class="btn btn-primary btn-sm">
<svg viewBox="0 0 24 24" width="16" height="16"><path d="M12 5v14M5 12h14" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round"/></svg>
Neu
</button>
</div>
<div id="knowledge-categories" class="knowledge-category-list">
<!-- Kategorien werden dynamisch geladen -->
</div>
<div id="knowledge-categories-empty" class="knowledge-sidebar-empty hidden">
<svg viewBox="0 0 24 24" width="48" height="48">
<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20" stroke="currentColor" stroke-width="2" fill="none"/>
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z" stroke="currentColor" stroke-width="2" fill="none"/>
</svg>
<p>Keine Kategorien</p>
</div>
</aside>
<!-- Hauptbereich (rechts) - Einträge -->
<main class="knowledge-main">
<div class="knowledge-main-header">
<h2 id="knowledge-category-title" class="knowledge-main-title">Kategorie wählen</h2>
<button id="btn-new-entry" class="btn btn-primary" disabled>
<svg viewBox="0 0 24 24" width="18" height="18"><path d="M12 5v14M5 12h14" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round"/></svg>
Neuer Eintrag
</button>
</div>
<!-- Einträge-Liste -->
<div id="knowledge-entries" class="knowledge-entry-list">
<!-- Einträge werden dynamisch geladen -->
</div>
<!-- Leerer Zustand: Keine Kategorie ausgewählt -->
<div id="knowledge-no-selection" class="knowledge-empty">
<svg viewBox="0 0 24 24" width="64" height="64">
<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20" stroke="currentColor" stroke-width="2" fill="none"/>
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z" stroke="currentColor" stroke-width="2" fill="none"/>
</svg>
<h3>Kategorie auswählen</h3>
<p>Wählen Sie links eine Kategorie aus, um Einträge anzuzeigen.</p>
</div>
<!-- Leerer Zustand: Keine Einträge -->
<div id="knowledge-entries-empty" class="knowledge-empty hidden">
<svg viewBox="0 0 24 24" width="64" height="64">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" stroke="currentColor" stroke-width="2" fill="none"/>
<path d="M14 2v6h6M16 13H8M16 17H8M10 9H8" stroke="currentColor" stroke-width="2" fill="none"/>
</svg>
<h3>Keine Einträge</h3>
<p>Erstellen Sie den ersten Eintrag in dieser Kategorie.</p>
</div>
<!-- Suchergebnisse -->
<div id="knowledge-search-results" class="knowledge-search-results hidden">
<div class="knowledge-search-header">
<button id="btn-clear-search" class="btn btn-text">
<svg viewBox="0 0 24 24" width="18" height="18"><path d="M6 18L18 6M6 6l12 12" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round"/></svg>
Suche beenden
</button>
<span class="knowledge-search-info">Ergebnisse für "<span id="knowledge-search-query"></span>"</span>
</div>
<div id="knowledge-search-list" class="knowledge-entry-list">
<!-- Suchergebnisse werden hier angezeigt -->
</div>
<div id="knowledge-search-empty" class="knowledge-empty hidden">
<svg viewBox="0 0 24 24" width="64" height="64">
<circle cx="11" cy="11" r="8" stroke="currentColor" stroke-width="2" fill="none"/>
<path d="M21 21l-4.35-4.35" stroke="currentColor" stroke-width="2" fill="none"/>
</svg>
<h3>Keine Ergebnisse</h3>
<p>Keine Einträge gefunden.</p>
</div>
</div>
</main>
</div>
</div>
</main>
</div>
@ -1479,6 +1575,339 @@
</div>
</div>
<!-- Knowledge Category Modal -->
<div id="knowledge-category-modal" class="modal modal-small hidden">
<div class="modal-header">
<h2 id="knowledge-category-modal-title">Neue Kategorie</h2>
<button class="modal-close" data-close-modal>&times;</button>
</div>
<div class="modal-body">
<form id="knowledge-category-form">
<input type="hidden" id="knowledge-category-id">
<div class="form-group">
<label for="knowledge-category-name">Name *</label>
<input type="text" id="knowledge-category-name" required maxlength="100" placeholder="z.B. Technik">
</div>
<div class="form-group">
<label for="knowledge-category-description">Beschreibung</label>
<textarea id="knowledge-category-description" rows="2" placeholder="Optionale Beschreibung..."></textarea>
</div>
<div class="form-row">
<div class="form-group">
<label for="knowledge-category-color">Farbe</label>
<input type="color" id="knowledge-category-color" value="#3B82F6">
</div>
<div class="form-group">
<label>Icon</label>
<div class="icon-picker-container">
<div class="icon-picker-preview" id="icon-picker-preview">
<span class="icon-preview-emoji" id="icon-preview-emoji">📁</span>
<span class="icon-preview-label">Klicken zum Ändern</span>
</div>
<input type="hidden" id="knowledge-category-icon" value="📁">
</div>
</div>
</div>
<!-- Icon Picker Grid -->
<div class="icon-picker-section" id="icon-picker-section">
<div class="icon-picker-tabs">
<button type="button" class="icon-tab active" data-tab="tech">💻 Technik</button>
<button type="button" class="icon-tab" data-tab="network">🌐 Netzwerk</button>
<button type="button" class="icon-tab" data-tab="office">📋 Büro</button>
<button type="button" class="icon-tab" data-tab="finance">💰 Finanzen</button>
<button type="button" class="icon-tab" data-tab="home">🏠 Haus</button>
<button type="button" class="icon-tab" data-tab="misc">⭐ Sonstige</button>
</div>
<!-- Technik Icons -->
<div class="icon-grid" data-tab-content="tech">
<button type="button" class="icon-btn" data-icon="💻">💻</button>
<button type="button" class="icon-btn" data-icon="🖥️">🖥️</button>
<button type="button" class="icon-btn" data-icon="🖨️">🖨️</button>
<button type="button" class="icon-btn" data-icon="⌨️">⌨️</button>
<button type="button" class="icon-btn" data-icon="🖱️">🖱️</button>
<button type="button" class="icon-btn" data-icon="💾">💾</button>
<button type="button" class="icon-btn" data-icon="💿">💿</button>
<button type="button" class="icon-btn" data-icon="📀">📀</button>
<button type="button" class="icon-btn" data-icon="🔌">🔌</button>
<button type="button" class="icon-btn" data-icon="🔋">🔋</button>
<button type="button" class="icon-btn" data-icon="📱">📱</button>
<button type="button" class="icon-btn" data-icon="📲">📲</button>
<button type="button" class="icon-btn" data-icon="☎️">☎️</button>
<button type="button" class="icon-btn" data-icon="📞">📞</button>
<button type="button" class="icon-btn" data-icon="📟">📟</button>
<button type="button" class="icon-btn" data-icon="📠">📠</button>
<button type="button" class="icon-btn" data-icon="📺">📺</button>
<button type="button" class="icon-btn" data-icon="📷">📷</button>
<button type="button" class="icon-btn" data-icon="📹">📹</button>
<button type="button" class="icon-btn" data-icon="🎥">🎥</button>
<button type="button" class="icon-btn" data-icon="🔦">🔦</button>
<button type="button" class="icon-btn" data-icon="💡">💡</button>
<button type="button" class="icon-btn" data-icon="🔧">🔧</button>
<button type="button" class="icon-btn" data-icon="🔨">🔨</button>
<button type="button" class="icon-btn" data-icon="⚙️">⚙️</button>
<button type="button" class="icon-btn" data-icon="🛠️">🛠️</button>
<button type="button" class="icon-btn" data-icon="🔩">🔩</button>
<button type="button" class="icon-btn" data-icon="⛏️">⛏️</button>
<button type="button" class="icon-btn" data-icon="🧰">🧰</button>
<button type="button" class="icon-btn" data-icon="🎮">🎮</button>
<button type="button" class="icon-btn" data-icon="🕹️">🕹️</button>
<button type="button" class="icon-btn" data-icon="🎧">🎧</button>
<button type="button" class="icon-btn" data-icon="🎤">🎤</button>
<button type="button" class="icon-btn" data-icon="🔊">🔊</button>
<button type="button" class="icon-btn" data-icon="📡">📡</button>
<button type="button" class="icon-btn" data-icon="🔬">🔬</button>
</div>
<!-- Netzwerk Icons -->
<div class="icon-grid hidden" data-tab-content="network">
<button type="button" class="icon-btn" data-icon="🌐">🌐</button>
<button type="button" class="icon-btn" data-icon="🌍">🌍</button>
<button type="button" class="icon-btn" data-icon="🌎">🌎</button>
<button type="button" class="icon-btn" data-icon="🌏">🌏</button>
<button type="button" class="icon-btn" data-icon="📡">📡</button>
<button type="button" class="icon-btn" data-icon="📶">📶</button>
<button type="button" class="icon-btn" data-icon="🛜">🛜</button>
<button type="button" class="icon-btn" data-icon="📤">📤</button>
<button type="button" class="icon-btn" data-icon="📥">📥</button>
<button type="button" class="icon-btn" data-icon="📧">📧</button>
<button type="button" class="icon-btn" data-icon="✉️">✉️</button>
<button type="button" class="icon-btn" data-icon="📨">📨</button>
<button type="button" class="icon-btn" data-icon="📩">📩</button>
<button type="button" class="icon-btn" data-icon="🔗">🔗</button>
<button type="button" class="icon-btn" data-icon="⛓️">⛓️</button>
<button type="button" class="icon-btn" data-icon="🔐">🔐</button>
<button type="button" class="icon-btn" data-icon="🔒">🔒</button>
<button type="button" class="icon-btn" data-icon="🔓">🔓</button>
<button type="button" class="icon-btn" data-icon="🔑">🔑</button>
<button type="button" class="icon-btn" data-icon="🗝️">🗝️</button>
<button type="button" class="icon-btn" data-icon="🛡️">🛡️</button>
<button type="button" class="icon-btn" data-icon="⚡"></button>
<button type="button" class="icon-btn" data-icon="☁️">☁️</button>
<button type="button" class="icon-btn" data-icon="🖧">🖧</button>
<button type="button" class="icon-btn" data-icon="🔄">🔄</button>
<button type="button" class="icon-btn" data-icon="♻️">♻️</button>
<button type="button" class="icon-btn" data-icon="🔃">🔃</button>
<button type="button" class="icon-btn" data-icon="🌀">🌀</button>
<button type="button" class="icon-btn" data-icon="💠">💠</button>
<button type="button" class="icon-btn" data-icon="🔷">🔷</button>
</div>
<!-- Büro Icons -->
<div class="icon-grid hidden" data-tab-content="office">
<button type="button" class="icon-btn" data-icon="📁">📁</button>
<button type="button" class="icon-btn" data-icon="📂">📂</button>
<button type="button" class="icon-btn" data-icon="🗂️">🗂️</button>
<button type="button" class="icon-btn" data-icon="📋">📋</button>
<button type="button" class="icon-btn" data-icon="📄">📄</button>
<button type="button" class="icon-btn" data-icon="📃">📃</button>
<button type="button" class="icon-btn" data-icon="📑">📑</button>
<button type="button" class="icon-btn" data-icon="📊">📊</button>
<button type="button" class="icon-btn" data-icon="📈">📈</button>
<button type="button" class="icon-btn" data-icon="📉">📉</button>
<button type="button" class="icon-btn" data-icon="📝">📝</button>
<button type="button" class="icon-btn" data-icon="✏️">✏️</button>
<button type="button" class="icon-btn" data-icon="✒️">✒️</button>
<button type="button" class="icon-btn" data-icon="🖊️">🖊️</button>
<button type="button" class="icon-btn" data-icon="🖋️">🖋️</button>
<button type="button" class="icon-btn" data-icon="📌">📌</button>
<button type="button" class="icon-btn" data-icon="📍">📍</button>
<button type="button" class="icon-btn" data-icon="📎">📎</button>
<button type="button" class="icon-btn" data-icon="🖇️">🖇️</button>
<button type="button" class="icon-btn" data-icon="📏">📏</button>
<button type="button" class="icon-btn" data-icon="📐">📐</button>
<button type="button" class="icon-btn" data-icon="✂️">✂️</button>
<button type="button" class="icon-btn" data-icon="🗃️">🗃️</button>
<button type="button" class="icon-btn" data-icon="🗄️">🗄️</button>
<button type="button" class="icon-btn" data-icon="🗑️">🗑️</button>
<button type="button" class="icon-btn" data-icon="📆">📆</button>
<button type="button" class="icon-btn" data-icon="📅">📅</button>
<button type="button" class="icon-btn" data-icon="🗓️">🗓️</button>
<button type="button" class="icon-btn" data-icon="⏰"></button>
<button type="button" class="icon-btn" data-icon="🕐">🕐</button>
<button type="button" class="icon-btn" data-icon="📰">📰</button>
<button type="button" class="icon-btn" data-icon="🗞️">🗞️</button>
<button type="button" class="icon-btn" data-icon="📓">📓</button>
<button type="button" class="icon-btn" data-icon="📔">📔</button>
<button type="button" class="icon-btn" data-icon="📒">📒</button>
<button type="button" class="icon-btn" data-icon="📕">📕</button>
<button type="button" class="icon-btn" data-icon="📗">📗</button>
<button type="button" class="icon-btn" data-icon="📘">📘</button>
<button type="button" class="icon-btn" data-icon="📙">📙</button>
<button type="button" class="icon-btn" data-icon="📚">📚</button>
</div>
<!-- Finanzen Icons -->
<div class="icon-grid hidden" data-tab-content="finance">
<button type="button" class="icon-btn" data-icon="💰">💰</button>
<button type="button" class="icon-btn" data-icon="💵">💵</button>
<button type="button" class="icon-btn" data-icon="💴">💴</button>
<button type="button" class="icon-btn" data-icon="💶">💶</button>
<button type="button" class="icon-btn" data-icon="💷">💷</button>
<button type="button" class="icon-btn" data-icon="💸">💸</button>
<button type="button" class="icon-btn" data-icon="💳">💳</button>
<button type="button" class="icon-btn" data-icon="🏦">🏦</button>
<button type="button" class="icon-btn" data-icon="🏧">🏧</button>
<button type="button" class="icon-btn" data-icon="💹">💹</button>
<button type="button" class="icon-btn" data-icon="🧾">🧾</button>
<button type="button" class="icon-btn" data-icon="💲">💲</button>
<button type="button" class="icon-btn" data-icon="💱">💱</button>
<button type="button" class="icon-btn" data-icon="🪙">🪙</button>
<button type="button" class="icon-btn" data-icon="💎">💎</button>
<button type="button" class="icon-btn" data-icon="⚖️">⚖️</button>
<button type="button" class="icon-btn" data-icon="🏛️">🏛️</button>
<button type="button" class="icon-btn" data-icon="🏢">🏢</button>
<button type="button" class="icon-btn" data-icon="🏪">🏪</button>
<button type="button" class="icon-btn" data-icon="🛒">🛒</button>
<button type="button" class="icon-btn" data-icon="🛍️">🛍️</button>
<button type="button" class="icon-btn" data-icon="🎁">🎁</button>
<button type="button" class="icon-btn" data-icon="🎫">🎫</button>
<button type="button" class="icon-btn" data-icon="🎟️">🎟️</button>
</div>
<!-- Haus/Wohnen Icons -->
<div class="icon-grid hidden" data-tab-content="home">
<button type="button" class="icon-btn" data-icon="🏠">🏠</button>
<button type="button" class="icon-btn" data-icon="🏡">🏡</button>
<button type="button" class="icon-btn" data-icon="🏘️">🏘️</button>
<button type="button" class="icon-btn" data-icon="🏚️">🏚️</button>
<button type="button" class="icon-btn" data-icon="🚪">🚪</button>
<button type="button" class="icon-btn" data-icon="🪟">🪟</button>
<button type="button" class="icon-btn" data-icon="🛏️">🛏️</button>
<button type="button" class="icon-btn" data-icon="🛋️">🛋️</button>
<button type="button" class="icon-btn" data-icon="🪑">🪑</button>
<button type="button" class="icon-btn" data-icon="🚿">🚿</button>
<button type="button" class="icon-btn" data-icon="🛁">🛁</button>
<button type="button" class="icon-btn" data-icon="🚽">🚽</button>
<button type="button" class="icon-btn" data-icon="🧹">🧹</button>
<button type="button" class="icon-btn" data-icon="🧺">🧺</button>
<button type="button" class="icon-btn" data-icon="🧴">🧴</button>
<button type="button" class="icon-btn" data-icon="🪥">🪥</button>
<button type="button" class="icon-btn" data-icon="🍳">🍳</button>
<button type="button" class="icon-btn" data-icon="🍴">🍴</button>
<button type="button" class="icon-btn" data-icon="🥄">🥄</button>
<button type="button" class="icon-btn" data-icon="🔪">🔪</button>
<button type="button" class="icon-btn" data-icon="🏺">🏺</button>
<button type="button" class="icon-btn" data-icon="🌡️">🌡️</button>
<button type="button" class="icon-btn" data-icon="🌿">🌿</button>
<button type="button" class="icon-btn" data-icon="🪴">🪴</button>
<button type="button" class="icon-btn" data-icon="🚗">🚗</button>
<button type="button" class="icon-btn" data-icon="🚙">🚙</button>
<button type="button" class="icon-btn" data-icon="🚕">🚕</button>
<button type="button" class="icon-btn" data-icon="🛵">🛵</button>
<button type="button" class="icon-btn" data-icon="🚲">🚲</button>
<button type="button" class="icon-btn" data-icon="⛽"></button>
</div>
<!-- Sonstige Icons -->
<div class="icon-grid hidden" data-tab-content="misc">
<button type="button" class="icon-btn" data-icon="⭐"></button>
<button type="button" class="icon-btn" data-icon="🌟">🌟</button>
<button type="button" class="icon-btn" data-icon="✨"></button>
<button type="button" class="icon-btn" data-icon="💫">💫</button>
<button type="button" class="icon-btn" data-icon="❤️">❤️</button>
<button type="button" class="icon-btn" data-icon="💙">💙</button>
<button type="button" class="icon-btn" data-icon="💚">💚</button>
<button type="button" class="icon-btn" data-icon="💛">💛</button>
<button type="button" class="icon-btn" data-icon="💜">💜</button>
<button type="button" class="icon-btn" data-icon="🧡">🧡</button>
<button type="button" class="icon-btn" data-icon="✅"></button>
<button type="button" class="icon-btn" data-icon="❌"></button>
<button type="button" class="icon-btn" data-icon="⚠️">⚠️</button>
<button type="button" class="icon-btn" data-icon="❗"></button>
<button type="button" class="icon-btn" data-icon="❓"></button>
<button type="button" class="icon-btn" data-icon=""></button>
<button type="button" class="icon-btn" data-icon="🔔">🔔</button>
<button type="button" class="icon-btn" data-icon="🔕">🔕</button>
<button type="button" class="icon-btn" data-icon="🎯">🎯</button>
<button type="button" class="icon-btn" data-icon="🎲">🎲</button>
<button type="button" class="icon-btn" data-icon="🧩">🧩</button>
<button type="button" class="icon-btn" data-icon="🏆">🏆</button>
<button type="button" class="icon-btn" data-icon="🥇">🥇</button>
<button type="button" class="icon-btn" data-icon="🥈">🥈</button>
<button type="button" class="icon-btn" data-icon="🥉">🥉</button>
<button type="button" class="icon-btn" data-icon="🎵">🎵</button>
<button type="button" class="icon-btn" data-icon="🎶">🎶</button>
<button type="button" class="icon-btn" data-icon="🎬">🎬</button>
<button type="button" class="icon-btn" data-icon="🎨">🎨</button>
<button type="button" class="icon-btn" data-icon="🎭">🎭</button>
<button type="button" class="icon-btn" data-icon="👤">👤</button>
<button type="button" class="icon-btn" data-icon="👥">👥</button>
<button type="button" class="icon-btn" data-icon="👨‍💼">👨‍💼</button>
<button type="button" class="icon-btn" data-icon="👩‍💼">👩‍💼</button>
<button type="button" class="icon-btn" data-icon="👨‍💻">👨‍💻</button>
<button type="button" class="icon-btn" data-icon="👩‍💻">👩‍💻</button>
<button type="button" class="icon-btn" data-icon="🧑‍🔧">🧑‍🔧</button>
<button type="button" class="icon-btn" data-icon="👷">👷</button>
<button type="button" class="icon-btn" data-icon="🔴">🔴</button>
<button type="button" class="icon-btn" data-icon="🟠">🟠</button>
<button type="button" class="icon-btn" data-icon="🟡">🟡</button>
<button type="button" class="icon-btn" data-icon="🟢">🟢</button>
<button type="button" class="icon-btn" data-icon="🔵">🔵</button>
<button type="button" class="icon-btn" data-icon="🟣">🟣</button>
<button type="button" class="icon-btn" data-icon="⚪"></button>
<button type="button" class="icon-btn" data-icon="⚫"></button>
<button type="button" class="icon-btn" data-icon="🟤">🟤</button>
<button type="button" class="icon-btn" data-icon="🔶">🔶</button>
<button type="button" class="icon-btn" data-icon="🔸">🔸</button>
<button type="button" class="icon-btn" data-icon="🔹">🔹</button>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-close-modal>Abbrechen</button>
<button type="submit" form="knowledge-category-form" class="btn btn-primary" id="btn-save-category">Speichern</button>
</div>
</div>
<!-- Knowledge Entry Modal -->
<div id="knowledge-entry-modal" class="modal modal-medium hidden">
<div class="modal-header">
<h2 id="knowledge-entry-modal-title">Neuer Eintrag</h2>
<button class="modal-close" data-close-modal>&times;</button>
</div>
<div class="modal-body">
<form id="knowledge-entry-form">
<input type="hidden" id="knowledge-entry-id">
<input type="hidden" id="knowledge-entry-category-id">
<div class="form-group">
<label for="knowledge-entry-title">Titel *</label>
<input type="text" id="knowledge-entry-title" required maxlength="200" placeholder="z.B. Fritzbox Router">
</div>
<div class="form-group">
<label for="knowledge-entry-url">Link (URL)</label>
<input type="url" id="knowledge-entry-url" placeholder="https://...">
</div>
<div class="form-group">
<label for="knowledge-entry-notes">Notizen</label>
<textarea id="knowledge-entry-notes" rows="5" placeholder="Notizen, Anleitungen, Tipps... (Markdown unterstützt)"></textarea>
</div>
<!-- Anhänge (nur im Bearbeitungsmodus) -->
<div class="form-group" id="knowledge-attachments-section" style="display: none;">
<label>Anhänge</label>
<div id="knowledge-attachments-container" class="knowledge-attachments-container"></div>
<div class="file-upload-area" id="knowledge-file-upload-area">
<svg class="icon" viewBox="0 0 24 24"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12" stroke="currentColor" stroke-width="2" fill="none"/></svg>
<span>Dateien hierher ziehen oder <label for="knowledge-file-input" class="file-input-label">auswählen</label></span>
<input type="file" id="knowledge-file-input" multiple hidden>
<span class="file-hint">Max. 15 MB pro Datei</span>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<div class="modal-footer-left">
<button type="button" id="btn-delete-entry" class="btn btn-text text-danger hidden">Löschen</button>
</div>
<div class="modal-footer-right">
<button type="button" class="btn btn-secondary" data-close-modal>Abbrechen</button>
<button type="submit" form="knowledge-entry-form" class="btn btn-primary" id="btn-save-entry">Speichern</button>
</div>
</div>
</div>
<!-- Toast Container -->
<div id="toast-container" class="toast-container"></div>