Nové (uživatelské) ikony

Tohle je dlouhé a nesouvislé - je to taková “malá blbost,” ze které se vyvinul komplexní problém.

Ve starém Shipardu byly všude ikony Font Awesome 4.7. Dlouho se řešil přechod na verzi 5, dnes už máme verzi 6. Přechod se ukázal jako mnohem složitější operace, než to zpočátku vypadalo - takže se nakonec nic neuskutečnilo.

Hlavní problém přechodu byl ten, že se všude používaly “natvrdo” identifikátory FA ikony (takové to fa-user). Ve verzi FA5 se toho hodně změnilo (jiné identifikátory) a bylo jasné, že tudy cesta nevede.

V novém Shipardu už je to jinak. Používají se pouze interní identifikátory ikon a teprve ty jsou namapovány na konkrétní “fyzické” ikony - viz příklad.

Další komplikace nastala, když se daly zdrojové kódy na GitHub pod volnou licencí. Font Awesome 5 přišly s balíčkem volně použitelných ikon, ale ty pěkné ikony jsou teprve ve verzi Pro. Bohužel to nestačí koupit - licence opravňuje k používání, ale neumožňuje šíření.

Takže se usoudilo, že bude potřeba podporovat různé sady ikon. V současné době jsou podporovány sady Font Awesome 5 (podpora verze Pro zatím nefunguje, ale je v plánu), Bootstrap Icons a Material design icons.

To, jaké ikony se používají, jde přepínat v Laboratoři. Celé to funguje pěkně, ale přináší to několik menších a jeden velký problém.

Za prvé, ty ikony jsou prorostlé celým systémem. Nejde jenom o aplikaci, ale jde to i do tiskových sestav, do wiki a v podstatě i do webů. Tiskové sestavy jdou dořešit, pro wiki a web by se dalo udělat další nastavení, které by to nějak ošetřilo.

Za druhé, nabízí se možnost, že každý uživatel by si měl být schopen vybrat vlastní vzhled aplikace (barvy) a v důsledku tedy i sadu ikon. To je opět řešitelné a není v tom žádný velký problém.

Komplikace nastává tam, kde se dá “něčemu” nastavit ikona. Např. Sekce workflow, Typy položek, Sekce wiki atd. Myslím, že to je na hodně místech (cca 30). Ve starém Shipardu se tam dával natvrdo identifikátor FA ikony, v novém Shipardu už to bude muset být jinak:

  • Měla by existovat možnost vybrat “aplikační ikonu” - např. říct “tady chci ikony faktury přijaté”. Jaký konkrétní “obrázek” tam nakonec bude vyplyne z nastavení.
  • Musí ale jít vybrat i jakákoliv jiná ikona, která v aplikaci není použitá (FA6Pro obsahuje přes 13 tisíc ikon).

No a tady je ten velký problém: pokud vyberu např. pro sekci workflow nějakou konkrétní ikonu ze sady FA6Pro, uživatelům co mají vybrány jiné ikony to nebude fungovat.

Nabízí se dvě řešení:

  • Bude se vybírat ikona ze všech sad. Tj. vždycky bude potřeba vybrat (dnes) čtyři ikony pro každé místo, kde chci mít vlastní ikonu.
  • To přepínání sad ikon se vypne. Prostě všichni uživatelé v celé aplikaci budou používat jednu sadu ikon, kterou nastaví správce a hotovo.

Nemám na to moc názor.

P.S.:
Celé se to navíc komplikuje tím, že celý kód je přepsaný a v (blízké) budoucnosti by ikony měly (mohly) umožňovat:

Taky (v podstatě už dnes) nic nebrání tomu si udělat vlastní ikony, nebo si je nějak přenastavit.

Asi k tomu nemám moc relevantní názor, ale rád by si jako uživatel vybíral ikonu z nějakého seznamu z dostupných a nemuset bokem hledat a ručně přepisovat.

  1. pokud se zamkne sada icon, když se začne používat například FA6Pro, tak to bude jednoduché řešení, které bude fungovat, ale defacto se uzavře cesta pro případný upgrade sady icon, také se tím zabije možnost používat více sad v jedné aplikaci
  2. také definovat vždy všechny 4 icony v nastavení, zafunguje, ale jednou jich bude třeba 5 nebo 8 a co pak? zpětně to hledat a všude doplňovat?

Díky tomu mě napadá následující řešení. Existuje a bude se pomalu rozšiřovat sada “namapovaných” systémových ikon na momentální sady icon a tyto půjde používat bezproblémů kdykoli a kdekoli. Dokud by se nenastavilo v Nastavení, že je povoleno používat “uživatelské” icony, tak by taková možnost ani nebyla.

Pokud by si však v nastavení Někdo zakliknul, že chce používat “uživatelské” icony, tak by musel nadefinovat, které sady icon chce používat a jednu zvolit jako defaultní. Potom, když by takovou iconu definovat, tak by ji nadefinoval pro všechny své sady icon (třeba jen jedna nebo dvě). Kdo by chtěl, tak si může vybrat a udržovat všechny dostupné sady icon.

V aplikaci by se měl aktualizovat seznam použitých “uživatelských” ikon jako jeden seznam, kde název té ikony by byl název z nastavení, např: Wokflow->Sekce->Sekretariát. Tím by se zajistil rychlý přehled, kde takové ikony jsou nadefinované a při případném upgradu icon by to šlo pro novou sadu ikon rychle poopravovat, aby ty ikony fungovaly správně…

Případně by si v tom seznamu musel administrátor takovou ikonu první připravit a potom by ji teprve mohl použít v nastavení pro přiřazení např. k číselné řadě, sekci apod.

Jako to je dobrý nápad s tou definicí vlastních ikon - to řeší v podstatě všechny problémy.

Navíc by tím šly snadno “přepisovat” systémové ikony, takže by ustaly občas neplodné debaty na téma “tady by se mi líbila jiná ikona”.

Taky by šlo předpřipravit nějaké obecně použitelné ikony roztříděné do sekcí podobně, jako to bylo ve Font Awesome 4.7 - a tím by se ta potřeba definovat si vlastní ikony dost omezila.

To, že by se tím daly předefinovat systémové ikony mě ani nenapadlo, ale je to dobrý nápad.

Ještě tedy jeden názor, který nesouvisí přímo s iconami, ale nepřímo ano, tedy se vzhledem aplikace. Tak jak existuje modul pro možnost definování vlastních úprav CSS, který se používal v nějakých demo, tak bych tento modul implemenetoval do všech aplikací a např. přes experimentální nastavení bych umožnil každému kdo se cítí, si definovat vlastní vzhled … Tím, že je to jen v demo, tak to skončilo v prachu historie …, takto by byla šance to alepoň používat. Zase bych na to šel, že si admin vytvoří vlastní název vzhledu v uživatelském seznamu vzhledů, a začne si jej modifikovat …

Souhlasím s tím, že ty vzhledy by měly jít uživatelsky definovat.

Ale dělat to pro stávající uživatelské rozhraní nemá smysl. Celé uživatelské rozhraní se musí přepsat, věci jsou dneska úplně jinde a ta definice bude fungovat zcela jinak (lépe a radostněji - v podstatě většina věcí půjde naklikat).