MOD french -> english (6)
[euphorik.git] / js / util.js
index 2c66959..27fab59 100644 (file)
 /*jslint laxbreak:true */\r
 \r
 /**\r
-  * Cette classe regroupe des fonctions utilitaires (helpers) permettant notamment de :\r
-  *  - afficher une boite de message\r
-  *  - afficher une bulle d'aide lié à un élément\r
-  *  - manipuler le curseur et réaliser des sélections sur des zones de saisie (<input>)\r
-  * @formateur permet de formater les messages affichés à l'aide de messageDialogue (facultatif), voir "formateur.js".\r
+  * This object brings some utility functions.\r
+  *  - Print a message box to display some information for the user.\r
+  *  - Set a tooltip for a HTML element.\r
+  *  - Some text manipulation for input area.\r
+  * @formater An object for string format\r
   */\r
-euphorik.Util = function (formateur) {\r
-   $("#info .fermer").click(function() {\r
+euphorik.Util = function (formater) {\r
+   $("#info .close").click(function() {\r
       $("#info").slideUp(50);\r
    });\r
    \r
-   $("body").append('<div id="flecheBulle"></div>').append('<div id="messageBulle"><p></p></div>');\r
+   $("body").append('<div id="tooltipArrow"></div>').append('<div id="tooltipMessage"><p></p></div>');\r
    \r
-   this.formateur = formateur;\r
+   this.formater = formater;\r
    this.bulleActive = true;\r
 };\r
 \r
 euphorik.Util.messageType = {informatif: 0, question: 1, erreur: 2};\r
 \r
 /**\r
-  * Affiche une boite de dialogue avec un message à l'intérieur.\r
-  * @param message le message (string)\r
-  * @param type voir 'messageType'. par défaut messageType.informatif\r
-  * @param les boutons sous la forme d'un objet ou les clefs sont les labels des boutons\r
-  *        et les valeurs les fonctions executées lorsqu'un bouton est activé.\r
-  * @param formate faut-il formaté le message ? true par défaut\r
-  */\r
-euphorik.Util.prototype.messageDialogue = function(message, type, boutons, formate) {\r
+  * Display a message box.\r
+  * @message [String] The message.\r
+  * @type [euphorik.Util.messageType] The message type like 'information' or 'error'. Default is messageType.informatif.\r
+  * @buttons An object where the properties are the labels and the values are functions which will be executed when a button is clicked.\r
+  * @format [bool] The message should be formated. (see 'formater.js')\r
+  * @time The time while the message is displayed. -1 for infinity.\r
+  */  \r
+euphorik.Util.prototype.messageDialog = function(message, type, buttons, format, time) {\r
    var thisUtil = this;\r
 \r
    type = type || euphorik.Util.messageType.informatif;\r
-   formate = formate || true;\r
+   format = format === undefined ? true : format;\r
 \r
-   if (this.timeoutMessageDialogue) {\r
-      clearTimeout(this.timeoutMessageDialogue);\r
+   if (this.timeoutMessageDialog) {\r
+      clearTimeout(this.timeoutMessageDialog);\r
    }\r
       \r
-   var fermer = function() { $("#info").slideUp(100); };\r
-   fermer();\r
-   \r
-   $("#info .message").html(!thisUtil.formateur || !formate ? message : thisUtil.formateur.traitementComplet(message));\r
+   var close = function() { $("#info").slideUp(100); };\r
+   close();\r
+\r
+   $("#info .message").html(!thisUtil.formater || !format ? message : thisUtil.formater.traitementComplet(message));\r
    \r
    switch(type) {\r
       case euphorik.Util.messageType.informatif : $("#info #icone").attr("class", "information"); break;\r
@@ -67,13 +67,15 @@ euphorik.Util.prototype.messageDialogue = function(message, type, boutons, forma
       case euphorik.Util.messageType.erreur : $("#info #icone").attr("class", "exclamation"); break;\r
    }\r
    \r
-   $("#info .boutons").html("");\r
-   objectEach(boutons, function(nom, bouton) {\r
-      $("#info .boutons").append("<div>" + nom + "</div>").find("div:last").click(bouton).click(fermer);\r
+   $("#info .buttons").html("");\r
+   objectEach(buttons, function(name, bouton) {\r
+      $("#info .buttons").append("<div>" + name + "</div>").find("div:last").click(bouton).click(close);\r
    });\r
    \r
-   $("#info").slideDown(200);\r
-   this.timeoutMessageDialogue = setTimeout(fermer, euphorik.conf.tempsAffichageMessageDialogue);\r
+   $("#info").slideDown(200);
+   if (time !== -1) {\r
+      this.timeoutMessageDialog = setTimeout(close, time || euphorik.conf.tooltipDisplayDefaultTime);
+   }\r
 };\r
 \r
 euphorik.Util.positionTypeX = {gauche: 0, gaucheRecouvrement: 1, centre: 2, droiteRecouvrement: 3, droite: 4};\r
@@ -113,6 +115,16 @@ euphorik.Util.prototype.afficherBoite = function(boite, cible, positionX, positi
 };\r
 \r
 euphorik.Util.positionBulleType = {haut : 0, droite : 1, bas : 2, gauche : 3};\r
+
+/**
+  * Affiche ou cache la barre d'attente.
+  */
+euphorik.Util.prototype.showWaitBar = function() {
+   $("#waitbar").show();
+};
+euphorik.Util.prototype.hideWaitBar = function() {
+   $("#waitbar").hide();
+};
 \r
 /**\r
   * Affiche un info bulle lorsque le curseur survole l'élément donné.\r
@@ -123,8 +135,8 @@ euphorik.Util.positionBulleType = {haut : 0, droite : 1, bas : 2, gauche : 3};
 euphorik.Util.prototype.infoBulle = function(message, element, position) {\r
    var thisUtil = this;\r
    var cacherBulle = function() {   \r
-      $("#flecheBulle").hide();\r
-      $("#messageBulle").hide();\r
+      $("#tooltipArrow").hide();\r
+      $("#tooltipMessage").hide();\r
    };\r
    \r
    position = position || euphorik.Util.positionBulleType.haut;\r
@@ -135,11 +147,11 @@ euphorik.Util.prototype.infoBulle = function(message, element, position) {
             return;\r
          }\r
 \r
-         var m = $("#messageBulle");\r
-         var f = $("#flecheBulle");\r
-         f.removeClass().addClass(position === euphorik.Util.positionBulleType.haut ? "flecheBulleHaut" :\r
-            (position === euphorik.Util.positionBulleType.droite ? "flecheBulleDroite" : \r
-            (position === euphorik.Util.positionBulleType.bas ? "flecheBulleBas" : "flecheBulleGauche" )));\r
+         var m = $("#tooltipMessage");\r
+         var f = $("#tooltipArrow");\r
+         f.removeClass().addClass(position === euphorik.Util.positionBulleType.haut ? "tooltipArrowTop" :\r
+            (position === euphorik.Util.positionBulleType.droite ? "tooltipArrowRight" : \r
+            (position === euphorik.Util.positionBulleType.bas ? "tooltipArrowBottom" : "tooltipArrowLeft" )));\r
          \r
          // remplie le paragraphe de la bulle avec le message\r
          $("p", m).html(message);\r
@@ -178,14 +190,6 @@ euphorik.Util.prototype.infoBulle = function(message, element, position) {
    ).click(cacherBulle);\r
 };\r
 \r
-/**\r
-  * Utilisé pour l'envoie de données avec la méthode ajax de jQuery.\r
-  * Obsolète : à virer\r
-  */\r
-euphorik.Util.prototype.jsonVersAction = function(json) {\r
-   return { action : JSON.stringify(json) };\r
-};\r
-\r
 /**\r
   * Retourne un hash md5 d'une chaine, dépend de md5.js.\r
   * @param chaine un string quelconque\r
@@ -195,7 +199,7 @@ euphorik.Util.prototype.md5 = function(chaine) {
    return hex_md5(chaine);\r
 };\r
 \r
-// pompé de http://www.faqts.com/knowledge_base/view.phtml/aid/13562/fid/130\r
+// Taken from http://www.faqts.com/knowledge_base/view.phtml/aid/13562/fid/130\r
 euphorik.Util.prototype.setSelectionRange = function(input, selectionStart, selectionEnd) {\r
    if (input.setSelectionRange) {\r
       input.focus();\r
@@ -249,9 +253,10 @@ euphorik.Util.prototype.replaceSelection = function(input, replaceString) {
 };\r
 \r
 /**\r
-  * Rot13 d'une chaine, voir : http://fr.wikipedia.org/wiki/ROT13\r
+  * Applies rot13 to a given string. See : http://en.wikipedia.org/wiki/ROT13.
+  * @param str the string.\r
   */\r
-euphorik.Util.prototype.rot13 = function(chaine) {\r
+euphorik.Util.prototype.rot13 = function(str) {\r
    var ACode = 'A'.charCodeAt(0);\r
    var aCode = 'a'.charCodeAt(0);\r
    var MCode = 'M'.charCodeAt(0);\r
@@ -271,5 +276,5 @@ euphorik.Util.prototype.rot13 = function(chaine) {
          (c > MCode && c <= ZCode || c > mCode && c <= zCode ? -13 : 0))\r
       ) + f(ch, pos + 1);\r
    };\r
-   return f(chaine, 0);\r
+   return f(str, 0);\r
 };\r