Jak si zapamatovat cestu z detailu objednávky zpět na původní stránku

fordo.pytlik
Člen | 26
+
0
-

Ahoj,

pokusím se problém popsat na příkladu:

Mám detail objednávky. Jedná se o klasický presenter, několik views (render metod) + další akce. A chtěl bych, aby na každé stránce bylo velké tlačítko „Zpět“, které zobrazí předchozí stránku (ne detail objendávky, ale tu stránku PŘED tím, ten výpis obj. apod.).

Když aplikace měla pouze jeden způsob, jak se dostat na objednávku, bylo to snadné – tlačítko „Zpět“ vedlo na výpis objednávek, jinak se do detailu obj. dostat nedalo… Ale nyní se aplikace rozšířila a do detailu objednávky se můžu dostat např.

  • z výpisu objendávek (ehm… klasicky)
  • z detailu uživatele (výpis objednávek uživatele)
  • z výpisu pohybů na účtu (vyhledává možné objednávky k dané platbě)
  • (+ asi několik dalších)

Chtěl bych, abych mohl např. zobrazit detail uživatele, kouknout na to jaké má objednávky, kliknout na jednu objednávku, projít obj. (např. něco změnit) a po kliknutí na tlačítko „Zpět“ se dostal zpět na detail uživatele…

Celé by to mohlo být ještě složitější – mám systém, který vytváří objednávky pro VO partnery z šablony… takže vypíšu seznam šablon, po kliknutí na odkaz se mi přesměruje na stránku na „action“, která vytvoří obj. a teprve poté přesměruje na detail obj. Po kliknutí na tlačítko „Zpět“ by se ideálně mělo přesměrovat na stárnku s výpisem šablon…

Nevím, zda jsem to popsal přesně… ještě v tom mám trochu zmatek… hrál jsem si s storeRequest a restoreRequest, četl jsem https://doc.nette.org/…tore-request a mám hlavně pocit, že nevím, jak to uchopit. Kde začít…

Editoval fordo.pytlik (3. 12. 2019 13:12)

David Matějka
Moderator | 6445
+
+2
-

storeRequest na tenhle use case neni vhodny. uloz si proste do odkazu backlink

fordo.pytlik
Člen | 26
+
0
-

David Matějka napsal(a):

storeRequest na tenhle use case neni vhodny. uloz si proste do odkazu backlink

Děkuju za odpověď.

Nejsem si jistý, že tomu rozumí. Do jakého backlinku si mám uložit odkaz? např. jako parametr v detailu obj?

Uložil by sis spíš URL (www.example.com/admin/order-list?foo=bar) nebo nějakou Nette cestu (:Admin:OrderList:default foo => 'bar')?

Mě osobně to táhne spíš k první možnosti, ale tím se URL o dost prodlouží

David Matějka
Moderator | 6445
+
+1
-

jj, presne tak – do parametru v url. vetsinou tam davam primo url, respektive staci jen path s query. takze ten odkaz budes generovat treba nasledovne:

<a n:href="OrderDetail: id => $id, backlink => $this->link(this)">Detail objednavky</a>