MOD fin du système de page et cleanage du code
[euphorik.git] / modules / erl / euphorik_minichat.erl
index a507027..4268fef 100755 (executable)
@@ -2,8 +2,7 @@
 % Ce module permet de gérer les données persistantes lié au minichat d'euphorik.ch
 % Il permet d'ajouter des message, de demande les messages sur une page donnée, etc..
 % Ce module utilise la base mnesia créée par le module euphorik_bd.
-% Auteur : G.Burri
-% Date : 22.10.2007
+% @author G.Burri
 
 -module(euphorik_minichat).\r
 -export([
    est_une_reponse_a_user/2,
    % set :\r
    update_pseudo_user/2,
-   set_profile/6,
+   set_profile/8,
    update_date_derniere_connexion/1,
    nouveau_user/2,
    nouveau_user/3,
    nouveau_message/3,
    reset/0,
    % reservé :
-   resultat_transaction/1]).\r
+   resultat_transaction/1\r
+]).\r
 \r
 -include("../include/euphorik_bd.hrl").\r
 -include_lib("stdlib/include/qlc.hrl").\r
@@ -53,7 +53,7 @@
 % Connexion à la base de données de yaws sur overnux
 connect() ->
    mnesia:start(),
-   mnesia:change_config(extra_db_nodes, [yaws@Plop]).
+   mnesia:change_config(extra_db_nodes, [yaws@flynux]).
 
 
 % Efface tous les users, minichat_reponse et minichat.\r
@@ -195,7 +195,7 @@ update_pseudo_user(UserId, Pseudo) ->
    
    
 % Mise à par Cookie les autres peuvent être undefined ce qui veut dire qu'ils ne seront pas modifié.\r
-set_profile(Cookie, Login, Password, Pseudo, Email, Css) ->
+set_profile(Cookie, Login, Password, Pseudo, Email, Css, Page_principale, Conversations) ->
    resultat_transaction(mnesia:transaction(
       fun() ->
          case user_by_cookie(Cookie) of
@@ -204,12 +204,16 @@ set_profile(Cookie, Login, Password, Pseudo, Email, Css) ->
                   {ok, U} when U#user.id =/= User#user.id ->\r
                      login_deja_pris;\r
                   _ ->               \r
-                     User_modifie = User#user{\r
+                     User_modifie = User#user{
+                        % TODO : pourquoi ne pas tester avec la valeur "undefined" plutôt qu'avec "is_list" ?
+                        % TODO : validation plus strict des données (pas de page négative dans les conv par exemple)\r
                         login = if is_list(Login) -> Login; true -> User#user.login end,\r
                         password = if is_list(Password) -> Password; true -> User#user.password end,\r
                         pseudo = if is_list(Pseudo) -> Pseudo; true -> User#user.pseudo end,\r
                         email = if is_list(Email) -> Email; true -> User#user.email end,\r
-                        css = if is_list(Css) -> Css; true -> User#user.css end\r
+                        css = if is_list(Css) -> Css; true -> User#user.css end,
+                        page_principale = if is_integer(Page_principale), Page_principale > 0 -> Page_principale; true -> User#user.page_principale end,
+                        conversations = if is_list(Conversations) -> Conversations; true -> User#user.conversations end\r
                      },\r
                      mnesia:write(User_modifie),\r
                      ok\r
@@ -369,14 +373,7 @@ nb_page(N) ->
    resultat_transaction(mnesia:transaction(fun() ->
       ceiling(length(qlc:e(qlc:q([E#minichat.id || E <- mnesia:table(minichat)]))) / N)
    end)).
-   
-   
-% Renvoie le numéro de la page sur lequel se trouve le message M en sachant qu'il y a N messages par page.
-%~ page(M, N) ->
-   %~ resultat_transaction(mnesia:transaction(fun() ->
-      %~ ceiling((length(qlc:e(qlc:q([E || E <- mnesia:table(minichat), E#minichat.id >= M])))) / N)
-   %~ end)).\r
-   
+     
    
 % Bizarre, cette fonction n'existe pas dans la stdlib.
 ceiling(X) ->