Files
zulip/static/js/user_events.js
Steve Howell 373c8a0bb5 Live-update PM list for full-name changes.
We now trigger an event in user_events.js, and we dynamically
build the list of names in pm_list.js by calling out to
people.get_recipients().

We have a few variations of functions that build lists of names
for huddles, which should be cleaned up eventually.  They are
called at different times in the code path, so the different
functions, while doing mostly the same thing, start with different
data sources.
2017-01-30 11:49:19 -08:00

56 lines
1.6 KiB
JavaScript

var user_events = (function () {
var exports = {};
// This module is kind of small, but it will help us keep
// server_events.js simple while breaking some circular
// dependencies that existed when this code was in people.js.
// (We should do bot updates here too.)
exports.update_person = function update(person) {
var person_obj = people.get_person_from_user_id(person.user_id);
if (!person_obj) {
blueslip.error("Got update_person event for unexpected user",
{email: person.user_id});
return;
}
if (_.has(person, 'full_name')) {
people.set_full_name(person_obj, person.full_name);
admin.update_user_full_name(person.email, person.full_name);
activity.redraw();
message_live_update.update_user_full_name(person.user_id, person.full_name);
pm_list.update_private_messages();
}
if (_.has(person, 'is_admin')) {
person_obj.is_admin = person.is_admin;
if (people.is_my_user_id(person.user_id)) {
page_params.is_admin = person.is_admin;
admin.show_or_hide_menu_item();
}
}
if (_.has(person, 'avatar_url')) {
var url = person.avatar_url + "&y=" + new Date().getTime();
person_obj.avatar_url = url;
if (people.is_my_user_id(person.user_id)) {
page_params.avatar_url = url;
$("#user-settings-avatar").attr("src", url);
}
message_live_update.update_avatar(person_obj);
}
};
return exports;
}());
if (typeof module !== 'undefined') {
module.exports = user_events;
}