X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=js%2FpageMinichat.js;h=c41aa6a0757654d56454efa2d9405e8ff69004d5;hb=0531ee46484ef22f402191cc4dc84ca07f155fe4;hp=3278dd792da3e8822915d82314e14a316faadf19;hpb=bacec85920574375f4b8df20d6a0457e1fffc658;p=euphorik.git diff --git a/js/pageMinichat.js b/js/pageMinichat.js index 3278dd7..c41aa6a 100755 --- a/js/pageMinichat.js +++ b/js/pageMinichat.js @@ -308,7 +308,7 @@ function Conversation(num, util, formateur, funFermer) //alert("ok") var thisConversation = this - this.num = num + this.num = num // peut changer au cours de la vie de la conversation this.id = Math.random()*100000000000000000 this.messageOver = null // le message sur lequel se trouve le curseur this.util = util @@ -316,13 +316,11 @@ function Conversation(num, util, formateur, funFermer) this.messages = new Array() this.messagesParId = new Object() - this.page = 1 // par défaut on se trouve sur la première page - jQuery("#conversations").append( '
\
' + (funFermer == undefined ? '' : '
x
') + - '< 1 >\ + '<1>\
\
' ) @@ -347,6 +345,28 @@ function Conversation(num, util, formateur, funFermer) ) } +/** + * Défini les fonctions (callback) appelées lorsque l'on change de page. + * @funNext appelé lorsque l'on revient une page en arrière + * @funPrev appelé lorsque l'on passe à la page suisvante + * @pageCourante la page courante + * @dernierePage true si c'est la dernière page sinon false + */ +Conversation.prototype.initPage = function(funNext, funPrev, pageCourante, dernierePage) +{ + var thisConversation = this + + jQuery("#conversations #" + this.getId() + " .next").click( + function() { funNext(thisConversation.num) } + ) + jQuery("#conversations #" + this.getId() + " .prev").click( + function() { funPrev(thisConversation.num) } + ) + + jQuery("#conversations #" + this.getId() + " .next").css("display", pageCourante == 1 ? "none" : "inline") + jQuery("#conversations #" + this.getId() + " .prev").css("display", dernierePage ? "none" : "inline") +} + /** * Retourne l'id de la conversation sous la forme (par exemple) "conv3". */ @@ -389,17 +409,17 @@ Conversation.prototype.flush = function(funClickExtract) var XHTMLrepondA = "" for (var id in message.repondA) XHTMLrepondA += this.formateur.traitementComplet(message.repondA[id].pseudo) + "> " - XHTMLrepondA = "
" + XHTMLrepondA + "
" + XHTMLrepondA = "" + XHTMLrepondA + "" XHTML += "
" + "
>
" + - "[
" + message.date + "
]" + - "
" + this.formateur.traitementComplet(message.pseudo) + "
:" + + "[" + message.date + "]" + + "" + this.formateur.traitementComplet(message.pseudo) + ":" + XHTMLrepondA + - "
" + (message.systeme ? this.formateur.remplacerBalisesHTML(message.contenu) : this.formateur.traitementComplet(message.contenu, message.pseudo)) + "
" + + "" + (message.systeme ? this.formateur.remplacerBalisesHTML(message.contenu) : this.formateur.traitementComplet(message.contenu, message.pseudo)) + "" + "
" } //alert(this.getId()) @@ -547,9 +567,9 @@ Messages.prototype.getXMLrafraichirMessages = function() nodeNombreMessage.appendChild(XMLDocument.createTextNode(conf.nbMessageAffiche)) XMLDocument.documentElement.appendChild(nodeNombreMessage) - var nodePage = XMLDocument.createElement("page") + /*var nodePage = XMLDocument.createElement("page") nodePage.appendChild(XMLDocument.createTextNode(this.conversations[0].page)) - XMLDocument.documentElement.appendChild(nodePage) + XMLDocument.documentElement.appendChild(nodePage)*/ // les conversations /* Obsolète, le serveur les recupères directement auprès des informations utilisateurs @@ -649,7 +669,6 @@ Messages.prototype.supprimerConversation = function(num) this.rafraichirMessages(true) } - /** * Ajuste la largeur des conversations en fonction de leur nombre. modifie l'attribut CSS 'width'. */ @@ -700,18 +719,16 @@ Messages.prototype.viderMessages = function() */ Messages.prototype.rafraichirMessages = function(vider) { + var thisMessages = this // caisupair javacrypte + if (this.attenteCourante != null) this.attenteCourante.abort() - + if (vider == undefined) vider = false - var thisMessages = this // caisupair javacrypte - if (vider) - { - this.idDernierMessage = null - } + this.idDernierMessage = null this.util.xmlVersAction(this.getXMLrafraichirMessages()).action.dump() //alert(this.util.xmlVersAction(this.getXMLrafraichirMessages()).action) @@ -726,13 +743,7 @@ Messages.prototype.rafraichirMessages = function(vider) thisMessages.util.serializer.serializeToString(data).dump() if (vider) - { thisMessages.viderMessages() - /* Obsolète : pas besoin de supprimer les conversations - for (var i = 1; i < this.conversations.length; i++) - this.supprimerConversation(1) - */ - } //thisMessages.MAJPages(parseInt(jQuery("nbPage", data.documentElement).text())) @@ -740,7 +751,7 @@ Messages.prototype.rafraichirMessages = function(vider) var numConv = 0 jQuery("conversation", data.documentElement).each( function(i) - { + { var messages = [] jQuery("message", this).each( function(j) @@ -751,6 +762,19 @@ Messages.prototype.rafraichirMessages = function(vider) ) //alert("ajoutMess : " + messages.length + " " + numConv) thisMessages.ajouterMessages(messages, numConv) + + thisMessages.conversations[numConv].initPage( + function(num) // page suivante + { + thisMessages.client.pageSuivante(num - 1) + }, + function(num) // page précédente + { + thisMessages.client.pagePrecedente(num - 1) + }, + numConv == 0 ? thisMessages.client.pagePrincipale : thisMessages.client.conversations[numConv - 1].page, + jQuery("autresPages", this).text() != "true" + ) numConv += 1 } )