diff --git a/docs/en_US/import_export_servers.rst b/docs/en_US/import_export_servers.rst index ab2b27e15..6a7d16ab7 100644 --- a/docs/en_US/import_export_servers.rst +++ b/docs/en_US/import_export_servers.rst @@ -194,4 +194,6 @@ The following example shows both a minimally defined and a fully defined server: "PostConnectionSQL": "set timezone='America/New_York'" } } - } \ No newline at end of file + } + +.. note:: If you're running pgAdmin in Server Mode, the values for parameters that require file paths should be specified relative to the user's home directory which is //storage//. If DATA_DIR is not specified, then it will /var/libe/pgadmin/storage// \ No newline at end of file diff --git a/web/pgadmin/browser/templates/browser/js/utils.js b/web/pgadmin/browser/templates/browser/js/utils.js index 03937f309..c341d8a78 100644 --- a/web/pgadmin/browser/templates/browser/js/utils.js +++ b/web/pgadmin/browser/templates/browser/js/utils.js @@ -82,7 +82,7 @@ define('pgadmin.browser.utils', ]; pgBrowser.utils = { - layout: {{ layout }}, + layout: {{ layout|tojson }}, theme: '{{ theme }}', pg_help_path: '{{ pg_help_path }}', app_name: '{{ app_name }}', diff --git a/web/pgadmin/static/js/BrowserComponent.jsx b/web/pgadmin/static/js/BrowserComponent.jsx index ac9401f78..bfe5e4c71 100644 --- a/web/pgadmin/static/js/BrowserComponent.jsx +++ b/web/pgadmin/static/js/BrowserComponent.jsx @@ -124,7 +124,7 @@ function Layouts({browser}) { }} defaultLayout={defaultLayout} layoutId='Browser/Layout' - savedLayout={pgAdmin.Browser.utils.layout} + savedLayout={pgAdmin.Browser.utils.layout['Browser/Layout']} groups={{ 'object-explorer': objectExplorerGroup, 'playground': getMorePanelGroup(defaultTabsData), @@ -143,7 +143,7 @@ function Layouts({browser}) { }} defaultLayout={item.layout} layoutId={`Workspace/Layout-${item.workspace}`} - savedLayout={pgAdmin.Browser.utils.layout} + savedLayout={pgAdmin.Browser.utils.layout[`Workspace/Layout-${item.workspace}`]} groups={{ 'playground': item?.tabsData ? getMorePanelGroup(item?.tabsData) : {...getDefaultGroup()}, }} diff --git a/web/pgadmin/static/js/helpers/Layout/index.jsx b/web/pgadmin/static/js/helpers/Layout/index.jsx index 8f64d804c..577964be4 100644 --- a/web/pgadmin/static/js/helpers/Layout/index.jsx +++ b/web/pgadmin/static/js/helpers/Layout/index.jsx @@ -219,9 +219,9 @@ export class LayoutDocker { } } - loadLayout(savedLayout, layoutId) { + loadLayout(savedLayout) { try { - this.layoutObj.loadLayout(JSON.parse(savedLayout[layoutId])); + this.layoutObj.loadLayout(JSON.parse(savedLayout)); } catch { /* Fallback to default */ this.layoutObj.loadLayout(this.defaultLayout); @@ -505,7 +505,7 @@ export default function Layout({groups, noContextGroups, getLayoutInstance, layo flattenLayout(props.defaultLayout.dockbox); return flat; }, [props.defaultLayout]); - + const loadTab = (tab)=>{ const tabData = flatDefaultLayout.find((t)=>t.id == tab.id); if(!tabData && tab.metaData) { @@ -529,7 +529,7 @@ export default function Layout({groups, noContextGroups, getLayoutInstance, layo if(obj) { layoutDockerObj.layoutObj = obj; getLayoutInstance?.(layoutDockerObj); - layoutDockerObj.loadLayout(savedLayout, layoutId); + layoutDockerObj.loadLayout(savedLayout); } }} loadTab={loadTab} @@ -565,7 +565,7 @@ Layout.propTypes = { noContextGroups: PropTypes.array, getLayoutInstance: PropTypes.func, layoutId: PropTypes.string, - savedLayout: PropTypes.any, + savedLayout: PropTypes.string, resetToTabPanel: PropTypes.string, enableToolEvents: PropTypes.bool, isLayoutVisible: PropTypes.bool