// 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]"
}
)
euphorik.Trolls.prototype.ajouterTrollEvent = function(data) {
var thisTrolls = this;
-
- console.log(data)
var XHTML = "";
data.trolls.each(function(i, trollData) {
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
]),
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, [
]),
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
{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.
-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").
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) ->