/*jslint laxbreak:true */\r
\r
/**\r
- * Cet objet 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
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(nom, bouton) {\r
+ $("#info .buttons").append("<div>" + nom + "</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
};\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
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
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
* 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
+/*euphorik.Util.prototype.jsonVersAction = function(json) {\r
return { action : JSON.stringify(json) };\r
-};\r
+};*/\r
\r
/**\r
* Retourne un hash md5 d'une chaine, dépend de md5.js.\r