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');
|
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', () => {
|
run_test('simple search', () => {
|
||||||
const user_ids = buddy_data.get_filtered_and_sorted_user_ids('sel');
|
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)');
|
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) {
|
exports.info_for = function (user_id) {
|
||||||
var buddy_status = exports.buddy_status(user_id);
|
var buddy_status = exports.buddy_status(user_id);
|
||||||
var person = people.get_person_from_user_id(user_id);
|
var person = people.get_person_from_user_id(user_id);
|
||||||
var my_user_status = exports.my_user_status(user_id);
|
var my_user_status = exports.my_user_status(user_id);
|
||||||
|
var title = exports.user_title(user_id);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
href: hash_util.pm_with_uri(person.email),
|
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),
|
is_current_user: people.is_my_user_id(user_id),
|
||||||
num_unread: get_num_unread(user_id),
|
num_unread: get_num_unread(user_id),
|
||||||
type: buddy_status,
|
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,
|
user_id: event.user_id,
|
||||||
status_text: event.status_text,
|
status_text: event.status_text,
|
||||||
});
|
});
|
||||||
|
activity.redraw_user(event.user_id);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
href="{{href}}"
|
href="{{href}}"
|
||||||
data-user-id="{{user_id}}"
|
data-user-id="{{user_id}}"
|
||||||
data-name="{{name}}"
|
data-name="{{name}}"
|
||||||
title="{{name}} {{type_desc}}">
|
title="{{title}}">
|
||||||
{{name}}
|
{{name}}
|
||||||
{{#if my_user_status}}
|
{{#if my_user_status}}
|
||||||
<span class="my_user_status">{{my_user_status}}</span>
|
<span class="my_user_status">{{my_user_status}}</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user