Obecná vylepšení
- Výrazněji odlišena horní lišta a buňky datové tabulky související s prováděním hromadných akcí.
- „Stránkovač“ nyní vždy jasně zobrazuje číslo poslední stránky a nikdy nenabízí stránky mimo skutečný rozsah dat.
- Validace povinných polí je nově prováděna i na straně prohlížeče (není nutno načítat zvlášť stránku se samotným formulářem).
- Tlačítko pro obnovu cache stránky přejmenováno z „Cache“ na „Obnovit“.
- Při vertikálním scrollování datové tabulky je nyní v pravém dolním rohu k dispozici tlačítko filtru, které má stejný efekt jako tlačítko „Filtrovat“ nad datovou tabulkou.
- Hodnoty i filtr nad sloupcem typu pravda/nepravda (zelená fajfka / červený křížek) jsou nově zobrazeny jednotně pomocí utf8 ikon ✔️❌.
- Na přihlašovací stránku přidána ikonka klíče 🔑.
- Menší grafické úpravy vrchní lišty aplikace; odstraněno nadbytečné odsazení, odstraněna „svítivost“ tlačítek, případné chybějící logo firmy je nyní automaticky nahrazeno ikonou umožňující přechod na domovskou stránku.
Optimalizace
- Optimalizována rychlost načtení obecných uživatelských nastavení.
- Optimalizována rychlost načtení dat filtrů stránky.
- Optimalizováno filtrování záznamů stránky (na databázích typu MySQL).
- V prohlížeči Firefox značně optimalizováno vykreslení a scrollování stránek s ukotveným záhlavím datové tabulky.
- Ve všech prohlížečích optimalizováno horizontální scrollování na stránkách s panelem nástrojů (Export atd.).
Přepracování základního exportu dat
Na místě dřívějšího rozbalovacího seznamu možností „Exportovat do Excelu (vše)“ nyní naleznete tlačítko „Exportovat data“, které otevře formulář s rozšířenou nabídkou možností exportu. Nově lze export dat omezit pouze na určité sloupce.
Možné výstupy jsou:
- Excel – nyní ve formátu XLSX namísto zastaralého XLS, tento výstup kombinuje výhody všech dosud dostupných možností exportu do Excelu v jednom. Data se vyexportují korektně vzhledově naformátovaná a zároveň s nimi lze v prostředí Excelu dále pracovat.
- PDF – pokud nechcete tisknout data z prostředí Excelu, lze použít tuto možnost pro přímý výstup do PDF. V nabídce je nastavení velikosti písma, okrajů a orientace výsledného PDF.
- CSV – výstup v jednoduchém CSV formátu je vhodný především pro import do libovolného externího programu mimo Excel. Formulář zde umožňuje volbu oddělovače dat a také přítomnosti hlavičky s názvy sloupců.
Opravy
- Oprava výšky řádku s agregačními hodnotami v hlavičce datové tabulky. Dosud byl řádek v některých případech nadměrně vysoký.
- Při vyhledávání v našeptávacím filtru se nyní vždy nabídne přesná shoda jako první v pořadí (pokud byla nalezena).
- Pole vyhledávání v menu již není ve výchozím stavu aktivní (způsobovalo problémy na mobilních zařízeních).
- Oprava chybného chování hromadných akcí při příchodu proklikem, kdy možnost vybrat všechny záznamy napříč stránkováním nebrala v potaz omezení dat nastavené proklikem.
- Oprava příliš horlivého převádění některých hodnot v datové tabulce na čísla, ačkoli čísla představovat nemají.
- Oprava pozic ikon menu při vyhledávání v menu a také v mobilním zobrazení.
- Oprava chyby, kdy mohlo při řazení dat dojít k nesprávnému obarvení řádků dle podmíněného formátování.
- Oprava chybného vyhodnocení filtru typu našeptávač při použití kombinace přesné a nepřesné shody zároveň.
- Povinná pole již nikdy zbytečně nenabízí (pro ně neplatnou) možnost „vynulovat“.
- Při editaci formuláře s povinným souborem se již nezobrazuje neplatná možnost „Smazat soubor“.
- Oprava funkcionality „dynamického“ výběrového seznamu v modálních formulářích při provádění hromadné akce.
- Oprava hromadné editace hodnot v textovém poli s rozšířeným editorem (richtextarea / TinyMCE).
Administrační rozhraní
Rozbalit/zabalit seznam změn relevantní pro administrátory
Obecná vylepšení
- Administrace zdrojů dat nyní dokáže přejít použité zdroje dat, které už v databázi neexistují. Tyto zdroje dat jsou na stránce výstražně znázorněny. Nově jsou také odlišeny zdroje dat postavené nad pohledem v databázi, oproti běžné tabulce.
- Proměnné %user, %groupId, %groupString a %groupName jsou nyní rozeznány na všech relevantních místech v systému.
- Stránka typu detail nyní podporuje GROUP BY (na úrovni widgetu). Zároveň přidána podpora možnosti ROLLUP (spíše určená pro stránky typu table), kterou lze aktivovat na úrovni stránky.
- V administraci sloupců stránek typu table lze nově nastavit výchozí sloupce pro export (tlačítko „Výchozí export“).
- Vylepšena detekce datového typu a automatické zvolení typu formulářových prvků při jejich prvotním vytvoření. Přidáno tlačítko pro snadné skrytí formulářového pole bez potřeby editace formulářem.
- K dispozici nové formulářové pravidlo CommonRules::initiallyEmpty, které zajistí, že daný prvek začíná vždy bez hodnoty.
- Implementován nový typ nehromadné akce „Obecná akce“, podporován na stránkách typu table i detail. Akce se technicky chová podobně jako typ „Nový záznam“; otevře formulář buď prázdný nebo naplněný přes relace poslané do jednotlivých polí. Momentálně je podpora pouze pro jednu instanci této akce ke každé tabulce/widgetu, stejně jako u ostatních nehromadných akcí. Volba přímého spuštění skriptu momentálně není podporována (cílový formulář však samozřejmě může používat vlastní skripty).
- Formulář akcí již nenabízí možnost zvolit ikonu (krom nové akce „Obecná akce“); pro ostatní nehromadné akce se vždy použije relevantní ikona automaticky. Některé možnosti a pole přejmenovány na jasnější názvy. Některé další irelevantní nabídky skryty pro určité typy akcí, aby se formulář zjednodušil.
- Různá vylepšení zobrazení administrace nehromadných akcí na stránkách typu table i detail. V administraci stránky typu detail lze nyní vždy administrovat nehromadné akce i pokud daný widget neobsahuje data (administrace všech nehromadných akcí se nově zobrazuje i staticky nad widgetem, mimo datové řádky).
- Přidána podpora akce typu Mapa do widgetů typu one-to-one i one-to-many.
- V nastavení sloupce lze nyní definovat vlastní logiku řazení – výraz dle uloženého SQL dotazu. Do svého SQL výrazu lze poslat argumenty podobným způsobem jako u SQL sloupců. SQL definice je očekávána ve formátu platném pro prvek řazení, respektive je možné definovat i několik prvků řazení standardně oddělených čárkou. V pořadí poslední prvek řazení nesmí definovat směr řazení ASC/DESC, aby umožnil uživateli kontrolu nad řazením (pro ovlivnění výchozího řazení lze použít příslušné nastavení sloupce).
Vzdálená synchronizace systému
Nová funkcionalita umožňující „nalít“ systémová data UNISu do jiné aplikace UNIS. Vhodné pro synchronizaci z „vývojové“ aplikace do produkční verze.
Cílové systémy pro synchronizaci lze definovat v configu možností sync.remoteDestinations (může jich být i několik; jedná se o pole databázových konfigurací cílových spojení). Následně se na administrační stránce „Databáze & Server“ objeví nová sekce „Synchronizace vzdáleného systému“, kde lze jednoduše synchronizaci spustit tlačítkem „Synchronizovat do vzdáleného systému“.
Po synchronizaci dat je automaticky proveden pokus o zneplatnění cache ve vzdáleném systému.
Následující systémové tabulky jsou vyloučeny ze vzdálené synchronizace (jelikož obsahují data zadaná/ovlivněná uživateli aplikace): sys_page_color_params, sys_settings, sys_ip, sys_user_agent, sys_event, sys_form_history, sys_printings, system_cron_process, sys_cache, sys_users, sys_priv_users
Spuštěním vzdálené synchronizace se uloží záznam do tabulky událostí identifikovaný subtypem „toRemote“.
Opravy
- Oprava posunu hromadných akcí pomocí přetahovátka.
- Optimalizována rychlost načtení administrace sloupců stránky.
- Příchozí relace ve formuláři jsou nyní vyhodnoceny v takovém pořadí, aby závislé filtry mohly bezpečněji využít jejich hodnoty.
- GROUP BY je nyní součástí „vnitřního“ dotazu stránky. To momentálně znamená, že už nejde nastavit group by podle dynamických/výpočtových sloupců. Také to však znamená lepší výkon dotazů, ukládání korektně seskupeného výsledku do cache stránky, a správné fungování agregačních funkcí přímo ve výpočtových sloupcích stránky.
- Při synchronizaci systému směrem na slave již není zbytečně zneplatňován cache.
- Z formuláře Nastavení odstraněna možnost obarvení favicony, momentálně není funkční ani potřebná.
- Oprava odesílání relací do prokliku s typem akce „generovat xlsx“.
- Sloupce použité pro group_by nebo xlsx_split_by_column_id nyní systém rozpoznává jako využívané, i když nejsou zobrazeny.
- Oprava nastavení group_by na PostgreSQL.
- Oprava přidání zdrojů dat se sloupci speciálních typů (např. geometrie).
- Oprava (ne)použití vlastní definované chybové hlášky pravidla.
Poznámky pro vývojaře
- Verze Nette povýšena na 2.4!
- Rozsáhlé refaktorování jádra; postupný přechod na dependency injection a namespace.
- Knihovna Texy přesunuta do composeru.
- Migrace z opuštěné knihovny PHPExcel na PhpSpreadsheet 1.8.
- Refaktorování systémových tabulek (vhodnější výchozí hodnoty, korektní nastavení NOT NULL, normalizace typů/délky textových sloupců): sys_data_source_column, sys_page, sys_form_control
- Asynchronní aktualizace cache přes semafor již nevyhazuje zbytečně chyby do logu.
- Veškeré konfigurační parametry mají nyní zadefinované výchozí hodnoty a komentáře v souboru common.neon. Ačkoli to UNIS verze 1.8 striktně nevyžaduje, zcela ustupujeme od používání starého formátu ini configů na nový formát neon. Aplikace nyní typicky využívají následující configy:
- common.neon – výchozí konfigurace dodaná jádrem UNIS jednotně pro všechny aplikace, mění se pouze z repositáře jádra UNIS
- local.neon – vlastní konfigurace konkrétní instance/aplikace, může definovat jakékoli změny oproti common.neon, není verzováno gitem
- nakonec většina aplikací využívá config sdílený pro danou skupinu aplikací (například mpe.neon), který je načten z local.neon. Tyto sdílené configy jsou udržovány v gitu scripts/app/config