Požadavek na invalidaci z popup okna

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

Ahojte,

mám takovej problémek. Mám img, na kterej je navěšenej jquery popup, kterej načítá jinej presenter. A potřebuji z toho popup okna poslat požadavek na invalidaci snnippetu komponenty v rodičovském okně (kde je ono img). Neřešil jste někdo podobný problém?

newPOPE
Člen | 648
+
0
-

Moznosti je viacero :-).

Asi by som siel cestou ze poslem ajax request na RodicovskyPresenter::actionUpdateFoo.

<?php
	// Rodicovsky presenter
	public fnc actionUpdateFoo(...) {
		$this->setLayout(FALSE);
		$this->invalidateControl('snippet');
	}

?>

a v sablone updateFoo.latte pouzijem toto:

<?php
	<div n:snippet="snippet">
		{control myComponent:view} //
	</div>
?>

samozrejme nazov snippetu mi musi sediet s tym ako je pomenovany v tej sablone ktora vykresli tu „rodicovsku“ stranku. Tym padom mi to posle take iste a JS to replacne. Je tu mozne vyuzit este include v Latte.

Asi to nie je velmi jasne :-), ale kedze sa nedaju posielat signaly cross presenter tak som si nasiel takyto workaround.

Editoval newPOPE (21. 6. 2012 15:01)

SparkCZ
Člen | 22
+
0
-

Díky za nakopnutí, vypadá že by to takto mohlo fungovat.

Snippet se pošle, ale bohužel rodičovská stránka se nepřekreslí. Názvy snippetu mám stejný, pokud víceméně stejnou akci vyvolám z rodičovského presenteru, tak se snippet i invaliduje. Nejspíš tam bude jeětě „něco“…

EDIT: Jo tak když vyvolám akci z popup pomocí ajaxovýho odkazu, tak to jde, jen to nejde naprimo pomoci JS:

<script>
        $.ajax({
            type: "GET",
            url: {plink :Admin:Tasks:refresh}
        });
</script>

EDIT2: Tak jo :) Díky…

<script>
        $.ajax({
            url:{plink :Admin:Tasks:refresh},
            success:function (payload) {
                    jQuery.nette.success(payload);
            },
        });
</script>

Editoval SparkCZ (21. 6. 2012 16:03)