Extract presence.js to track presence info.

Most of this code was simply moved from activity.js with some
minor renaming of functions like set_presence_info -> set_info.

Some functions were slightly nontrivial extractions:

    is_not_offline:
        came from activity.huddle_fraction_present

    get_status/get_mobile:
        simple getters

    set_user_status:
        partial extraction from activity.set_user_status

    last_active_date:
        pulled out of admin.js code

We also fixed activity.filter_and_sort to take user_ids.
This commit is contained in:
Steve Howell
2017-03-30 11:04:01 -07:00
committed by Tim Abbott
parent 0605a9fb0f
commit 2718bd0b5d
7 changed files with 193 additions and 137 deletions

View File

@@ -139,12 +139,13 @@ function populate_users(realm_people_data) {
var row = $(templates.render("admin_user_list", {user: user}));
if (people.is_current_user(user.email)) {
activity_rendered = timerender.render_date(new XDate());
} else if (activity.presence_info[user.user_id]) {
// XDate takes number of milliseconds since UTC epoch.
var last_active = activity.presence_info[user.user_id].last_active * 1000;
activity_rendered = timerender.render_date(new XDate(last_active));
} else {
activity_rendered = $("<span></span>").text(i18n.t("Never"));
var last_active_date = presence.last_active_date(user.user_id);
if (last_active_date) {
activity_rendered = timerender.render_date(last_active_date);
} else {
activity_rendered = $("<span></span>").text(i18n.t("Never"));
}
}
row.find(".last_active").append(activity_rendered);
users_table.append(row);