Adminer 4.6.1

Školení, která pořádám

Vydal jsem novou verzi Admineru.

Asi nejviditelnější změna je zakotvení akcí pod výpisem na spodku stránky. Řeší to dva problémy: po zaškrtnutí řádku bylo potřeba dojet až dolů pod tabulku, abych s ním mohl provést požadovanou operaci. A stránkování (které jsem nyní přesunul zpět k akcím) plavalo vespod stránky i u krátkých tabulek (nebo na velkých monitorech). Využívám poměrně novou CSS vlastnost position: sticky. Chtěl jsem ji rovnou použít i pro záhlaví tabulky. V Chrome to funguje skvěle, ale ve Firefoxu z buněk tabulky zmizí okraje (a záhlaví na stránce stejně nezůstane), proto jsem to zatím neudělal. Pokud si všimnete rozbití nějakého vzhledu, tak prosím pošlete pull request.

Zapnutí CSP znemožnilo použití inline event handlerů, místo kterých jsem do kódu vložil značky <script> odkazující se často na poslední vypsaný element pomocí querySelectorAll. To může být pomalé, obzvlášť pokud je elementů hodně a funkce se volá třeba pro každý řádek tabulky. Odstranil jsem proto volání této funkce z výpisu databází, tabulek a řádek, což vykreslení stránek značně urychlilo. Místo toho se handler instaluje jen jeden a jeho cíl se určuje pomocí event.target, což je dnes běžnější postup. V Admineru ho nepoužívám proto, že často dopředu nevím, co na stránce bude a taky to narušuje lokální psaní kódu, jehož jsem příznivce.

Další změny

Jakub Vrána, Adminer, 9.2.2018, diskuse: 9 (nové: 0)

Diskuse

Jirka Hrazdil:

Ahoj, narazil jsem s novým "sticky" panelem na problém - tím, že je panel na celou šířku obrazovky, překrývá tabulku s daty - a to takovým nešťastným způsobem, že bez pohledu na boční scrollbar nepoznám, jestli stránka ještě pokračuje dolů nebo ne (už jsem dvakrát nabyl dojmu, že mi v databázi chybí nějaká data a přitom byla níže na stránce, jenom překrytá panelem). Soukromě jsem si to vyřešil nastavením maximální šířky panelu, takže pokud jsou data širší než panel a pokračují dolů, jsou vidět. Děje se to jenom při určité výšce viewportu, bohužel pro mě to přesně odpovídá na výšku maximalizovanému Chromu na Windows 10 se zobrazeným Bookmark barem (vertikální rozlišení 1200px). Screenshot problému: https://imgur.com/cUCSoYc

ikona Jakub Vrána OpenID:

Taky jsem na to narazil. Chtěl jsem to vyřešit zobrazením poloprůhledného gradientu na vršku panelu (od zcela průhledného po bílý), ale bohužel jsem nepřišel na to, jak to udělat. Možná nějaký expert na CSS by věděl?

ikona Jakub Vrána OpenID:

Vyřešil jsem to vložením jednoho divu navíc, nastavením pozadí jen tomuto divu a tímto stylem na vnějším divu:

border-top: 20px solid rgba(255, 255, 255, .7);
border-image: linear-gradient(rgba(255, 255, 255, 0), #fff) 100% 0;

Jirka Hrazdil:

Díky moc, takhle to už funguje parádně.

Vašek:

Ahoj, bylo by možné v příští verzi zavést automaticky OR místo AND když se hledá vícekrát v jednom sloupci?

Protože když teď např.nastavím hledání v poli STATUS a dám = 1 a =2 tak to udělá AND a tedy to nic nenajde...

Snad jsem to napsal srozumitelně...

ikona Jakub Vrána OpenID:

Použij operátor IN. Hledání ve stejném sloupci může dávat smysl i s AND, např. u operátorů < a >. Moc magie, kdy se použije AND a kdy OR, tam dávat nechci, protože to není intuitivní.

Vašek:

Díky, toho IN jsem si nějak nevšiml... omlouvám se :-)

Lukáš Beran:

Ahoj. Potřeboval bych nastavit adminer tak, aby umožnil připojení k databázovému serveru přes SSL. Stáhl jsem tedy potřebný plugin včetně toho hlavního pluginu, nahrál do struktury jak je popsané v návodu a chtěl se připojit, ale dostanu chybu 500. Když jsem se podíval do logu, viděl jsem:
PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function AdminerLoginSsl::__construct(), 0 passed in D:\home\site\wwwroot\adminer\index.php on line 13 and exactly 1 expected in D:\home\site\wwwroot\adminer\plugins\login-ssl.php:16 Stack trace: #0 D:\home\site\wwwroot\adminer\index.php(13): AdminerLoginSsl->__construct() #1 D:\home\site\wwwroot\adminer\adminer.php(1558): adminer_object() #2 D:\home\site\wwwroot\adminer\index.php(26): include('D:\\home\\site\\ww...') #3 {main} thrown in D:\home\site\wwwroot\adminer\plugins\login-ssl.php on line 16

Je tedy potřeba tomu pluginu předat nějaký argument, ale jaký? V tom hlavním souboru mám jen new AdminerLoginSsl

Díky.

Lukáš Beran:

Tak už jsem to vyřešil. Stačilo stáhnout certifikát té autority a odkázat se na něj new AdminerLoginSsl("bin/root.pem")

Diskuse je zrušena z důvodu spamu.

avatar © 2005-2024 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.