X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Feuphorik.js;h=a20ee37c3520b84b5bfa28ed04d9a09fc6b245cf;hp=fafa85418db926b6fc86883a58fe56f2b412e3d6;hb=bacec85920574375f4b8df20d6a0457e1fffc658;hpb=cded85bdaf899cef1ba38d2ee6fd24c67f2abc52 diff --git a/js/euphorik.js b/js/euphorik.js index fafa854..a20ee37 100755 --- a/js/euphorik.js +++ b/js/euphorik.js @@ -72,8 +72,7 @@ function Util() { if(typeof XMLSerializer != "undefined") this.serializer = new XMLSerializer() - - // fermeture des dialogues d + jQuery("#info .fermer").click(function(){ jQuery("#info").slideUp(50) }) @@ -413,6 +412,8 @@ Client.prototype.resetDonneesPersonnelles = function() this.email = "" this.css = jQuery("link#cssPrincipale").attr("href") + this.pagePrincipale = 1 + // les conversations, une conversation est un objet possédant les attributs suivants : // - racine (entier) // - page (entier) @@ -436,11 +437,30 @@ Client.prototype.setCss = function(css) * Ajoute une conversation à la vue de l'utilisateur. * Le profile de l'utilisateur est directement sauvegardé sur le serveur. * @param racines la racine de la conversation + * @return true si la conversation a été créée sinon false (par exemple si la conv existe déjà) */ Client.prototype.ajouterConversation = function(racine) { + // vérification s'il elle n'existe pas déjà + for (var i = 0; i < this.conversations.length; i++) + if (this.conversations[i].racine == racine) + return false + this.conversations.push({racine : racine, page : 1}) - this.flush() + this.flush(false) + return true +} + +Client.prototype.supprimerConversation = function(num) +{ + if (num < 0 || num >= this.conversations.length) return + + // décalage TODO : supprimer le dernier élément + for (var i = num; i < this.conversations.length - 1; i++) + this.conversations[i] = this.conversations[i+1] + this.conversations.pop() + + this.flush(false) } Client.prototype.getXMLlogin = function(login, password) @@ -542,24 +562,23 @@ Client.prototype.getXMLProfile = function() nodeCSS.appendChild(XMLDocument.createTextNode(this.css)) XMLDocument.documentElement.appendChild(nodeCSS) + var nodePagePrincipale = XMLDocument.createElement("pagePrincipale") + nodePagePrincipale.appendChild(XMLDocument.createTextNode(this.pagePrincipale)) + XMLDocument.documentElement.appendChild(nodePagePrincipale) + // mémorise les conversations affichées - if (this.conversations.length > 0) + for (var i = 0; i < this.conversations.length; i++) { - var nodeConversations = XMLDocument.createElement("conversations") - XMLDocument.documentElement.appendChild(nodeConversations) - for (var i = 0; i < this.conversations.length; i++) - { - var nodeConv = XMLDocument.createElement("conversation") - nodeConversations.appendChild(nodeConv) - - var nodeRacine = XMLDocument.createElement("racine") - nodeRacine.appendChild(XMLDocument.createTextNode(this.conversations[i].racine)) - nodeConv.appendChild(nodeRacine) - - var nodePage = XMLDocument.createElement("page") - nodePage.appendChild(XMLDocument.createTextNode(this.conversations[i].page)) - nodeConv.appendChild(nodePage) - } + var nodeConv = XMLDocument.createElement("conversation") + XMLDocument.documentElement.appendChild(nodeConv) + + var nodeRacine = XMLDocument.createElement("racine") + nodeRacine.appendChild(XMLDocument.createTextNode(this.conversations[i].racine)) + nodeConv.appendChild(nodeRacine) + + var nodePage = XMLDocument.createElement("page") + nodePage.appendChild(XMLDocument.createTextNode(this.conversations[i].page)) + nodeConv.appendChild(nodePage) } return XMLDocument @@ -680,6 +699,7 @@ Client.prototype.enregistrement = function(login, password) Client.prototype.connexion = function(action) { + //action.action.dump() thisClient = this jQuery.ajax( { @@ -691,6 +711,7 @@ Client.prototype.connexion = function(action) success: function(data) { + //thisClient.util.serializer.serializeToString(data).dump() thisClient.chargerDonnees(data) } } @@ -707,6 +728,8 @@ Client.prototype.deconnexion = function() Client.prototype.chargerDonnees = function(data) { + var thisClient = this + this.setStatut(jQuery("statut", data.documentElement).text()) if (this.identifie()) @@ -718,26 +741,43 @@ Client.prototype.chargerDonnees = function(data) this.pseudo = jQuery("pseudo", data.documentElement).text() this.email = jQuery("email", data.documentElement).text() this.css = jQuery("css", data.documentElement).text() + + // la page de la conversation principale + var tmp = jQuery("pagePrincipale", data.documentElement) + this.pagePrincipale = tmp.length < 1 ? 1 : tmp.text() + // met à jour la css if (this.css != "") { jQuery("link#cssPrincipale").attr("href", this.css) this.majMenu() } + // les conversations + this.conversations = new Array() + jQuery("conversation", data.documentElement).each( + function(i) + { + thisClient.conversations.push( { racine : jQuery("racine", this).text(), page : jQuery("page", this).text() } ) + } + ) } this.dernierMessageErreur = jQuery("information", data.documentElement).text() } /** * Met à jour les données personne sur serveur. + * @param async de manière asynchrone ? défaut = true */ -Client.prototype.flush = function() +Client.prototype.flush = function(async) { + if (async == undefined) + async = true + thisClient = this //thisClient.util.log(this.util.xmlVersAction(this.getXMLProfile()).action) jQuery.ajax( { - async: true, + async: async, type: "POST", url: "request", dataType: "xml",