From 0bd2d0b6a9ee899ce89627177fd4beb36021b01e Mon Sep 17 00:00:00 2001 From: Sahil Batra Date: Wed, 11 Oct 2023 16:46:55 +0530 Subject: [PATCH] settings: Add code to live-update lock icon on changing role. This commit adds code to live-update the lock icon in settings left sidebar when a user's role changes. --- web/src/settings.js | 22 +++++++++++++++ web/src/user_events.js | 3 ++ web/templates/settings_overlay.hbs | 44 ++++++++---------------------- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/web/src/settings.js b/web/src/settings.js index f08a58237a..adba9980c8 100644 --- a/web/src/settings.js +++ b/web/src/settings.js @@ -80,6 +80,28 @@ function user_can_change_password() { return page_params.realm_email_auth_enabled; } +export function update_lock_icon_in_sidebar() { + if (page_params.is_owner) { + $(".org-settings-list .locked").hide(); + return; + } + if (page_params.is_admin) { + $(".org-settings-list .locked").hide(); + $(".org-settings-list li[data-section='auth-methods'] .locked").show(); + return; + } + + $(".org-settings-list .locked").show(); + + if (settings_bots.can_create_new_bots()) { + $(".org-settings-list li[data-section='bot-list-admin'] .locked").hide(); + } + + if (settings_data.user_can_add_custom_emoji()) { + $(".org-settings-list li[data-section='emoji-settings'] .locked").hide(); + } +} + export function build_page() { setup_settings_label(); diff --git a/web/src/user_events.js b/web/src/user_events.js index bf519d45d7..a1e0a1bc08 100644 --- a/web/src/user_events.js +++ b/web/src/user_events.js @@ -12,6 +12,7 @@ import * as narrow_state from "./narrow_state"; import {page_params} from "./page_params"; import * as people from "./people"; import * as pm_list from "./pm_list"; +import * as settings from "./settings"; import * as settings_account from "./settings_account"; import * as settings_config from "./settings_config"; import * as settings_linkifiers from "./settings_linkifiers"; @@ -78,6 +79,7 @@ export const update_person = function update(person) { if (people.is_my_user_id(person.user_id) && page_params.is_owner !== person_obj.is_owner) { page_params.is_owner = person_obj.is_owner; settings_org.maybe_disable_widgets(); + settings.update_lock_icon_in_sidebar(); } if (people.is_my_user_id(person.user_id) && page_params.is_admin !== person_obj.is_admin) { @@ -88,6 +90,7 @@ export const update_person = function update(person) { settings_streams.maybe_disable_widgets(); settings_realm_user_settings_defaults.maybe_disable_widgets(); settings_account.update_account_settings_display(); + settings.update_lock_icon_in_sidebar(); } if ( diff --git a/web/templates/settings_overlay.hbs b/web/templates/settings_overlay.hbs index e56181688b..cf1a1f3e1f 100644 --- a/web/templates/settings_overlay.hbs +++ b/web/templates/settings_overlay.hbs @@ -58,44 +58,32 @@
  • {{t "Organization profile" }}
    - {{#unless is_admin}} - - {{/unless}} +
  • {{t "Organization settings" }}
    - {{#unless is_admin}} - - {{/unless}} +
  • {{t "Organization permissions" }}
    - {{#unless is_admin}} - - {{/unless}} +
  • {{t "Custom emoji" }}
    - {{#if show_emoji_settings_lock}} - - {{/if}} +
  • {{t "Linkifiers" }}
    - {{#unless is_admin}} - - {{/unless}} +
  • {{t "Code playgrounds" }}
    - {{#unless is_admin}} - - {{/unless}} +
  • {{#unless is_guest}}
  • @@ -107,27 +95,21 @@
  • {{t "Users" }}
    - {{#unless is_admin}} - - {{/unless}} +
  • {{/unless}} {{#unless is_guest}}
  • {{t "Deactivated users" }}
    - {{#unless is_admin}} - - {{/unless}} +
  • {{/unless}} {{#unless is_guest}}
  • {{t "Bots" }}
    - {{#unless can_create_new_bots}} - - {{/unless}} +
  • {{/unless}} {{#unless is_guest}} @@ -145,9 +127,7 @@
  • {{t "Default user settings" }}
    - {{#unless is_admin}} - - {{/unless}} +
  • {{#unless is_guest}}
  • @@ -161,9 +141,7 @@
  • {{t "Authentication methods" }}
    - {{#unless is_owner}} - - {{/unless}} +
  • {{#if is_admin}}