X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Feuphorik.js;h=9bf96fb1f547da10daf8765d6348861cd916b4df;hp=ee3865c69d15532769919d6a77b1bdea1fa29ce4;hb=68e2e2bddfdb752e4a0cf0fc681388d3a90b80f5;hpb=b4fa5488abceb2979d4753af0003b3265f433fda diff --git a/js/euphorik.js b/js/euphorik.js index ee3865c..9bf96fb 100755 --- a/js/euphorik.js +++ b/js/euphorik.js @@ -29,8 +29,9 @@ * Normalement 'const' à la place de 'var' mais non supporté par IE7. */ var conf = { + versionProtocole : 3, // version du protcole nickDefaut : "", - nbMessageAffiche : 40, // (par page) + nbMessageAffiche : 60, // (par page) pseudoDefaut : "", tempsAffichageMessageDialogue : 4000, // en ms tempsKick : 15, // en minute @@ -42,6 +43,7 @@ var conf = { "cool" : [/8\)/g, /8-\)/g], "eheheh" : [/:P/g, /:-P/g], "lol" : [/\[-lol\]/g], + "petrus" : [/:F/g], "spliff" : [/\[-spliff\]/g], "oh" : [/:o/g, /:O/g], "heink" : [/\[-heink\]/g], @@ -193,7 +195,7 @@ Util.prototype.infoBulle = function(message, element) } element.hover( - function(e) + function() { if (!thisUtil.bulleActive) return @@ -209,7 +211,7 @@ Util.prototype.infoBulle = function(message, element) m.css("top", 0).css("left", 0) var positionFleche = { - left : element.offset().left + element.width() / 2 - f.width() / 2, + left : element.offset().left + element.innerWidth() / 2 - f.width() / 2, top : element.offset().top - f.height() } var positionMessage = { @@ -596,11 +598,13 @@ Client.prototype.resetDonneesPersonnelles = function() this.pagePrincipale = 1 this.ekMaster = false + this.ostentatiousMaster = "light" // les conversations, une conversation est un objet possédant les attributs suivants : // - root (entier) // - page (entier) - this.conversations = new Array() + // - reduit (bool) + this.conversations = [] } Client.prototype.setCss = function(css) @@ -663,7 +667,7 @@ Client.prototype.ajouterConversation = function(racine) if (this.conversations[i].root == racine) return false - this.conversations.push({root : racine, page : 1}) + this.conversations.push({root : racine, page : 1, reduit : false}) if (this.autoflush) this.flush(true) return true @@ -684,7 +688,7 @@ Client.prototype.supprimerConversation = function(num) Client.prototype.getJSONLogin = function(login, password) { return { - "action" : "authentification", + "header" : { "action" : "authentification", "version" : conf.versionProtocole }, "login" : login, "password" : password } @@ -693,7 +697,7 @@ Client.prototype.getJSONLogin = function(login, password) Client.prototype.getJSONLoginCookie = function() { return { - "action" : "authentification", + "header" : { "action" : "authentification", "version" : conf.versionProtocole }, "cookie" : this.cookie } } @@ -704,7 +708,7 @@ Client.prototype.getJSONLoginCookie = function() */ Client.prototype.getJSONEnregistrement = function(login, password) { - var mess = { "action" : "register" } + var mess = { "header" : { "action" : "register", "version" : conf.versionProtocole }} if (login != undefined && password != undefined) { @@ -719,14 +723,14 @@ Client.prototype.getJSONConversations = function() { var conversations = new Array() for (var i = 0; i < this.conversations.length; i++) - conversations.push(this.conversations[i].root) + conversations.push({root : this.conversations[i].root, minimized : this.conversations[i].reduit}) return conversations } Client.prototype.getJSONProfile = function() { return { - "action" : "set_profile", + "header" : { "action" : "set_profile", "version" : conf.versionProtocole }, "cookie" : this.cookie, "login" : this.login, "password" : this.password, @@ -736,7 +740,8 @@ Client.prototype.getJSONProfile = function() "nick_format" : this.nickFormat, "view_times" : this.viewTimes, "view_tooltips" : this.viewTooltips, - "conversations" : this.getJSONConversations() + "conversations" : this.getJSONConversations(), + "ostentatious_master" : this.ostentatiousMaster } } @@ -787,6 +792,7 @@ Client.prototype.setStatut = function(statut) this.statut = statut this.majMenu() + this.majLogo() } /** @@ -828,7 +834,6 @@ Client.prototype.enregistrement = function(login, password) Client.prototype.connexion = function(messageJson) { - ;; dumpObj(messageJson) thisClient = this jQuery.ajax( { @@ -840,9 +845,12 @@ Client.prototype.connexion = function(messageJson) success: function(data) { - ;; dumpObj(data) if (data["reply"] == "error") + { thisClient.util.messageDialogue(data["error_message"]) + // suppression du cookie actuel, cas où le cookie du client ne permet pas une authentification + thisClient.delCookie() + } else thisClient.chargerDonnees(data) } @@ -880,6 +888,7 @@ Client.prototype.chargerDonnees = function(data) this.nickFormat = data["nick_format"] this.viewTimes = data["view_times"] this.viewTooltips = data["view_tooltips"] + this.ostentatiousMaster = data["ostentatious_master"] // la page de la conversation principale this.pagePrincipale = 1 @@ -887,10 +896,11 @@ Client.prototype.chargerDonnees = function(data) // les conversations this.conversations = data["conversations"] for (var i = 0; i < this.conversations.length; i++) - this.conversations[i] = {root : this.conversations[i], page : 1} + this.conversations[i] = {root : this.conversations[i].root, page : 1, reduit : this.conversations[i].minimized} this.majBulle() this.majCssSelectionee() + //this.majLogo() } } @@ -910,7 +920,6 @@ Client.prototype.flush = function(async) var thisClient = this var ok = true - ;; dumpObj(this.getJSONProfile()) jQuery.ajax( { async: async, @@ -921,7 +930,6 @@ Client.prototype.flush = function(async) success: function(data) { - ;; dumpObj(data) if (data["reply"] == "error") { thisClient.util.messageDialogue(data["error_message"]) @@ -987,6 +995,18 @@ Client.prototype.majCssSelectionee = function() } } +/** + * Change la "class" du logo en fonction du statut de ekMaster. + */ +Client.prototype.majLogo = function() +{ + if (this.ekMaster) + $("#logo").addClass("ekMaster") + else + $("#logo").removeClass("ekMaster") +} + + Client.prototype.slap = function(userId, raison) { var thisClient = this @@ -997,7 +1017,7 @@ Client.prototype.slap = function(userId, raison) dataType: "json", data: this.util.jsonVersAction( { - "action" : "slap", + "header" : { "action" : "slap", "version" : conf.versionProtocole }, "cookie" : thisClient.cookie, "user_id" : userId, "reason" : raison @@ -1025,7 +1045,7 @@ Client.prototype.ban = function(userId, raison, minutes) dataType: "json", data: this.util.jsonVersAction( { - "action" : "ban", + "header" : { "action" : "ban", "version" : conf.versionProtocole }, "cookie" : thisClient.cookie, "duration" : minutes, "user_id" : userId, @@ -1051,7 +1071,7 @@ Client.prototype.kick = function(userId, raison) * classe permettant de gérer les événements (push serveur). * l'information envoyé est sous la forme : * { - * "action" : "wait_event" + * "header" : {"action" : "wait_event", "version" : }, * "page" : * [..] * } @@ -1105,15 +1125,13 @@ PageEvent.prototype.waitEvent = function(funSend, funsReceive) // TODO : ya pas mieux ? var dataToSend = { - "action" : "wait_event", + "header" : { "action" : "wait_event", "version" : conf.versionProtocole }, "page" : this.page } var poulpe = funSend() for (v in poulpe) dataToSend[v] = poulpe[v] - ;; dumpObj(dataToSend) - this.attenteCourante = jQuery.ajax({ type: "POST", url: "request", @@ -1123,9 +1141,7 @@ PageEvent.prototype.waitEvent = function(funSend, funsReceive) data: this.util.jsonVersAction(dataToSend), success: function(data) - { - ;; dumpObj(data) - + { funsReceive[data["reply"]](data) // rappel de la fonction dans 100 ms