From ff6f0825b89c042abc6c7c75b0073c9b93a579c3 Mon Sep 17 00:00:00 2001 From: Pravesh Sharma Date: Fri, 10 Feb 2023 10:31:02 +0530 Subject: [PATCH] Fixed an issue where lock layout menu was not in sync with preferences. #5758 --- web/pgadmin/browser/__init__.py | 5 ++++- web/pgadmin/browser/templates/browser/js/utils.js | 2 +- .../static/js/components/PreferencesComponent.jsx | 13 +++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/web/pgadmin/browser/__init__.py b/web/pgadmin/browser/__init__.py index 1c29fe3f7..d3a4c657e 100644 --- a/web/pgadmin/browser/__init__.py +++ b/web/pgadmin/browser/__init__.py @@ -565,6 +565,8 @@ def utils(): # This will be opposite of use_space option editor_indent_with_tabs = False if editor_use_spaces else True + prefs = Preferences.module('browser') + current_ui_lock = prefs.preference('lock_layout').get() # Try to fetch current libpq version from the driver try: from config import PG_DEFAULT_DRIVER @@ -627,7 +629,8 @@ def utils(): username=current_user.username, auth_source=auth_source, heartbeat_timeout=config.SERVER_HEARTBEAT_TIMEOUT, - password_length_min=config.PASSWORD_LENGTH_MIN + password_length_min=config.PASSWORD_LENGTH_MIN, + current_ui_lock=current_ui_lock ), 200, {'Content-Type': MIMETYPE_APP_JS}) diff --git a/web/pgadmin/browser/templates/browser/js/utils.js b/web/pgadmin/browser/templates/browser/js/utils.js index d6d270029..7592fabd3 100644 --- a/web/pgadmin/browser/templates/browser/js/utils.js +++ b/web/pgadmin/browser/templates/browser/js/utils.js @@ -20,7 +20,7 @@ {% endif %}label: "{{ item.label }}", applies: ["{{ key.lower() }}"], priority: {{ item.priority }}, enable: "{{ item.enable }}", - {% if item.checked is defined %}checked: {% if item.checked %}true{% else %}false{% endif %}, + {% if item.checked is defined %}checked: {% if (item.checked || item.name == 'mnu_lock_'+current_ui_lock) %}true{% else %}false{% endif %}, {% endif %} {% if item.below is defined %}below: {% if item.below %}true{% else %}false{% endif %}, {% endif %} diff --git a/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx b/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx index 89fbe2b67..64206aa76 100644 --- a/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx +++ b/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx @@ -574,6 +574,19 @@ export default function PreferencesComponent({ ...props }) { gettext('Later') ); } + // Sync the lock layout menu with preferences + if (pref.name == 'lock_layout') { + let fileMenu = pgAdmin.Browser.MainMenus.find((menu) => menu.name == 'file'); + let layoutSubMenu = fileMenu['menuItems'].find(menu => menu.name == 'mnu_locklayout'); + layoutSubMenu['menu_items'].forEach(item => { + if (item.name === 'mnu_lock_'+save_data[0]['value']) { + item.checked = true; + } else { + item.checked = false; + } + }); + pgAdmin.Browser.Events.trigger('pgadmin:nw-refresh-menu-item', 'lock_layout'); + } } if (requires_refresh) {