- // recherche les réponses (O(n))\r
- messages.messages.each(function(i, mess) {\r
- if (mess.repondA.hasOwnProperty(thisMessage.id)) {\r
- messagesEnEvidence[mess.id] = 2;\r
- }\r
- });\r
- \r
- // parcours en largeur\r
- var f = function(tabIds, premierNiveau) {\r
- objectEach(tabIds, function(id) {\r
- // si le message (id) a déjà été traité\r
- if (!messagesEnEvidence[id] && !premierNiveau) {\r
- continue;\r
- }\r
- \r
- var message = messages.messagesParId[id];\r
- if (!message) { \r
- messagesEnEvidence[id] = premierNiveau ? 3 : (message.auteurId === thisMessage.auteurId ? 1 : 0);\r
- f (message.repondA, false);\r
+ // parcours en profondeur\r
+ var f = function(ids, premierNiveau, ensemble, evidence) {\r
+ objectEach(ids, function(id) {\r
+ if (!messagesEnEvidence[id] || premierNiveau) {\r
+ var message = messages.messagesParId[id];\r
+ if (message) {\r
+ messagesEnEvidence[id] = premierNiveau ? evidence : (message.auteurId === thisMessage.auteurId ? 1 : 0);\r
+ f(message[ensemble], false, ensemble, evidence);\r
+ }\r