mirror of
https://github.com/zulip/zulip.git
synced 2025-11-21 15:09:34 +00:00
js: Split out muted_users_ui from muting_ui module.
This commit is contained in:
committed by
Tim Abbott
parent
4cd2fab7b0
commit
05c3164bb8
@@ -33,6 +33,7 @@ const message_events = mock_esm("../../static/js/message_events");
|
|||||||
const message_list = mock_esm("../../static/js/message_list");
|
const message_list = mock_esm("../../static/js/message_list");
|
||||||
const message_lists = mock_esm("../../static/js/message_lists");
|
const message_lists = mock_esm("../../static/js/message_lists");
|
||||||
const muting_ui = mock_esm("../../static/js/muting_ui");
|
const muting_ui = mock_esm("../../static/js/muting_ui");
|
||||||
|
const muted_users_ui = mock_esm("../../static/js/muted_users_ui");
|
||||||
const night_mode = mock_esm("../../static/js/night_mode");
|
const night_mode = mock_esm("../../static/js/night_mode");
|
||||||
const notifications = mock_esm("../../static/js/notifications");
|
const notifications = mock_esm("../../static/js/notifications");
|
||||||
const reactions = mock_esm("../../static/js/reactions");
|
const reactions = mock_esm("../../static/js/reactions");
|
||||||
@@ -245,7 +246,7 @@ run_test("muted_users", ({override}) => {
|
|||||||
const event = event_fixtures.muted_users;
|
const event = event_fixtures.muted_users;
|
||||||
|
|
||||||
const stub = make_stub();
|
const stub = make_stub();
|
||||||
override(muting_ui, "handle_user_updates", stub.f);
|
override(muted_users_ui, "handle_user_updates", stub.f);
|
||||||
dispatch(event);
|
dispatch(event);
|
||||||
assert.equal(stub.num_calls, 1);
|
assert.equal(stub.num_calls, 1);
|
||||||
const args = stub.get_args("muted_users");
|
const args = stub.get_args("muted_users");
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ const {mock_esm, zrequire} = require("../zjsunit/namespace");
|
|||||||
const {run_test} = require("../zjsunit/test");
|
const {run_test} = require("../zjsunit/test");
|
||||||
const $ = require("../zjsunit/zjquery");
|
const $ = require("../zjsunit/zjquery");
|
||||||
|
|
||||||
const muting_ui = mock_esm("../../static/js/muting_ui");
|
const muted_users_ui = mock_esm("../../static/js/muted_users_ui");
|
||||||
|
|
||||||
const settings_muted_users = zrequire("settings_muted_users");
|
const settings_muted_users = zrequire("settings_muted_users");
|
||||||
const muted_users = zrequire("muted_users");
|
const muted_users = zrequire("muted_users");
|
||||||
@@ -59,7 +59,7 @@ run_test("settings", ({override}) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let unmute_user_called = false;
|
let unmute_user_called = false;
|
||||||
muting_ui.unmute_user = (user_id) => {
|
muted_users_ui.unmute_user = (user_id) => {
|
||||||
assert.equal(user_id, 5);
|
assert.equal(user_id, 5);
|
||||||
unmute_user_called = true;
|
unmute_user_called = true;
|
||||||
};
|
};
|
||||||
|
|||||||
74
static/js/muted_users_ui.js
Normal file
74
static/js/muted_users_ui.js
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
import $ from "jquery";
|
||||||
|
|
||||||
|
import render_confirm_mute_user from "../templates/confirm_dialog/confirm_mute_user.hbs";
|
||||||
|
|
||||||
|
import * as activity from "./activity";
|
||||||
|
import * as channel from "./channel";
|
||||||
|
import * as confirm_dialog from "./confirm_dialog";
|
||||||
|
import {$t} from "./i18n";
|
||||||
|
import * as message_lists from "./message_lists";
|
||||||
|
import * as muted_users from "./muted_users";
|
||||||
|
import * as overlays from "./overlays";
|
||||||
|
import * as people from "./people";
|
||||||
|
import * as pm_list from "./pm_list";
|
||||||
|
import * as popovers from "./popovers";
|
||||||
|
import * as recent_topics_ui from "./recent_topics_ui";
|
||||||
|
import * as settings_muted_users from "./settings_muted_users";
|
||||||
|
|
||||||
|
export function mute_user(user_id) {
|
||||||
|
channel.post({
|
||||||
|
url: "/json/users/me/muted_users/" + user_id,
|
||||||
|
idempotent: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function confirm_mute_user(user_id) {
|
||||||
|
function on_click() {
|
||||||
|
mute_user(user_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
const modal_parent = $(".mute-user-modal-holder");
|
||||||
|
const html_body = render_confirm_mute_user({
|
||||||
|
user_name: people.get_full_name(user_id),
|
||||||
|
});
|
||||||
|
|
||||||
|
confirm_dialog.launch({
|
||||||
|
parent: modal_parent,
|
||||||
|
html_heading: $t({defaultMessage: "Mute user"}),
|
||||||
|
help_link: "/help/mute-a-user",
|
||||||
|
html_body,
|
||||||
|
html_submit_button: $t({defaultMessage: "Confirm"}),
|
||||||
|
on_click,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function unmute_user(user_id) {
|
||||||
|
channel.del({
|
||||||
|
url: "/json/users/me/muted_users/" + user_id,
|
||||||
|
idempotent: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function rerender_for_muted_user() {
|
||||||
|
message_lists.current.update_muting_and_rerender();
|
||||||
|
if (message_lists.current !== message_lists.home) {
|
||||||
|
message_lists.home.update_muting_and_rerender();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (overlays.settings_open() && settings_muted_users.loaded) {
|
||||||
|
settings_muted_users.populate_list();
|
||||||
|
}
|
||||||
|
|
||||||
|
activity.redraw();
|
||||||
|
pm_list.update_private_messages();
|
||||||
|
|
||||||
|
// If a user is (un)muted, we want to update their avatars on the recent topics
|
||||||
|
// participants column.
|
||||||
|
recent_topics_ui.complete_rerender();
|
||||||
|
}
|
||||||
|
|
||||||
|
export function handle_user_updates(muted_user_ids) {
|
||||||
|
popovers.hide_all();
|
||||||
|
muted_users.set_muted_users(muted_user_ids);
|
||||||
|
rerender_for_muted_user();
|
||||||
|
}
|
||||||
@@ -1,24 +1,15 @@
|
|||||||
import $ from "jquery";
|
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
|
|
||||||
import render_confirm_mute_user from "../templates/confirm_dialog/confirm_mute_user.hbs";
|
|
||||||
import render_topic_muted from "../templates/topic_muted.hbs";
|
import render_topic_muted from "../templates/topic_muted.hbs";
|
||||||
|
|
||||||
import * as activity from "./activity";
|
|
||||||
import * as channel from "./channel";
|
import * as channel from "./channel";
|
||||||
import * as confirm_dialog from "./confirm_dialog";
|
|
||||||
import * as feedback_widget from "./feedback_widget";
|
import * as feedback_widget from "./feedback_widget";
|
||||||
import {$t} from "./i18n";
|
import {$t} from "./i18n";
|
||||||
import * as message_lists from "./message_lists";
|
import * as message_lists from "./message_lists";
|
||||||
import * as muted_topics from "./muted_topics";
|
import * as muted_topics from "./muted_topics";
|
||||||
import * as muted_users from "./muted_users";
|
|
||||||
import * as overlays from "./overlays";
|
import * as overlays from "./overlays";
|
||||||
import * as people from "./people";
|
|
||||||
import * as pm_list from "./pm_list";
|
|
||||||
import * as popovers from "./popovers";
|
|
||||||
import * as recent_topics_ui from "./recent_topics_ui";
|
import * as recent_topics_ui from "./recent_topics_ui";
|
||||||
import * as settings_muted_topics from "./settings_muted_topics";
|
import * as settings_muted_topics from "./settings_muted_topics";
|
||||||
import * as settings_muted_users from "./settings_muted_users";
|
|
||||||
import * as stream_data from "./stream_data";
|
import * as stream_data from "./stream_data";
|
||||||
import * as stream_list from "./stream_list";
|
import * as stream_list from "./stream_list";
|
||||||
import * as stream_popover from "./stream_popover";
|
import * as stream_popover from "./stream_popover";
|
||||||
@@ -123,61 +114,3 @@ export function toggle_topic_mute(message) {
|
|||||||
mute_topic(stream_id, topic, true);
|
mute_topic(stream_id, topic, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function mute_user(user_id) {
|
|
||||||
channel.post({
|
|
||||||
url: "/json/users/me/muted_users/" + user_id,
|
|
||||||
idempotent: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function confirm_mute_user(user_id) {
|
|
||||||
function on_click() {
|
|
||||||
mute_user(user_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
const modal_parent = $(".mute-user-modal-holder");
|
|
||||||
const html_body = render_confirm_mute_user({
|
|
||||||
user_name: people.get_full_name(user_id),
|
|
||||||
});
|
|
||||||
|
|
||||||
confirm_dialog.launch({
|
|
||||||
parent: modal_parent,
|
|
||||||
html_heading: $t({defaultMessage: "Mute user"}),
|
|
||||||
help_link: "/help/mute-a-user",
|
|
||||||
html_body,
|
|
||||||
html_submit_button: $t({defaultMessage: "Confirm"}),
|
|
||||||
on_click,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function unmute_user(user_id) {
|
|
||||||
channel.del({
|
|
||||||
url: "/json/users/me/muted_users/" + user_id,
|
|
||||||
idempotent: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function rerender_for_muted_user() {
|
|
||||||
message_lists.current.update_muting_and_rerender();
|
|
||||||
if (message_lists.current !== message_lists.home) {
|
|
||||||
message_lists.home.update_muting_and_rerender();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (overlays.settings_open() && settings_muted_users.loaded) {
|
|
||||||
settings_muted_users.populate_list();
|
|
||||||
}
|
|
||||||
|
|
||||||
activity.redraw();
|
|
||||||
pm_list.update_private_messages();
|
|
||||||
|
|
||||||
// If a user is (un)muted, we want to update their avatars on the recent topics
|
|
||||||
// participants column.
|
|
||||||
recent_topics_ui.complete_rerender();
|
|
||||||
}
|
|
||||||
|
|
||||||
export function handle_user_updates(muted_user_ids) {
|
|
||||||
popovers.hide_all();
|
|
||||||
muted_users.set_muted_users(muted_user_ids);
|
|
||||||
rerender_for_muted_user();
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import * as message_lists from "./message_lists";
|
|||||||
import * as message_viewport from "./message_viewport";
|
import * as message_viewport from "./message_viewport";
|
||||||
import * as muted_topics from "./muted_topics";
|
import * as muted_topics from "./muted_topics";
|
||||||
import * as muted_users from "./muted_users";
|
import * as muted_users from "./muted_users";
|
||||||
|
import * as muted_users_ui from "./muted_users_ui";
|
||||||
import * as muting_ui from "./muting_ui";
|
import * as muting_ui from "./muting_ui";
|
||||||
import * as narrow from "./narrow";
|
import * as narrow from "./narrow";
|
||||||
import * as narrow_state from "./narrow_state";
|
import * as narrow_state from "./narrow_state";
|
||||||
@@ -978,14 +979,14 @@ export function register_click_handlers() {
|
|||||||
hide_user_sidebar_popover();
|
hide_user_sidebar_popover();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
muting_ui.confirm_mute_user(user_id);
|
muted_users_ui.confirm_mute_user(user_id);
|
||||||
});
|
});
|
||||||
|
|
||||||
$("body").on("click", ".info_popover_actions .sidebar-popover-unmute-user", (e) => {
|
$("body").on("click", ".info_popover_actions .sidebar-popover-unmute-user", (e) => {
|
||||||
const user_id = elem_to_user_id($(e.target).parents("ul"));
|
const user_id = elem_to_user_id($(e.target).parents("ul"));
|
||||||
hide_message_info_popover();
|
hide_message_info_popover();
|
||||||
hide_user_sidebar_popover();
|
hide_user_sidebar_popover();
|
||||||
muting_ui.unmute_user(user_id);
|
muted_users_ui.unmute_user(user_id);
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import * as message_events from "./message_events";
|
|||||||
import * as message_flags from "./message_flags";
|
import * as message_flags from "./message_flags";
|
||||||
import * as message_list from "./message_list";
|
import * as message_list from "./message_list";
|
||||||
import * as message_lists from "./message_lists";
|
import * as message_lists from "./message_lists";
|
||||||
|
import * as muted_users_ui from "./muted_users_ui";
|
||||||
import * as muting_ui from "./muting_ui";
|
import * as muting_ui from "./muting_ui";
|
||||||
import * as narrow_state from "./narrow_state";
|
import * as narrow_state from "./narrow_state";
|
||||||
import * as navbar_alerts from "./navbar_alerts";
|
import * as navbar_alerts from "./navbar_alerts";
|
||||||
@@ -138,7 +139,7 @@ export function dispatch_normal_event(event) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "muted_users":
|
case "muted_users":
|
||||||
muting_ui.handle_user_updates(event.muted_users);
|
muted_users_ui.handle_user_updates(event.muted_users);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "presence":
|
case "presence":
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import render_muted_user_ui_row from "../templates/muted_user_ui_row.hbs";
|
|||||||
|
|
||||||
import * as ListWidget from "./list_widget";
|
import * as ListWidget from "./list_widget";
|
||||||
import * as muted_users from "./muted_users";
|
import * as muted_users from "./muted_users";
|
||||||
import * as muting_ui from "./muting_ui";
|
import * as muted_users_ui from "./muted_users_ui";
|
||||||
import * as people from "./people";
|
import * as people from "./people";
|
||||||
import * as ui from "./ui";
|
import * as ui from "./ui";
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ export function set_up() {
|
|||||||
const user_id = Number.parseInt($row.attr("data-user-id"), 10);
|
const user_id = Number.parseInt($row.attr("data-user-id"), 10);
|
||||||
|
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
muting_ui.unmute_user(user_id);
|
muted_users_ui.unmute_user(user_id);
|
||||||
});
|
});
|
||||||
|
|
||||||
populate_list();
|
populate_list();
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ EXEMPT_FILES = {
|
|||||||
"static/js/message_util.js",
|
"static/js/message_util.js",
|
||||||
"static/js/message_viewport.js",
|
"static/js/message_viewport.js",
|
||||||
"static/js/muting_ui.js",
|
"static/js/muting_ui.js",
|
||||||
|
"static/js/muted_users_ui.js",
|
||||||
"static/js/narrow.js",
|
"static/js/narrow.js",
|
||||||
"static/js/navigate.js",
|
"static/js/navigate.js",
|
||||||
"static/js/night_mode.ts",
|
"static/js/night_mode.ts",
|
||||||
|
|||||||
Reference in New Issue
Block a user