Use Dict[user_id] in people.filter_by_search_terms.

The function people.filter_by_search_terms() used
to return a JS object with emails as keys to represent
a set of users.  Now we return a Zulip Dict() object
with user_ids as keys.
This commit is contained in:
Steve Howell
2017-01-26 04:00:27 -08:00
committed by Tim Abbott
parent beb3782e6c
commit 88870c316f
4 changed files with 15 additions and 19 deletions

View File

@@ -174,22 +174,22 @@ initialize();
var search_term = 'a';
var users = people.get_rest_of_realm();
var filtered_people = people.filter_people_by_search_terms(users, [search_term]);
assert.equal(filtered_people["ashton@example.com"], true);
assert.equal(filtered_people["athens@example.com"], true);
assert.equal(_.keys(filtered_people).length, 2);
assert(!_.has(filtered_people, 'charles@example.com'));
assert.equal(filtered_people.num_items(), 2);
assert(filtered_people.has(ashton.user_id));
assert(filtered_people.has(maria.user_id));
assert(!filtered_people.has(charles.user_id));
filtered_people = people.filter_people_by_search_terms(users, []);
assert(_.isEmpty(filtered_people));
assert.equal(filtered_people.num_items(), 0);
filtered_people = people.filter_people_by_search_terms(users, ['ltorv']);
assert.equal(_.keys(filtered_people).length, 1);
assert(_.has(filtered_people, 'ltorvalds@example.com'));
assert.equal(filtered_people.num_items(), 1);
assert(filtered_people.has(linus.user_id));
filtered_people = people.filter_people_by_search_terms(users, ['ch di', 'maria']);
assert.equal(_.keys(filtered_people).length, 2);
assert(_.has(filtered_people, 'charles@example.com'));
assert(_.has(filtered_people, 'athens@example.com'));
assert.equal(filtered_people.num_items(), 2);
assert(filtered_people.has(charles.user_id));
assert(filtered_people.has(maria.user_id));
}());

View File

@@ -250,11 +250,8 @@ function filter_user_ids(user_ids) {
return people.get_person_from_user_id(user_id);
});
var email_dict = people.filter_people_by_search_terms(persons, search_terms);
user_ids = _.map(_.keys(email_dict), function (email) {
return people.get_user_id(email);
});
return user_ids;
var user_id_dict = people.filter_people_by_search_terms(persons, search_terms);
return user_id_dict.keys();
}
function filter_and_sort(users) {

View File

@@ -202,7 +202,7 @@ exports.incr_recipient_count = function (email) {
};
exports.filter_people_by_search_terms = function (users, search_terms) {
var filtered_users = {};
var filtered_users = new Dict();
var matchers = _.map(search_terms, function (search_term) {
var termlets = search_term.toLowerCase().split(/\s+/);
@@ -249,7 +249,7 @@ exports.filter_people_by_search_terms = function (users, search_terms) {
});
if (match) {
filtered_users[email] = true;
filtered_users.set(person.user_id, true);
}
});
return filtered_users;

View File

@@ -939,8 +939,7 @@ $(function () {
user_labels.each(function () {
var elem = $(this);
var user_id = elem.attr('data-user-id');
var user = people.get_person_from_user_id(user_id);
var user_checked = filtered_users.hasOwnProperty(user.email);
var user_checked = filtered_users.has(user_id);
var display = user_checked ? "block" : "none";
elem.css({display: display});
});