API¶
Obecně je možné Open Web Calendar používat bez omezení. Toto API je možné použít pro úpravu kalendáře za běhu.
Tato sekce může být užitečná pokud platí jedno z níže uvedených:
- Jste webový vývojář a chcete vložit Open Web Calendar.
- Chcete využít plnou flexibilitu, ne pouze to co je dostupné na konfigurační stránce.
- Chcete použít JavaScript pro dynamické generování designu a možností kalendáře.
- Chcete rozšířit funkcionalitu Open Web Calendar.
- Chcete použít Open Web Calendar jako proxy pro požadavky JSON událostí pro Váš vlastní feed.
Koncové body¶
Základní parametry u těchto koncových bodů jsou stejné:
/index.html
- upravit kalendář/about.html
- zobrazení informací o/calendar.html
- zobrazení kalendáře/calendar.spec
- stažení specifikace/calendar.ics
- přihlášení k odběru ics souboru/calendar.events.json
- FLEXIBINÍ - získá události jako JSON. Pozor! Toto LZE použít, nicméně neni zajištěno že schéma JSON zůstane stejné. V případě použití přidejte testy.
Další parametry jsou požadovány pro /calendar.events.json
:
timezone=UTC
- časové pásme ve kterém je potřeba zobrazit událostifrom=YYYY-MM-DD
- začátek období daných událostí (včetně)to=YYYY-MM-DD
- konec období daných událostí (mimo)
Parametry¶
Všechny parametry konfigurace jsou dostatečně popsány v default_specification. To je vzor. Například, pokud naleznete parametr title
v default_specification, máte několik možností:
Změna názvu v parametru dotazu:
/index.html?title=calendar
Změna názvu ve specifikaci YAML:
title: calendar
Změna názvu ve specifikaci JSON:
{
"title": "calendar"
}
Kompilace specifikace¶
Pomocí parametrů můžete změnit chování a vzhled kalendáře. Pokud je stejný parametr specifikován v různých místech, předchozí místo uvedené níže má nejvyšší přednost. Zde jsou místa pro zadání parametrů:
Parametry požadavků¶
Všechny parametry do URL kalendáře jsou ve specifikaci. Parametry požadavku mají nejvyšší přednost.
Příklady:
index.html?language=de
calendar.html?title=CALENDAR
specification_url¶
Pokud zadáte tento parametr dotazu, konfigurace editoru je načtena z této adresy URL. Parametry dotazu jsou stále důležitější než to, co je napsáno v tomto souboru. Zdrojový formát může být YAML nebo JSON.
Příklady:
calendar.html?specification_url=https://github.com/niccokunzmann/open-web-calendar/raw/master/open_web_calendar/default_specification.yml
open_web_calendar.app.DEFAULT_SPECIFICATION¶
Určeno pro vývojáře a Python-internal.
from open_web_calendar.app import DEFAULT_SPECIFICATION
DEFAULT_SPECIFICATION['title'] = 'calendar'
OWC_SPECIFICATION¶
Jedná se o volitelnou proměnnou prostředí. Přečtěte si více v Konfiguraci serveru.
default_specification¶
Tento soubor obsahuje výchozí parametry. Nesmí být vloženy přímo do zdrojového kódu. Všechny parametry jsou uvedeny a zdokumentovány zde, takže tento soubor lze použít pro referenci. Neupravujte tento soubor, použijte místo toho OWC_SPECIFICATION
proměnnou prostředí.
Přidání parametrů¶
Pokud přidáte nový parametr jako vývojář:
- Přidejte parametr s výchozí hodnotou do default_specification
- Přidejte implementaci v závislosti na jejím použití do
app.py
nebo šablon JavaScriptových souborů. Použitelná specifikace je již k dispozici ve všech. - Přidejte testy v features/configure-the-calendar.feature pro kontrolu, že kalendář reaguje na danou funkci.
- Přidejte testy v features/edit-the-calendar.feature, pro kontrolu, že parametr lze použít při úpravě kalendáře.
Specifikace v kalendáři¶
app.py kompiluje specifikaci z uvedených parametrů v get_specification()
. V template můžete přistupovat ke specifikaci pomocí proměnné specification
. Specifikace je k dispozici pro JavaScript jako proměnná specification
.
Viz také:
Specifikace na stránce Indexu¶
Výchozí specifikace je k dispozici před sestavením kalendáře v JavaScriptu v configuration.default_specification
proměnné. Funkce getSpecification() vytvořila specifikaci ze vstupů. Obecně by měla být použita proměnná specification
.
Architektura¶
Níže najdete obrázek architektury.
Základem kalendáře je specifikace, která je dána v různých formách. Tato specifikace ovlivňuje všechny kroky.
Poté, co je specifikace zkompilována, jsou (ics) soubory kalendáře staženy z internetu.
Události jsou generovány ze souborů kalendáře.
Poté jsou vybrány různé pohledy na zobrazení událostí.
Toto nakonec vede k HTML a stylovým změnám webové stránky kalendáře.
V reálných aplikacích jsou tyto kroky trochu smíchány a neseřazeny nebo vynechány, ale to vysvětluje jednoduše základní, počáteční myšlenku zpracování události.