Use the new json2 module (from yaws)
[euphorik.git] / js / communication.js
index 985aeed..3f44227 100644 (file)
 // Regroupe la partie communication JSON client -> serveur de euphorik.\r
 // Voir : http://dev.euphorik.ch/wiki/euk/Protocole\r
 \r
-/**
-  * Les fonctions debutReq et finReq servent, par exemple, à afficher à l'utilisateur
+/**\r
+  * Les fonctions debutReq et finReq servent, par exemple, à afficher à l'utilisateur\r
   * qu'une communication est en cours.\r
-  * @param funError un fonction executée lors d'un réponse 'error' de la part du serveur, peut être redéfinit pour une requête.
-  * @param funDebutReq fonction appelée au début d'une requête (facultatif)
+  * @param funError un fonction executée lors d'un réponse 'error' de la part du serveur, peut être redéfinit pour une requête.\r
+  * @param funDebutReq fonction appelée au début d'une requête (facultatif)\r
   * @param funFinReq fonction appelée à la fin d'une requête (facultatif)\r
   */\r
 euphorik.Communication = function(funError, funDebutReq, funFinReq) {\r
-   this.funError = funError;
-   this.funDebutReq = funDebutReq;
+   this.funError = funError;\r
+   this.funDebutReq = funDebutReq;\r
    this.funFinReq = funFinReq;\r
-};
-
-/**
-  * Charge un fichier depuis une url et retourne son contenu.
-  */
-euphorik.Communication.prototype.load = function(url) {
-   if (this.funDebutReq) {
-      this.funDebutReq();
-   }
-   var contenu = "";
-   $.ajax({async: false, url: url, success : function(page) { contenu += page; }});
-   if (this.funFinReq) {
-      this.funFinReq();
-   }   
-   return contenu;
 };\r
-
-/**
-  * Effectue une requête JSON auprès du serveur.
-  * @param action une chaine spécifiant l'action, par exemple "put_message"
-  * @param json les données à envoyer associé à l'action, par exemple {"cookie" : "LKJDLAKSJBFLKASN", "nick" : "Paul", "content" : "Bonjour", "answer_to" : [] }
-  * @param funOk la fonction exécuté après réception des données du serveur
-  * @param funError la fonction exécuté si une erreur arrive (facultatif)
-  * @param asynchrone true pour une communication asychrone (facultatif, truepar défaut)
-  * @param paramsSupp un objet contenant des paramètres supplémentaire pour la fonction ajax de jQuery (facultatif)
+\r
+/**\r
+  * Charge un fichier depuis une url et retourne son contenu.\r
+  */\r
+euphorik.Communication.prototype.load = function(url) {\r
+   if (this.funDebutReq) {\r
+      this.funDebutReq();\r
+   }\r
+   var contenu = "";\r
+   $.ajax({async: false, url: url, success : function(page) { contenu += page; }});\r
+   if (this.funFinReq) {\r
+      this.funFinReq();\r
+   }\r
+   return contenu;\r
+};\r
+\r
+/**\r
+  * Effectue une requête JSON auprès du serveur.\r
+  * @param action une chaine spécifiant l'action, par exemple "put_message"\r
+  * @param json les données à envoyer associé à l'action, par exemple {"cookie" : "LKJDLAKSJBFLKASN", "nick" : "Paul", "content" : "Bonjour", "answer_to" : [] }\r
+  * @param funOk la fonction exécuté après réception des données du serveur\r
+  * @param funError la fonction exécuté si une erreur arrive (facultatif)\r
+  * @param asynchrone true pour une communication asychrone (facultatif, truepar défaut)\r
+  * @param paramsSupp un objet contenant des paramètres supplémentaire pour la fonction ajax de jQuery (facultatif)\r
   */\r
 euphorik.Communication.prototype.requete = function(action, json, funOk, funError, asynchrone, paramsSupp) {\r
    var thisCommunication = this;\r
@@ -65,12 +65,12 @@ euphorik.Communication.prototype.requete = function(action, json, funOk, funErro
    var mess = this.getBase(action);\r
    objectEach(json, function(nom, val) {\r
       mess[nom] = val;\r
-   });
-   
-   if (this.funDebutReq) {
-      this.funDebutReq();
+   });\r
+\r
+   if (this.funDebutReq) {\r
+      this.funDebutReq();\r
    }\r
-      \r
+\r
    paramsAjax = {\r
       async: asynchrone,\r
       type: "POST",\r
@@ -78,9 +78,9 @@ euphorik.Communication.prototype.requete = function(action, json, funOk, funErro
       dataType: "json",\r
       data: { action : JSON.stringify(mess) },\r
       success:\r
-         function(data) {            
-            if (thisCommunication.funFinReq) {
-               thisCommunication.funFinReq();
+         function(data) {\r
+            if (thisCommunication.funFinReq) {\r
+               thisCommunication.funFinReq();\r
             }\r
             if (data.reply === "error") {\r
                if (funError) {\r
@@ -91,21 +91,21 @@ euphorik.Communication.prototype.requete = function(action, json, funOk, funErro
             } else if (funOk) {\r
                funOk(data);\r
             }\r
-         },
-      error:
-         function(data) {
-            if (thisCommunication.funFinReq) {
-               thisCommunication.funFinReq();
-            }
+         },\r
+      error:\r
+         function(data) {\r
+            if (thisCommunication.funFinReq) {\r
+               thisCommunication.funFinReq();\r
+            }\r
          }\r
    };\r
-   \r
+\r
    if (paramsSupp) {\r
       objectEach(paramsSupp, function(nom, val) {\r
          paramsAjax[nom] = val;\r
       });\r
    }\r
-   \r
+\r
    jQuery.ajax(paramsAjax);\r
 };\r
 \r
@@ -113,4 +113,4 @@ euphorik.Communication.prototype.getBase = function(action) {
    return {\r
       "header" : { "action" : action, "version" : euphorik.conf.versionProtocole }\r
    };\r
-};
\ No newline at end of file
+};\r