chore: cleanup - remove CGI/old scripts/TASK/copilot files; update README + in-app docs
Some checks failed
Build & Push Docker / build (push) Has been cancelled
Some checks failed
Build & Push Docker / build (push) Has been cancelled
This commit is contained in:
@@ -923,3 +923,26 @@ body {
|
||||
line-height: 1.1;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Docs version line */
|
||||
.docs-version {
|
||||
color: var(--text-light);
|
||||
font-size: 12px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.docs-container h3 {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 8px;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.docs-container h2 {
|
||||
font-size: 20px;
|
||||
margin-bottom: 4px;
|
||||
color: var(--header-bg);
|
||||
}
|
||||
|
||||
@@ -83,73 +83,84 @@
|
||||
<!-- Documentation tab -->
|
||||
<div class="tab-content hidden" id="tab-docs">
|
||||
<div class="docs-container">
|
||||
<h2>Dokumentace — Scenár Creator v4</h2>
|
||||
<h2>Scenár Creator — Dokumentace</h2>
|
||||
<p class="docs-version">Verze 4.2 | <a href="/docs" target="_blank">Swagger API</a> | <a href="/api/sample">Vzorový JSON</a></p>
|
||||
|
||||
<h3>Jak začít</h3>
|
||||
<ol>
|
||||
<li><strong>Nový scénář</strong> — klikněte na "Nový scénář" v záhlaví.</li>
|
||||
<li><strong>Import JSON</strong> — klikněte na "Import JSON" a vyberte uložený .json soubor.</li>
|
||||
<li><strong>Nový scénář</strong> — klikněte na „Nový scénář" v záhlaví. Vytvoří se prázdný scénář pro dnešní den.</li>
|
||||
<li><strong>Import JSON</strong> — klikněte na „Import JSON" a vyberte dříve uložený .json soubor.</li>
|
||||
<li><strong>Vzorový JSON</strong> — stáhněte <a href="/api/sample">sample.json</a> jako šablonu a importujte ho.</li>
|
||||
</ol>
|
||||
|
||||
<h3>Nastavení akce</h3>
|
||||
<p>V postranním panelu nastavte:</p>
|
||||
<h3>Nastavení akce (postranní panel)</h3>
|
||||
<ul>
|
||||
<li><strong>Od / Do</strong> — rozsah dat akce. Každý den se zobrazí jako jeden řádek v editoru.</li>
|
||||
<li>Jedno datum = jednodnenní akce, více datumů = vícedenní kurz.</li>
|
||||
<li><strong>Název / Podtitul / Místo</strong> — zobrazí se v záhlaví PDF.</li>
|
||||
<li><strong>Od / Do</strong> — rozsah dat akce. Každý den = jeden řádek v editoru. Jednodnevní kurz = stejné datum v obou polích.</li>
|
||||
<li><strong>Typy programů</strong> — přidejte typ kliknutím na „+ Přidat typ", nastavte název a barvu. Každý blok patří k jednomu typu.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Práce s bloky</h3>
|
||||
<ul>
|
||||
<li><strong>Přidání bloku:</strong> Klikněte na "+ Přidat blok" nebo klikněte na prázdné místo v časové ose.</li>
|
||||
<li><strong>Přesun bloku:</strong> Chytněte blok a táhněte doleva/doprava po časové ose. Snap na 15 min.</li>
|
||||
<li><strong>Přidání:</strong> Klikněte na „+ Přidat blok" nebo klikněte na prázdné místo v řádku dne.</li>
|
||||
<li><strong>Přesun:</strong> Chytněte blok a táhněte doleva/doprava. Snap na 15 minut.</li>
|
||||
<li><strong>Změna délky:</strong> Chytněte pravý okraj bloku a táhněte.</li>
|
||||
<li><strong>Úprava bloku:</strong> Klikněte na blok.</li>
|
||||
<li><strong>Smazání bloku:</strong> V editačním okně klikněte na "Smazat blok".</li>
|
||||
<li><strong>Úprava:</strong> Klikněte na blok — otevře se formulář.</li>
|
||||
<li><strong>Smazání:</strong> V editačním formuláři klikněte na „Smazat blok".</li>
|
||||
</ul>
|
||||
|
||||
<h3>Čas bloku</h3>
|
||||
<h3>Formulář bloku</h3>
|
||||
<ul>
|
||||
<li>Zadejte <strong>Začátek</strong> a <strong>Konec</strong> (HH:MM).</li>
|
||||
<li>Nebo zadejte <strong>Začátek</strong> a <strong>Trvání</strong> (HH:MM) — konec se vypočítá automaticky.</li>
|
||||
<li>Lze zadat i <strong>program přes půlnoc</strong> — konec může být menší než začátek (např. 23:00 → 01:30).</li>
|
||||
<li><strong>Den</strong> — výběr pouze z nastavených dní akce (ne volné datum).</li>
|
||||
<li><strong>Začátek / Konec</strong> — čas HH:MM.</li>
|
||||
<li><strong>Nebo trvání</strong> — zadáte hodiny a minuty → Konec se vypočítá. Funguje i opačně (zadáte Konec → trvání se aktualizuje).</li>
|
||||
<li><strong>Program přes půlnoc</strong> — Konec < Začátek je validní (blok přechází přes půlnoc). V editoru označen „→", v PDF správně vykreslí.</li>
|
||||
<li><strong>Garant</strong> — zobrazí se v bloku v editoru i v PDF (pod názvem bloku).</li>
|
||||
<li><strong>Poznámka</strong> — nezobrazuje se v editoru, pouze v PDF jako horní index (¹ ²...) u názvu bloku. Všechny poznámky jsou vypsány na 2. stránce PDF.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Typy programů a barvy</h3>
|
||||
<h3>Export / Import</h3>
|
||||
<ul>
|
||||
<li>Přidejte typ kliknutím na "+ Přidat typ".</li>
|
||||
<li>Nastavte název a barvu pomocí barevného výběru.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Export</h3>
|
||||
<ul>
|
||||
<li><strong>Export JSON</strong> — uloží scénář jako .json soubor pro pozdější použití.</li>
|
||||
<li><strong>Generovat PDF</strong> — vytvoří tisknutelný PDF timetable (A4, jedna stránka, barvy, legenda).</li>
|
||||
<li><strong>Vzorový JSON</strong> — <a href="/api/sample">stáhnout sample.json</a></li>
|
||||
<li><strong>Export JSON</strong> — stáhne celý scénář jako .json soubor. Uložte pro pozdější editaci.</li>
|
||||
<li><strong>Import JSON</strong> — načte dříve uložený .json soubor.</li>
|
||||
<li><strong>Generovat PDF</strong> — vytvoří tisknutelný harmonogram:
|
||||
<ul>
|
||||
<li>Stránka 1: timetable (řádky = dny, sloupce = čas, barvy dle typů, legenda)</li>
|
||||
<li>Stránka 2 (pokud jsou poznámky): výpis poznámek ke scénáři s čísly</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Formát JSON</h3>
|
||||
<table class="docs-table">
|
||||
<thead><tr><th>Pole</th><th>Typ</th><th>Popis</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>event.title</td><td>string</td><td>Název akce</td></tr>
|
||||
<tr><td>event.date_from</td><td>string</td><td>Začátek akce (YYYY-MM-DD)</td></tr>
|
||||
<tr><td>event.date_to</td><td>string</td><td>Konec akce (YYYY-MM-DD)</td></tr>
|
||||
<tr><td>event.location</td><td>string?</td><td>Místo konání</td></tr>
|
||||
<tr><td>program_types[].id</td><td>string</td><td>Unikátní ID typu</td></tr>
|
||||
<tr><td>program_types[].name</td><td>string</td><td>Název typu</td></tr>
|
||||
<tr><td>program_types[].color</td><td>string</td><td>Barva (#RRGGBB)</td></tr>
|
||||
<tr><td>blocks[].date</td><td>string</td><td>Datum bloku (YYYY-MM-DD)</td></tr>
|
||||
<tr><td>blocks[].start</td><td>string</td><td>Začátek (HH:MM)</td></tr>
|
||||
<tr><td>blocks[].end</td><td>string</td><td>Konec (HH:MM) — může být < start pro přes-půlnoční blok</td></tr>
|
||||
<tr><td>blocks[].title</td><td>string</td><td>Název bloku</td></tr>
|
||||
<tr><td>blocks[].type_id</td><td>string</td><td>ID typu programu</td></tr>
|
||||
<tr><td>blocks[].responsible</td><td>string?</td><td>Garant</td></tr>
|
||||
<tr><td>blocks[].notes</td><td>string?</td><td>Poznámka</td></tr>
|
||||
<tr><td>event.title</td><td>string</td><td>Název akce (povinné)</td></tr>
|
||||
<tr><td>event.date_from</td><td>string</td><td>První den akce (YYYY-MM-DD)</td></tr>
|
||||
<tr><td>event.date_to</td><td>string</td><td>Poslední den akce (YYYY-MM-DD)</td></tr>
|
||||
<tr><td>event.subtitle</td><td>string?</td><td>Podtitul (nepovinné)</td></tr>
|
||||
<tr><td>event.location</td><td>string?</td><td>Místo konání (nepovinné)</td></tr>
|
||||
<tr><td>program_types[].id</td><td>string</td><td>Unikátní identifikátor typu</td></tr>
|
||||
<tr><td>program_types[].name</td><td>string</td><td>Název typu (zobrazí se v legendě)</td></tr>
|
||||
<tr><td>program_types[].color</td><td>string</td><td>Barva v hex formátu (#RRGGBB)</td></tr>
|
||||
<tr><td>blocks[].id</td><td>string</td><td>Unikátní ID bloku (auto-generováno)</td></tr>
|
||||
<tr><td>blocks[].date</td><td>string</td><td>Den bloku (YYYY-MM-DD)</td></tr>
|
||||
<tr><td>blocks[].start</td><td>string</td><td>Čas začátku (HH:MM)</td></tr>
|
||||
<tr><td>blocks[].end</td><td>string</td><td>Čas konce (HH:MM) — pokud end < start, jde přes půlnoc</td></tr>
|
||||
<tr><td>blocks[].title</td><td>string</td><td>Název bloku (povinné)</td></tr>
|
||||
<tr><td>blocks[].type_id</td><td>string</td><td>ID typu programu (musí existovat v program_types)</td></tr>
|
||||
<tr><td>blocks[].responsible</td><td>string?</td><td>Garant — zobrazí se v editoru i PDF</td></tr>
|
||||
<tr><td>blocks[].notes</td><td>string?</td><td>Poznámka — jen v PDF, jako horní index + stránka 2</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>API dokumentace</h3>
|
||||
<p><a href="/docs" class="btn btn-secondary btn-sm" target="_blank">Swagger UI</a></p>
|
||||
<h3>Tipy</h3>
|
||||
<ul>
|
||||
<li>Scénář se <strong>neukládá automaticky</strong> — použijte Export JSON pro zálohování.</li>
|
||||
<li>Barvy typů se projeví okamžitě v editoru i v PDF.</li>
|
||||
<li>Pro tisk doporučujeme PDF v orientaci na šířku (A4 landscape).</li>
|
||||
<li>Pokud blok přechází přes půlnoc, vidíte ho s šipkou „→" — v PDF se zobrazí do konce dne.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user