Subversion Repositories Applications.reseau

Rev

Rev 82 | Blame | Compare with Previous | Last modification | View Log | RSS feed

$(document).ready(function() {
        $('#succes').hide();
        $('#erreur').hide();

        // écouteur de clic
        $("#ok").click(function() {
                $('#succes').hide();
                $('#erreur').hide();
                regenererMiniatures();
        });

        // pour faire se rejoindre les callback
        cptRequetes = 0;
        cptErreurs = 0;

        function idValide(id) {
                //console.log("idValide ? : " + id);
                intId = parseInt(id);
                return (! isNaN(intId) && intId > 0);
        }

        /**
         * prend en entrée la valeur d'un textarea, qui peut etre vide; si elle est
         * vide ("") ou si elle ne contient que des entiers valides (un par ligne),
         * retourne un tableau contenant ces ids (ou aucun élément); sinon, retourne
         * false
         */
        function validerIds(ids) {
                var valides = true;
                if (ids != "") {
                        ids = ids.split("\n");
                        //console.log(ids);
                        for (var i=0; (i < ids.length) && valides; i++) {
                                //console.log('teste', ids[i]);
                                valides = (valides && idValide(ids[i]));
                        }
                } else {
                        ids = []; // tableau vide
                }
                if (! valides) {
                        ids = false;
                }
                return ids;
        }

        // génération des URLs
        function regenererMiniatures() {
                cptRequetes = 0;
                cptErreurs = 0;
                // validation des ids
                var idsImg = $("#ids-img").val();
                var idsObs = $("#ids-obs").val();
                if (idsObs == "" && idsImg == "") {
                        alert("Merci de saisir au moins 1 id image ou 1 id observation");
                        return false;
                }
                idsImg = validerIds(idsImg);
                idsObs = validerIds(idsObs);
                if (! (idsImg && idsObs)) {
                        alert("Merci de ne saisir que des nombres > 0 (un par ligne)");
                        return false;
                }
                //console.log('ok');
                idsImg = $.unique(idsImg);
                idsObs = $.unique(idsObs);
                //console.log(idsImg);
                //console.log(idsObs);

                $("body").css("cursor", "progress");
                // création des URLs à partir de la config
                if (idsImg.length > 0) {
                        cptRequetes++;
                        var url = urlServiceSuppressionMiniatures + '?ids-img=' + idsImg.join(',');
                        //console.log(url);
                        envoyerRequete(url, suite);
                }
                if (idsObs.length > 0) {
                        cptRequetes++;
                        var url = urlServiceSuppressionMiniatures + '?ids-obs=' + idsObs.join(',');
                        //console.log(url);
                        envoyerRequete(url, suite);
                }
        }

        function envoyerRequete(url, cb) {
                $.get(url)
                        .fail(function() {
                                //console.log('a foiré :(');
                                cptErreurs++;
                        })
                        .always(function() {
                                cb();
                        });
        }

        function suite() {
                cptRequetes--;
                if (cptRequetes == 0) {
                        //console.log('a fini !');
                        $("body").css("cursor", "default");
                        // ok
                        if (cptErreurs == 0) {
                                //console.log('yatoukébon');
                                $('#succes').show();
                                $('#erreur').hide();
                                $('#ids-img').val('');
                                $('#ids-obs').val('');
                        } else {
                                $('#succes').hide();
                                $('#erreur').show();
                        }
                }
        }
});