mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Continue fixing multiple UI issues found when testing wcDocker changes. #6479
This commit is contained in:
parent
d3dd5c0b56
commit
17acce3e7b
.github
web/pgadmin
browser/static/js
misc/properties
preferences/static/js
static/js
tools
18
.github/dependabot.yml
vendored
18
.github/dependabot.yml
vendored
@ -8,7 +8,7 @@ updates:
|
|||||||
- "Dependencies"
|
- "Dependencies"
|
||||||
commit-message:
|
commit-message:
|
||||||
prefix: "Docker dependency"
|
prefix: "Docker dependency"
|
||||||
|
|
||||||
- package-ecosystem: "pip"
|
- package-ecosystem: "pip"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
@ -17,7 +17,7 @@ updates:
|
|||||||
- "Dependencies"
|
- "Dependencies"
|
||||||
commit-message:
|
commit-message:
|
||||||
prefix: "Python dependency"
|
prefix: "Python dependency"
|
||||||
|
|
||||||
- package-ecosystem: "pip"
|
- package-ecosystem: "pip"
|
||||||
directory: "/tools"
|
directory: "/tools"
|
||||||
schedule:
|
schedule:
|
||||||
@ -25,8 +25,8 @@ updates:
|
|||||||
labels:
|
labels:
|
||||||
- "Dependencies"
|
- "Dependencies"
|
||||||
commit-message:
|
commit-message:
|
||||||
prefix: "Python dependency"
|
prefix: "Python dependency"
|
||||||
|
|
||||||
- package-ecosystem: "pip"
|
- package-ecosystem: "pip"
|
||||||
directory: "/web/regression"
|
directory: "/web/regression"
|
||||||
schedule:
|
schedule:
|
||||||
@ -34,8 +34,8 @@ updates:
|
|||||||
labels:
|
labels:
|
||||||
- "Dependencies"
|
- "Dependencies"
|
||||||
commit-message:
|
commit-message:
|
||||||
prefix: "Python dependency"
|
prefix: "Python dependency"
|
||||||
|
|
||||||
- package-ecosystem: "npm"
|
- package-ecosystem: "npm"
|
||||||
directory: "/runtime"
|
directory: "/runtime"
|
||||||
schedule:
|
schedule:
|
||||||
@ -43,8 +43,8 @@ updates:
|
|||||||
labels:
|
labels:
|
||||||
- "Dependencies"
|
- "Dependencies"
|
||||||
commit-message:
|
commit-message:
|
||||||
prefix: "Python dependency"
|
prefix: "Javascript dependency"
|
||||||
|
|
||||||
- package-ecosystem: "npm"
|
- package-ecosystem: "npm"
|
||||||
directory: "/web"
|
directory: "/web"
|
||||||
schedule:
|
schedule:
|
||||||
@ -52,4 +52,4 @@ updates:
|
|||||||
labels:
|
labels:
|
||||||
- "Dependencies"
|
- "Dependencies"
|
||||||
commit-message:
|
commit-message:
|
||||||
prefix: "Python dependency"
|
prefix: "Javascript dependency"
|
||||||
|
@ -380,6 +380,7 @@ define('pgadmin.browser.node', [
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
treeNodeInfo = pgBrowser.tree.getTreeNodeHierarchy(nodeItem);
|
||||||
const panelId = _.uniqueId(BROWSER_PANELS.EDIT_PROPERTIES);
|
const panelId = _.uniqueId(BROWSER_PANELS.EDIT_PROPERTIES);
|
||||||
const onClose = (force=false)=>pgBrowser.docker.close(panelId, force);
|
const onClose = (force=false)=>pgBrowser.docker.close(panelId, force);
|
||||||
const onSave = (newNodeData)=>{
|
const onSave = (newNodeData)=>{
|
||||||
@ -694,7 +695,7 @@ define('pgadmin.browser.node', [
|
|||||||
pgBrowser.Node.callbacks.change_server_background(item, data);
|
pgBrowser.Node.callbacks.change_server_background(item, data);
|
||||||
},
|
},
|
||||||
// Callback called - when a node is selected in browser tree.
|
// Callback called - when a node is selected in browser tree.
|
||||||
selected: function(item, data, browser) {
|
selected: function(item, data) {
|
||||||
// Show the information about the selected node in the below panels,
|
// Show the information about the selected node in the below panels,
|
||||||
// which are visible at this time:
|
// which are visible at this time:
|
||||||
// + Properties
|
// + Properties
|
||||||
@ -702,10 +703,10 @@ define('pgadmin.browser.node', [
|
|||||||
// + Dependents
|
// + Dependents
|
||||||
// + Dependencies
|
// + Dependencies
|
||||||
// + Statistics
|
// + Statistics
|
||||||
let b = browser || pgBrowser;
|
|
||||||
|
|
||||||
// Update the menu items
|
// Update the menu items
|
||||||
pgAdmin.Browser.enable_disable_menus.apply(b, [item]);
|
pgAdmin.Browser.enable_disable_menus.apply(pgBrowser, [item]);
|
||||||
|
|
||||||
|
pgBrowser.Events.trigger('pgadmin-browser:node:selected', item, data);
|
||||||
|
|
||||||
pgBrowser.Events.trigger('pgadmin:browser:tree:update-tree-state',
|
pgBrowser.Events.trigger('pgadmin:browser:tree:update-tree-state',
|
||||||
item);
|
item);
|
||||||
|
@ -20,7 +20,7 @@ import usePreferences from '../../preferences/static/js/store';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
export default function ObjectNodeProperties({panelId, node, treeNodeInfo, nodeData, actionType, formType, onEdit, onSave, onClose,
|
export default function ObjectNodeProperties({panelId, node, treeNodeInfo, nodeData, actionType, formType, onEdit, onSave, onClose,
|
||||||
isActive, isStale, setIsStale}) {
|
isActive, setIsStale}) {
|
||||||
const layoutDocker = React.useContext(LayoutDockerContext);
|
const layoutDocker = React.useContext(LayoutDockerContext);
|
||||||
const nodeType = nodeData?._type;
|
const nodeType = nodeData?._type;
|
||||||
const pgAdmin = usePgAdmin();
|
const pgAdmin = usePgAdmin();
|
||||||
@ -61,7 +61,7 @@ export default function ObjectNodeProperties({panelId, node, treeNodeInfo, nodeD
|
|||||||
resolve(res.data);
|
resolve(res.data);
|
||||||
})
|
})
|
||||||
.catch((err)=>{
|
.catch((err)=>{
|
||||||
pgAdmin.Browser.notifier.pgNotifier('error', err, '', function(msg) {
|
pgAdmin.Browser.notifier.pgNotifier('error', err, gettext('Failed to fetch data'), function(msg) {
|
||||||
if (msg == 'CRYPTKEY_SET') {
|
if (msg == 'CRYPTKEY_SET') {
|
||||||
return Promise.resolve(initData());
|
return Promise.resolve(initData());
|
||||||
} else if (msg == 'CRYPTKEY_NOT_SET') {
|
} else if (msg == 'CRYPTKEY_NOT_SET') {
|
||||||
@ -198,13 +198,13 @@ export default function ObjectNodeProperties({panelId, node, treeNodeInfo, nodeD
|
|||||||
}
|
}
|
||||||
|
|
||||||
const key = useMemo(()=>{
|
const key = useMemo(()=>{
|
||||||
if(!isActive && isStale || actionType != 'properties') {
|
if( actionType != 'properties' || isActive) {
|
||||||
return nodeData?._id;
|
return nodeData?._id;
|
||||||
} else if(isActive && isStale) {
|
} else {
|
||||||
return nodeData?._id + '0';
|
initData = ()=>Promise.resolve({});
|
||||||
|
return nodeData?._id + '-0';
|
||||||
}
|
}
|
||||||
return nodeData?._id + '1';
|
}, [isActive, nodeData?._id]);
|
||||||
}, [isActive, isStale, nodeData?._id]);
|
|
||||||
|
|
||||||
/* Fire at will, mount the DOM */
|
/* Fire at will, mount the DOM */
|
||||||
return (
|
return (
|
||||||
@ -242,6 +242,5 @@ ObjectNodeProperties.propTypes = {
|
|||||||
onSave: PropTypes.func,
|
onSave: PropTypes.func,
|
||||||
onClose: PropTypes.func,
|
onClose: PropTypes.func,
|
||||||
isActive: PropTypes.bool,
|
isActive: PropTypes.bool,
|
||||||
isStale: PropTypes.bool,
|
|
||||||
setIsStale: PropTypes.func,
|
setIsStale: PropTypes.func,
|
||||||
};
|
};
|
||||||
|
@ -78,4 +78,13 @@ export function listenPreferenceBroadcast() {
|
|||||||
|
|
||||||
// initial sync
|
// initial sync
|
||||||
preferenceChangeBroadcast.postMessage('sync');
|
preferenceChangeBroadcast.postMessage('sync');
|
||||||
|
|
||||||
|
return new Promise((resolve)=>{
|
||||||
|
const i = setInterval(()=>{
|
||||||
|
if(usePreferences.getState()?.version > 0) {
|
||||||
|
clearInterval(i);
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ export default function BrowserComponent({pgAdmin}) {
|
|||||||
<ModalProvider>
|
<ModalProvider>
|
||||||
<NotifierProvider pgAdmin={pgAdmin} onReady={()=>setUiReady(true)}/>
|
<NotifierProvider pgAdmin={pgAdmin} onReady={()=>setUiReady(true)}/>
|
||||||
{browser != 'Nwjs' && <AppMenuBar />}
|
{browser != 'Nwjs' && <AppMenuBar />}
|
||||||
<div style={{height: 'calc(100% - 30px)'}}>
|
<div style={{height: (browser != 'Nwjs' ? 'calc(100% - 30px)' : '100%')}}>
|
||||||
<Layout
|
<Layout
|
||||||
getLayoutInstance={(obj)=>{
|
getLayoutInstance={(obj)=>{
|
||||||
pgAdmin.Browser.docker = obj;
|
pgAdmin.Browser.docker = obj;
|
||||||
|
@ -16,7 +16,7 @@ const useStyles = makeStyles((theme) => ({
|
|||||||
node: {
|
node: {
|
||||||
display: 'inline-block',
|
display: 'inline-block',
|
||||||
paddingLeft: '1.5rem',
|
paddingLeft: '1.5rem',
|
||||||
height: '1.5rem'
|
height: '100%',
|
||||||
},
|
},
|
||||||
checkboxStyle: {
|
checkboxStyle: {
|
||||||
fill: theme.palette.primary.main
|
fill: theme.palette.primary.main
|
||||||
@ -171,7 +171,7 @@ function Node({ node, style, tree, hasCheckbox, onNodeSelectionChange}) {
|
|||||||
{
|
{
|
||||||
hasCheckbox ? <Checkbox style={{ padding: 0 }} color="primary" className={clsx(!node.isInternal ? classes.leafNode: null)}
|
hasCheckbox ? <Checkbox style={{ padding: 0 }} color="primary" className={clsx(!node.isInternal ? classes.leafNode: null)}
|
||||||
checked={isSelected ? true: false}
|
checked={isSelected ? true: false}
|
||||||
checkedIcon={isIndeterminate ? <IndeterminateCheckBoxIcon />: <CheckBoxIcon />}
|
checkedIcon={isIndeterminate ? <IndeterminateCheckBoxIcon style={{height: '1.4rem'}} />: <CheckBoxIcon style={{height: '1.4rem'}} />}
|
||||||
onChange={onCheckboxSelection}/> :
|
onChange={onCheckboxSelection}/> :
|
||||||
<span className={clsx(node.data.icon)}></span>
|
<span className={clsx(node.data.icon)}></span>
|
||||||
}
|
}
|
||||||
|
@ -324,6 +324,12 @@ function getFinalTheme(baseTheme) {
|
|||||||
margin: 0,
|
margin: 0,
|
||||||
padding: 0,
|
padding: 0,
|
||||||
},
|
},
|
||||||
|
svg: {
|
||||||
|
verticalAlign: 'middle',
|
||||||
|
},
|
||||||
|
img: {
|
||||||
|
verticalAlign: 'middle',
|
||||||
|
},
|
||||||
...pickrOverride(baseTheme),
|
...pickrOverride(baseTheme),
|
||||||
...uplotOverride(baseTheme),
|
...uplotOverride(baseTheme),
|
||||||
...rcdockOverride(baseTheme),
|
...rcdockOverride(baseTheme),
|
||||||
@ -414,7 +420,7 @@ function getFinalTheme(baseTheme) {
|
|||||||
root: {
|
root: {
|
||||||
...mixins.panelBorder,
|
...mixins.panelBorder,
|
||||||
'&.Mui-expanded': {
|
'&.Mui-expanded': {
|
||||||
marginBottom: '8px',
|
margin: '8px 0px',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -35,6 +35,13 @@ export default function rcdockOverride(theme) {
|
|||||||
'& .dock': {
|
'& .dock': {
|
||||||
borderRadius: 'inherit',
|
borderRadius: 'inherit',
|
||||||
},
|
},
|
||||||
|
'&.dock-style-playground':{
|
||||||
|
'&:not([data-dockid="id-main"])': {
|
||||||
|
'& .dock-extra-content': {
|
||||||
|
display: 'none',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
'&.dock-style-object-explorer': {
|
'&.dock-style-object-explorer': {
|
||||||
'& .dock-ink-bar': {
|
'& .dock-ink-bar': {
|
||||||
height: '0px',
|
height: '0px',
|
||||||
|
@ -465,16 +465,6 @@ export default function CodeMirror({currEditor, name, value, options, events, re
|
|||||||
editor.current.on(eventName, events[eventName]);
|
editor.current.on(eventName, events[eventName]);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Register keyup event if autocomplete is true
|
|
||||||
let pref = preferencesStore.getPreferencesForModule('sqleditor');
|
|
||||||
if (autocomplete && pref.autocomplete_on_key_press) {
|
|
||||||
editor.current.on('keyup', (cm, event)=>{
|
|
||||||
if (!cm.state.completionActive && (event.key == 'Backspace' || /^[ -~]{1}$/.test(event.key))) {
|
|
||||||
OrigCodeMirror.commands.autocomplete(cm, null, {completeSingle: false});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
editor.current.on('drop', handleDrop);
|
editor.current.on('drop', handleDrop);
|
||||||
editor.current.on('paste', handlePaste);
|
editor.current.on('paste', handlePaste);
|
||||||
return ()=>{
|
return ()=>{
|
||||||
@ -482,30 +472,39 @@ export default function CodeMirror({currEditor, name, value, options, events, re
|
|||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => usePreferences.subscribe(
|
const autocompKeyup = (cm, event)=>{
|
||||||
state => {
|
if (!cm.state.completionActive && (event.key == 'Backspace' || /^[ -~]{1}$/.test(event.key))) {
|
||||||
let pref = state.getPreferencesForModule('sqleditor');
|
OrigCodeMirror.commands.autocomplete(cm, null, {completeSingle: false});
|
||||||
let wrapEle = editor.current?.getWrapperElement();
|
|
||||||
wrapEle && (wrapEle.style.fontSize = calcFontSize(pref.sql_font_size));
|
|
||||||
|
|
||||||
if(pref.plain_editor_mode) {
|
|
||||||
editor.current?.setOption('mode', 'text/plain');
|
|
||||||
/* Although not required, setting explicitly as codemirror will remove code folding only on next edit */
|
|
||||||
editor.current?.setOption('foldGutter', false);
|
|
||||||
} else {
|
|
||||||
editor.current?.setOption('mode', 'text/x-pgsql');
|
|
||||||
editor.current?.setOption('foldGutter', pref.code_folding);
|
|
||||||
}
|
|
||||||
|
|
||||||
editor.current?.setOption('indentWithTabs', !pref.use_spaces);
|
|
||||||
editor.current?.setOption('indentUnit', pref.tab_size);
|
|
||||||
editor.current?.setOption('tabSize', pref.tab_size);
|
|
||||||
editor.current?.setOption('lineWrapping', pref.wrap_code);
|
|
||||||
editor.current?.setOption('autoCloseBrackets', pref.insert_pair_brackets);
|
|
||||||
editor.current?.setOption('matchBrackets', pref.brace_matching);
|
|
||||||
editor.current?.refresh();
|
|
||||||
}
|
}
|
||||||
), []);
|
};
|
||||||
|
|
||||||
|
useEffect(()=>{
|
||||||
|
let pref = preferencesStore.getPreferencesForModule('sqleditor');
|
||||||
|
let wrapEle = editor.current?.getWrapperElement();
|
||||||
|
wrapEle && (wrapEle.style.fontSize = calcFontSize(pref.sql_font_size));
|
||||||
|
|
||||||
|
// Register keyup event if autocomplete is true
|
||||||
|
if (autocomplete && pref.autocomplete_on_key_press) {
|
||||||
|
editor.current.on('keyup', autocompKeyup);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pref.plain_editor_mode) {
|
||||||
|
editor.current?.setOption('mode', 'text/plain');
|
||||||
|
/* Although not required, setting explicitly as codemirror will remove code folding only on next edit */
|
||||||
|
editor.current?.setOption('foldGutter', false);
|
||||||
|
} else {
|
||||||
|
editor.current?.setOption('mode', 'text/x-pgsql');
|
||||||
|
editor.current?.setOption('foldGutter', pref.code_folding);
|
||||||
|
}
|
||||||
|
|
||||||
|
editor.current?.setOption('indentWithTabs', !pref.use_spaces);
|
||||||
|
editor.current?.setOption('indentUnit', pref.tab_size);
|
||||||
|
editor.current?.setOption('tabSize', pref.tab_size);
|
||||||
|
editor.current?.setOption('lineWrapping', pref.wrap_code);
|
||||||
|
editor.current?.setOption('autoCloseBrackets', pref.insert_pair_brackets);
|
||||||
|
editor.current?.setOption('matchBrackets', pref.brace_matching);
|
||||||
|
editor.current?.refresh();
|
||||||
|
}, [preferencesStore]);
|
||||||
|
|
||||||
useEffect(()=>{
|
useEffect(()=>{
|
||||||
if(editor.current) {
|
if(editor.current) {
|
||||||
|
@ -122,6 +122,8 @@ export class LayoutDocker {
|
|||||||
|
|
||||||
setTitle(panelId, title, icon, tooltip) {
|
setTitle(panelId, title, icon, tooltip) {
|
||||||
const panelData = this.find(panelId);
|
const panelData = this.find(panelId);
|
||||||
|
if(!panelData) return;
|
||||||
|
|
||||||
const internal = {
|
const internal = {
|
||||||
...panelData.internal,
|
...panelData.internal,
|
||||||
};
|
};
|
||||||
|
@ -164,6 +164,7 @@ class Notifier {
|
|||||||
return onJSONResult();
|
return onJSONResult();
|
||||||
}
|
}
|
||||||
this.alert(promptmsg, msg.replace(new RegExp(/\r?\n/, 'g'), '<br />'));
|
this.alert(promptmsg, msg.replace(new RegExp(/\r?\n/, 'g'), '<br />'));
|
||||||
|
onJSONResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
alert(title, text, onOkClick, okLabel=gettext('OK')) {
|
alert(title, text, onOkClick, okLabel=gettext('OK')) {
|
||||||
|
@ -15,12 +15,11 @@ import { usePgAdmin } from '../../../static/js/BrowserComponent';
|
|||||||
export default function withStandardTabInfo(Component, tabId) {
|
export default function withStandardTabInfo(Component, tabId) {
|
||||||
// eslint-disable-next-line react/display-name
|
// eslint-disable-next-line react/display-name
|
||||||
const HOCComponent = (props)=>{
|
const HOCComponent = (props)=>{
|
||||||
const [[nodeItem, nodeData], setNodeInfo] = useState([]);
|
const [[isStale, nodeItem, nodeData], setNodeInfo] = useState([]);
|
||||||
const pgAdmin = usePgAdmin();
|
const pgAdmin = usePgAdmin();
|
||||||
const node = nodeData && pgAdmin.Browser.Nodes[nodeData?._type];
|
const node = nodeData && pgAdmin.Browser.Nodes[nodeData?._type];
|
||||||
const treeNodeInfo = pgAdmin.Browser.tree?.getTreeNodeHierarchy(nodeItem);
|
const treeNodeInfo = pgAdmin.Browser.tree?.getTreeNodeHierarchy(nodeItem);
|
||||||
const [isActive, setIsActive] = React.useState(false);
|
const [isActive, setIsActive] = React.useState(false);
|
||||||
const [isStale, setIsStale] = React.useState(true);
|
|
||||||
const layoutDocker = useContext(LayoutDockerContext);
|
const layoutDocker = useContext(LayoutDockerContext);
|
||||||
|
|
||||||
useEffect(()=>{
|
useEffect(()=>{
|
||||||
@ -38,13 +37,11 @@ export default function withStandardTabInfo(Component, tabId) {
|
|||||||
}
|
}
|
||||||
}, 100);
|
}, 100);
|
||||||
|
|
||||||
let deregisterTree = pgAdmin.Browser.Events.on('pgadmin-browser:tree:selected', (item, data)=>{
|
let deregisterTree = pgAdmin.Browser.Events.on('pgadmin-browser:node:selected', (item, data)=>{
|
||||||
setNodeInfo([item, data]);
|
setNodeInfo([true, item, data]);
|
||||||
setIsStale(true);
|
|
||||||
});
|
});
|
||||||
let deregisterTreeUpdate = pgAdmin.Browser.Events.on('pgadmin-browser:tree:updated', (item, data)=>{
|
let deregisterTreeUpdate = pgAdmin.Browser.Events.on('pgadmin-browser:tree:updated', (item, data)=>{
|
||||||
setNodeInfo([item, data]);
|
setNodeInfo([item, data]);
|
||||||
setIsStale(true);
|
|
||||||
});
|
});
|
||||||
let deregisterActive = layoutDocker.eventBus.registerListener(LAYOUT_EVENTS.ACTIVE, onTabActive);
|
let deregisterActive = layoutDocker.eventBus.registerListener(LAYOUT_EVENTS.ACTIVE, onTabActive);
|
||||||
// if there is any dock changes to the tab and it appears to be active/inactive
|
// if there is any dock changes to the tab and it appears to be active/inactive
|
||||||
@ -66,10 +63,6 @@ export default function withStandardTabInfo(Component, tabId) {
|
|||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(()=>{
|
|
||||||
setIsStale(true);
|
|
||||||
}, [nodeData]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Component
|
<Component
|
||||||
{...props}
|
{...props}
|
||||||
@ -79,7 +72,7 @@ export default function withStandardTabInfo(Component, tabId) {
|
|||||||
treeNodeInfo={treeNodeInfo}
|
treeNodeInfo={treeNodeInfo}
|
||||||
isActive={isActive}
|
isActive={isActive}
|
||||||
isStale={isStale}
|
isStale={isStale}
|
||||||
setIsStale={setIsStale}
|
setIsStale={(v)=>setNodeInfo((prev)=>[v, prev[1], prev[2]])}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -138,8 +138,8 @@ export default class ERDModule {
|
|||||||
return openUrl;
|
return openUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
loadComponent(container, params) {
|
async loadComponent(container, params) {
|
||||||
listenPreferenceBroadcast();
|
await listenPreferenceBroadcast();
|
||||||
ReactDOM.render(
|
ReactDOM.render(
|
||||||
<Theme>
|
<Theme>
|
||||||
<ModalProvider>
|
<ModalProvider>
|
||||||
|
@ -222,11 +222,11 @@ export default class SQLEditor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
loadComponent(container, params) {
|
async loadComponent(container, params) {
|
||||||
let selectedNodeInfo = pgWindow.pgAdmin.Browser.tree.getTreeNodeHierarchy(
|
let selectedNodeInfo = pgWindow.pgAdmin.Browser.tree.getTreeNodeHierarchy(
|
||||||
pgWindow.pgAdmin.Browser.tree.selected()
|
pgWindow.pgAdmin.Browser.tree.selected()
|
||||||
);
|
);
|
||||||
listenPreferenceBroadcast();
|
await listenPreferenceBroadcast();
|
||||||
ReactDOM.render(
|
ReactDOM.render(
|
||||||
<Theme>
|
<Theme>
|
||||||
<PgAdminContext.Provider value={pgAdmin}>
|
<PgAdminContext.Provider value={pgAdmin}>
|
||||||
|
@ -338,7 +338,7 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
|
|||||||
if(docker.current.isTabVisible(PANELS.QUERY)) {
|
if(docker.current.isTabVisible(PANELS.QUERY)) {
|
||||||
docker.current.focus(PANELS.QUERY);
|
docker.current.focus(PANELS.QUERY);
|
||||||
} else if(docker.current.isTabVisible(PANELS.HISTORY)) {
|
} else if(docker.current.isTabVisible(PANELS.HISTORY)) {
|
||||||
docker.current.isTabVisible(PANELS.HISTORY);
|
docker.current.focus(PANELS.HISTORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.GOTO_LAST_SCROLL);
|
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.GOTO_LAST_SCROLL);
|
||||||
|
Loading…
Reference in New Issue
Block a user