Dokumentit: kokousmuistiot, kansiorakenne, sub-tabit, asiakaslinkkaus

- Uusi dokumenttityyppi "kokousmuistio" jolla inline tekstieditori (ei tiedostopohjainen)
- document_versions.content -sarake kokousmuistioiden tekstin tallennukseen
- Sub-tabit Dokumentit-välilehdelle (Kaikki / Kokoukset) Tekniikka-mallin mukaan
- Kansiorakenne: document_folders-taulu, kansionavigaatio breadcrumbsilla
- Uudet API-endpointit: document_folders, document_folder_save/delete, document_content_save, document_move
- Asiakasprofiilin Dokumentit-osio: näyttää linkitetyt dokumentit + pikanapit luontiin
- Asiakasprofiilista voi avata dokumentin suoraan tai luoda uuden linkitettynä asiakkaaseen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 23:19:05 +02:00
parent 150c774bb3
commit f40b387383
5 changed files with 549 additions and 38 deletions

View File

@@ -730,13 +730,26 @@
<!-- Tab: Dokumentit -->
<div class="tab-content" id="tab-content-documents">
<div class="sub-tab-bar" id="doc-sub-tab-bar">
<button class="sub-tab active" data-doc-subtab="docs-all">Kaikki</button>
<button class="sub-tab" data-doc-subtab="docs-kokoukset">Kokoukset</button>
</div>
<div class="main-container">
<!-- Listanäkymä -->
<div id="docs-list-view">
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:0.5rem;">
<h3 style="color:var(--primary-dark);margin:0;">📄 Dokumentit</h3>
<button class="btn-primary" id="btn-new-document">+ Uusi dokumentti</button>
<h3 style="color:var(--primary-dark);margin:0;" id="docs-list-title">📄 Dokumentit</h3>
<div style="display:flex;gap:0.5rem;">
<button class="btn-primary" id="btn-new-document">+ Uusi dokumentti</button>
<button class="btn-primary" id="btn-new-meeting-note" style="display:none;">+ Uusi kokousmuistio</button>
</div>
</div>
<!-- Kansionavigointi -->
<div id="doc-folder-bar" style="display:flex;align-items:center;gap:0.5rem;margin-bottom:0.75rem;flex-wrap:wrap;">
<span id="doc-breadcrumbs" style="font-size:0.9rem;color:#555;"></span>
<button class="btn-secondary" id="btn-new-folder" style="font-size:0.8rem;padding:0.25rem 0.6rem;">+ Kansio</button>
</div>
<div id="doc-folders-grid" style="display:flex;gap:0.5rem;margin-bottom:0.75rem;flex-wrap:wrap;"></div>
<div style="display:flex;gap:0.5rem;margin-bottom:1rem;flex-wrap:wrap;">
<input type="text" id="doc-search" placeholder="Hae dokumentteja..." style="flex:1;min-width:150px;">
<select id="doc-filter-customer" style="min-width:140px;">
@@ -748,6 +761,7 @@
<option value="lasku">Lasku</option>
<option value="ohje">Ohje</option>
<option value="raportti">Raportti</option>
<option value="kokousmuistio">Kokousmuistio</option>
<option value="muu">Muu</option>
</select>
</div>
@@ -792,13 +806,31 @@
</div>
<p id="doc-read-description" style="color:#555;margin-bottom:1.5rem;"></p>
<!-- Nykyisen version lataus -->
<div style="margin-bottom:1.5rem;">
<!-- Kokousmuistion sisältö -->
<div id="doc-read-content-section" style="display:none;margin-bottom:1.5rem;">
<div id="doc-read-content" style="white-space:pre-wrap;background:#fefefe;border:1px solid #e5e7eb;padding:1rem;border-radius:8px;min-height:100px;line-height:1.6;font-size:0.95rem;"></div>
<div style="margin-top:0.75rem;">
<button class="btn-primary" id="btn-doc-edit-content">✏️ Muokkaa muistiota</button>
</div>
</div>
<!-- Kokousmuistion inline-editori -->
<div id="doc-inline-editor" style="display:none;margin-bottom:1.5rem;">
<textarea id="doc-inline-content" rows="15" placeholder="Kirjoita kokousmuistio tähän..."></textarea>
<div style="margin-top:0.5rem;display:flex;gap:0.5rem;flex-wrap:wrap;">
<input type="text" id="doc-inline-notes" placeholder="Muistiinpanot versiosta (valinnainen)" style="flex:1;min-width:200px;">
<button class="btn-primary" id="btn-doc-save-content">Tallenna</button>
<button class="btn-secondary" id="btn-doc-cancel-content">Peruuta</button>
</div>
</div>
<!-- Nykyisen version lataus (tiedostopohjaisille) -->
<div id="doc-file-section" style="margin-bottom:1.5rem;">
<button class="btn-primary" id="btn-doc-download" style="font-size:1rem;padding:0.7rem 1.5rem;">⬇️ Lataa tiedosto</button>
</div>
<!-- Uusi versio -->
<div style="background:#f8f9fb;padding:1rem;border-radius:10px;margin-bottom:1.5rem;">
<!-- Uusi versio (tiedostopohjaisille) -->
<div id="doc-upload-section" style="background:#f8f9fb;padding:1rem;border-radius:10px;margin-bottom:1.5rem;">
<h4 style="margin:0 0 0.75rem;color:var(--primary-dark);">Lataa uusi versio</h4>
<div style="display:flex;gap:0.5rem;flex-wrap:wrap;align-items:end;">
<input type="file" id="doc-version-file" style="flex:1;min-width:200px;">
@@ -848,6 +880,7 @@
<option value="lasku">Lasku</option>
<option value="ohje">Ohje</option>
<option value="raportti">Raportti</option>
<option value="kokousmuistio">Kokousmuistio</option>
<option value="muu">Muu</option>
</select>
</div>
@@ -861,11 +894,23 @@
<label>Tiedosto</label>
<input type="file" id="doc-edit-file">
</div>
<div class="form-group full-width">
<div class="form-group full-width" id="doc-edit-desc-group">
<label>Kuvaus</label>
<textarea id="doc-edit-description" rows="3" placeholder="Dokumentin kuvaus..."></textarea>
</div>
</div>
<!-- Kokousmuistion kentät -->
<div id="doc-edit-meeting-fields" style="display:none;margin-top:1rem;">
<div class="form-group" style="margin-bottom:0.75rem;">
<label>Osallistujat</label>
<input type="text" id="doc-edit-participants" placeholder="Nimi1, Nimi2, Nimi3">
</div>
<div class="form-group">
<label>Muistion sisältö</label>
<textarea id="doc-edit-content" rows="15" placeholder="Kirjoita kokousmuistio tähän..." style="font-family:inherit;line-height:1.6;"></textarea>
</div>
</div>
<input type="hidden" id="doc-edit-folder-id">
<div style="margin-top:1rem;display:flex;gap:0.5rem;">
<button type="submit" class="btn-primary">Tallenna</button>
<button type="button" class="btn-secondary" id="btn-doc-edit-cancel">Peruuta</button>