MOD Avancement sur le passage à JSON
[euphorik.git] / js / euphorik.js
index 4b76b93..bd0cd3a 100755 (executable)
@@ -154,6 +154,15 @@ Util.prototype.xmlVersAction = function(xml)
    //return {action: this.to_utf8(this.serializeXML(xml /*, "UTF-8"*/))}
    return {action: this.serializeXML(xml)}
 }
+
+/**
+  * Utilisé pour l'envoie de donnée avec la méthode ajax de jQuery.
+  */
+Util.prototype.jsonVersAction = function(json)
+{
+   // FIXME : ne plus encapsuler json dans de l'xml (problème avec yaws)
+   return {action: "<json>" + JSON.stringify(json) + "</json>" }
+}
 \r
 Util.prototype.md5 = function(chaine)\r
 {\r
@@ -299,7 +308,24 @@ Formateur.prototype.getSmilesHTML = function()
 
 Formateur.prototype.traitementComplet = function(M, pseudo)
 {
-   return this.traiterSmiles(this.traiterURL(this.remplacerBalisesHTML(M), pseudo))
+   return this.traiterLiensConv(this.traiterSmiles(this.traiterURL(this.remplacerBalisesHTML(M), pseudo)))
+}
+
+/**
+  * Transforme les liens en entités clickables.
+  * Un lien vers une conversation permet d'ouvrire celle ci, elle se marque comme ceci dans un message :
+  * "{5F}" ou 5F est la racine de la conversation.
+  * Ce lien sera transformer en <span class="lienConv">{5F}</span> pouvant être clické pour créer la conv 5F.
+  */
+Formateur.prototype.traiterLiensConv = function(M)
+{
+   return M.replace(
+      /\{\w+\}/g,
+      function(lien)
+      {
+         return "<span class=\"lienConv\">" + lien + "</span>"
+      }
+   )
 }
 \r
 /**\r
@@ -396,9 +422,6 @@ function Client(util)
    \r
    this.cookie = null
    this.regexCookie = new RegExp("^cookie=([^;]*)")
-   \r
-   // Obsolète
-   //this.captchaCrypt = null
    
    // données personnels\r
    this.resetDonneesPersonnelles()
@@ -524,6 +547,15 @@ Client.prototype.getXMLlogin = function(login, password)
    return XMLDocument   
 }
 
+Client.prototype.getJSONLogin = function(login, password)
+{
+   return {
+      "action" : "authentification",
+      "login" : login,
+      "password" : password
+   }
+}
+
 Client.prototype.getXMLloginCookie = function()
 {
    var XMLDocument = this.util.creerDocumentXMLAction()
@@ -535,32 +567,6 @@ Client.prototype.getXMLloginCookie = function()
    
    return XMLDocument
 }
-\r
-/* Obsolète
-Client.prototype.getXMLloginCaptcha = function(captchaCrypt, captchaInput)
-{
-   var XMLDocument = this.util.creerDocumentXMLAction()
-   XMLDocument.documentElement.setAttribute("name", "loginCaptcha")
-   
-   var nodecaptchaCrypt = XMLDocument.createElement("captchaCrypt")
-   nodecaptchaCrypt.appendChild(XMLDocument.createTextNode(captchaCrypt))
-   XMLDocument.documentElement.appendChild(nodecaptchaCrypt)
-   
-   var nodecaptchaInput = XMLDocument.createElement("captchaInput")
-   nodecaptchaInput.appendChild(XMLDocument.createTextNode(captchaInput))
-   XMLDocument.documentElement.appendChild(nodecaptchaInput)
-   
-   return XMLDocument
-}*/
-\r
-/* Obsolète
-Client.prototype.getXMLgenerationCaptcha = function()
-{
-   var XMLDocument = this.util.creerDocumentXMLAction()
-   XMLDocument.documentElement.setAttribute("name", "generationCaptcha")
-   
-   return XMLDocument
-}*/
 
 Client.prototype.getXMLEnregistrement = function(login, password)
 {
@@ -676,33 +682,7 @@ Client.prototype.setStatut = function(statut)
    \r
    this.statut = statut   \r
    this.majMenu()
-}\r
-
-/**
-  * Demande la génération d'un captcha au serveur et l'affiche.
-  */\r
-  /* Obsolète
-Client.prototype.afficherCaptcha = function(query)
-{
-   var thisClient = this
-
-   $.post("request", this.util.xmlVersAction(this.getXMLgenerationCaptcha()),
-      function(data, textStatus)
-      {
-         var chemin = jQuery("chemin", data.documentElement).text()
-         thisClient.captchaCrypt = jQuery("captchaCrypt", data.documentElement).text()
-         jQuery(query).prepend(
-            "<p id=\"captcha\" >Es-tu un bot ? <img class=\"captchaImg\" src=\"" + chemin + "\" />" +
-            "<input name=\"captchaInput\" type=\"text\" size=\"5\" max_length=\"5\" ></p>"
-         )
-      }
-   )
 }
-
-Client.prototype.cacherCaptcha = function()
-{
-   jQuery("#captcha").remove()
-}*/
 \r
 /**\r
   * Effectue la connexion vers le serveur.\r
@@ -719,14 +699,9 @@ Client.prototype.connexionCookie = function()
 
 Client.prototype.connexionLogin = function(login, password)
 {
-   return this.connexion(this.util.xmlVersAction(this.getXMLlogin(login, password)))
-}
-\r
-/* Obsolète\r
-Client.prototype.connexionCaptcha = function()
-{   
-   return this.connexion(this.util.xmlVersAction(this.getXMLloginCaptcha(this.captchaCrypt, jQuery("#captcha input").val())))
-}*/
+   // return this.connexion(this.util.xmlVersAction(this.getXMLlogin(login, password)))
+   return this.connexion(this.util.jsonVersAction(this.getJSONLogin(login, password)))
+}\r
 
 Client.prototype.enregistrement = function(login, password)
 { 
@@ -748,19 +723,19 @@ Client.prototype.enregistrement = function(login, password)
 
 Client.prototype.connexion = function(action)
 {
-   //action.action.dump()
+   action.action.dump("Connexion client")
    thisClient = this
    jQuery.ajax(
       {
          async: false,
          type: "POST",
          url: "request",
-         dataType: "xml",
+         dataType: "json",
          data: action,
          success:
             function(data)
             {
-               //thisClient.util.serializer.serializeToString(data).dump("Charger client")
+               thisClient.util.serializer.serializeToString(data).dump("Charger client")
                thisClient.chargerDonnees(data)
             }
       }
@@ -823,7 +798,7 @@ Client.prototype.flush = function(async)
       async = true
 
    thisClient = this
-   //this.util.xmlVersAction(this.getXMLProfile()).action.dump("Flush client")      
+   this.util.xmlVersAction(this.getXMLProfile()).action.dump("Flush client")      
    jQuery.ajax(
       {
          async: async,