mirror of
https://github.com/zulip/zulip.git
synced 2025-11-17 20:41:46 +00:00
user_group_pill: Accept setting_type as parameter in typeahead_source.
We currently use the pills UI only for can_manage_group setting so it is fine to pass setting type as "group" directly to get_realm_user_groups_for_setting, but it would be better to just accept setting_type as parameter in typeahead_source and pass that to get_realm_user_groups_for_setting as other settings will also use the pills UI in future.
This commit is contained in:
@@ -114,6 +114,7 @@ export function set_up_pill_typeahead({
|
|||||||
$pill_container: JQuery;
|
$pill_container: JQuery;
|
||||||
opts: {
|
opts: {
|
||||||
setting_name: string;
|
setting_name: string;
|
||||||
|
setting_type: "realm" | "stream" | "group";
|
||||||
group: UserGroup | undefined;
|
group: UserGroup | undefined;
|
||||||
};
|
};
|
||||||
}): void {
|
}): void {
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ export function set_up_group_setting_typeahead(
|
|||||||
pills: GroupSettingPillContainer,
|
pills: GroupSettingPillContainer,
|
||||||
opts: {
|
opts: {
|
||||||
setting_name: string;
|
setting_name: string;
|
||||||
|
setting_type: "realm" | "stream" | "group";
|
||||||
group: UserGroup | undefined;
|
group: UserGroup | undefined;
|
||||||
},
|
},
|
||||||
): void {
|
): void {
|
||||||
@@ -146,7 +147,7 @@ export function set_up_group_setting_typeahead(
|
|||||||
source(_query: string): GroupSettingTypeaheadItem[] {
|
source(_query: string): GroupSettingTypeaheadItem[] {
|
||||||
let source: GroupSettingTypeaheadItem[] = [];
|
let source: GroupSettingTypeaheadItem[] = [];
|
||||||
|
|
||||||
source = user_group_pill.typeahead_source(pills, opts.setting_name);
|
source = user_group_pill.typeahead_source(pills, opts.setting_name, opts.setting_type);
|
||||||
source = [...source, ...user_pill.typeahead_source(pills, true)];
|
source = [...source, ...user_pill.typeahead_source(pills, true)];
|
||||||
|
|
||||||
return source;
|
return source;
|
||||||
|
|||||||
@@ -1444,15 +1444,18 @@ type group_setting_name = "can_manage_group";
|
|||||||
export function create_group_setting_widget({
|
export function create_group_setting_widget({
|
||||||
$pill_container,
|
$pill_container,
|
||||||
setting_name,
|
setting_name,
|
||||||
|
setting_type,
|
||||||
group,
|
group,
|
||||||
}: {
|
}: {
|
||||||
$pill_container: JQuery;
|
$pill_container: JQuery;
|
||||||
setting_name: group_setting_name;
|
setting_name: group_setting_name;
|
||||||
|
setting_type: "realm" | "stream" | "group";
|
||||||
group?: UserGroup;
|
group?: UserGroup;
|
||||||
}): void {
|
}): void {
|
||||||
const pill_widget = group_setting_pill.create_pills($pill_container, setting_name);
|
const pill_widget = group_setting_pill.create_pills($pill_container, setting_name);
|
||||||
const opts = {
|
const opts = {
|
||||||
setting_name,
|
setting_name,
|
||||||
|
setting_type,
|
||||||
group,
|
group,
|
||||||
};
|
};
|
||||||
group_setting_pill.set_up_pill_typeahead({pill_widget, $pill_container, opts});
|
group_setting_pill.set_up_pill_typeahead({pill_widget, $pill_container, opts});
|
||||||
|
|||||||
@@ -243,6 +243,7 @@ export function set_up_handlers(): void {
|
|||||||
settings_components.create_group_setting_widget({
|
settings_components.create_group_setting_widget({
|
||||||
$pill_container,
|
$pill_container,
|
||||||
setting_name: "can_manage_group",
|
setting_name: "can_manage_group",
|
||||||
|
setting_type: "group",
|
||||||
});
|
});
|
||||||
|
|
||||||
user_group_components.setup_permissions_dropdown("can_mention_group", undefined, true);
|
user_group_components.setup_permissions_dropdown("can_mention_group", undefined, true);
|
||||||
|
|||||||
@@ -172,6 +172,7 @@ function show_general_settings(group) {
|
|||||||
settings_components.create_group_setting_widget({
|
settings_components.create_group_setting_widget({
|
||||||
$pill_container,
|
$pill_container,
|
||||||
setting_name: "can_manage_group",
|
setting_name: "can_manage_group",
|
||||||
|
setting_type: "group",
|
||||||
group,
|
group,
|
||||||
});
|
});
|
||||||
update_general_panel_ui(group);
|
update_general_panel_ui(group);
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import assert from "minimalistic-assert";
|
||||||
|
|
||||||
import {$t_html} from "./i18n";
|
import {$t_html} from "./i18n";
|
||||||
import type {InputPillContainer} from "./input_pill";
|
import type {InputPillContainer} from "./input_pill";
|
||||||
import * as people from "./people";
|
import * as people from "./people";
|
||||||
@@ -110,10 +112,12 @@ export function filter_taken_groups(
|
|||||||
export function typeahead_source(
|
export function typeahead_source(
|
||||||
pill_widget: CombinedPillContainer | GroupSettingPillContainer,
|
pill_widget: CombinedPillContainer | GroupSettingPillContainer,
|
||||||
setting_name?: string,
|
setting_name?: string,
|
||||||
|
setting_type?: "realm" | "stream" | "group",
|
||||||
): UserGroupPillData[] {
|
): UserGroupPillData[] {
|
||||||
let groups;
|
let groups;
|
||||||
if (setting_name !== undefined) {
|
if (setting_name !== undefined) {
|
||||||
groups = user_groups.get_realm_user_groups_for_setting(setting_name, "group", true);
|
assert(setting_type !== undefined);
|
||||||
|
groups = user_groups.get_realm_user_groups_for_setting(setting_name, setting_type, true);
|
||||||
} else {
|
} else {
|
||||||
groups = user_groups.get_realm_user_groups();
|
groups = user_groups.get_realm_user_groups();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -708,6 +708,7 @@ run_test("set_up_group_setting_typeahead", ({mock_template, override, override_r
|
|||||||
|
|
||||||
const opts = {
|
const opts = {
|
||||||
setting_name: "can_manage_group",
|
setting_name: "can_manage_group",
|
||||||
|
setting_type: "group",
|
||||||
group: testers,
|
group: testers,
|
||||||
};
|
};
|
||||||
pill_typeahead.set_up_group_setting_typeahead($fake_input, $pill_widget, opts);
|
pill_typeahead.set_up_group_setting_typeahead($fake_input, $pill_widget, opts);
|
||||||
|
|||||||
Reference in New Issue
Block a user