Adminer 3.4.0

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

Hlavní novinkou v této verzi Admineru mělo být zvýrazňování syntaxe SQL příkazů pomocí CodeMirror, ale znovu jsem s tím nebyl zcela spokojen, tak jsem již podruhé funkční implementaci opět vyřadil. Co od této funkce očekávám:

  1. Zvýrazňování syntaxe pokud možno ve všech podporovaných databázových systémech (přijatelné).
  2. Zvýraznění řádku, na kterém došlo k chybě (bylo funkční).
  3. Doplňování klíčových slov a identifikátorů (částečně připraveno v minulém pokusu).
  4. Stejné barvy jako používá zvýrazňování syntaxe provedených příkazů, ideálně využitím stejného nástroje pro obě věci.
  5. Využití na všech stránkách, kde se zadává SQL příkaz (tedy např. i v editaci triggerů).
  6. Obvyklá funkčnost klávesových zkratek pro přesun kurzoru (např. Ctrl+Left funguje jinak).
  7. Neblokující nahrávání.

Asi mám moc velké nároky, ale bez všech těchto funkcí mi samotné zvýrazňování syntaxe spíš překáží.

Už jsme se seznámili s tím, co se v Admineru nezměnilo. Co zmizelo?

A teď konečně k novým funkcím:

I z delších časů mezi novými verzemi je poznat, že už Admineru nevěnuji tolik energie jako dříve. Budu proto rád, pokud byste mi s projektem pomohli. Nejlepší formy pomoci jsou tyto:

  1. Zodpovídání dotazů na fórech: českém i anglických.
  2. Procházení chyb a požadavků, především označování duplicit.
  3. Vylepšování ovladačů – především Oracle a MS SQL, ale jistou péči by snesl i PostgreSQL.
Jakub Vrána, Adminer, 2.7.2012, diskuse: 23 (nové: 0)

Diskuse

ikona Jan Tojnar:

Opět chválím za skvělou aplikaci.

A opět tu mám pár postřehů:
Nejvíce ze všeho postrádám možnost zvolit spojovač (AND/OR) ve funkci vyhledat. Mohu si sice upravit sql výraz, ale tím přijdu o možnost dodatečného naklikání řazení a už musím všechno psát. Dále mi zmizí odkaz editovat u jednotlivých řádků.

Dále je zvláštní, že když vyhledám nějaký text (např. jméno uživatele) a sloupec = (kdekoliv), tak mi to zobrazí i uživatele, kteří tento řetězec ve svém řádku nemají, ale obsahují b'1' ve sloupci typu bit(1).

Nový odkaz na řazení v záhlaví je sice pěkný, ale domnívám se že v tomto UI patternu se řazení po kliknutí, když už je nastaveno, změní na opačný způsob řazení (viz téměř libovolný souborový manažer).

A v rychlé editaci mi nejde vložit NULL. U textových sloupců se sice nedá určit, jestli uživatel nehodlá vložit 'NULL', ale v číselných by nejspíš šlo.

A pak by se možná u sloupců typu enum nechal zobrazovat select namísto textového pole. Zkoušel jsem to uskutečnit pomocí rozšíření, ale bohužel se mi to nepodařilo.

ikona Jan Tojnar:

A ještě bych chtěl dodat, že jsem vytvořil plugin pro automatické aktualizace Admineru. Výchozí interval je kontrola jednou týdně.

Struktura souborů:
index.php (plugin loader)
adminer.php (práva pro zápis)
plugins/plugins-auto-update.php (práva pro zápis)

Download: https://dl.dropbox.com/u/1189439/stable/pl…-update.php

ikona Jakub Vrána OpenID:

Rád bych to zveřejnil, ale uvedená adresa vrací 404. Bylo by možné to dát někam trvaleji, např. na GitHub?

ikona Jakub Vrána OpenID:

Odpověděl jsem na http://php.vrana.cz/adminer-3-5-0.php#d-13510.

Lenka:

ceskem i anglick_em__ ;)

ikona Jakub Vrána OpenID:

Anglických fór je víc.

Lenka:

Jakubovi clanky se skvele ctou mimo jine proto, ze v nich ma temer vzdy temer nulovy pocet preklepu i jakychkoliv jinych chyb ;) +1 

Matúš Jančík:

Ďakujem za update Jakub. Teším sa najmä z toho, že už to ide svižne a bez problémov v Chrome.

Jenda:

Po upgradu mi nefunguje přihlášení. Je to globální problém, nebo to dělá jenom mně. Prostě napíšu do přihlašovacího formuláře svoje údaje a odešlu, tak se nestane nic. žádná chyba, jenom se refreshne stránka a to je vše. Po downgradu zase vše funguje správně.
Dělá to ještě někomu?

ikona Jakub Vrána OpenID:

Změnil jsem název políček, ve kterých se údaje posílají. Pokud tedy používáš nějaké přizpůsobení, bude potřeba ho upravit.

artorie:

díky za update, konečně funguje vypisování přes sql v google chrome

Marek Mizera:

Ahoj

Tiez mam nejake postredy/napady. Adminer sice pouzivam kratko, ale uz castejsie ako phpMyadmin (vyhovuje 1subor a rychlost applikacie). Dotazy mam hlavne k UI a sice :

1. ked vytvaras novu tabulku cez create table, bolo by dobre odchytavat stlacenie tlac. enter. Totizto enter okamzite zapise novu tabulku, a castokrat sa stane, ze clovek ho stlaci omylom/zo zvyku. Osobne by som po stlaceni uvital skor pridanie noveho riadku + presun don (napr. focus na nazov stlpca), takto by si user mohol rychlo vypisat nazvy stlpcov a potom im pridelit vlastnosti.

2.hm, sortovanie v tabulke nefunguje (teraz som si stiahol 3.4.0 :), teda neprepina asc/desc.
Ale co sa sortovania tyka, hlavne mi chyba vsade mimo (obcas si chcem napr. zoradit tabulky podla objemu dat)

3. human readable velkost tabulky (KB, MB, GB ...)

4. drop table link pri konkretnej tabulke v zozname + v zobrazeni struktury tabulky. Obcas sa to hodi, hlavne ked mam 100+ tabuliek a nechce sa mi  skrolovat az na koniec zoznamu (ano viem ze existuje page down a end :), popr. zobrazim tabulku, aby som sa presvedcil, ze toto je naozaj to, co chcem zmazat

5. nad zoznamom tabuliek (bocnym, alebo aj v gride zoznam tabuliek) by sa hodilo filtrovacie pole pre nazov tabulky (opat pri 100+ tabulkach pomoze proti nechcenemu skrolovaniu)

6. skryvanie stlpcov v gride tabulky (klikatelne)

7. dlhsie nazvy tabuliek nie su vidiet v bocnom zozname, moznosti : dat do hintu (tag atribut title) nazov tabulky alebo resizable bocny panel

HTMLHERGOT:

Nejsem autor, ale pokusím se na něco odpovědět.
ad 1) někomu to vyhovuje, někomu ne. Někdo by chtěl, aby skript "myslel za něj", někdo naopak na Enter pro odeslání spoléhá. Těžko se zavděčit ;-) řešení "tak, jak se to očekává", tedy s implicitním chováním Enteru mi přijde jednodušší a čistší.
ad 2) zkoušel jsem a mě to funguje (mimochodem - např. parametr desc[0] se v URL kóduje jako desc%5B0%5D, jestli to s tím nesouvisí). Ad seřazení tabulek podle objemu dat) je otázka, jak často to uživatelé potřebují. Existuje hafo JavaScriptových knihovniček pro učinění tabulky seřaditelné, ale nevím, zda-li by je chtěl Jakub montovat do Admineru.
ad 3) mě osobně tato (paradoxně primitivní) interpretace velmi vyhovuje - to, které číslo je větší a které menší je vidět na první zlomek vteřiny už jenom podle délky daného čísla
ad 4) tomu moc nerozumím - kompletní smazání tabulky v Adminu udělat jde jak hromadně tak jednotlivě a smím-li říct svůj názor, tak řešení této akce přes tlačítko 'Odstranit' uvnitř akce 'Pozměnit tabulku' mi přijde adekvátní jak kontextu tak počtu kroků, které pro to musí správce udělat. Přijde mi, že odstraňování tabulek dělají správci docela zřídka a to kliknutí navíc pro to mohou udělat (naopak, na přímý link na vymazání tabulky na její detailní stránce by mohli kliknout nechtěně a omylem si nenávratně zničit data).
ad 5) tady s tebou poprvé souhlasím, resp. nic nenamítám, kdyby tu taková možnost byla. Velmi praktické by bylo filtrování bez znovunačítání, v JavaScriptu, hned při psaní, bez hvězdiček a zástupných znaků, jen porovnání výskytu napsaného řetězce v názvu tabulek. Při filtrování by muselo být někde jasně napsáno, že výčet tabulek je omezen filtrem. Stejné řešení bych udělal i u exportu. Co je ovšem svízelné, jsou ta zaškrtávací políčka vedle tabulek - po odeslání formuláře s nějakou akcí se totiž jejich hodnoty přenesou, ať už jsou viditelná nebo skrytá... Ještě mě napadlo tabulky neskrývat ale zvýrazňovat, popř. takto zvýrazněné hromadně označit.
ad 6) imho zbytečná práce navíc - Adminer už to má vyřešené - místo klikání na sloupce klikej do fieldsetu Vypsat ;-) Za druhé by při tvém řešení musel Adminer implicitně dotazovat všechno (což v některých extrémních případech může být hodně časově náročné).
ad 7) nic nenamítám, zajímalo by mě vyjádření Jakuba.

HTMLHERGOT:

dodal bych k bodu 5) v levém panelu bych rozhodně žádné filtrování nedělal - nemá to žádné využití, když z něj můžeš prohlížet tabulku nebo vidět její strukturu a děláš to vždy po jedné a nikdy hromadně. To snad jedině pro stránku přehledu tabulek v databázi nebo export. Pokud chceš rychle najít tabulku v levém sloupci, použij Ctrl+F.

ikona Jakub Vrána OpenID:

Díky za postřehy.

1. Formuláře, které nejdou odeslat Enterem, nesnáším. Považuji to za neslušnost vůči uživatelům, kteří tuto funkci ovládají (a předpokládám, že Adminer má takových většinu).

2. Kliknutí na název sloupce asc/desc přepíná, šipka pro sestupné řazení vždy řadí sestupně.

3. K tomu už jsem se vyjadřoval několikrát – vnímám to stejně jako HTMLHERGOT.

4. Tlačítko pro odstranění tabulky je k dispozici v její změně.

5. Obvykle stačí použít hledání v prohlížeči. Existuje také plugin tables-filter: http://www.adminer.org/cs/plugins/.

6. Seznam sloupců se dá omezit v políčku Vypsat.

7. To je rozumná připomínka, u dlouhého seznamu tabulek to opravdu může být problém. Nevím ale moc, co s tím. Sám používám boční scrollování (pokud ho myš podporuje). Title ke každé tabulce dávat nechci, protože by to ve většině případů vypadalo hloupě. Změnu velikosti bočního panelu dělat určitě nebudu. Napadlo mě to vyřešit JavaScriptem – při najetí myši se element vyjme z bočního menu a absolutně se napozicuje na stejné místo. Ale dělat se mi to nechce.

ikona Jakub Vrána OpenID:

7. Vyřešil jsem to tak, že se seznamu tabulek při najetí myši nastaví overflow: auto.

ikona Martin OpenID:

Ahoj Jakube. Velice by mě zajímalo, co vlastně způsobovalo ten dvojitý loading v Chrome. Ano, vím, může za to Chrome, ale jak by se to dalo vyřešit jednoduše místo mazání veškerého ajaxu? (BTW, myslím si, že je to znát, alespoň opticky, což je škoda)

Dále si myslím že čas dokončení dotazu je celkem blbost. Když testuju nějaké updaty, chci vědět jestli se to vykonalo za 0.01 nebo 0.54 ...

cucací potřeby:

Jakube, oprav si na stránce Tipy pro Adminer: ...Kliknutí na sloupec ve výpisu záznamy podle něj setřídí, druhé kliknutí je setřídí sestupně.

ikona Jakub Vrána OpenID:

Na stránce http://php.vrana.cz/tipy-pro-adminer.php? Co na tom mám opravit?

cucací potřeby:

To, že se od této verze změnilo řazení záznamů přes odkazy v hlavičce (že přibyl odkaz pro sestupné řazení).
No, a když už jsem u toho kibicování, snad by neuškodilo zaktualizovat i stránku rozdílů mezi Adminerem a phpMyAdminem.

ikona Jakub Vrána OpenID:

Souhlasím. Nechceš se toho ujmout? Aspoň by to bylo objektivní.

cucací potřeby:

Ani moc ne ;-) Ty sám víš nejlíp, co tvůj výtvor má či nemá. Jde jenom o to porovnat phpMyAdmin verzi 3.5.2 s Adminerem 3.4 a aktualizovat pár čísel (počet bezpečnostních chyb, designů, překladů, velikost/počet souborů).

ikona Jakub Vrána OpenID:

Už jsem to s tím řazením pochopil a opravil jsem to.

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 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.