Automatický přepis redirect na forward

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

Zajímalo by mě, jestli je nějaký příklad zpracování ajaxu, kde v nonjs verzi se redirectuje, ale v ajaxové ne. Jasně, redirect('this'), ale to je podle mě tak jediný. Takže si říkám, zda by fungoval automatický převod mezi redirectem a forwardem, založený na isAjax(). Ušetřilo by to docela hodně zbytečného kódu.

Honza Kuchař
Člen | 1662
+
0
-

Není to moc magické?

redhead
Člen | 1313
+
0
-

Navíc nic ti nebrání si ty metody přetížit v BasePresenteru

Mikulas Dite
Člen | 756
+
0
-

Tak záleží. Když to ale nebudeš brát podle toho, jak to funguje nyní: opravdu potřebujeme mít dvě různé funkce pro to stejné? Všechny vypadají takhle:

if (!$this->isAjax()) {
	$this->redirect('nejaky link');
} else {
	$this->forward('nejaky link - uplne ten stejny');
}

A pokud by stejně bylo něco v ajaxovém scopu navíc, tak se nic neděje. Prostě se už napíše, ale to je jenom zlomek případů, kdy se používá isAjax konstrukce.

\\Edit:: To rozhodně nebrání, ale chtěl jsem znát nějaké odůvodnění proč je to potřeba zvlášť.

Editoval Mikulas Dite (29. 3. 2010 21:13)

redhead
Člen | 1313
+
0
-

No pokud by se jednalo např o signál, tak nemám potřebu nic forwardovat, prostě se provede co potřebuji (změna nějaké hodnoty např. a nepotřebuju vykreslovat nějaký jiný view). Při non-ajax už bych redirectoval třeba na this, aby to uživatel nespustil znova F5-kou.. Aspoň to mě teď napadlo.

U nějakého jiného (dost specifického, nenašel jsem příklad) signálu bych třeba forwardovat potřeboval. Je to prostě podle strategie, pak zas bude někdo nadávat proč se to forwarduje, když to nepotřebuje, to přetížení je navíc na pár řádků..

bazo
Člen | 620
+
0
-

nie kazdy vzdy forwarduje ak sa jedna o ajaxovy request, ja napriklad v neajaovom redirectujem najviac na ‚this‘. a ak chcem redirect inam, tak chcem, aby sa dial aj ked je to ajax. takze mne by takato funkcnost dokonca prekazala.

Mikulas Dite
Člen | 756
+
0
-

bazo i redhead napsali:

v neajaovom redirectujem najviac na ‚this‘

Ano, to jsem psal hned na začátku, takovýhle redirect by se pro ajax neuskutečnil, to je triviální ošetřit.

bazo napsal:

… a ak chcem redirect inam, tak chcem, aby sa dial aj ked je to ajax. takze mne by takato funkcnost dokonca prekazala.

Jo tohle je to, co sem potřeboval slyšet (ale stejně je to trošku podivný, protože když se v ajax-response vrátí akorát redirect, tak by rovnou mohl proběhnout neajaxově, bylo by to složitější ošetřit pokud je to dynamicky, ale aplikace by se tím zrychlila).