/*jslint laxbreak:true */\r
\r
/**\r
- * Cette classe regroupe des fonctions utilitaires (helpers) permettant notamment de :\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
$("#info .fermer").click(function() {\r
$("#info").slideUp(50);\r
});\r
- \r
+\r
$("body").append('<div id="flecheBulle"></div>').append('<div id="messageBulle"><p></p></div>');\r
- \r
+\r
this.formateur = formateur;\r
this.bulleActive = true;\r
};\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é.
- * Lorsqu'un bouton est activé le message se ferme. \r
- * @param formate faut-il formaté le message ? true par défaut
+ * et les valeurs les fonctions executées lorsqu'un bouton est activé.\r
+ * Lorsqu'un bouton est activé le message se ferme.\r
+ * @param formate faut-il formaté le message ? true par défaut\r
* @param temps le temps d'affichage du message en seconde, -1 pour une durée infinie\r
*/\r
euphorik.Util.prototype.messageDialogue = function(message, type, boutons, formate, temps) {\r
if (this.timeoutMessageDialogue) {\r
clearTimeout(this.timeoutMessageDialogue);\r
}\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
- \r
+\r
switch(type) {\r
case euphorik.Util.messageType.informatif : $("#info #icone").attr("class", "information"); break;\r
case euphorik.Util.messageType.question : $("#info #icone").attr("class", "interrogation"); break;\r
case euphorik.Util.messageType.erreur : $("#info #icone").attr("class", "exclamation"); break;\r
}\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
});\r
- \r
- $("#info").slideDown(200);
+\r
+ $("#info").slideDown(200);\r
if (temps !== -1) {\r
- this.timeoutMessageDialogue = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue);
+ this.timeoutMessageDialogue = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue);\r
}\r
};\r
\r
var positionCible = cible.offset();\r
var positionBoite = {\r
left : positionX === euphorik.Util.positionTypeX.gauche ? positionCible.left - boite.width() :\r
- (positionX === euphorik.Util.positionTypeX.gaucheRecouvrement ? positionCible.left - boite.width() + cible.width() : \r
+ (positionX === euphorik.Util.positionTypeX.gaucheRecouvrement ? positionCible.left - boite.width() + cible.width() :\r
(positionX === euphorik.Util.positionTypeX.droitelsRecouvrement ? positionCible.left :\r
(positionX === euphorik.Util.positionTypeX.droite ? positionCible.left + cible.width() :\r
positionCible.left + cible.width() / 2 - boite.width() / 2 ))), // centre\r
top : positionY === euphorik.Util.positionTypeY.haut ? positionCible.top - boite.height() :\r
- (positionY === euphorik.Util.positionTypeY.hautRecouvrement ? positionCible.top - boite.height() + cible.height() : \r
+ (positionY === euphorik.Util.positionTypeY.hautRecouvrement ? positionCible.top - boite.height() + cible.height() :\r
(positionY === euphorik.Util.positionTypeY.basRecouvrement ? positionCible.top :\r
(positionY === euphorik.Util.positionTypeY.bas ? positionCible.top + cible.height() :\r
positionCible.top + cible.height() / 2 - boite.height() / 2 ))) // centre\r
};\r
- \r
+\r
// calcul les décalages en x et en y pour éviter que la boite ne sorte de la fenêtre, tient compte de la position des barres de défilement\r
- var marge = 10; \r
+ var marge = 10;\r
positionBoite.left = positionBoite.left < marge + window.pageXOffset ? marge + window.pageXOffset :\r
(boite.width() - $(window).width() + (positionBoite.left - window.pageXOffset) + marge > 0 ? $(window).width() - boite.width() - marge + window.pageXOffset : positionBoite.left);\r
positionBoite.top = positionBoite.top < marge + window.pageYOffset ? marge + window.pageYOffset :\r
(boite.height() - $(window).height() + (positionBoite.top - window.pageYOffset) + marge > 0 ? $(window).height() - boite.height() - marge + window.pageYOffset : positionBoite.top);\r
- \r
+\r
boite.css("top", positionBoite.top).css("left", positionBoite.left).show();\r
};\r
\r
euphorik.Util.positionBulleType = {haut : 0, droite : 1, bas : 2, gauche : 3};\r
\r
+/**\r
+ * Affiche ou cache la barre d'attente.\r
+ */\r
+euphorik.Util.prototype.showWaitBar = function() {\r
+ $("#waitbar").show();\r
+};\r
+euphorik.Util.prototype.hideWaitBar = function() {\r
+ $("#waitbar").hide();\r
+};\r
+\r
/**\r
* Affiche un info bulle lorsque le curseur survole l'élément donné.\r
* @param message le message à afficher\r
*/\r
euphorik.Util.prototype.infoBulle = function(message, element, position) {\r
var thisUtil = this;\r
- var cacherBulle = function() { \r
+ var cacherBulle = function() {\r
$("#flecheBulle").hide();\r
$("#messageBulle").hide();\r
};\r
- \r
+\r
position = position || euphorik.Util.positionBulleType.haut;\r
\r
element.hover(\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.droite ? "flecheBulleDroite" :\r
(position === euphorik.Util.positionBulleType.bas ? "flecheBulleBas" : "flecheBulleGauche" )));\r
- \r
+\r
// remplie le paragraphe de la bulle avec le message\r
$("p", m).html(message);\r
- \r
+\r
// réinitialise la position, évite le cas ou la boite est collé à droite et remplie avec un texte la faisant dépassé\r
// dans ce cas la hauteur n'est pas calculé correctement\r
m.css("top", 0).css("left", 0);\r
- \r
+\r
var positionFleche = {\r
left : position === euphorik.Util.positionBulleType.haut || position === euphorik.Util.positionBulleType.bas ?\r
element.offset().left + element.outerWidth() / 2 - f.width() / 2 :\r
} else if (positionMessage.left < 0) {\r
positionMessage.left = 0;\r
}\r
- \r
+\r
m.css("top", positionMessage.top).css("left", positionMessage.left).show();\r
f.css("top", positionFleche.top).css("left", positionFleche.left).show();\r
},\r
var selectionStart = input.selectionStart;\r
var selectionEnd = input.selectionEnd;\r
input.value = input.value.substring(0, selectionStart) + replaceString + input.value.substring(selectionEnd);\r
- \r
+\r
if (selectionStart != selectionEnd) { // has there been a selection\r
this.setSelectionRange(input, selectionStart, selectionStart + replaceString.length);\r
} else { // set caret\r
if (pos === ch.length) {\r
return "";\r
}\r
- \r
+\r
var c = ch.charCodeAt(pos);\r
return String.fromCharCode(\r
c +\r