From e0c2c2fa82cf13cd55b8d5006ad2c7e0689dc6cb Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Sun, 27 Jul 2008 18:57:25 +0000 Subject: [PATCH] =?utf8?q?MOD=20cleanage=20euphorik.js=20(attention=20un?= =?utf8?q?=20d=C3=A9but=20du=20code=20pour=20la=20gestion=20des=20pages=20?= =?utf8?q?traine)=20FIX=20update=20de=20la=20BD=201->2,=20la=20css=20n'?= =?utf8?q?=C3=A9tait=20pas=20correctement=20mise=20=C3=A0=20jour=20ADD=20f?= =?utf8?q?onction=20de=20bench=20dans=20euphorik=5Ftest?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- js/euphorik.js | 57 ++++++++++++++++--------------- js/pageAdmin.js | 2 -- modules/erl/euphorik_bd.erl | 2 +- modules/erl/euphorik_bd_admin.erl | 25 ++++++++------ modules/erl/euphorik_test.erl | 53 +++++++++++++++++++++++++++- 5 files changed, 97 insertions(+), 42 deletions(-) diff --git a/js/euphorik.js b/js/euphorik.js index 17748a6..14528a2 100755 --- a/js/euphorik.js +++ b/js/euphorik.js @@ -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 : Conditions d'utilisation - $("#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]" } ) diff --git a/js/pageAdmin.js b/js/pageAdmin.js index ff898b6..0dfeb5b 100644 --- a/js/pageAdmin.js +++ b/js/pageAdmin.js @@ -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) { diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index 0bda09f..f2acb7a 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -179,7 +179,7 @@ update_pseudo_user(UserId, Pseudo) -> user_by_cookie(Cookie) -> resultat_transaction(mnesia:transaction( fun() -> - case e(q([E || E <- mnesia:table(user), E#user.cookie =:= Cookie]), [{tmpdir, ?KEY_SORT_TEMP_DIR}]) of + case mnesia:index_read(user, Cookie, #user.cookie) of [User] -> {ok, User}; _ -> erreur end diff --git a/modules/erl/euphorik_bd_admin.erl b/modules/erl/euphorik_bd_admin.erl index 38fabfe..12c2d4d 100644 --- a/modules/erl/euphorik_bd_admin.erl +++ b/modules/erl/euphorik_bd_admin.erl @@ -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. diff --git a/modules/erl/euphorik_test.erl b/modules/erl/euphorik_test.erl index b705fc6..88b9f68 100644 --- a/modules/erl/euphorik_test.erl +++ b/modules/erl/euphorik_test.erl @@ -21,7 +21,12 @@ -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) -> -- 2.45.2