|
|
|
|
@ -23,15 +23,25 @@ callbacks.add('afterDeleteMessage', function(message, { _id, prid } = {}) { |
|
|
|
|
return message; |
|
|
|
|
}, callbacks.priority.LOW, 'PropagateDiscussionMetadata'); |
|
|
|
|
|
|
|
|
|
callbacks.add('afterDeleteRoom', (rid) => Rooms.find({ prid: rid }, { fields: { _id: 1 } }).forEach(({ _id }) => deleteRoom(_id)), 'DeleteDiscussionChain'); |
|
|
|
|
callbacks.add('afterDeleteRoom', (rid) => { |
|
|
|
|
Rooms.find({ prid: rid }, { fields: { _id: 1 } }).forEach(({ _id }) => deleteRoom(_id)); |
|
|
|
|
return rid; |
|
|
|
|
}, callbacks.priority.LOW, 'DeleteDiscussionChain'); |
|
|
|
|
|
|
|
|
|
// TODO discussions define new fields
|
|
|
|
|
callbacks.add('afterRoomNameChange', ({ rid, name, oldName }) => Rooms.update({ prid: rid, ...oldName && { topic: oldName } }, { $set: { topic: name } }, { multi: true }), 'updateTopicDiscussion'); |
|
|
|
|
callbacks.add('afterRoomNameChange', (roomConfig) => { |
|
|
|
|
const { rid, name, oldName } = roomConfig; |
|
|
|
|
Rooms.update({ prid: rid, ...oldName && { topic: oldName } }, { $set: { topic: name } }, { multi: true }); |
|
|
|
|
return roomConfig; |
|
|
|
|
}, callbacks.priority.LOW, 'updateTopicDiscussion'); |
|
|
|
|
|
|
|
|
|
callbacks.add('afterDeleteRoom', (drid) => Messages.update({ drid }, { |
|
|
|
|
$unset: { |
|
|
|
|
dcount: 1, |
|
|
|
|
dlm: 1, |
|
|
|
|
drid: 1, |
|
|
|
|
}, |
|
|
|
|
}), 'CleanDiscussionMessage'); |
|
|
|
|
callbacks.add('afterDeleteRoom', (drid) => { |
|
|
|
|
Messages.update({ drid }, { |
|
|
|
|
$unset: { |
|
|
|
|
dcount: 1, |
|
|
|
|
dlm: 1, |
|
|
|
|
drid: 1, |
|
|
|
|
}, |
|
|
|
|
}); |
|
|
|
|
return drid; |
|
|
|
|
}, callbacks.priority.LOW, 'CleanDiscussionMessage'); |
|
|
|
|
|