zulip/static/js/user_group_ui_updates.js

53 lines
1.9 KiB
JavaScript

import $ from "jquery";
import * as hash_util from "./hash_util";
import {$t} from "./i18n";
import {page_params} from "./page_params";
import * as stream_ui_updates from "./stream_ui_updates";
import * as user_group_edit from "./user_group_edit";
// This module will handle ui updates logic for group settings,
// and is analogous to stream_ui_updates.js for stream settings.
export function update_toggler_for_group_setting() {
user_group_edit.toggler.goto(user_group_edit.select_tab);
}
export function update_add_members_elements(group) {
if (!hash_util.is_editing_group(group.id)) {
return;
}
// We are only concerned with the Members tab for editing groups.
const $add_members_container = $(".edit_members_for_user_group .add_subscribers_container");
if (page_params.is_guest || page_params.realm_is_zephyr_mirror_realm) {
// For guest users, we just hide the add_members feature.
$add_members_container.hide();
return;
}
// Otherwise, we adjust whether the widgets are disabled based on
// whether this user is authorized to add subscribers.
const $input_element = $add_members_container.find(".input").expectOne();
const $button_element = $add_members_container
.find('button[name="add_subscriber"]')
.expectOne();
if (user_group_edit.can_edit(group.id)) {
$input_element.prop("disabled", false);
$button_element.prop("disabled", false);
$button_element.css("pointer-events", "");
$input_element.popover("destroy");
} else {
$input_element.prop("disabled", true);
$button_element.prop("disabled", true);
stream_ui_updates.initialize_disable_btn_hint_popover(
$add_members_container,
$input_element,
$button_element,
$t({defaultMessage: "Only group members can add users to a group."}),
);
}
}