X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Futil.js;h=27fab59f034fd6aee619975c33ee27018838b416;hp=f5fca3f37b90407c8e56a5a18a6e070eb2798ad8;hb=24ed7a141aa345454300dd260bbabae3a9f92408;hpb=8ee1535f5594573931ddaebee77bf6148a5358cb diff --git a/js/util.js b/js/util.js index f5fca3f..27fab59 100644 --- a/js/util.js +++ b/js/util.js @@ -19,49 +19,47 @@ /*jslint laxbreak:true */ /** - * Cet objet 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é. - * Lorsqu'un bouton est activé le message se ferme. - * @param formate faut-il formaté le message ? true par défaut - * @param temps le temps d'affichage du message en seconde, -1 pour une durée infinie - */ -euphorik.Util.prototype.messageDialogue = function(message, type, boutons, formate, temps) { + * 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 === undefined ? true : formate; + format = format === undefined ? true : format; - if (this.timeoutMessageDialogue) { - clearTimeout(this.timeoutMessageDialogue); + if (this.timeoutMessageDialog) { + clearTimeout(this.timeoutMessageDialog); } - var fermer = function() { $("#info").slideUp(100); }; - fermer(); + var close = function() { $("#info").slideUp(100); }; + close(); - $("#info .message").html(!thisUtil.formateur || !formate ? message : thisUtil.formateur.traitementComplet(message)); + $("#info .message").html(!thisUtil.formater || !format ? message : thisUtil.formater.traitementComplet(message)); switch(type) { case euphorik.Util.messageType.informatif : $("#info #icone").attr("class", "information"); break; @@ -69,14 +67,14 @@ 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(name, bouton) { + $("#info .buttons").append("
" + name + "
").find("div:last").click(bouton).click(close); }); $("#info").slideDown(200); - if (temps !== -1) { - this.timeoutMessageDialogue = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue); + if (time !== -1) { + this.timeoutMessageDialog = setTimeout(close, time || euphorik.conf.tooltipDisplayDefaultTime); } }; @@ -117,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é. @@ -127,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; @@ -139,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); @@ -182,14 +190,6 @@ euphorik.Util.prototype.infoBulle = function(message, element, position) { ).click(cacherBulle); }; -/** - * Utilisé pour l'envoie de données avec la méthode ajax de jQuery. - * Obsolète : à virer - */ -euphorik.Util.prototype.jsonVersAction = function(json) { - return { action : JSON.stringify(json) }; -}; - /** * Retourne un hash md5 d'une chaine, dépend de md5.js. * @param chaine un string quelconque @@ -199,7 +199,7 @@ euphorik.Util.prototype.md5 = function(chaine) { return hex_md5(chaine); }; -// pompé de http://www.faqts.com/knowledge_base/view.phtml/aid/13562/fid/130 +// Taken from http://www.faqts.com/knowledge_base/view.phtml/aid/13562/fid/130 euphorik.Util.prototype.setSelectionRange = function(input, selectionStart, selectionEnd) { if (input.setSelectionRange) { input.focus(); @@ -253,9 +253,10 @@ euphorik.Util.prototype.replaceSelection = function(input, replaceString) { }; /** - * Rot13 d'une chaine, voir : http://fr.wikipedia.org/wiki/ROT13 + * Applies rot13 to a given string. See : http://en.wikipedia.org/wiki/ROT13. + * @param str the string. */ -euphorik.Util.prototype.rot13 = function(chaine) { +euphorik.Util.prototype.rot13 = function(str) { var ACode = 'A'.charCodeAt(0); var aCode = 'a'.charCodeAt(0); var MCode = 'M'.charCodeAt(0); @@ -275,5 +276,5 @@ euphorik.Util.prototype.rot13 = function(chaine) { (c > MCode && c <= ZCode || c > mCode && c <= zCode ? -13 : 0)) ) + f(ch, pos + 1); }; - return f(chaine, 0); + return f(str, 0); };