Architektura » Historie » Verze 4
Tomáš Pašek, 2021-05-23 15:13
1 | 1 | Ondřej Anděl | h1. Architektura aplikace |
---|---|---|---|
2 | |||
3 | !architecturepng.png! |
||
4 | |||
5 | Ve výše přiloženém diagramu představuje každá "bublina" vlastní složku a logický celek. Jak je ze schématu patrné, uživatelům jsou přímo přístupné celé stránky z kořenového adresáře (changes.php, contacts.php, atd...). Tyto soubory využívají položek z _view_, jmenovitě to jsou položky _header.html_, _menu.php_, _footer.html_, _style.css_ a pak příslušné položky z _view/contents_ představující samotný obsah stránek. Aplikace byla strukturována do těchto modulů z důvodu snížení duplicit kódu a zjednodušení orientace případným správcům. Aplikace využívá pro responzivní zobrazení (aka správně zobrazení v různých rozlišení) *bootsrap*. Pro příjemnější vzhled aplikace využívá ikony *font awesome*. |
||
6 | |||
7 | h2. view |
||
8 | |||
9 | h3. fonts |
||
10 | |||
11 | Aplikace obsahuje dva volně dostupné fonty připojené globálně ve _style.css_ přes definovací funkci *@font-face*. Font *impacted* je využit v hlavičce aplikace v položce _header.html_. Druhý font _charis-sil_ je využit na veškerý zbylý text aplikace. |
||
12 | |||
13 | h3. img |
||
14 | |||
15 | Veškeré obrázky aplikace jsou uloženy a načítány z této složky. V momentální verzi je v této složce obsaženo logo zču, ikona pro dropboxy(nejjednodušší sjednocení stylu ikonky) a dvojice gifů použitých v uživatelských příručkách, jež jsou součástí samotné aplikace. |
||
16 | |||
17 | h3. js-scripts |
||
18 | |||
19 | V této složce jsou obsaženy hlavní javascriptové metody využívané aplikací (nicméně ne všechny). Některé javascriptové funkce byly zachovány v jejich původních místech, to se týký zejména funkcionalit ovládající modali a samotné volání ovladačů. Tyto "vyjímečné" scripty je možné najít přímo v segmentech tématicky týkajících se příslušné funkcionality. |
||
20 | Soubor _convertors.js_ obsahuje utilky (ne vždy se jedná o metody, mnohdy jsou to pouze objekty nebo pole) pro převod kódů získaných z databáze do uživatelsky pochopitelného textu. Tento soubor je ideální prostudovat pro pochopení zkratek využívaných v aplikaci (většina z nich zavedena již z předchozí aplikace a databáze). |
||
21 | |||
22 | h3. library |
||
23 | |||
24 | Aplikace využívá dvě knihovny pro přestylování a rozšírení funkcionality komponenty multiselectu. Komponenta _vanillaSelect_ je využívána pro reprezentaci filteru manuscriptu v normálních částech aplikace (momentálně pouze v _searchContent.php_) a komponenta _jQueryMulti_ je používána za obdobným účelem v jQuery generovaných modalech (momentálně pouze v _editModal.html_). |
||
25 | |||
26 | h3. modals |
||
27 | |||
28 | 3 | Ondřej Anděl | Modaly aplikace jsou vytvářeny za využití jQuery a volají-li php script, je volání těchto scriptů děláno ručně přes FormData. Jinak řečeno v modalech *není využívan tag form*, důvodem toho je nutnost preprocessingu na klientu před předáním scriptům serveru. Modaly _editModal.html_ a _editUserModal.html_ jsou využívány nejenom pro editaci, ale i pro přidávání (prevence duplicity kódu), z tohoto důvodu je v těchto souborech rozlišován účel modalu (a tudíž i volaný script) podle titulku modalu. Tyto dva modaly rovněž řeší předvyplnění daty, aby nebylo nutné opět získávat data ze serveru přes dříve definovaná pole v _view/contents/searchContent.php_ a _view/contents/userContent.php_. Do pole je přistupováno přes modalu předané pseudo-id (aka kolikátá položka v poli má být v modalu načtena. |
29 | 1 | Ondřej Anděl | |
30 | h3. contents |
||
31 | |||
32 | 3 | Ondřej Anděl | Soubory v této složce představují samotný obsah jednotlivých stránek. Příslušnost stránce je patrná z názvů, jež by měli odpovídat názvu stránek (viz obrázek). Soubory _contactsContent.html_, _manualContent.html_, _userManualContent.html_, _indexContent.html_ a _materialContent.html_ je jednoduchý, jedná se jenom o obyčejný text. Zbylé soubory obsahují i jednoduché js scripty pro dotažení dat do tabulek, nebo využívají již dříve zmíněné scripty ze složky _view/js-scripts_. Jelikož výsledky jsou stránkovány a filtovány pouze v _searchContent.php_, soubory _view/js-scripts/paging.js_ a _view/js-scripts/filterControl.js_ jsou využívány pouze tímto souborem. |
33 | 1 | Ondřej Anděl | |
34 | h2. controller |
||
35 | |||
36 | 4 | Tomáš Pašek | h3. CreateChangeRequestController.php |
37 | |||
38 | |||
39 | 1 | Ondřej Anděl | TODO |
40 | |||
41 | h2. model |
||
42 | |||
43 | TODO |