Flash messages – otázky na tělo ohledně mizení

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

Mám dotaz ohledně flash messages, vypadá to cool, jen mi nemizí, na fóru jsem četl, že snad by měli zmizet po 3, nebo 30 sekundách.

Má otázka tedy zní, zda to mizí, nebo se to někde musí nastavovat to zmizení, pokud ano, kde?
Nebo to mizí jenom pro některé prohlížeče? Bohužel firemní politika(Takže používáme IE :/)?

Otázka na _fid:
Jde to nějak odstranit z URL?

Díky za odpověďi…

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Zdravíčko – s tím mizením je to takhle: zprávička se objeví pokud je v URL odpovídající _fid (flash id) a pokud od předchozího requestu uběhlo méně než 3 sekundy. Po uplynutí tří sekund zprávička ze stránky nezmizí, ale při F5 už se znova neobjeví (to je tedy to mizení).

_fid zatím dost dobře odstranit nejde, ale lze ho nechat zmizet Javascriptem pomocí History API (které bohužel v IE není podporované). Skript lze najít tady, existuje i jako rozšíření pro nette.ajax.js.

wb2009
Člen | 125
+
0
-

Ach tak, no s ten javascript to bohužel u mne nevyřeší no, nicméně díky za informace.

Glottis
Člen | 129
+
0
-

cao, v jendom projektu sem to udelal takto

<?php
{snippet flash}
	<div n:foreach="$flashes as $flash" class="flash {$flash->type}">{$flash->message}<a class="close" onclick="$(this).parent().fadeOut()"></a></div>
{/snippet}
?>

na click si to muzou nechat zmizet.

Glo

Jan Mikeš
Člen | 771
+
0
-

Není ideální to strkat do onClick="" je lepší to buď navázat přes jquery, toto např používám já (pokud nemám flash obalené ve snippetu, pokud ano, stačí odstranit podmínku s odstranovanim celeho divu se zprávami):

$("#flashes > div").click(function(){
	$(this).stop().fadeTo(500, 0, function(){
		$(this).remove();
		if($("#flashes > div").length == 0)
			$("#flashes").remove();
	});
});
ic
Člen | 430
+
0
-

wb2009 napsal(a):

Ach tak, no s ten javascript to bohužel u mne nevyřeší no, nicméně díky za informace.

S pomocí CSS3 by to snad šlo nějak udělat, aby se zprávička sama schovala po určité době. Pokud ten Javascript tam není žádaný.

Nedávno jsem tyhle flash zprávy na jednom projektu používal tak, že po načtení block přijede zleva a po kliknutí na něj zase odjede doleva (mimo viditelnou část stránky)… a všechno bez javascriptu.

Pokud by to někoho zajímalo můžu předvést.

Jan Mikeš
Člen | 771
+
0
-

Bohuzel konkretne IE (ktere autor pouziva v praci, jak zminil) je s CSS3 podporou mirne pozadu, takze nevim zda to vyresi problem.

ic
Člen | 430
+
0
-

No záleží jaké IEčko, no. Poslední IE desítka co je ve Win7 a Win8 s potřebnými CSS transition a CSS animation nemá problém a interpretuje je naprosto stejně jako ostatní prohlížeče.

wb2009
Člen | 125
+
0
-

Takhle, naše firemní politika je bohužel pro IE, jedno jaká verze, ale bohužel máme i uživatele s IE.8, možná i nižší…jo je to tak, ale s tím já nic neudělám. Pak jsou tu uživatelé, kteří na firemní politiku „však Vy víte“ a jedou na chromu, nebo mozille, těch ale není mnoho a ti co by se pro jiný prohlížeč v budoucnu rozhodli, sebralo naše IT oddělení administrátorské práva, takže si nic nenainstalují :)

Tak, či onak, musím to vyvíjet alespoň pro IE.8 a vyšší…

Já osobně mám v plánu tenhle týden se podívat na AJAX v nette a tím bych snad můj problém mohl vyřešit…

Takže děkuji, všem co napsali, třeba něco použiji :)

To: ic, to zobrazení zprava a mizení zleva, se mi líbí a možná něco vymyslím přes JQUERY,AJAX:)

Glottis
Člen | 129
+
0
-

zafunguje to i pro ajax flash zpravicky? ja s tim mel prave problem. zpravicka pribehne ajaxem a pokud ten jquery kod nebyl v tom snippetu taky, aby se to znova provazalo tak se nic nedelo :/

Lexi napsal(a):

Není ideální to strkat do onClick="" je lepší to buď navázat přes jquery, toto např používám já (pokud nemám flash obalené ve snippetu, pokud ano, stačí odstranit podmínku s odstranovanim celeho divu se zprávami):

$("#flashes > div").click(function(){
	$(this).stop().fadeTo(500, 0, function(){
		$(this).remove();
		if($("#flashes > div").length == 0)
			$("#flashes").remove();
	});
});
Jan Mikeš
Člen | 771
+
0
-

Pro ajax musis mirne upravit pomoci .on() protoze .live() uz tusim v nove verzi jquery ani neni.