mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
user status: Surface status in the buddy list.
When you hover over a user that has set a user
status, we now show something like "out to lunch."
You can test this in the console by doing:
user_status.server_update({status_text: 'out to lunch'})
And then hover over your name in the buddy list.
This commit is contained in:
@@ -91,6 +91,15 @@ run_test('buddy_status', () => {
|
||||
assert.equal(buddy_data.buddy_status(me.user_id), 'active');
|
||||
});
|
||||
|
||||
run_test('user_title', () => {
|
||||
assert.equal(buddy_data.user_title(me.user_id), 'Human Myself is active');
|
||||
user_status.set_status_text({
|
||||
user_id: me.user_id,
|
||||
status_text: 'out to lunch',
|
||||
});
|
||||
assert.equal(buddy_data.user_title(me.user_id), 'out to lunch');
|
||||
});
|
||||
|
||||
run_test('simple search', () => {
|
||||
const user_ids = buddy_data.get_filtered_and_sorted_user_ids('sel');
|
||||
|
||||
|
||||
@@ -134,10 +134,33 @@ exports.my_user_status = function (user_id) {
|
||||
return i18n.t('(you)');
|
||||
};
|
||||
|
||||
exports.user_title = function (user_id) {
|
||||
var buddy_status = exports.buddy_status(user_id);
|
||||
var type_desc = presence_descriptions[buddy_status];
|
||||
var status_text = user_status.get_status_text(user_id);
|
||||
var person = people.get_person_from_user_id(user_id);
|
||||
var title;
|
||||
|
||||
if (status_text) {
|
||||
// The user-set status, like "out to lunch",
|
||||
// is more important than actual presence.
|
||||
title = status_text;
|
||||
} else {
|
||||
title = person.full_name;
|
||||
if (type_desc) {
|
||||
// example: "Cordelia Lear is away"
|
||||
title += ' ' + type_desc;
|
||||
}
|
||||
}
|
||||
|
||||
return title;
|
||||
};
|
||||
|
||||
exports.info_for = function (user_id) {
|
||||
var buddy_status = exports.buddy_status(user_id);
|
||||
var person = people.get_person_from_user_id(user_id);
|
||||
var my_user_status = exports.my_user_status(user_id);
|
||||
var title = exports.user_title(user_id);
|
||||
|
||||
return {
|
||||
href: hash_util.pm_with_uri(person.email),
|
||||
@@ -147,7 +170,7 @@ exports.info_for = function (user_id) {
|
||||
is_current_user: people.is_my_user_id(user_id),
|
||||
num_unread: get_num_unread(user_id),
|
||||
type: buddy_status,
|
||||
type_desc: presence_descriptions[buddy_status],
|
||||
title: title,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -472,6 +472,7 @@ exports.dispatch_normal_event = function dispatch_normal_event(event) {
|
||||
user_id: event.user_id,
|
||||
status_text: event.status_text,
|
||||
});
|
||||
activity.redraw_user(event.user_id);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
href="{{href}}"
|
||||
data-user-id="{{user_id}}"
|
||||
data-name="{{name}}"
|
||||
title="{{name}} {{type_desc}}">
|
||||
title="{{title}}">
|
||||
{{name}}
|
||||
{{#if my_user_status}}
|
||||
<span class="my_user_status">{{my_user_status}}</span>
|
||||
|
||||
Reference in New Issue
Block a user