[DATAGRID] Vlastní spinner na vyhledávání

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

Zdravím mám dotaz, je nějaká možnost nebo má datagrid v sobě spinner?

Chtěl bych udělat že když člověk začne vyhledávat spustí se spinner aby vyděl že se vyhledává?

Jelikož v naší db je asi něco kolem 1 500 000 záznamů a chvilku trvá než se něco najde tak aby ten dotyčný věděl.

Snažil jsem se dle nějakých návodů zde… ale nějak se mi stále nepovedlo jej rozjet…

(function($, undefined) {

$.nette.ext('spinner', {
    init: function () {
        this.spinner = this.createSpinner();
        this.spinner.appendTo('.navbar-header');
    },
    start: function () {
        this.counter++;
        if (this.counter === 1) {
            this.spinner.show(this.speed);
        }
    },
    complete: function () {
        this.counter--;
        if (this.counter <= 0) {
            this.spinner.hide(this.speed);
            $(".alert").fadeTo(10000, 500).slideUp(500, function(){
                $(".alert").slideUp(500);
            });
        }
    }
}, {
    createSpinner: function () {
        return $('<div>', {
            id: 'ajax-spinner',
            css: {
                display: 'none'
            }
        });
    },
    spinner: null,
    speed: undefined,
    counter: 0
});

})(jQuery);

Chyba

matopeto
Člen | 395
+
0
-

Pokial je to ajaxovy dotaz a tvoj datagrid pouziva nette.ajax.js (A nie nieco ine) tak by mala tvoja extension fungovat (Alebo i ta vstavana) pokial to tak nie je, musis to urobit tak aby to bolo s tvojim datagridom/ajaxom kompatibilne, co myslim ze nebude problem.

jAkErCZ
Člen | 322
+
0
-

@matopeto Jenže on mi nefunguje a nevím absolutně proč…

matopeto
Člen | 395
+
0
-

A aky datagrid pouzivas?

abc
Člen | 92
+
+1
-
  1. máš někde v kódu něco s class navbar-header? pokud ne, tak se ti ten spinner nikam do kódu nedá
  2. máš nějaké CSS k #ajax-spinner? pokud ne, tak nevím, co čekáš, že se ti zobrazí
  3. jestli myslíš, že máš obojí, tak si někam do kódu zkus umístit <div id=‚ajax-spinner‘> a uvidíš, jestli se ti spinner zobrazí bez vyvolání události
jAkErCZ
Člen | 322
+
0
-

@matopeto Ten nejnovější… ublaboo
A taky chci aby obrazovka s černala uprostřed loading a pak jakmile to načte zase zmizela..
jenže jde o to že tento datagrid využívá vyhledávání již při psaní… a jakmlie dopíšu tak
začne hledat

@abc I když vše mám jak má být tady my to vypisuje tuto chybu…

main.js:17 Uncaught TypeError: Cannot read property 'hide' of null
    at Object.complete (main.js:17)
    at Function.<anonymous> (nette.ajax.js:42)
    at Function.each (jquery.js:371)
    at Object.fire (nette.ajax.js:40)
    at Object.<anonymous> (nette.ajax.js:250)
    at fire (jquery.js:3187)
    at Object.fireWith [as resolveWith] (jquery.js:3317)
    at done (jquery.js:8757)
    at XMLHttpRequest.<anonymous> (jquery.js:9123)

Editoval jAkErCZ (13. 6. 2017 17:49)

abc
Člen | 92
+
0
-

@jAkErCZ sorry, ale nevím, proč me tu označuješ, a odpovídáš mi na úplně něco jiného, než jsem se ptal.
ta chyba znamená, že v this.spinner máš null, tím pádem bych rozhodně neřekl, že je vše, jak má být..
v tom mém příspěvku máš nějaké „ladící“ postupy, co bys měl vyzkoušet, víc ti s tím aktuálně pomoc nedokážu.

Případne zkus ten projekt (celý) dát třeba na github