invite settings: Avoid list_render.get() call.

The get() logic here was broken, because
when you enter the settings panel for invites
on the 2nd or 3rd time, the text filter
would not work.

This commit doesn't intend to fix the problem; it
just simplifies the code for a later commit
that fixes this holistically.

The way that we update `list_render` objects
is janky with respect to events, so we can end
up double-sorting lists (which puts them back
to normal) and strange things like that.
This commit is contained in:
Steve Howell
2020-04-11 13:17:26 +00:00
committed by Tim Abbott
parent 2b07512d22
commit ef749dba31

View File

@@ -46,36 +46,28 @@ function populate_invites(invites_data) {
const invites_table = $("#admin_invites_table").expectOne(); const invites_table = $("#admin_invites_table").expectOne();
const admin_invites_list = list_render.get("admin_invites_list"); const invites_list = list_render.create(invites_table, invites_data.invites, {
name: 'admin_invites_list',
if (admin_invites_list) { modifier: function (item) {
admin_invites_list.data(invites_data.invites); item.invited_absolute_time = timerender.absolute_time(item.invited * 1000);
admin_invites_list.set_container(invites_table); return render_admin_invites_list({ invite: item });
admin_invites_list.render(); },
} else { filter: {
const invites_list = list_render.create(invites_table, invites_data.invites, { element: invites_table.closest(".settings-section").find(".search"),
name: "admin_invites_list", predicate: function (item, value) {
modifier: function (item) { const referrer_email_matched = item.ref.toLowerCase().includes(value);
item.invited_absolute_time = timerender.absolute_time(item.invited * 1000); if (item.is_multiuse) {
return render_admin_invites_list({ invite: item }); return referrer_email_matched;
}
const invitee_email_matched = item.email.toLowerCase().includes(value);
return referrer_email_matched || invitee_email_matched;
}, },
filter: { },
element: invites_table.closest(".settings-section").find(".search"), parent_container: $("#admin-invites-list").expectOne(),
predicate: function (item, value) { });
const referrer_email_matched = item.ref.toLowerCase().includes(value);
if (item.is_multiuse) {
return referrer_email_matched;
}
const invitee_email_matched = item.email.toLowerCase().includes(value);
return referrer_email_matched || invitee_email_matched;
},
},
parent_container: $("#admin-invites-list").expectOne(),
}).init();
invites_list.sort('invitee'); invites_list.sort('invitee');
invites_list.add_sort_function('email', sort_invitee); invites_list.add_sort_function('invitee', sort_invitee);
}
loading.destroy_indicator($('#admin_page_invites_loading_indicator')); loading.destroy_indicator($('#admin_page_invites_loading_indicator'));
} }