kill query

This commit is contained in:
Jan Prochazka
2020-06-28 15:33:59 +02:00
parent 8e9b6d5ea2
commit 4e1ee72d4d
3 changed files with 23 additions and 1 deletions

View File

@@ -105,6 +105,16 @@ module.exports = {
return { state: 'ok' }; return { state: 'ok' };
}, },
kill_meta: 'post',
async kill({ sesid }) {
const session = this.opened.find((x) => x.sesid == sesid);
if (!session) {
throw new Error('Invalid session');
}
session.subprocess.kill();
return { state: 'ok' };
},
// runCommand_meta: 'post', // runCommand_meta: 'post',
// async runCommand({ conid, database, sql }) { // async runCommand({ conid, database, sql }) {
// console.log(`Running SQL command , conid=${conid}, database=${database}, sql=${sql}`); // console.log(`Running SQL command , conid=${conid}, database=${database}, sql=${sql}`);

View File

@@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import ToolbarButton from '../widgets/ToolbarButton'; import ToolbarButton from '../widgets/ToolbarButton';
export default function QueryToolbar({ execute, cancel, isDatabaseDefined, busy, save, format }) { export default function QueryToolbar({ execute, cancel, isDatabaseDefined, busy, save, format, isConnected, kill }) {
return ( return (
<> <>
<ToolbarButton disabled={!isDatabaseDefined || busy} onClick={execute} icon="fas fa-play"> <ToolbarButton disabled={!isDatabaseDefined || busy} onClick={execute} icon="fas fa-play">
@@ -10,6 +10,9 @@ export default function QueryToolbar({ execute, cancel, isDatabaseDefined, busy,
<ToolbarButton disabled={!busy} onClick={cancel} icon="fas fa-times"> <ToolbarButton disabled={!busy} onClick={cancel} icon="fas fa-times">
Cancel Cancel
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!isConnected} onClick={kill} icon="fas fa-times">
Kill
</ToolbarButton>
<ToolbarButton onClick={save} icon="fas fa-save"> <ToolbarButton onClick={save} icon="fas fa-save">
Save Save
</ToolbarButton> </ToolbarButton>

View File

@@ -178,6 +178,13 @@ export default function QueryTab({
}); });
}; };
const handleKill = () => {
axios.post('sessions/cancel', {
sesid: sessionId,
});
setSessionId(null);
};
const handleKeyDown = (data, hash, keyString, keyCode, event) => { const handleKeyDown = (data, hash, keyString, keyCode, event) => {
if (keyCode == keycodes.f5) { if (keyCode == keycodes.f5) {
event.preventDefault(); event.preventDefault();
@@ -236,6 +243,8 @@ export default function QueryTab({
cancel={handleCancel} cancel={handleCancel}
format={handleFormatCode} format={handleFormatCode}
save={saveSqlFileModalState.open} save={saveSqlFileModalState.open}
isConnected={!!sessionId}
kill={handleKill}
/>, />,
toolbarPortalRef.current toolbarPortalRef.current
)} )}