mirror of
https://github.com/zulip/zulip.git
synced 2025-11-20 06:28:23 +00:00
user_group: Extract show_user_group_settings_pane.
Extract `show_user_group_settings_pane` with related functions and variable.
This commit is contained in:
@@ -1,10 +1,13 @@
|
|||||||
import $ from "jquery";
|
import $ from "jquery";
|
||||||
|
|
||||||
import * as dropdown_widget from "./dropdown_widget";
|
import * as dropdown_widget from "./dropdown_widget";
|
||||||
|
import {$t_html} from "./i18n";
|
||||||
import * as settings_components from "./settings_components";
|
import * as settings_components from "./settings_components";
|
||||||
import * as user_groups from "./user_groups";
|
import * as user_groups from "./user_groups";
|
||||||
import type {UserGroup} from "./user_groups";
|
import type {UserGroup} from "./user_groups";
|
||||||
|
|
||||||
|
export let active_group_id: number | undefined;
|
||||||
|
|
||||||
export function setup_permissions_dropdown(group: UserGroup, for_group_creation: boolean): void {
|
export function setup_permissions_dropdown(group: UserGroup, for_group_creation: boolean): void {
|
||||||
let widget_name: string;
|
let widget_name: string;
|
||||||
let default_id: number;
|
let default_id: number;
|
||||||
@@ -55,3 +58,36 @@ export function setup_permissions_dropdown(group: UserGroup, for_group_creation:
|
|||||||
}
|
}
|
||||||
can_mention_group_widget.setup();
|
can_mention_group_widget.setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function set_active_group_id(group_id: number): void {
|
||||||
|
active_group_id = group_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function reset_active_group_id(): void {
|
||||||
|
active_group_id = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const show_user_group_settings_pane = {
|
||||||
|
nothing_selected() {
|
||||||
|
$("#groups_overlay .settings, #user-group-creation").hide();
|
||||||
|
reset_active_group_id();
|
||||||
|
$("#groups_overlay .nothing-selected").show();
|
||||||
|
$("#groups_overlay .user-group-info-title").text(
|
||||||
|
$t_html({defaultMessage: "User group settings"}),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
settings(group: UserGroup) {
|
||||||
|
$("#groups_overlay .nothing-selected, #user-group-creation").hide();
|
||||||
|
$("#groups_overlay .settings").show();
|
||||||
|
set_active_group_id(group.id);
|
||||||
|
$("#groups_overlay .user-group-info-title").text(group.name);
|
||||||
|
},
|
||||||
|
create_user_group() {
|
||||||
|
$("#groups_overlay .nothing-selected, #groups_overlay .settings").hide();
|
||||||
|
reset_active_group_id();
|
||||||
|
$("#user-group-creation").show();
|
||||||
|
$("#groups_overlay .user-group-info-title").text(
|
||||||
|
$t_html({defaultMessage: "Create user group"}),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ export let select_tab = "general";
|
|||||||
|
|
||||||
let group_list_widget;
|
let group_list_widget;
|
||||||
let group_list_toggler;
|
let group_list_toggler;
|
||||||
let active_group_id;
|
|
||||||
|
|
||||||
function get_user_group_id(target) {
|
function get_user_group_id(target) {
|
||||||
const $row = $(target).closest(
|
const $row = $(target).closest(
|
||||||
@@ -345,32 +344,9 @@ function hide_membership_toggle_spinner(group_row) {
|
|||||||
loading.destroy_indicator($spinner);
|
loading.destroy_indicator($spinner);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const show_user_group_settings_pane = {
|
|
||||||
nothing_selected() {
|
|
||||||
$("#groups_overlay .settings, #user-group-creation").hide();
|
|
||||||
reset_active_group_id();
|
|
||||||
$("#groups_overlay .nothing-selected").show();
|
|
||||||
$("#groups_overlay .user-group-info-title").text(
|
|
||||||
$t({defaultMessage: "User group settings"}),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
settings(group) {
|
|
||||||
$("#groups_overlay .nothing-selected, #user-group-creation").hide();
|
|
||||||
$("#groups_overlay .settings").show();
|
|
||||||
set_active_group_id(group.id);
|
|
||||||
$("#groups_overlay .user-group-info-title").text(group.name);
|
|
||||||
},
|
|
||||||
create_user_group() {
|
|
||||||
$("#groups_overlay .nothing-selected, #groups_overlay .settings").hide();
|
|
||||||
reset_active_group_id();
|
|
||||||
$("#user-group-creation").show();
|
|
||||||
$("#groups_overlay .user-group-info-title").text($t({defaultMessage: "Create user group"}));
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
function empty_right_panel() {
|
function empty_right_panel() {
|
||||||
$(".group-row.active").removeClass("active");
|
$(".group-row.active").removeClass("active");
|
||||||
show_user_group_settings_pane.nothing_selected();
|
user_group_components.show_user_group_settings_pane.nothing_selected();
|
||||||
}
|
}
|
||||||
|
|
||||||
function open_right_panel_empty() {
|
function open_right_panel_empty() {
|
||||||
@@ -402,7 +378,7 @@ export function handle_deleted_group(group_id) {
|
|||||||
|
|
||||||
export function show_group_settings(group) {
|
export function show_group_settings(group) {
|
||||||
$(".group-row.active").removeClass("active");
|
$(".group-row.active").removeClass("active");
|
||||||
show_user_group_settings_pane.settings(group);
|
user_group_components.show_user_group_settings_pane.settings(group);
|
||||||
row_for_group_id(group.id).addClass("active");
|
row_for_group_id(group.id).addClass("active");
|
||||||
setup_group_settings(group);
|
setup_group_settings(group);
|
||||||
}
|
}
|
||||||
@@ -412,14 +388,6 @@ export function open_group_edit_panel_for_row(group_row) {
|
|||||||
show_group_settings(group);
|
show_group_settings(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function set_active_group_id(group_id) {
|
|
||||||
active_group_id = group_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function reset_active_group_id() {
|
|
||||||
active_group_id = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ideally this should be included in page params.
|
// Ideally this should be included in page params.
|
||||||
// Like we have realm.max_stream_name_length` and
|
// Like we have realm.max_stream_name_length` and
|
||||||
// `realm.max_stream_description_length` for streams.
|
// `realm.max_stream_description_length` for streams.
|
||||||
@@ -442,7 +410,7 @@ export function set_up_click_handlers() {
|
|||||||
function create_user_group_clicked() {
|
function create_user_group_clicked() {
|
||||||
// this changes the tab switcher (settings/preview) which isn't necessary
|
// this changes the tab switcher (settings/preview) which isn't necessary
|
||||||
// to a add new stream title.
|
// to a add new stream title.
|
||||||
show_user_group_settings_pane.create_user_group();
|
user_group_components.show_user_group_settings_pane.create_user_group();
|
||||||
$(".group-row.active").removeClass("active");
|
$(".group-row.active").removeClass("active");
|
||||||
|
|
||||||
user_group_create.show_new_user_group_modal();
|
user_group_create.show_new_user_group_modal();
|
||||||
@@ -472,8 +440,8 @@ export function is_group_already_present(group) {
|
|||||||
export function get_active_data() {
|
export function get_active_data() {
|
||||||
const $active_tabs = $(".user-groups-container").find("div.ind-tab.selected");
|
const $active_tabs = $(".user-groups-container").find("div.ind-tab.selected");
|
||||||
return {
|
return {
|
||||||
$row: row_for_group_id(active_group_id),
|
$row: row_for_group_id(user_group_components.active_group_id),
|
||||||
id: active_group_id,
|
id: user_group_components.active_group_id,
|
||||||
$tabs: $active_tabs,
|
$tabs: $active_tabs,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -580,7 +548,7 @@ export function change_state(section, left_side_tab, right_side_tab) {
|
|||||||
// group is being edited. We are always editing a group here
|
// group is being edited. We are always editing a group here
|
||||||
// so its safe to call
|
// so its safe to call
|
||||||
if (left_side_tab !== group_list_toggler.value()) {
|
if (left_side_tab !== group_list_toggler.value()) {
|
||||||
set_active_group_id(group.id);
|
user_group_components.set_active_group_id(group.id);
|
||||||
group_list_toggler.goto(left_side_tab);
|
group_list_toggler.goto(left_side_tab);
|
||||||
}
|
}
|
||||||
switch_to_group_row(group);
|
switch_to_group_row(group);
|
||||||
@@ -658,13 +626,13 @@ export function add_or_remove_from_group(group, group_row) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function maybe_reset_right_panel(groups_list_data) {
|
export function maybe_reset_right_panel(groups_list_data) {
|
||||||
if (active_group_id === undefined) {
|
if (user_group_components.active_group_id === undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const group_ids = new Set(groups_list_data.map((group) => group.id));
|
const group_ids = new Set(groups_list_data.map((group) => group.id));
|
||||||
if (!group_ids.has(active_group_id)) {
|
if (!group_ids.has(user_group_components.active_group_id)) {
|
||||||
show_user_group_settings_pane.nothing_selected();
|
user_group_components.show_user_group_settings_pane.nothing_selected();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -724,7 +692,7 @@ export function setup_page(callback) {
|
|||||||
|
|
||||||
// Initially as the overlay is build with empty right panel,
|
// Initially as the overlay is build with empty right panel,
|
||||||
// active_group_id is undefined.
|
// active_group_id is undefined.
|
||||||
reset_active_group_id();
|
user_group_components.reset_active_group_id();
|
||||||
|
|
||||||
const $container = $("#groups_overlay_container .user-groups-list");
|
const $container = $("#groups_overlay_container .user-groups-list");
|
||||||
|
|
||||||
@@ -756,10 +724,14 @@ export function setup_page(callback) {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
onupdate() {
|
onupdate() {
|
||||||
if (active_group_id !== undefined) {
|
if (user_group_components.active_group_id !== undefined) {
|
||||||
const active_group = user_groups.get_user_group_from_id(active_group_id);
|
const active_group = user_groups.get_user_group_from_id(
|
||||||
|
user_group_components.active_group_id,
|
||||||
|
);
|
||||||
if (is_group_already_present(active_group)) {
|
if (is_group_already_present(active_group)) {
|
||||||
row_for_group_id(active_group_id).addClass("active");
|
row_for_group_id(user_group_components.active_group_id).addClass(
|
||||||
|
"active",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user