mirror of
https://github.com/zulip/zulip.git
synced 2025-11-07 15:33:30 +00:00
message_list: Fix handling of deleted user groups.
You can now render message lists containing them and click on them without throwing an exception.
This commit is contained in:
@@ -532,6 +532,15 @@ MessageListView.prototype = {
|
||||
|
||||
content.find('.user-group-mention').each(function () {
|
||||
var user_group_id = get_user_group_id_for_mention_button(this);
|
||||
var user_group = user_groups.get_user_group_from_id(user_group_id, true);
|
||||
if (user_group === undefined) {
|
||||
// This is a user group the current user doesn't have
|
||||
// data on. This can happen when user groups are
|
||||
// deleted.
|
||||
blueslip.info("Rendered unexpected user group " + user_group_id);
|
||||
return;
|
||||
}
|
||||
|
||||
var my_user_id = people.my_current_user_id();
|
||||
// Mark user group you're a member of.
|
||||
if (user_groups.is_member_of(user_group_id, my_user_id)) {
|
||||
@@ -541,7 +550,7 @@ MessageListView.prototype = {
|
||||
if (user_group_id && !$(this).find(".highlight").length) {
|
||||
// Edit the mention to show the current name for the
|
||||
// user group, if its not in search.
|
||||
$(this).text("@" + user_groups.get_user_group_from_id(user_group_id).name);
|
||||
$(this).text("@" + user_group.name);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -708,9 +708,10 @@ exports.register_click_handlers = function () {
|
||||
var row = $(this).closest(".message_row");
|
||||
e.stopPropagation();
|
||||
var message = current_msg_list.get(rows.id(row));
|
||||
var group = user_groups.get_user_group_from_id(id);
|
||||
var group = user_groups.get_user_group_from_id(id, true);
|
||||
if (group === undefined) {
|
||||
blueslip.error('Unable to find user group in message' + message.sender_id);
|
||||
// This user group has likely been deleted.
|
||||
blueslip.info('Unable to find user group in message' + message.sender_id);
|
||||
} else {
|
||||
show_user_group_info_popover(this, group, message);
|
||||
}
|
||||
|
||||
@@ -27,9 +27,11 @@ exports.remove = function (user_group) {
|
||||
user_group_by_id_dict.del(user_group.id);
|
||||
};
|
||||
|
||||
exports.get_user_group_from_id = function (group_id) {
|
||||
exports.get_user_group_from_id = function (group_id, suppress_errors) {
|
||||
if (!user_group_by_id_dict.has(group_id)) {
|
||||
blueslip.error('Unknown group_id in get_user_group_from_id: ' + group_id);
|
||||
if (suppress_errors === undefined) {
|
||||
blueslip.error('Unknown group_id in get_user_group_from_id: ' + group_id);
|
||||
}
|
||||
return;
|
||||
}
|
||||
return user_group_by_id_dict.get(group_id);
|
||||
|
||||
Reference in New Issue
Block a user