X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Futil.js;h=aff9d6e00d578b7938e1ad5a18378c92e36531f0;hp=c9c8bb3694aafaea6ad981fa45d2a7a77e60f994;hb=cf274dbe8b2049cfb3d2116d9298bfb8c1a38d11;hpb=e6475e1885c0a0f102387c01e9bcb78ac09b4ef8 diff --git a/js/util.js b/js/util.js index c9c8bb3..aff9d6e 100644 --- a/js/util.js +++ b/js/util.js @@ -19,47 +19,47 @@ /*jslint laxbreak:true */ /** - * Cette classe regroupe des fonctions utilitaires (helpers) permettant notamment de : - * - afficher une boite de message - * - afficher une bulle d'aide lié à un élément - * - manipuler le curseur et réaliser des sélections sur des zones de saisie () - * @formateur permet de formater les messages affichés à l'aide de messageDialogue (facultatif), voir "formateur.js". + * This object brings some utility functions. + * - Print a message box to display some information for the user. + * - Set a tooltip for a HTML element. + * - Some text manipulation for input area. + * @formater An object for string format */ -euphorik.Util = function (formateur) { - $("#info .fermer").click(function() { +euphorik.Util = function (formater) { + $("#info .close").click(function() { $("#info").slideUp(50); }); - $("body").append('
').append('

'); + $("body").append('
').append('

'); - this.formateur = formateur; + this.formater = formater; this.bulleActive = true; }; euphorik.Util.messageType = {informatif: 0, question: 1, erreur: 2}; /** - * Affiche une boite de dialogue avec un message à l'intérieur. - * @param message le message (string) - * @param type voir 'messageType'. par défaut messageType.informatif - * @param les boutons sous la forme d'un objet ou les clefs sont les labels des boutons - * et les valeurs les fonctions executées lorsqu'un bouton est activé. - * @param formate faut-il formaté le message ? true par défaut - */ -euphorik.Util.prototype.messageDialogue = function(message, type, boutons, formate) { + * Display a message box. + * @message [String] The message. + * @type [euphorik.Util.messageType] The message type like 'information' or 'error'. Default is messageType.informatif. + * @buttons An object where the properties are the labels and the values are functions which will be executed when a button is clicked. + * @format [bool] The message should be formated. (see 'formater.js') + * @time The time while the message is displayed. -1 for infinity. + */ +euphorik.Util.prototype.messageDialog = function(message, type, buttons, format, time) { var thisUtil = this; type = type || euphorik.Util.messageType.informatif; - formate = formate || true; + format = format === undefined ? true : format; - if (this.timeoutMessageDialogue) { - clearTimeout(this.timeoutMessageDialogue); + if (this.timeoutMessageDialog) { + clearTimeout(this.timeoutMessageDialog); } - var fermer = function() { $("#info").slideUp(100); }; - fermer(); - - $("#info .message").html(!thisUtil.formateur || !formate ? message : thisUtil.formateur.traitementComplet(message)); + var close = function() { $("#info").slideUp(100); }; + close(); + + $("#info .message").html(!thisUtil.formater || !format ? message : thisUtil.formater.traitementComplet(message)); switch(type) { case euphorik.Util.messageType.informatif : $("#info #icone").attr("class", "information"); break; @@ -67,13 +67,15 @@ euphorik.Util.prototype.messageDialogue = function(message, type, boutons, forma case euphorik.Util.messageType.erreur : $("#info #icone").attr("class", "exclamation"); break; } - $("#info .boutons").html(""); - objectEach(boutons, function(nom, bouton) { - $("#info .boutons").append("
" + nom + "
").find("div:last").click(bouton).click(fermer); + $("#info .buttons").html(""); + objectEach(buttons, function(nom, bouton) { + $("#info .buttons").append("
" + nom + "
").find("div:last").click(bouton).click(close); }); - $("#info").slideDown(200); - this.timeoutMessageDialogue = setTimeout(fermer, euphorik.conf.tempsAffichageMessageDialogue); + $("#info").slideDown(200); + if (time !== -1) { + this.timeoutMessageDialog = setTimeout(close, time || euphorik.conf.tooltipDisplayDefaultTime); + } }; euphorik.Util.positionTypeX = {gauche: 0, gaucheRecouvrement: 1, centre: 2, droiteRecouvrement: 3, droite: 4}; @@ -113,6 +115,16 @@ euphorik.Util.prototype.afficherBoite = function(boite, cible, positionX, positi }; euphorik.Util.positionBulleType = {haut : 0, droite : 1, bas : 2, gauche : 3}; + +/** + * Affiche ou cache la barre d'attente. + */ +euphorik.Util.prototype.showWaitBar = function() { + $("#waitbar").show(); +}; +euphorik.Util.prototype.hideWaitBar = function() { + $("#waitbar").hide(); +}; /** * Affiche un info bulle lorsque le curseur survole l'élément donné. @@ -123,8 +135,8 @@ euphorik.Util.positionBulleType = {haut : 0, droite : 1, bas : 2, gauche : 3}; euphorik.Util.prototype.infoBulle = function(message, element, position) { var thisUtil = this; var cacherBulle = function() { - $("#flecheBulle").hide(); - $("#messageBulle").hide(); + $("#tooltipArrow").hide(); + $("#tooltipMessage").hide(); }; position = position || euphorik.Util.positionBulleType.haut; @@ -135,11 +147,11 @@ euphorik.Util.prototype.infoBulle = function(message, element, position) { return; } - var m = $("#messageBulle"); - var f = $("#flecheBulle"); - f.removeClass().addClass(position === euphorik.Util.positionBulleType.haut ? "flecheBulleHaut" : - (position === euphorik.Util.positionBulleType.droite ? "flecheBulleDroite" : - (position === euphorik.Util.positionBulleType.bas ? "flecheBulleBas" : "flecheBulleGauche" ))); + var m = $("#tooltipMessage"); + var f = $("#tooltipArrow"); + f.removeClass().addClass(position === euphorik.Util.positionBulleType.haut ? "tooltipArrowTop" : + (position === euphorik.Util.positionBulleType.droite ? "tooltipArrowRight" : + (position === euphorik.Util.positionBulleType.bas ? "tooltipArrowBottom" : "tooltipArrowLeft" ))); // remplie le paragraphe de la bulle avec le message $("p", m).html(message); @@ -180,10 +192,11 @@ euphorik.Util.prototype.infoBulle = function(message, element, position) { /** * Utilisé pour l'envoie de données avec la méthode ajax de jQuery. + * Obsolète : à virer */ -euphorik.Util.prototype.jsonVersAction = function(json) { +/*euphorik.Util.prototype.jsonVersAction = function(json) { return { action : JSON.stringify(json) }; -}; +};*/ /** * Retourne un hash md5 d'une chaine, dépend de md5.js.