Javascript a AJAX v Nette

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Ondřej Mirtes
Člen | 1536
+
0
-

Ahoj,
na Poslední sobotě David Steigerwald přislíbil, že se ujme a vylepší javascriptovou část Nette. Vzhledem k tomu, že AJAX (hlavně snippety) budou hlavním tématem vývoje verze 1.0-dev, je to výborná příležitost, jak oprášit a vylepšit věci, jako je třeba validace formulářů. S manikem jsme s Davidem Steigerwaldem pak chvíli diskutovali a máme si napsat wishlist, co všechno bychom v Nette rádi měli. Tak já začnu :)

  • Podpora tlačítek zpět a vpřed v prohlížeči pomocí řetězce za #. To zahrnuje i načtení daného stavu stránky, když uživatel na web přijde už přes link, který nějaký validní stav za znakem # obsahuje.
    • Je potřeba vymyslet, jak má řetězec za # vypadat – jsem pro podobu, jak teď v URL vypadají linky na signál, do=signal&signal-parametr=value.
  • Live form validation. Současná komponenta tohoto jména jen nahrazuje klientskou validaci Nette, které obsahuje jen základní pravidla typu required/minlength/maxlength/e-mail. Co je ale skutečně potřeba, to je validace s odezvou na server (AJAX), aby se daly ověřovat i věci jako unikátní nick při registraci. Zde bude potřeba, abychom vymysleli nějaké API formulářů, na které by se dalo AJAXově odkazovat. Nejlepší by bylo propojení s vlastními validačními callbacky.
  • Navěšování všelijakých user-friendly fíčur formulářů pomocí HTML tříd – to, co David Steigerwald na PS už ukazoval, např. autoheight u textarey :) Zde je potřeba dodat, že současný způsob přiřazování tříd formulářovým prvkům v továničce ($form['field']->getControlPrototype()->class('trida')) by pro tenhle účel nebylo zrovna hezké – spásu spatřuji v přepsání ConventionalRendereru do podoby šablony :)
Honza Marek
Člen | 1664
+
0
-

Naprosto se vším souhlasím.

Přidal bych jen dva menší body.

  • Podpora nebo možnost integrace jQuery validation pluginu. I když nevím, jak ten si dokáže poradit s nette vypečenostmi typu „když tohle políčko vypadá jako e-mail, tak tamto jiné musí být číslo menší než 3 a tamten checkbox zaškrtnutý“.
  • Aby validační javascript nestrašil celý v html. Stačí tam mít jen nezbytná pravidla a zbytek javascriptu externě.
VasekPurchart
Člen | 20
+
0
-

Honza Marek napsal(a):

  • Nebylo by lepší „jen“ vylepšit aktuální skripty, který to umí? Resp. alespoň ty podmínky přepsat + pak by se na to případně daly navěsit vlastní funkce s akcema, co se má udělat alert/focus/live validation atp
  • pravidla co jsou implementovaná v Nette bych viděl, že by měla mít svůj JS protějšek a vlastní – definované přes callbacky by se řešily všechny AJAXem (standartně – mohlo by to jít samozřejmě změnit) – a pokud možno by ten AJAX celý měl umět vygenerovat kompletně framework jen na základě definovaných pravidel – jako je tomu nyní
Steida
Člen | 1
+
0
-

Zdravím, předně bych opravil, že se jmenuji Dan, nikoliv David. Díky :-)

S Davidem Grudlem jsem strávil plodnou diskuzí celou noc. (prošli jsme tuším 4 hospody ;)) David mě nijak nezaúkoloval, zatím. Nicméně, můj slib platí. Postarám se o to, aby Javascript, jak kód tak architektura, byl absolutně nejlepší, aby ostatní frameworky měli co dohánět.

Roman Ožana
Člen | 52
+
0
-

Honza Marek napsal(a):

Naprosto se vším souhlasím.

Přidal bych jen dva menší body.

  • Podpora nebo možnost integrace jQuery validation pluginu. I když nevím, jak ten si dokáže poradit s nette vypečenostmi typu „když tohle políčko vypadá jako e-mail, tak tamto jiné musí být číslo menší než 3 a tamten checkbox zaškrtnutý“.
  • Aby validační javascript nestrašil celý v html. Stačí tam mít jen nezbytná pravidla a zbytek javascriptu externě.

Taky se mi nelíbí, jak tam ten javascript straší. Validation plugin by se asi musel kvůli vypečenostem dost přepsat.

Patrik Votoček
Člen | 2221
+
0
-

Nemáte někdo zprávy jak to pokročilo/nepokročilo? (nebo je to doopravdy mrtvé)

norbe
Backer | 405
+
0
-

Taky by mne zajímalo jak to vypadá. Nikdo (ani David?) nemá žádné podrobnosti?

iguana007
Člen | 970
+
0
-

norbe napsal(a):

Taky by mne zajímalo jak to vypadá. Nikdo (ani David?) nemá žádné podrobnosti?

+1