Nevalidní JSON u Form rules

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

Je nějaký důvod, proč jsou pravidla pro formuláře uložena v data atributu jako nevalidní JSON?

Právě řeším javascript pro formuláře a potřebuji se zbavit funkce eval, která se používá standardně v netteForms.js a tato skutečnost je pro mě docela velký opruz.

Editoval kubajz (21. 4. 2013 16:44)

Majkl578
Moderator | 1364
+
0
-

Není jediná odlišnost to, že okolo nejsou [...]?

potřebuji se zbavit funkce eval

Jaký k tomu máš důvod?

kubajz
Člen | 47
+
0
-

Není jediná odlišnost to, že okolo nejsou […]?

Právě že ne, string musí být v uvozovkách – včetně klíčů, na rozdíl od objektu v JavaScriptu

Jaký k tomu máš důvod?

Google Closure Compiler – advanced mode

já si to sice upravím, jen mě to docela zarazilo, tak mě zajímá, proč je to implementováno zrovna takto.

enumag
Člen | 2118
+
0
-

Také bych byl raději kdyby to byl validní json.

Majkl578
Moderator | 1364
+
0
-

Také by mi validní JSON dával větší smysl.

Majkl578
Moderator | 1364
+
0
-

Otevřel jsem pull request: https://github.com/…te/pull/1075.

David Grudl
Nette Core | 8228
+
0
-

V HTML jsou pak hnusné ty entity & quotes;

Majkl578
Moderator | 1364
+
0
-

A to něčemu vadí?

Jan Tvrdík
Nette guru | 2595
+
0
-

@Majkl578: Je to delší a hůř čitelné, viz https://github.com/…l/1075/files#….

Majkl578
Moderator | 1364
+
0
-

Jak často si ty vygenerované rules čteš? Já jsem je přímo ve vygenerovaném kódu nečetl asi nikdy. Je to u tebe opravdu natolik často, že stojí za to obětovat univerzálnost (validní JSON)? Že je to delší je spíš výmluva než argument, protože kdyby se chtělo, určitě by to mohlo být i kratší (což není).

hrach
Člen | 1838
+
0
-

Jestli je argumentem pro generovani nejake nestandardni struktury vyhodnocovane evalem to, ze jsou tam hnusne entity a je to delsi, pak stujte pri nas vsichni svati.

Hur citelne to ve vyvojarskych nastrojich samozrejme neni. Pokud si @JanTvrdik prohlizi kod pres pres CTRL+U, pak mi, pravda, dochazi argumenty. http://screencast.com/t/DLlyP2kqP

Jan Tvrdík
Nette guru | 2595
+
0
-

@Majkl578, @hrach: Já nikde netvrdím, že jsem proti validnímu JSONu, ba naopak. To, že jsem schopen vidět argumenty protistrany, neznamená, že s ní souhlasím.

David Grudl
Nette Core | 8228
+
0
-

Používá se naprosto validní standardní formát podle ISO specifikace. Naopak tu usilujete o přechod na nějaký one-man-show výmysl ;-)

hrach
Člen | 1838
+
0
-

At least missing [] make it invalid.

edit: aha, my jsme zase v cz sekci :D

Editoval hrach (23. 4. 2013 16:29)

David Grudl
Nette Core | 8228
+
0
-

a = {op:':filled',msg:'Enter your age'},{op:':integer',msg:'...'}; is valid ;)

Majkl578
Moderator | 1364
+
0
-

David Grudl napsal(a):

a = {op:':filled',msg:'Enter your age'},{op:':integer',msg:'...'}; is valid ;)

Validní, ale nedělá to to, co by mělo – kromě prvního, ostatní objekty budou zahozeny.

Majkl578
Moderator | 1364
+
0
-

Vyřešeno: 803fbb73, bude součástí 2.1.

thunderbuff
Člen | 164
+
0
-

Majkl578 napsal(a):

Vyřešeno: 803fbb73, bude součástí 2.1.

Po tomhle commitu u mě na všech stránkách s formuláři dochází k javascriptové chybě.

„Uncaught TypeError: Cannot call method ‚match‘ of undefined“ v netteForms.js na řádku 267. V ničem jsem nedělal žádné modifikace, je to jen čístý 2.1 sandbox, formuláře renderuji DefaultFormRendererem z nette makrem {control mujFormular}

Editoval thunderbuff (19. 5. 2013 20:40)

Majkl578
Moderator | 1364
+
0
-

Řádek 267 je prázdný.

EDIT: netteForms.js v sandboxu není aktualizovaný, použij ten z nette repositáře.

thunderbuff
Člen | 164
+
0
-

To mi mohlo dojít… Díky za nakopnutí, funguje :-)