storeRequest s daty z formuláře a jeho dovyplnění podle identity

fsanitize
Člen | 3
+
0
-

Ahoj,

mám formulář s objednávkou, kde v určitém případě potřebuji zařídit, aby byl uživatel přihlášen. Zároveň ale nechci, aby musel vyplňovat údaje znovu a chci mu po přihlášení vyplnit políčka o jeho účtu.

Zatím jsem to, aby nemusel vypňovat údaje znovu řešil tak, že formulář má 2 submity (přihlásit se a odeslat), kdy při kliknutí na přihlásit se nedochází k žádné validaci. Místo toho se v onValidate (zkoušel jsem onSubmmit, ale to se mi spouštěl i onSuccess) zjistí, jakým tlačítkem byl formulář odeslán a pokud se jednalo o tlačítko přihlásit, došlo k zavolání storeRequest a přesměrování na přihlášení. Po přihlášení se údaje z formuláře načetly hezky zpět. Jediný downside byl, že po přihlášení nedošlo k přesměrování na URL s oním formulářem, ale ten se vykreslil na URL example.com/sign/in?backlink=xxxxx, což se mi nepodařilo změnit.

Nyní se však po přihlášení ještě snažím přidat údaje z účtu přihlášené osoby. Tam jsem bohužel narazil, protože ačkoliv latte té stránky se překreslí a já tam mohu dělat logiku ve smyslu n:if podle existence přihlášení, tak kód z action neproběhne (za mě asi i celkem pochopitelně protože se jen vykreslí formulář na jiném presenteru), aka setDefaults mi moc nepomohou.

Dá se to nějak řešit pomocí storeRequest/restoreRequest nebo si budu muset implementovat vlastní logiku? Pro mě ideální řešení by bylo, že po přihlášení, dojde k přesměrování na původní stránku s formulářem (nějakou order page), kde proběhne spuštění action původní stránky a zároveň vyplnění původních údajů, které byly ve formuláři.

Asi mě nezabije, si uložit data z formuláře do session a udělat si takovou svoji Lidl implementaci storeRequestu, ale preferoval bych využití již hotové implementace v rámci Nette.

Díky

Editoval fsanitize (6. 9. 2023 11:02)