Files
zulip/static/js/settings_muted_users.js
jai2201 d6c00521b3 settings: Clean up muted_topics/users rendering logic.
This commit removes the unnecessary `data-list-widget` attribute
present in the <div> and <tbody> tag for muted_topics and muted_users table.

It became unnecessary/useless in 19cf6d0e04 and
then was renamed while still useless.

Also uses the correct variable name `muted_topic` and `muted_user`
instead of `muted_topics` and `muted_users` to render a item of their list
in DOM through Listwidget.
2022-02-25 17:33:11 -08:00

57 lines
1.7 KiB
JavaScript

import $ from "jquery";
import render_muted_user_ui_row from "../templates/muted_user_ui_row.hbs";
import * as ListWidget from "./list_widget";
import * as muted_users from "./muted_users";
import * as muted_users_ui from "./muted_users_ui";
import * as people from "./people";
import * as ui from "./ui";
export let loaded = false;
export function populate_list() {
const all_muted_users = muted_users.get_muted_users().map((user) => ({
user_id: user.id,
user_name: people.get_full_name(user.id),
date_muted_str: user.date_muted_str,
}));
const muted_users_table = $("#muted_users_table");
const $search_input = $("#muted_users_search");
ListWidget.create(muted_users_table, all_muted_users, {
name: "muted-users-list",
modifier(muted_user) {
return render_muted_user_ui_row({muted_user});
},
filter: {
element: $search_input,
predicate(item, value) {
return item.user_name.toLocaleLowerCase().includes(value);
},
onupdate() {
ui.reset_scrollbar(muted_users_table.closest(".progressive-table-wrapper"));
},
},
parent_container: $("#muted-user-settings"),
simplebar_container: $("#muted-user-settings .progressive-table-wrapper"),
});
}
export function set_up() {
loaded = true;
$("body").on("click", ".settings-unmute-user", function (e) {
const $row = $(this).closest("tr");
const user_id = Number.parseInt($row.attr("data-user-id"), 10);
e.stopPropagation();
muted_users_ui.unmute_user(user_id);
});
populate_list();
}
export function reset() {
loaded = false;
}