během ajaxovýcho požadavku loading animace

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

čAu
Asi to moc nesouvisí s Nette,
ale chtěl bych se zeptat, když odeslu formular ajaxove stranka se prepise pomoci ajaxu.
Ale chtel bych aby mezitim co probíha kod se na stránce obevil loading – to kolecko.
Jak to můžu udelat?
Díky

jazby
Člen | 44
+
0
-

To teda s nette nesouvisí defacto vůbec.
Ale například takhle. Beru to z jednoho systému kde to mám, bez vyčištění, pro inspiraci snad stačí)
Jinak stačilo použít google a odpověď by byla hned.

<script>
$(document).ajaxStart(function () {
	$("#ajax-progressbar").center();
	$("#ajax-progressbar").show();
	}).ajaxStop(function (){
	$("#ajax-progressbar").hide();
});
</script>
<div id="ajax-progressbar">
	<div class="container">
		<div class="header">Načítám...</div>
		<div class="body">
			<img src="http://sosej.jazby.net/images/activity.gif" alt="" />
		</div>
	</div>
</div>

Editoval jazby (19. 7. 2013 9:46)

duskohu
Člen | 778
+
0
-

Popripade ak pouzivas nette.ajax.js tak ma na to extension spinner.

Domki
Člen | 310
+
0
-

Jo používm nette.ajax.js

Oka díky kouknu na to

jazby
Člen | 44
+
0
-

duskohu napsal(a):

Popripade ak pouzivas nette.ajax.js tak ma na to extension spinner.

No to mě hne nenapadlo. Sem koukl do prvního adminu kde vím že to mám, ale ten zrovna není na nette :) Spinner využívám taky, díky za připomenutí.

Domki
Člen | 310
+
0
-

duskohu napsal(a):

Popripade ak pouzivas nette.ajax.js tak ma na to extension spinner.

A to rozsireni si ten kod mam ulozit do slozky js, nalinkovat?
nebo jak to mám pouzít?

Domki
Člen | 310
+
0
-

Tak už jsem na to asi přišel, tak se chci ujistit zda to je tak dobre

extension spinner. sem stahl do js a nalinkoval v layout.latte
a v layoutu do tagu script jsem napsal:

$.nette.ext('spinner', {
		    start: function () {
		    },
		    complete: function () {
		    }
		});

To je vše?

a jinak se pouziva trída #ajax-spinner a obrazek spinner uz v sandboxu?

Díky

Editoval Domki (20. 7. 2013 10:05)

Michal Vyšinský
Člen | 608
+
0
-

Myslím, že by to mělo stačit jen nalinkovat ten soubor. To co jsi pak kódem udělal ty, je, že jsi přepsal to extension.

duskohu
Člen | 778
+
0
-

Ten subor staci nalinkovat, napr ja som si ho trosilinku upravil, to je uz podla teba:

(function ($, undefined) {

    $.nette.ext('spinner', {
        init: function (x) {
            this.spinner = this.createSpinner();
            this.spinner.appendTo('body');
        },
        start: function (jqXHR, settings) {
            this.spinner.css({
                left: '50%',
                top: '30%'
            });
            this.spinner.show(this.speed);
        },
        complete: function () {
            this.spinner.hide(this.speed);
        }
    }, {
        createSpinner: function () {
            return $('<div>', {
                id: 'ajax-spinner',
                css: {
                    display: 'none'
                }
            });
        },
        spinner: null,
        speed: undefined
    });

})(jQuery);
#ajax-spinner {
    position: fixed;
    width: 32px;
    height: 32px;
    background: url('../img/ajax_loader.gif') no-repeat;
    z-index: 123456;
}
Domki
Člen | 310
+
0
-

Ajo ted na to koukaám že stejne v tech vunkcích nic nedelam
takže to stačí jen nalinkovat. oka Díkys

mrtnzlml
Člen | 140
+
0
-

Hezký nápad, který jsem poprvé viděl na Nette školení, mě inspiroval k tomuto:

$.nette.ext('spinner', {
	start: function () {
		$('html').addClass('wait');
	},
	complete: function () {
		$('html').removeClass('wait');
	}
});
html.wait, html.wait * { cursor: wait !important; }
Oli
Člen | 1215
+
0
-

Jestli to chápu dobře, tak stačí zprovoznit nette.ajax.js a pak nalinkovat extension spinner? Zkoušel jsem to tak, ale nejsem schopen to zprovoznit.
@layout.latte

<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="{$basePath}/js/ajax/nette.ajax.js"></script>
<script type="text/javascript" src="{$basePath}/js/main.js"></script> // obsahuje $.nette.init();
<script type="text/javascript" src="{$basePath}/js/ajax/extensions/spinner.ajax.js"></script>

css

#ajax-spinner {
    position: fixed;
    width: 32px;
    height: 32px;
    padding: 13px;
    background: white url('../img/ajax_loader.gif') no-repeat 50% 50%;
    z-index: 123456;
}

Spinner.ajax.js jsem nechal nezměněný z GitHubu. Nevím jestli mám volat $.nette.init() před nebo po nalinkování extension, zkoušel jsem oboje, ale nejde ani jedno.

Co dělám špatně? Díky!

Oli
Člen | 1215
+
0
-

Jaj, tohle funguje. Nechápu teda, proč nefungoval referenční soubor. Diky!

duskohu
Člen | 778
+
0
-

@Oli skus si ich porovnat a prides na to :-)