In-Place editace v Nette 2.1

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

Zdravím,

nemá někdo zkušenost s In-Place editací v Nette. Na netu jsem našel docela zajímavý nástroj s možností propojení na Twitter Bootstrap, jQuery UI a jQuery – X-editable

Pouze nevím jakým ideálním způsobem navěsit obslužné funkce na editovaný prvek. Například pokud bych načítal data z databáze a přes zmiňovaný in-place editační nástroj chtěl provést změnu textu, která by se provedla i v databázi. A právě tu změnu v databázi řešit prostřednictvím Nette. Budu rád za každý nápad.

llook
Člen | 407
+
0
-

Server-side implementaci implementuješ jako signál presenteru a do atributu data-url dáš odkaz na ten signál (např. data-url="{link editInPlace! itemId => $itemId}"). Důležité je ošetřit ten signál proti CSRF útoku (jako jakýkoli jiný request, který mění data), nejsnáz pomocí tohoto rozšíření: https://github.com/…ecured-links

Pavel Macháň
Člen | 282
+
0
-

llook napsal(a):

Server-side implementaci implementuješ jako signál presenteru a do atributu data-url dáš odkaz na ten signál (např. data-url="{link editInPlace! itemId => $itemId}"). Důležité je ošetřit ten signál proti CSRF útoku (jako jakýkoli jiný request, který mění data), nejsnáz pomocí tohoto rozšíření: https://github.com/…ecured-links

Je nějaké rozšíření bez Trait? Bohužel ne všude je php 5.4

enumag
Člen | 2118
+
0
-

Budeš si muset obsah těch trait zkopírovat. Jinak to nejde.

James
Člen | 54
+
0
-

llook napsal(a):

Server-side implementaci implementuješ jako signál presenteru a do atributu data-url dáš odkaz na ten signál (např. data-url="{link editInPlace! itemId => $itemId}"). Důležité je ošetřit ten signál proti CSRF útoku (jako jakýkoli jiný request, který mění data), nejsnáz pomocí tohoto rozšíření: https://github.com/…ecured-links

@llook: Navázání signálu na atribut funguje v pořádku a ošetření proti CSRF také, akorát nejsem schopný nějak do signálu dostat nově změněná data. Která se vkládají prostřednictvím skriptu X-editable aby bylo možné ze signálu volat funkce modelu, které aktualizují údaje v databázi. Nebo mě ještě napadlo jestli by nešlo nechat si posílat změněná data skriptem v POSTu a v signálu si potom potřebná data vytáhnout a dále poté zpracovat, např zmiňované uložení do DB.

Editoval James (22. 1. 2014 12:08)

llook
Člen | 407
+
0
-

Podle toho, co se tam píše, tak to změněná data posílá v POST atributu „value“, v signálu by ses k tomu měl dostat přes $this->request->post['value'].