mirror of
https://github.com/zulip/zulip.git
synced 2025-11-08 16:01:58 +00:00
stream: Loop over group settings for setup_group_setting_widgets.
We won't have to add another block of code here when adding a new setting in the future.
This commit is contained in:
committed by
Tim Abbott
parent
dbf9f2d181
commit
217bd0a334
@@ -30,7 +30,10 @@ import type {CustomProfileField, GroupSettingValue} from "./state_data.ts";
|
|||||||
import {current_user, realm, realm_schema} from "./state_data.ts";
|
import {current_user, realm, realm_schema} from "./state_data.ts";
|
||||||
import * as stream_data from "./stream_data.ts";
|
import * as stream_data from "./stream_data.ts";
|
||||||
import * as stream_settings_containers from "./stream_settings_containers.ts";
|
import * as stream_settings_containers from "./stream_settings_containers.ts";
|
||||||
import type {StreamPermissionGroupSetting} from "./stream_types.ts";
|
import {
|
||||||
|
type StreamPermissionGroupSetting,
|
||||||
|
stream_permission_group_settings_schema,
|
||||||
|
} from "./stream_types.ts";
|
||||||
import type {StreamSubscription} from "./sub_store.ts";
|
import type {StreamSubscription} from "./sub_store.ts";
|
||||||
import {stream_subscription_schema} from "./sub_store.ts";
|
import {stream_subscription_schema} from "./sub_store.ts";
|
||||||
import type {GroupSettingPillContainer} from "./typeahead_helper.ts";
|
import type {GroupSettingPillContainer} from "./typeahead_helper.ts";
|
||||||
@@ -1104,8 +1107,7 @@ export function populate_data_for_stream_settings_request(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const stream_group_settings = new Set(["can_remove_subscribers_group"]);
|
if (stream_permission_group_settings_schema.safeParse(property_name).success) {
|
||||||
if (stream_group_settings.has(property_name)) {
|
|
||||||
const old_value = get_stream_settings_property_value(
|
const old_value = get_stream_settings_property_value(
|
||||||
stream_settings_property_schema.parse(property_name),
|
stream_settings_property_schema.parse(property_name),
|
||||||
sub,
|
sub,
|
||||||
@@ -1386,7 +1388,7 @@ function should_disable_save_button_for_group_settings(settings: string[]): bool
|
|||||||
setting_name_without_prefix,
|
setting_name_without_prefix,
|
||||||
"realm",
|
"realm",
|
||||||
);
|
);
|
||||||
} else if (setting_name === "can_remove_subscribers_group") {
|
} else if (stream_permission_group_settings_schema.safeParse(setting_name).success) {
|
||||||
group_setting_config = group_permission_settings.get_group_permission_setting_config(
|
group_setting_config = group_permission_settings.get_group_permission_setting_config(
|
||||||
setting_name,
|
setting_name,
|
||||||
"stream",
|
"stream",
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import * as stream_settings_containers from "./stream_settings_containers.ts";
|
|||||||
import * as stream_settings_data from "./stream_settings_data.ts";
|
import * as stream_settings_data from "./stream_settings_data.ts";
|
||||||
import type {SettingsSubscription} from "./stream_settings_data.ts";
|
import type {SettingsSubscription} from "./stream_settings_data.ts";
|
||||||
import {
|
import {
|
||||||
|
stream_permission_group_settings_schema,
|
||||||
stream_properties_schema,
|
stream_properties_schema,
|
||||||
stream_specific_notification_settings_schema,
|
stream_specific_notification_settings_schema,
|
||||||
} from "./stream_types.ts";
|
} from "./stream_types.ts";
|
||||||
@@ -233,11 +234,13 @@ export function stream_settings(sub: StreamSubscription): StreamSetting[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setup_group_setting_widgets(sub: StreamSubscription): void {
|
function setup_group_setting_widgets(sub: StreamSubscription): void {
|
||||||
settings_components.create_stream_group_setting_widget({
|
for (const setting_name of Object.keys(realm.server_supported_permission_settings.stream)) {
|
||||||
$pill_container: $("#id_can_remove_subscribers_group"),
|
settings_components.create_stream_group_setting_widget({
|
||||||
setting_name: "can_remove_subscribers_group",
|
$pill_container: $("#id_" + setting_name),
|
||||||
sub,
|
setting_name: stream_permission_group_settings_schema.parse(setting_name),
|
||||||
});
|
sub,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function show_settings_for(node: HTMLElement): void {
|
export function show_settings_for(node: HTMLElement): void {
|
||||||
|
|||||||
Reference in New Issue
Block a user