MOD cleanage euphorik.js (attention un début du code pour la gestion des pages traine)
authorGreg Burri <greg.burri@gmail.com>
Sun, 27 Jul 2008 18:57:25 +0000 (18:57 +0000)
committerGreg Burri <greg.burri@gmail.com>
Sun, 27 Jul 2008 18:57:25 +0000 (18:57 +0000)
FIX update de la BD 1->2, la css n'était pas correctement mise à jour
ADD fonction de bench dans euphorik_test

js/euphorik.js
js/pageAdmin.js
modules/erl/euphorik_bd.erl
modules/erl/euphorik_bd_admin.erl
modules/erl/euphorik_test.erl

index 17748a6..14528a2 100755 (executable)
@@ -21,49 +21,50 @@ var euphorik = {}
 
 // le main
 $(document).ready(
-   function()
-   {          
-      var formateur = new euphorik.Formateur()
-      var util = new euphorik.Util(formateur)   
-      var client = new euphorik.Client(util)
-      var pages = new euphorik.Pages()
+   function() { 
+      var formateur = new euphorik.Formateur();
+      var util = new euphorik.Util(formateur); 
+      var client = new euphorik.Client(util);
+      var pages = new euphorik.Pages();
       
       // connexion vers le serveur (utilise un cookie qui traine)
-      client.connexionCookie()
+      client.connexionCookie();
       
-      $("#menuCss").change(function(){ client.setCss("styles/" + $("option:selected", this).attr("value") + "/euphorik.css")})
+      $("#menuCss").change(function() { client.setCss("styles/" + $("option:selected", this).attr("value") + "/euphorik.css"); });
 
       // FIXME : ne fonctionne pas sous opera
       // voir : http://dev.jquery.com/ticket/2892#preview
-      $(window).unload(function(){client.flush()})
+      $(window).unload(function() { client.flush(); });
       
-      $("#menu .minichat").click(function(){ pages.afficherPage("minichat") })
-      $("#menu .admin").click(function(){ pages.afficherPage("admin") })
-      $("#menu .profile").click(function(){ pages.afficherPage("profile") })
-      $("#menu .logout").click(function(){
+      $("#menu .minichat").click(function() { pages.afficherPage("minichat"); });
+      $("#menu .admin").click(function() { pages.afficherPage("admin"); });
+      $("#menu .profile").click(function() { pages.afficherPage("profile"); });
+      $("#menu .logout").click(function() {
          util.messageDialogue("Êtes-vous sur de vouloir vous délogger ?", euphorik.Util.messageType.question,
-            {"Oui" : function()
-               {
+            {
+               "Oui" : function() {
                   client.deconnexion();
-                  pages.afficherPage("minichat", true)
+                  pages.afficherPage("minichat", true);
                },
-             "Non" : function(){}
+               "Non" : function() {}
             }
          )
-      })
-      $("#menu .register").click(function(){ pages.afficherPage("register") })
-      $("#menu .about").click(function(){ pages.afficherPage("about") })
+      });
+      $("#menu .register").click(function(){ pages.afficherPage("register"); });
+      $("#menu .about").click(function(){ pages.afficherPage("about"); });
       
       // TODO : simplifier et pouvoir créer des liens par exemple : <span class="lien" href="conditions">Conditions d'utilisation</span>
-      $("#footer .conditions").click(function(){ pages.afficherPage("conditions_utilisation") })
+      $("#footer .conditions").click(function(){ pages.afficherPage("conditions_utilisation"); });
 
-      pages.ajouterPage(new euphorik.PageMinichat(client, formateur, util))
-      pages.ajouterPage(new euphorik.PageAdmin(client, formateur, util))
-      pages.ajouterPage(new euphorik.PageProfile(client, formateur, util))
-      pages.ajouterPage(new euphorik.PageRegister(client, formateur, util))
-      pages.ajouterPage(new euphorik.PageAbout(client, formateur, util))
-      pages.ajouterPage("conditions_utilisation")
+      pages.ajouterPage(new euphorik.PageMinichat(client, formateur, util));
+      pages.ajouterPage(new euphorik.PageAdmin(client, formateur, util));
+      pages.ajouterPage(new euphorik.PageProfile(client, formateur, util));
+      pages.ajouterPage(new euphorik.PageRegister(client, formateur, util));
+      pages.ajouterPage(new euphorik.PageAbout(client, formateur, util));
+      pages.ajouterPage("conditions_utilisation");
       
-      pages.afficherPage("minichat")
+      pages.afficherPage("minichat");
+      
+      window.location.hash = "pouet=2;truc=4;conv=[1,2,3]"
    }
 )
index ff898b6..0dfeb5b 100644 (file)
@@ -262,8 +262,6 @@ euphorik.Trolls = function(client, util, formateur) {
 
 euphorik.Trolls.prototype.ajouterTrollEvent = function(data) {
    var thisTrolls = this;
-   
-   console.log(data)
 
    var XHTML = "";
    data.trolls.each(function(i, trollData) {
index 0bda09f..f2acb7a 100755 (executable)
@@ -179,7 +179,7 @@ update_pseudo_user(UserId, Pseudo) ->
 user_by_cookie(Cookie) ->\r
    resultat_transaction(mnesia:transaction(\r
       fun() ->\r
-         case e(q([E || E <- mnesia:table(user), E#user.cookie =:= Cookie]), [{tmpdir, ?KEY_SORT_TEMP_DIR}]) of\r
+         case mnesia:index_read(user, Cookie, #user.cookie) of\r
             [User] -> {ok, User};\r
             _ -> erreur\r
          end\r
index 38fabfe..12c2d4d 100644 (file)
@@ -79,18 +79,15 @@ create_tables() ->
    ]),
    mnesia:create_table(minichat, [
       {attributes, record_info(fields, minichat)},
-      {index, [auteur_id, troll_id]},
       {disc_copies, [node()]}
    ]),
    mnesia:create_table(reponse_minichat, [
       {type, bag},
       {attributes, record_info(fields, reponse_minichat)},
-      {index, [cible]},
       {disc_copies, [node()]}
    ]),
    mnesia:create_table(user, [
       {attributes, record_info(fields, user)},
-      {index, [cookie, login]},
       {disc_copies, [node()]}
    ]),
    mnesia:create_table(ip_table, [
@@ -99,9 +96,19 @@ create_tables() ->
    ]),
    mnesia:create_table(troll, [
       {attributes, record_info(fields, troll)},
-      {index, [date_post]},
       {disc_copies, [node()]}
-   ]).
+   ]),
+   creer_indexes().
+   
+   
+% mis à part car lors de la reprise de données avec load_textfile les indexes ne sont pas recréés
+creer_indexes() ->
+   mnesia:add_table_index(minichat, auteur_id),
+   mnesia:add_table_index(minichat, troll_id),
+   mnesia:add_table_index(reponse_minichat, cible),
+   mnesia:add_table_index(user, cookie),
+   mnesia:add_table_index(user, login),
+   mnesia:add_table_index(troll, date_post).
    
    
 % Connexion à la base de données de yaws sur overnux
@@ -191,14 +198,12 @@ patch(1) ->
       {aborted, Raison} -> {erreur, Raison};
       {atomic, _} -> ok
    end.
-% 2 -> 3
-%patch(2) ->
-
+   
 
 % Prend un chemin vers la feuille de style de type "css/1/euphorik.css"
 % et renvoie "styles/1/euphorik.css"
-patch1_transforme_css(["css" | Reste]) ->
-   ["styles" | Reste];
+patch1_transforme_css("css" ++ Reste) ->
+   "styles" ++ Reste;
 patch1_transforme_css(F) ->
    F.
 
index b705fc6..88b9f68 100644 (file)
 
 
 -module(euphorik_test).
--export([start/2, stop/1]).
+-export([
+   start/2,
+   stop/1,
+   bench_get_messages/0,
+   bench_get_messages_avec_2_conversations/0
+]).
 -include("../include/euphorik_bd.hrl").
 
 
@@ -46,6 +51,52 @@ start(N, M) ->
 stop(Pids) ->
    lists:foreach(fun(Pid) -> exit(Pid, kill) end, Pids).
    
+
+bench_get_messages() ->
+   T = [
+      {page,"chat"},
+      {cookie,"5G84A5CJXMCPEHNI8T5A9"},
+      {message_count,40},
+      {last_message_id,0},
+      {main_page,1},
+      {troll_id,0},
+      {conversations,{array,[]}}
+   ],
+   moyenne_temps(euphorik_protocole, wait_event, [T], 20).
+
+
+bench_get_messages_avec_2_conversations() ->
+   T = [
+      {page,"chat"},
+      {cookie,"5G84A5CJXMCPEHNI8T5A9"},
+      {message_count,40},
+      {last_message_id,0},
+      {main_page,1},
+      {troll_id,0},
+      {conversations,{array, [
+         {struct, [
+            {root, 921},
+            {page,1},
+            {last_message_id,0}
+         ]},
+         {struct, [
+            {root, 772},
+            {page, 1},
+            {last_message_id, 0}
+         ]}
+      ]}}
+   ],
+   moyenne_temps(euphorik_protocole, wait_event, [T], 20).
+
+   
+moyenne_temps(Module, Fun, Args, N) ->
+   moyenne_temps(Module, Fun, Args, N, N, 0).
+moyenne_temps(_, _, _, 0, Total, Temps_acc) ->
+   Temps_acc / Total;
+moyenne_temps(Module, Fun, Args, N, Total, Temps_acc) ->
+   {Temps, _} = timer:tc(Module, Fun, Args),
+   moyenne_temps(Module, Fun, Args, N - 1, Total, Temps_acc + Temps).
+   
    
 % Crée N user avec des noms aléatoires et renvoie la liste des id.
 creer_users(N) ->