$this->unmarkItems();
if ($this->parameters['hideConversation'] == Conversation::STATE_LEFT) {
- // update participant summary
+ // update participants count and participant summary
+ ConversationEditor::updateParticipantCounts($this->objectIDs);
ConversationEditor::updateParticipantSummaries($this->objectIDs);
// delete conversation if all users have left it
$editor->updateParticipantSummary();
}
}
+
+ /**
+ * Updates the participant counts of the given conversations.
+ *
+ * @param array<integer> $conversationIDs
+ */
+ public static function updateParticipantCounts(array $conversationIDs) {
+ $conversationList = new ConversationList();
+ $conversationList->getConditionBuilder()->add('conversation.conversationID IN (?)', array($conversationIDs));
+ $conversationList->readObjects();
+
+ foreach ($conversationList as $conversation) {
+ $editor = new ConversationEditor($conversation);
+ $editor->updateParticipantCount();
+ }
+ }
}