projects
/
euphorik.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FIX gros bug moisi (ajout de l'information du dernier message au niveau des conversat...
[euphorik.git]
/
modules
/
erl
/
euphorik_minichat_conversation.erl
diff --git
a/modules/erl/euphorik_minichat_conversation.erl
b/modules/erl/euphorik_minichat_conversation.erl
index
9015fec
..
a280e1f
100755
(executable)
--- a/
modules/erl/euphorik_minichat_conversation.erl
+++ b/
modules/erl/euphorik_minichat_conversation.erl
@@
-27,7
+27,7
@@
% Message est le message de type #minichat et Parents une liste d'Id.
% Plus est un bool. Si Plus vaut true alors il y a encore des messages.
% Si il n'y a pas de nouveaux message alors la fonction est bloquante et attend un nouveau message.
% Message est le message de type #minichat et Parents une liste d'Id.
% Plus est un bool. Si Plus vaut true alors il y a encore des messages.
% Si il n'y a pas de nouveaux message alors la fonction est bloquante et attend un nouveau message.
-% @spec conversations([{integer(), integer()}], integer(), integer(), integer()) -> [Conversation()]
+% @spec conversations([{integer(), integer()
, integer()
}], integer(), integer(), integer()) -> [Conversation()]
conversations(Racines, N, D, P) ->
% écoute des nouveaux messages
case subscribe(minichat, 2) of
conversations(Racines, N, D, P) ->
% écoute des nouveaux messages
case subscribe(minichat, 2) of
@@
-36,6
+36,7
@@
conversations(Racines, N, D, P) ->
_ ->
% demande des conversations
Conversations = conversations_detailees(Racines, N, D, P),
_ ->
% demande des conversations
Conversations = conversations_detailees(Racines, N, D, P),
+ %io:format("Conversations : ~p~n", [Conversations]),
% si les conversations sont vides alors on attend un nouveau message
Vide = not any(
fun(C) ->
% si les conversations sont vides alors on attend un nouveau message
Vide = not any(
fun(C) ->
@@
-50,11
+51,14
@@
conversations(Racines, N, D, P) ->
Conversations_mises_en_forme = mise_en_forme_conversations(
if Vide ->
attend_nouveau_message(),
Conversations_mises_en_forme = mise_en_forme_conversations(
if Vide ->
attend_nouveau_message(),
+ %io:format("Racines = ~p, N = ~p, D = ~p, P = ~p~n", [Racines, N, D, P]),
+ %io:format("Conversations = ~p~n", [conversations_detailees(Racines, N, D, P)]),
conversations_detailees(Racines, N, D, P);
true ->
Conversations
end
),
conversations_detailees(Racines, N, D, P);
true ->
Conversations
end
),
+ %io:format("Conversations_mises_en_forme = ~p~n", [Conversations_mises_en_forme]),
unsubscribe(minichat),
Conversations_mises_en_forme
end.
unsubscribe(minichat),
Conversations_mises_en_forme
end.
@@
-132,7
+136,7
@@
mise_en_forme_conversation(Messages) ->
% Racines est une liste de tuple {Id, P} des racines des conversations ou P est la page et Id l'id du message.
% @spec conversations_detailees([{integer(), integer()}], integer(), integer(), integer()) -> [[integer()] | Conversation_detailee()]
conversations_detailees(Racines, N, D, P) ->
% Racines est une liste de tuple {Id, P} des racines des conversations ou P est la page et Id l'id du message.
% @spec conversations_detailees([{integer(), integer()}], integer(), integer(), integer()) -> [[integer()] | Conversation_detailee()]
conversations_detailees(Racines, N, D, P) ->
- Conversations = map(fun({Racine, P_conv
}) -> conversation(Racine, N, D
, P_conv) end, Racines),
+ Conversations = map(fun({Racine, P_conv
, Dernier}) -> conversation(Racine, N, Dernier
, P_conv) end, Racines),
Conversation_principale = resultat_transaction(transaction(fun() ->
Curseur = qlc:cursor(q([E#minichat.id || E <- qlc:sort(table(minichat), [{order, descending}])])),
{CP, Plus} = conversation_principale(Curseur, Conversations, N, P),
Conversation_principale = resultat_transaction(transaction(fun() ->
Curseur = qlc:cursor(q([E#minichat.id || E <- qlc:sort(table(minichat), [{order, descending}])])),
{CP, Plus} = conversation_principale(Curseur, Conversations, N, P),
@@
-202,10
+206,10
@@
conversation(R, N, D, P) ->
if Decalage > length(C) ->
[];
true ->
if Decalage > length(C) ->
[];
true ->
-
reverse(
filter(
+ filter(
fun(E) -> E > D end,
fun(E) -> E > D end,
-
sublist(C, Decalage, N
)
- )
)
+
reverse(sublist(C, Decalage, N)
)
+ )
end,
reverse(X),
Decalage + N - 1 < length(C)
end,
reverse(X),
Decalage + N - 1 < length(C)