mirror of
https://github.com/zulip/zulip.git
synced 2025-11-09 16:37:23 +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 * as stream_data from "./stream_data.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 {stream_subscription_schema} from "./sub_store.ts";
|
||||
import type {GroupSettingPillContainer} from "./typeahead_helper.ts";
|
||||
@@ -1104,8 +1107,7 @@ export function populate_data_for_stream_settings_request(
|
||||
continue;
|
||||
}
|
||||
|
||||
const stream_group_settings = new Set(["can_remove_subscribers_group"]);
|
||||
if (stream_group_settings.has(property_name)) {
|
||||
if (stream_permission_group_settings_schema.safeParse(property_name).success) {
|
||||
const old_value = get_stream_settings_property_value(
|
||||
stream_settings_property_schema.parse(property_name),
|
||||
sub,
|
||||
@@ -1386,7 +1388,7 @@ function should_disable_save_button_for_group_settings(settings: string[]): bool
|
||||
setting_name_without_prefix,
|
||||
"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(
|
||||
setting_name,
|
||||
"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 type {SettingsSubscription} from "./stream_settings_data.ts";
|
||||
import {
|
||||
stream_permission_group_settings_schema,
|
||||
stream_properties_schema,
|
||||
stream_specific_notification_settings_schema,
|
||||
} from "./stream_types.ts";
|
||||
@@ -233,12 +234,14 @@ export function stream_settings(sub: StreamSubscription): StreamSetting[] {
|
||||
}
|
||||
|
||||
function setup_group_setting_widgets(sub: StreamSubscription): void {
|
||||
for (const setting_name of Object.keys(realm.server_supported_permission_settings.stream)) {
|
||||
settings_components.create_stream_group_setting_widget({
|
||||
$pill_container: $("#id_can_remove_subscribers_group"),
|
||||
setting_name: "can_remove_subscribers_group",
|
||||
$pill_container: $("#id_" + setting_name),
|
||||
setting_name: stream_permission_group_settings_schema.parse(setting_name),
|
||||
sub,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export function show_settings_for(node: HTMLElement): void {
|
||||
// Hide any tooltips or popovers before we rerender / change
|
||||
|
||||
Reference in New Issue
Block a user