var libelleMois = [ "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" ]; var parametresVariablesFormatteUrl; var chargementEnCours = false; var urlPageActuelle = document.location; var crontabClignotement; var crontabNettoyageCommandeObsolete; //Fonction remplaceant le point '.' (sépareteur du nombre et des décimales) par une virgule ',' function toLocalNumber(number) { return number.toLocaleString(); } //Fonction permettant de dumper un objet function dump(obj) { var out = ''; for (var i in obj) { out += i + ": " + obj[i] + "\n"; } alert(out); } //Fonction renvoyant une valeur proche, sans décimal function round(n, dec) { n = parseFloat(n); if (!isNaN(n)) { if(!dec) var dec= 0; var factor= Math.pow(10, dec); return Math.floor(n*factor+((n*factor*10)%10>=5?1:0))/factor; } else { return n; } } //injecte les variables de session et les variables contextuelles dans les données fournies (objet) function fusionnerVariables(donnees) { if (donnees!=null) return $.extend({}, variablesEnvironnement, donnees ); else return $.extend({}, variablesEnvironnement); } function arrayToUrl(donnees) { var parametresVariablesFormatteUrl = ""; var premier = true; for (var cle in donnees) { var valeur = donnees[cle]; if (!premier) parametresVariablesFormatteUrl += '&'; //console.log(ajoutVariablesEnvironnement); premier = false; parametresVariablesFormatteUrl += cle + '=' + valeur; //console.log(ajoutVariablesEnvironnement); } return parametresVariablesFormatteUrl; } function miseAjourFormulaire() { parametresVariablesFormatteUrl = ""; var premier = true; for (var cle in variablesEnvironnement) { var valeur = variablesEnvironnement[cle]; if (!premier) parametresVariablesFormatteUrl += '&'; //console.log(ajoutVariablesEnvironnement); premier = false; parametresVariablesFormatteUrl += cle + '=' + valeur; //console.log(ajoutVariablesEnvironnement); } //console.log("MAJ parametresVariablesFormatteUrl : "+parametresVariablesFormatteUrl); //var ajoutVariablesEnvironnement=""; if (typeof(variablesEnvironnement) != "undefined") { //console.log(variablesEnvironnement); //////////////////////////////////////////////////////// // Injection des paramêtres dans input hidden //////////////////////////////////////////////////////// for (var cle in variablesEnvironnement) { $('form').each(function(index) { if ($(this).find("input[name="+cle+"]").length==0) { $(this).append(''); } }); } } else { console.log("ERREUR : La variable 'variablesEnvironnement' n'est pas déclarée !"); } // Initialisation des tooltip $('#contenu .error-form').tooltip({ html:true, animation:false/*, trigger:'manual'*/ }); $.each($('#contenu .error-form'), function (index, e) { $(e).tooltip('show'); }); // Activation de la sélection du module $('#contenu .selectionModules').click(function(e){ e.preventDefault(); $('header').notification({ fixe : true, type : "info", contenu : $('#selectionModules').html() }); }); /* $('#contenu .carousel').carousel({ interval: 4000 }); */ // Eviter la fermeture du dropdown des formulaires principaux si l'écran n'est pas un écran smartphone $('#contenu .dropdown-menu-right.options').click(function(e){ if (!isEcranSmartphone()) { e.stopPropagation(); } }); // Eviter la fermeture du dropdown si le datepicker est actif $('#contenu .dropdown.filtre').on('hide.bs.dropdown', function (e) { if (!isEcranSmartphone()) { if ($('#ui-datepicker-div').css('display') != 'none') { return false; } } }); } function go(lien, donnees, redirection, rappel, method) { var redirection = (typeof redirection === "undefined") ? false : redirection; var rappel = (typeof rappel === "undefined") ? false : rappel; var donnees = (typeof donnees === "undefined") ? [] : donnees; if (donnees==null) donnees = {}; // Pour un fonctionnement normal de history.pushState if (chargementEnCours) return false; chargementEnCours = true; NProgress.start(); // Cloture, si présente de la fenêtre de log LogTrame_fermerFenetre(); if (!redirection) { if (countProperties(donnees)>0) { urlPageActuelle = lien + '?' + $.param(donnees); } else { urlPageActuelle = lien; } } $.get( lien, donnees, function(data, status, XMLHttpRequest) { if (XMLHttpRequest.status==260) { urlPageActuelle = XMLHttpRequest.responseText; chargementEnCours = false; go (urlPageActuelle, null, true, rappel); } else { if (!rappel) { history.pushState(donnees, null, urlPageActuelle); } chargementEnCours = false; // Désactivation des éléments de la page if (typeof dechargerPage == 'function') { console.log("Présence de la fonction dechargerPage -> Déchargement du bloc contenu"); dechargerPage(); } $('#contenu').html(data); } } ).fail(function(event) { $('header').notification({ fixe : true, type : "error", contenu : "Une erreur est apparue empêchant l'affichage du résultat." }); chargementEnCours = false; return false; }).always(function(event) { NProgress.done(); }); return false; // Annule l'action du lien par défaut } function ajouterParametresAuxParametres(parametres, parametresSupplementaire) { if (parametres.length>0) return parametres + '&' + parametresSupplementaire; else return parametresSupplementaire; } function envoiFormulaire(event, form) { if (chargementEnCours) return false; chargementEnCours = true; NProgress.start(); /* Stop form from submitting normally */ event.preventDefault(); // Permettre à l'ensemble des boutons de type submit d'afficher un texte pendant l'envoi $(form).find('.btn[type=submit], a.btn-primary').button('loading'); urlPageActuelle = form.attr('action'); /* Get some values from elements on the page: */ var parametres = form.serialize(); //var variables = fusionnerVariables(form.serializeArray()); //parametres = arrayToUrl(variables); $.post( urlPageActuelle, /*parametres, //*/ajouterParametresAuxParametres(parametres, parametresVariablesFormatteUrl), function(data, status, XMLHttpRequest) { if (XMLHttpRequest.status == 260) { urlPageActuelle = XMLHttpRequest.responseText; chargementEnCours = false; go (urlPageActuelle, null, true, false); } else { //history.pushState({}, null, urlPageActuelle); chargementEnCours = false; NProgress.done(); //affichageChargement(false); $('#contenu').html(data); } } ).fail(function(event) { $('header').notification({ fixe : true, type : "error", contenu : "Une erreur est apparue empéchant l'affichage du résultat." }); chargementEnCours = false; NProgress.done(); // On réactive les boutons d'envois $(form).find('.btn[type=submit], a.btn-primary').button('reset'); return false; }); return false; } function eventBeforeUnload(event) { ws_disconnect(); clearInterval(crontabClignotement); clearInterval(crontabNettoyageCommandeObsolete); } window.onpopstate = function(event) { if (event.state) { // Ce test permet de ne prendre que les évenements de retour dans l'historique ou d'avance dans l'historique go(document.location, event.state, true, true); } }; function isEcranSmartphone() { return $('#smartphone').width() == 1; } //Retourne vrai si la date correspond a celle d'aujourd'hui function isDateAujourdhui(date) { var maintenant = new Date(); return (maintenant.getUTCDate() == date.getUTCDate() && maintenant.getUTCMonth() == date.getUTCMonth() && maintenant.getUTCFullYear() == date.getUTCFullYear()); } //Extension de l'objet Date Date.prototype.toFrenchDate = function() { var jour = this.getDate(); var mois = this.getMonth() + 1; var annee = this.getFullYear(); return ( jour < 10 ? '0' : '' ) + jour + '/' + ( mois < 10 ? '0' : '' ) + mois + '/' + annee; }; function formatNumber(number) { if (number == null) return "?"; var negatif = (number < 0); number = Math.abs(number.toFixed(0)) + ''; x = number.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ' ' + '$2'); } return (negatif ? "- " : "") + x1 + x2; } //Renvoi le nombre de propriete contenu dans l'objet function countProperties(obj) { var count = 0; for(var prop in obj) { if(obj.hasOwnProperty(prop)) ++count; } return count; } // Retourne vrai si le paramètre est un nombre function isNumber(n) { return !isNaN(parseFloat(n)) && isFinite(n); } function clignotement() { $('.etatCarre.clignotement').each(function(idx, e) { if ($(this).hasClass('desactive')) { $(this).removeClass('desactive'); } else { $(this).addClass('desactive'); } }); } function nettoyageCommandeObsolete() { CommandeEnCours_supprimerCommandesAgees(); } // Utilise le template situé dans le fichier templateDialogActionError function afficherErreur(textes) { if (textes == null || $(textes).size() == 0) return; $('#template-dialog-action-error .modal-body').html(""); $.each(textes, function(key, value) { var nouveauContenu = $("#template-fragment-content-dialog-action-error").clone(); $(nouveauContenu).find('.contenu').html(value); $('#template-dialog-action-error .modal-body').append(nouveauContenu); }); $('#template-dialog-action-error').modal(); } function afficherErreursAPartirDunJSON(json) { if (json==null) return; afficherErreur(json['actionErrors']); } crontabClignotement = setInterval(function() { clignotement() }, 1000); crontabNettoyageCommandeObsolete = setInterval(function() { nettoyageCommandeObsolete() }, 30000); // Paramétrage par défaut $(document).ready(function() { Highcharts.setOptions({ lang: { months: libelleMois, weekdays: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], resetZoom: "Annuler le zoom", resetZoomTitle: "Annuler le zoom", loading: "", noData: "" } }); $.datepicker.setDefaults({ dateFormat: "dd/mm/yy", dayNames: [ "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ], dayNamesMin: [ "Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa" ], monthNames: [ "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" ] }); $(document).ajaxError(function(event, request, settings, exception) { if (request.status == 401) { // Si le status est 401, alors une demande d'identification est demandée. // On demande le même lien afin que l'utilisateur, une fois identifiée, soit redirigée vers la dernière page utilisée. window.location.replace(window.location.href); } }); });