ADD FIX#50 : numérotation des erreurs et préparation à leur traduction (coté serveur
[euphorik.git] / modules / erl / euphorik_bd_admin.erl
index 12c2d4d..20da1fa 100644 (file)
@@ -24,6 +24,7 @@
 %
 % @author G.Burri
 
+
 -module(euphorik_bd_admin).
 -export([
    version_bd/0,
@@ -32,8 +33,9 @@
    connect/1,
    reset/0,
    update/0,
-   backup/1,
-   restore/1,
+   
+   backup_text/1,
+   restore_text/1,
    
    toggle_ek_master/1,
    print_users/0,
@@ -77,6 +79,10 @@ create_tables() ->
       {attributes, record_info(fields, proprietes)},
       {disc_copies, [node()]}
    ]),
+   mnesia:create_table(texte, [
+      {attributes, record_info(fields, texte)},
+      {disc_copies, [node()]}
+   ]),
    mnesia:create_table(minichat, [
       {attributes, record_info(fields, minichat)},
       {disc_copies, [node()]}
@@ -123,6 +129,7 @@ connect(Node) ->
 reset() ->
    mnesia:clear_table(counter),
    mnesia:clear_table(proprietes),
+   mnesia:clear_table(texte),
    mnesia:clear_table(user),
    mnesia:clear_table(reponse_minichat),
    mnesia:clear_table(minichat),
@@ -136,6 +143,34 @@ reset() ->
       User
    end).
    
+   
+peupler_texte() ->
+   mnesia:transaction(fun() ->
+      mnesia:write(#texte{ id = 10, fr = "Login déjà existant"}),
+      mnesia:write(#texte{ id = 20, fr = "Trop de register (flood)"}),
+      mnesia:write(#texte{ id = 30, fr = "Couple login/pass introuvable"}),
+      mnesia:write(#texte{ id = 40, fr = "Authentification impossible par cookie"}),
+      mnesia:write(#texte{ id = 50, fr = "Impossible de mettre à jour le profile"}),
+      mnesia:write(#texte{ id = 60, fr = "timeout"}),
+      mnesia:write(#texte{ id = 70, fr = "Page inconnue"}),
+      mnesia:write(#texte{ id = 80, fr = "Vous êtes banni pour encore ~w"}),
+      mnesia:write(#texte{ id = 90, fr = "Message vide"}),
+      mnesia:write(#texte{ id = 100, fr = "Impossible d'ajouter un nouveau message. Raison : ~w"}),
+      mnesia:write(#texte{ id = 110, fr = "Utilisateur inconnu"}),
+      mnesia:write(#texte{ id = 120, fr = "Il n'est pas possible de s'auto bannir"}),
+      mnesia:write(#texte{ id = 130, fr = "L'utilisateur est lui même un ekMaster"}),
+      mnesia:write(#texte{ id = 140, fr = "Utilisateur à bannir inconnu"}),
+      mnesia:write(#texte{ id = 150, fr = "Utilisateur inconnu ou non ek master"}),
+      mnesia:write(#texte{ id = 160, fr = "Utilisateur à slaper inconnu"}),
+      mnesia:write(#texte{ id = 170, fr = "Utilisateur inconnu ou non ek master"}),
+      mnesia:write(#texte{ id = 180, fr = "Le nombre de troll maximum par utilisateur est atteint : ~w "}),
+      mnesia:write(#texte{ id = 190, fr = "Le nombre de troll maximum en attente est atteint : ~w "}),
+      mnesia:write(#texte{ id = 200, fr = "Seul les ekMaster peuvent proposer des trolls"}),
+      mnesia:write(#texte{ id = 210, fr = "Vous ne posséder pas ce troll"}),
+      mnesia:write(#texte{ id = 220, fr = "Seul les ekMaster peuvent proposer des trolls"}),
+      mnesia:write(#texte{ id = 230, fr = "Seul les ekMaster peuvent connaitre la liste des ips bannies"})
+   end).
+
 
 % Met à jour la bd, compare ?VERSION_BD avec la version dans la table 'proprietes'
 % et exécute les patchs nécessaires.
@@ -170,6 +205,11 @@ update(Version) ->
 % dans BD/backups nommé "backup<num>" où <num> et le numéro de la version.
 % 1 -> 2
 patch(1) ->
+   mnesia:create_table(texte, [
+      {attributes, record_info(fields, texte)},
+      {disc_copies, [node()]}
+   ]),
+   peupler_texte(),
    % traitement des users   
    mnesia:transform_table(
       user,
@@ -219,14 +259,14 @@ patch_1_traiter_message(M, Racine) ->
    ).
 
 % crée un backup dont le nom est fournit dans le repertoire backups qui se trouve dans le repertoire de la BD.
-backup(Nom) ->
-   mnesia:backup(mnesia:system_info(directory) ++ "/backups/" ++ Nom).
+%backup(Nom) ->
+%   mnesia:backup(mnesia:system_info(directory) ++ "/backups/" ++ Nom).
    
 
 % Reviens à une version précédente de la base de données
 % (les données insérées durant les versions plus récentes sont perdues)
-restore(N) ->
-   mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]).
+%restore(N) ->
+%   mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]).
 
 
 % Renvoie le fichier (avec le chemin) correspondant à la version Version, par exemple : "/var/euphorik/BD/backups/backup1"
@@ -234,6 +274,20 @@ fichier_backup(Version) ->
    mnesia:system_info(directory) ++ "/backups/" ++ if is_integer(Version) -> "backup" ++ integer_to_list(Version); true -> Version end.
 
 
+backup_text(_) -> todo.
+restore_text(File) -> 
+   mnesia:stop(),
+   mnesia:delete_schema([node()]),
+   mnesia:start(),
+   case mnesia:load_textfile(File) of
+      {atomic, ok} ->
+         update(),
+         creer_indexes();
+      Erreur ->
+         Erreur
+   end.
+
+
 toggle_ek_master(User_id) ->
    euphorik_bd:resultat_transaction(mnesia:transaction(
       fun() ->