From c8e906d49e83023a3d63a6e24e820840b7cb24b3 Mon Sep 17 00:00:00 2001 From: Sahil Batra Date: Mon, 28 Oct 2024 16:39:28 +0530 Subject: [PATCH] settings: Use pills UI for channel creation settings. We now use new pills UI for public and private channel creation settings. The UI for web-public channel creation setting is still a dropdown as we allow only system groups for that. --- web/src/settings_components.ts | 13 +++--- web/src/settings_org.ts | 44 +++++++++++++++++-- web/src/state_data.ts | 4 +- .../organization_permissions_admin.hbs | 26 +++++++---- 4 files changed, 69 insertions(+), 18 deletions(-) diff --git a/web/src/settings_components.ts b/web/src/settings_components.ts index cc417a3ce8..97498c6d96 100644 --- a/web/src/settings_components.ts +++ b/web/src/settings_components.ts @@ -481,8 +481,6 @@ const dropdown_widget_map = new Map([ ["realm_can_access_all_users_group", null], ["realm_can_add_custom_emoji_group", null], ["realm_can_create_groups", null], - ["realm_can_create_public_channel_group", null], - ["realm_can_create_private_channel_group", null], ["realm_can_create_web_public_channel_group", null], ["realm_can_delete_any_message_group", null], ["realm_can_delete_own_message_group", null], @@ -803,8 +801,6 @@ export function check_realm_settings_property_changed(elem: HTMLElement): boolea case "realm_can_access_all_users_group": case "realm_can_add_custom_emoji_group": case "realm_can_create_groups": - case "realm_can_create_public_channel_group": - case "realm_can_create_private_channel_group": case "realm_can_create_web_public_channel_group": case "realm_can_delete_any_message_group": case "realm_can_delete_own_message_group": @@ -814,6 +810,8 @@ export function check_realm_settings_property_changed(elem: HTMLElement): boolea case "realm_direct_message_permission_group": proposed_val = get_dropdown_list_widget_setting_value($elem); break; + case "realm_can_create_public_channel_group": + case "realm_can_create_private_channel_group": case "realm_create_multiuse_invite_group": { const pill_widget = get_group_setting_widget(property_name); assert(pill_widget !== null); @@ -1430,6 +1428,8 @@ export const group_setting_widget_map = new Map @@ -1153,6 +1183,14 @@ function initialize_group_setting_widgets(): void { $pill_container: $("#id_realm_create_multiuse_invite_group"), setting_name: "create_multiuse_invite_group", }); + settings_components.create_realm_group_setting_widget({ + $pill_container: $("#id_realm_can_create_public_channel_group"), + setting_name: "can_create_public_channel_group", + }); + settings_components.create_realm_group_setting_widget({ + $pill_container: $("#id_realm_can_create_private_channel_group"), + setting_name: "can_create_private_channel_group", + }); enable_or_disable_group_permission_settings(); } diff --git a/web/src/state_data.ts b/web/src/state_data.ts index 5caffb14fc..58771f2463 100644 --- a/web/src/state_data.ts +++ b/web/src/state_data.ts @@ -289,8 +289,8 @@ export const realm_schema = z.object({ realm_can_access_all_users_group: z.number(), realm_can_add_custom_emoji_group: z.number(), realm_can_create_groups: z.number(), - realm_can_create_public_channel_group: z.number(), - realm_can_create_private_channel_group: z.number(), + realm_can_create_public_channel_group: group_setting_value_schema, + realm_can_create_private_channel_group: group_setting_value_schema, realm_can_create_web_public_channel_group: z.number(), realm_can_delete_any_message_group: z.number(), realm_can_delete_own_message_group: z.number(), diff --git a/web/templates/settings/organization_permissions_admin.hbs b/web/templates/settings/organization_permissions_admin.hbs index ad9c63df0b..ed4facbff2 100644 --- a/web/templates/settings/organization_permissions_admin.hbs +++ b/web/templates/settings/organization_permissions_admin.hbs @@ -73,10 +73,15 @@ {{> settings_save_discard_widget section_name="stream-permissions" }}
- {{> ../dropdown_widget_with_label - widget_name="realm_can_create_public_channel_group" - label=(t 'Who can create public channels') - value_type="number"}} +
+ +
+
+ {{~! Squash whitespace so that placeholder is displayed when empty. ~}} +
+
+
{{> upgrade_tip_widget }} {{> settings_checkbox @@ -92,10 +97,15 @@ label=(t 'Who can create web-public channels') value_type="number"}} - {{> ../dropdown_widget_with_label - widget_name="realm_can_create_private_channel_group" - label=(t 'Who can create private channels') - value_type="number"}} +
+ +
+
+ {{~! Squash whitespace so that placeholder is displayed when empty. ~}} +
+
+