mirror of
https://github.com/Fabio286/antares.git
synced 2025-06-05 21:59:22 +02:00
feat: added more events in shortcuts setting
This commit is contained in:
@ -8,6 +8,9 @@ export const shortcutEvents: { [key: string]: { l18n: string; l18nParam?: string
|
|||||||
'query-history': { l18n: 'message.queryHistory', context: 'tab' },
|
'query-history': { l18n: 'message.queryHistory', context: 'tab' },
|
||||||
'clear-query': { l18n: 'message.clearQuery', context: 'tab' },
|
'clear-query': { l18n: 'message.clearQuery', context: 'tab' },
|
||||||
'open-all-connections': { l18n: 'message.openAllConnections' },
|
'open-all-connections': { l18n: 'message.openAllConnections' },
|
||||||
|
'open-filter': { l18n: 'message.openFilter' },
|
||||||
|
'next-page': { l18n: 'message.nextResultsPage' },
|
||||||
|
'prev-page': { l18n: 'message.previousResultsPage' },
|
||||||
'toggle-console': { l18n: 'message.toggleConsole' },
|
'toggle-console': { l18n: 'message.toggleConsole' },
|
||||||
'save-content': { l18n: 'message.saveContent' },
|
'save-content': { l18n: 'message.saveContent' },
|
||||||
'run-or-reload': { l18n: 'message.runOrReload' },
|
'run-or-reload': { l18n: 'message.runOrReload' },
|
||||||
@ -87,6 +90,21 @@ const shortcuts: ShortcutRecord[] = [
|
|||||||
keys: ['CommandOrControl+PageUp'],
|
keys: ['CommandOrControl+PageUp'],
|
||||||
os: ['linux', 'win32']
|
os: ['linux', 'win32']
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
event: 'open-filter',
|
||||||
|
keys: ['CommandOrControl+F'],
|
||||||
|
os: ['darwin', 'linux', 'win32']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: 'next-page',
|
||||||
|
keys: ['CommandOrControl+Right'],
|
||||||
|
os: ['darwin', 'linux', 'win32']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: 'prev-page',
|
||||||
|
keys: ['CommandOrControl+Left'],
|
||||||
|
os: ['darwin', 'linux', 'win32']
|
||||||
|
},
|
||||||
{
|
{
|
||||||
event: 'open-all-connections',
|
event: 'open-all-connections',
|
||||||
keys: ['Shift+CommandOrControl+Space'],
|
keys: ['Shift+CommandOrControl+Space'],
|
||||||
|
@ -67,10 +67,6 @@ const { changeApplicationTheme } = settingsStore;
|
|||||||
|
|
||||||
const isAllConnectionsModal: Ref<boolean> = ref(false);
|
const isAllConnectionsModal: Ref<boolean> = ref(false);
|
||||||
|
|
||||||
ipcRenderer.on('open-all-connections', () => {
|
|
||||||
isAllConnectionsModal.value = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
changeApplicationTheme(applicationTheme.value);// Forces persistentStore to save on file and mail process
|
changeApplicationTheme(applicationTheme.value);// Forces persistentStore to save on file and mail process
|
||||||
@ -78,6 +74,22 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
ipcRenderer.on('open-all-connections', () => {
|
||||||
|
isAllConnectionsModal.value = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on('open-scratchpad', () => {
|
||||||
|
isScratchpad.value = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on('open-settings', () => {
|
||||||
|
isSettingModal.value = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on('create-connection', () => {
|
||||||
|
workspacesStore.selectWorkspace('NEW');
|
||||||
|
});
|
||||||
|
|
||||||
ipcRenderer.send('check-for-updates');
|
ipcRenderer.send('check-for-updates');
|
||||||
checkVersionUpdate();
|
checkVersionUpdate();
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
<button
|
<button
|
||||||
class="btn btn-dark btn-sm mr-0 pr-1 d-flex"
|
class="btn btn-dark btn-sm mr-0 pr-1 d-flex"
|
||||||
:class="{'loading':isQuering}"
|
:class="{'loading':isQuering}"
|
||||||
:title="`${t('word.refresh')} (F5)`"
|
:title="`${t('word.refresh')}`"
|
||||||
@click="getProcessesList"
|
@click="getProcessesList"
|
||||||
>
|
>
|
||||||
<i v-if="!+autorefreshTimer" class="mdi mdi-24px mdi-refresh mr-1" />
|
<i v-if="!+autorefreshTimer" class="mdi mdi-24px mdi-refresh mr-1" />
|
||||||
@ -135,6 +135,7 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Component, computed, onBeforeUnmount, onMounted, onUpdated, Prop, Ref, ref } from 'vue';
|
import { Component, computed, onBeforeUnmount, onMounted, onUpdated, Prop, Ref, ref } from 'vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
import { ConnectionParams } from 'common/interfaces/antares';
|
import { ConnectionParams } from 'common/interfaces/antares';
|
||||||
import { exportRows } from '../libs/exportRows';
|
import { exportRows } from '../libs/exportRows';
|
||||||
import { useNotificationsStore } from '@/stores/notifications';
|
import { useNotificationsStore } from '@/stores/notifications';
|
||||||
@ -326,10 +327,10 @@ const onKey = (e:KeyboardEvent) => {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
if (e.key === 'Escape')
|
if (e.key === 'Escape')
|
||||||
closeModal();
|
closeModal();
|
||||||
if (e.key === 'F5')
|
|
||||||
getProcessesList();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ipcRenderer.on('run-or-reload', getProcessesList);
|
||||||
|
|
||||||
window.addEventListener('keydown', onKey, { capture: true });
|
window.addEventListener('keydown', onKey, { capture: true });
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@ -348,6 +349,8 @@ onBeforeUnmount(() => {
|
|||||||
window.removeEventListener('keydown', onKey, { capture: true });
|
window.removeEventListener('keydown', onKey, { capture: true });
|
||||||
window.removeEventListener('resize', resizeResults);
|
window.removeEventListener('resize', resizeResults);
|
||||||
clearInterval(refreshInterval.value);
|
clearInterval(refreshInterval.value);
|
||||||
|
|
||||||
|
ipcRenderer.removeListener('run-or-reload', getProcessesList);
|
||||||
});
|
});
|
||||||
|
|
||||||
defineExpose({ refreshScroller });
|
defineExpose({ refreshScroller });
|
||||||
|
@ -553,7 +553,7 @@ setDefaults();
|
|||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (firstInput.value) firstInput.value.focus();
|
if (firstInput.value) firstInput.value.focus();
|
||||||
}, 20);
|
}, 200);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -188,8 +188,6 @@ const deleteMisc = async () => {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(res);
|
|
||||||
|
|
||||||
const { status, response } = res;
|
const { status, response } = res;
|
||||||
|
|
||||||
if (status === 'success') {
|
if (status === 'success') {
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -189,6 +188,7 @@ import WorkspaceTabPropsFunctionParamsModal from '@/components/WorkspaceTabProps
|
|||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
import { FunctionInfos, FunctionParam } from 'common/interfaces/antares';
|
import { FunctionInfos, FunctionParam } from 'common/interfaces/antares';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -300,14 +300,10 @@ const hideParamsModal = () => {
|
|||||||
isParamsModal.value = false;
|
isParamsModal.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.isSelected, (val) => {
|
watch(() => props.isSelected, (val) => {
|
||||||
@ -341,19 +337,19 @@ setTimeout(() => {
|
|||||||
resizeQueryEditor();
|
resizeQueryEditor();
|
||||||
}, 50);
|
}, 50);
|
||||||
|
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.isSelected)
|
if (props.isSelected)
|
||||||
changeBreadcrumbs({ schema: props.schema });
|
changeBreadcrumbs({ schema: props.schema });
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
firstInput.value.focus();
|
firstInput.value.focus();
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -161,6 +160,7 @@ import WorkspaceTabPropsRoutineParamsModal from '@/components/WorkspaceTabPropsR
|
|||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
import { FunctionParam } from 'common/interfaces/antares';
|
import { FunctionParam } from 'common/interfaces/antares';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -272,14 +272,10 @@ const hideParamsModal = () => {
|
|||||||
isParamsModal.value = false;
|
isParamsModal.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.isSelected, (val) => {
|
watch(() => props.isSelected, (val) => {
|
||||||
@ -313,19 +309,19 @@ setTimeout(() => {
|
|||||||
resizeQueryEditor();
|
resizeQueryEditor();
|
||||||
}, 50);
|
}, 50);
|
||||||
|
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.isSelected)
|
if (props.isSelected)
|
||||||
changeBreadcrumbs({ schema: props.schema });
|
changeBreadcrumbs({ schema: props.schema });
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
firstInput.value.focus();
|
firstInput.value.focus();
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -138,6 +137,7 @@ import QueryEditor from '@/components/QueryEditor.vue';
|
|||||||
import WorkspaceTabPropsSchedulerTimingModal from '@/components/WorkspaceTabPropsSchedulerTimingModal.vue';
|
import WorkspaceTabPropsSchedulerTimingModal from '@/components/WorkspaceTabPropsSchedulerTimingModal.vue';
|
||||||
import Schedulers from '@/ipc-api/Schedulers';
|
import Schedulers from '@/ipc-api/Schedulers';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -259,14 +259,10 @@ const timingUpdate = (options: EventInfos) => {
|
|||||||
localScheduler.value = options;
|
localScheduler.value = options;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.isSelected, (val) => {
|
watch(() => props.isSelected, (val) => {
|
||||||
@ -298,19 +294,19 @@ setTimeout(() => {
|
|||||||
resizeQueryEditor();
|
resizeQueryEditor();
|
||||||
}, 50);
|
}, 50);
|
||||||
|
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.isSelected)
|
if (props.isSelected)
|
||||||
changeBreadcrumbs({ schema: props.schema });
|
changeBreadcrumbs({ schema: props.schema });
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
firstInput.value.focus();
|
firstInput.value.focus();
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged || !isValid"
|
:disabled="!isChanged || !isValid"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -175,6 +174,7 @@ import WorkspaceTabPropsTableForeignModal from '@/components/WorkspaceTabPropsTa
|
|||||||
import WorkspaceTabNewTableEmptyState from '@/components/WorkspaceTabNewTableEmptyState.vue';
|
import WorkspaceTabNewTableEmptyState from '@/components/WorkspaceTabNewTableEmptyState.vue';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
import { ConnectionParams, TableField, TableForeign, TableIndex, TableOptions } from 'common/interfaces/antares';
|
import { ConnectionParams, TableField, TableForeign, TableIndex, TableOptions } from 'common/interfaces/antares';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -420,14 +420,10 @@ const foreignsUpdate = (foreigns: TableForeign[]) => {
|
|||||||
localKeyUsage.value = foreigns;
|
localKeyUsage.value = foreigns;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.isSelected, (val) => {
|
watch(() => props.isSelected, (val) => {
|
||||||
@ -447,18 +443,19 @@ tableOptions.value = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
localOptions.value = JSON.parse(JSON.stringify(tableOptions.value));
|
localOptions.value = JSON.parse(JSON.stringify(tableOptions.value));
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.isSelected)
|
if (props.isSelected)
|
||||||
changeBreadcrumbs({ schema: props.schema });
|
changeBreadcrumbs({ schema: props.schema });
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
firstInput.value.focus();
|
firstInput.value.focus();
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -126,6 +125,7 @@ import QueryEditor from '@/components/QueryEditor.vue';
|
|||||||
import BaseLoader from '@/components/BaseLoader.vue';
|
import BaseLoader from '@/components/BaseLoader.vue';
|
||||||
import Triggers from '@/ipc-api/Triggers';
|
import Triggers from '@/ipc-api/Triggers';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -268,14 +268,10 @@ const resizeQueryEditor = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.isSelected, (val) => {
|
watch(() => props.isSelected, (val) => {
|
||||||
@ -305,12 +301,12 @@ setTimeout(() => {
|
|||||||
resizeQueryEditor();
|
resizeQueryEditor();
|
||||||
}, 50);
|
}, 50);
|
||||||
|
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.isSelected)
|
if (props.isSelected)
|
||||||
changeBreadcrumbs({ schema: props.schema });
|
changeBreadcrumbs({ schema: props.schema });
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
firstInput.value.focus();
|
firstInput.value.focus();
|
||||||
}, 100);
|
}, 100);
|
||||||
@ -323,6 +319,6 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -105,6 +104,7 @@ import BaseLoader from '@/components/BaseLoader.vue';
|
|||||||
import QueryEditor from '@/components/QueryEditor.vue';
|
import QueryEditor from '@/components/QueryEditor.vue';
|
||||||
import Functions from '@/ipc-api/Functions';
|
import Functions from '@/ipc-api/Functions';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -203,14 +203,10 @@ const resizeQueryEditor = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
originalFunction.value = {
|
originalFunction.value = {
|
||||||
@ -237,12 +233,12 @@ setTimeout(() => {
|
|||||||
resizeQueryEditor();
|
resizeQueryEditor();
|
||||||
}, 50);
|
}, 50);
|
||||||
|
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.isSelected)
|
if (props.isSelected)
|
||||||
changeBreadcrumbs({ schema: props.schema });
|
changeBreadcrumbs({ schema: props.schema });
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
firstInput.value.focus();
|
firstInput.value.focus();
|
||||||
}, 100);
|
}, 100);
|
||||||
@ -255,6 +251,6 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -115,6 +114,7 @@ import BaseLoader from '@/components/BaseLoader.vue';
|
|||||||
import QueryEditor from '@/components/QueryEditor.vue';
|
import QueryEditor from '@/components/QueryEditor.vue';
|
||||||
import Views from '@/ipc-api/Views';
|
import Views from '@/ipc-api/Views';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -216,14 +216,10 @@ const resizeQueryEditor = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.isSelected, (val) => {
|
watch(() => props.isSelected, (val) => {
|
||||||
@ -259,12 +255,12 @@ setTimeout(() => {
|
|||||||
resizeQueryEditor();
|
resizeQueryEditor();
|
||||||
}, 50);
|
}, 50);
|
||||||
|
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.isSelected)
|
if (props.isSelected)
|
||||||
changeBreadcrumbs({ schema: props.schema });
|
changeBreadcrumbs({ schema: props.schema });
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
firstInput.value.focus();
|
firstInput.value.focus();
|
||||||
}, 100);
|
}, 100);
|
||||||
@ -277,7 +273,7 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -207,6 +206,7 @@ import Functions from '@/ipc-api/Functions';
|
|||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { AlterFunctionParams, FunctionInfos, FunctionParam } from 'common/interfaces/antares';
|
import { AlterFunctionParams, FunctionInfos, FunctionParam } from 'common/interfaces/antares';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -407,14 +407,10 @@ const hideAskParamsModal = () => {
|
|||||||
isAskingParameters.value = false;
|
isAskingParameters.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.keyCode === 83) { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.schema, async () => {
|
watch(() => props.schema, async () => {
|
||||||
@ -457,11 +453,12 @@ watch(consoleHeight, () => {
|
|||||||
(async () => {
|
(async () => {
|
||||||
await getFunctionData();
|
await getFunctionData();
|
||||||
queryEditor.value.editor.session.setValue(localFunction.value.sql);
|
queryEditor.value.editor.session.setValue(localFunction.value.sql);
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.addEventListener('resize', resizeQueryEditor);
|
window.addEventListener('resize', resizeQueryEditor);
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
@ -469,6 +466,6 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -179,6 +178,7 @@ import BaseLoader from '@/components/BaseLoader.vue';
|
|||||||
import WorkspaceTabPropsRoutineParamsModal from '@/components/WorkspaceTabPropsRoutineParamsModal.vue';
|
import WorkspaceTabPropsRoutineParamsModal from '@/components/WorkspaceTabPropsRoutineParamsModal.vue';
|
||||||
import ModalAskParameters from '@/components/ModalAskParameters.vue';
|
import ModalAskParameters from '@/components/ModalAskParameters.vue';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -377,14 +377,10 @@ const hideAskParamsModal = () => {
|
|||||||
isAskingParameters.value = false;
|
isAskingParameters.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.schema, async () => {
|
watch(() => props.schema, async () => {
|
||||||
@ -427,11 +423,12 @@ watch(consoleHeight, () => {
|
|||||||
(async () => {
|
(async () => {
|
||||||
await getRoutineData();
|
await getRoutineData();
|
||||||
queryEditor.value.editor.session.setValue(localRoutine.value.sql);
|
queryEditor.value.editor.session.setValue(localRoutine.value.sql);
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.addEventListener('resize', resizeQueryEditor);
|
window.addEventListener('resize', resizeQueryEditor);
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
@ -439,7 +436,7 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -136,6 +135,7 @@ import QueryEditor from '@/components/QueryEditor.vue';
|
|||||||
import WorkspaceTabPropsSchedulerTimingModal from '@/components/WorkspaceTabPropsSchedulerTimingModal.vue';
|
import WorkspaceTabPropsSchedulerTimingModal from '@/components/WorkspaceTabPropsSchedulerTimingModal.vue';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
import Schedulers from '@/ipc-api/Schedulers';
|
import Schedulers from '@/ipc-api/Schedulers';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -295,14 +295,10 @@ const timingUpdate = (options: EventInfos) => {
|
|||||||
localScheduler.value = options;
|
localScheduler.value = options;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.schema, async () => {
|
watch(() => props.schema, async () => {
|
||||||
@ -345,11 +341,12 @@ watch(consoleHeight, () => {
|
|||||||
(async () => {
|
(async () => {
|
||||||
await getSchedulerData();
|
await getSchedulerData();
|
||||||
queryEditor.value.editor.session.setValue(localScheduler.value.sql);
|
queryEditor.value.editor.session.setValue(localScheduler.value.sql);
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.addEventListener('resize', resizeQueryEditor);
|
window.addEventListener('resize', resizeQueryEditor);
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
@ -357,7 +354,7 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -173,7 +172,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Component, computed, onBeforeUnmount, Ref, ref, watch } from 'vue';
|
import { Component, computed, onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';
|
||||||
import { AlterTableParams, TableField, TableForeign, TableIndex, TableInfos, TableOptions } from 'common/interfaces/antares';
|
import { AlterTableParams, TableField, TableForeign, TableIndex, TableInfos, TableOptions } from 'common/interfaces/antares';
|
||||||
import { storeToRefs } from 'pinia';
|
import { storeToRefs } from 'pinia';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
@ -186,6 +185,7 @@ import BaseSelect from '@/components/BaseSelect.vue';
|
|||||||
import WorkspaceTabPropsTableFields from '@/components/WorkspaceTabPropsTableFields.vue';
|
import WorkspaceTabPropsTableFields from '@/components/WorkspaceTabPropsTableFields.vue';
|
||||||
import WorkspaceTabPropsTableIndexesModal from '@/components/WorkspaceTabPropsTableIndexesModal.vue';
|
import WorkspaceTabPropsTableIndexesModal from '@/components/WorkspaceTabPropsTableIndexesModal.vue';
|
||||||
import WorkspaceTabPropsTableForeignModal from '@/components/WorkspaceTabPropsTableForeignModal.vue';
|
import WorkspaceTabPropsTableForeignModal from '@/components/WorkspaceTabPropsTableForeignModal.vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -646,14 +646,10 @@ const foreignsUpdate = (foreigns: TableForeign[]) => {
|
|||||||
localKeyUsage.value = foreigns;
|
localKeyUsage.value = foreigns;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.schema, () => {
|
watch(() => props.schema, () => {
|
||||||
@ -684,9 +680,12 @@ watch(isChanged, (val) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
getFieldsData();
|
getFieldsData();
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
onMounted(() => {
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -126,6 +125,7 @@ import QueryEditor from '@/components/QueryEditor.vue';
|
|||||||
import BaseLoader from '@/components/BaseLoader.vue';
|
import BaseLoader from '@/components/BaseLoader.vue';
|
||||||
import Triggers from '@/ipc-api/Triggers';
|
import Triggers from '@/ipc-api/Triggers';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
type TriggerEventName = 'INSERT' | 'UPDATE' | 'DELETE'
|
type TriggerEventName = 'INSERT' | 'UPDATE' | 'DELETE'
|
||||||
|
|
||||||
@ -318,14 +318,10 @@ const resizeQueryEditor = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.schema, async () => {
|
watch(() => props.schema, async () => {
|
||||||
@ -359,11 +355,12 @@ watch(consoleHeight, () => {
|
|||||||
(async () => {
|
(async () => {
|
||||||
await getTriggerData();
|
await getTriggerData();
|
||||||
queryEditor.value.editor.session.setValue(localTrigger.value.sql);
|
queryEditor.value.editor.session.setValue(localTrigger.value.sql);
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.addEventListener('resize', resizeQueryEditor);
|
window.addEventListener('resize', resizeQueryEditor);
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
@ -371,6 +368,6 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -93,6 +92,7 @@ import QueryEditor from '@/components/QueryEditor.vue';
|
|||||||
import Functions from '@/ipc-api/Functions';
|
import Functions from '@/ipc-api/Functions';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
import { AlterFunctionParams, TriggerFunctionInfos } from 'common/interfaces/antares';
|
import { AlterFunctionParams, TriggerFunctionInfos } from 'common/interfaces/antares';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -223,14 +223,10 @@ const resizeQueryEditor = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.schema, async () => {
|
watch(() => props.schema, async () => {
|
||||||
@ -264,11 +260,12 @@ watch(isChanged, (val) => {
|
|||||||
(async () => {
|
(async () => {
|
||||||
await getFunctionData();
|
await getFunctionData();
|
||||||
queryEditor.value.editor.session.setValue(localFunction.value.sql);
|
queryEditor.value.editor.session.setValue(localFunction.value.sql);
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.addEventListener('resize', resizeQueryEditor);
|
window.addEventListener('resize', resizeQueryEditor);
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
@ -276,6 +273,6 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:disabled="!isChanged"
|
:disabled="!isChanged"
|
||||||
:class="{'loading':isSaving}"
|
:class="{'loading':isSaving}"
|
||||||
title="CTRL+S"
|
|
||||||
@click="saveChanges"
|
@click="saveChanges"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
<i class="mdi mdi-24px mdi-content-save mr-1" />
|
||||||
@ -112,6 +111,7 @@ import BaseLoader from '@/components/BaseLoader.vue';
|
|||||||
import QueryEditor from '@/components/QueryEditor.vue';
|
import QueryEditor from '@/components/QueryEditor.vue';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
import Views from '@/ipc-api/Views';
|
import Views from '@/ipc-api/Views';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -245,14 +245,10 @@ const resizeQueryEditor = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
const saveContentListener = () => {
|
||||||
if (props.isSelected) {
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
e.stopPropagation();
|
if (props.isSelected && !hasModalOpen && isChanged.value)
|
||||||
if (e.ctrlKey && e.key === 's') { // CTRL + S
|
|
||||||
if (isChanged.value)
|
|
||||||
saveChanges();
|
saveChanges();
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(() => props.schema, async () => {
|
watch(() => props.schema, async () => {
|
||||||
@ -288,11 +284,12 @@ watch(isChanged, (val) => {
|
|||||||
(async () => {
|
(async () => {
|
||||||
await getViewData();
|
await getViewData();
|
||||||
queryEditor.value.editor.session.setValue(localView.value.sql);
|
queryEditor.value.editor.session.setValue(localView.value.sql);
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.addEventListener('resize', resizeQueryEditor);
|
window.addEventListener('resize', resizeQueryEditor);
|
||||||
|
|
||||||
|
ipcRenderer.on('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
@ -300,6 +297,6 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
ipcRenderer.removeListener('save-content', saveContentListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -3,11 +3,6 @@
|
|||||||
v-show="isSelected"
|
v-show="isSelected"
|
||||||
class="workspace-query-tab column col-12 columns col-gapless no-outline p-0"
|
class="workspace-query-tab column col-12 columns col-gapless no-outline p-0"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
@keydown.f5="runQuery(query)"
|
|
||||||
@keydown.k="killTabQuery"
|
|
||||||
@keydown.ctrl.alt.w="clear"
|
|
||||||
@keydown.ctrl.b="beautify"
|
|
||||||
@keydown.ctrl.g="openHistoryModal"
|
|
||||||
>
|
>
|
||||||
<div class="workspace-query-runner column col-12">
|
<div class="workspace-query-runner column col-12">
|
||||||
<QueryEditor
|
<QueryEditor
|
||||||
@ -40,7 +35,6 @@
|
|||||||
class="btn btn-primary btn-sm"
|
class="btn btn-primary btn-sm"
|
||||||
:class="{'loading':isQuering}"
|
:class="{'loading':isQuering}"
|
||||||
:disabled="!query"
|
:disabled="!query"
|
||||||
title="F5"
|
|
||||||
@click="runQuery(query)"
|
@click="runQuery(query)"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-play pr-1" />
|
<i class="mdi mdi-24px mdi-play pr-1" />
|
||||||
@ -68,7 +62,6 @@
|
|||||||
<button
|
<button
|
||||||
class="btn btn-link btn-sm mr-0"
|
class="btn btn-link btn-sm mr-0"
|
||||||
:disabled="!query || isQuering"
|
:disabled="!query || isQuering"
|
||||||
title="CTRL+W"
|
|
||||||
@click="clear()"
|
@click="clear()"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-delete-sweep pr-1" />
|
<i class="mdi mdi-24px mdi-delete-sweep pr-1" />
|
||||||
@ -80,7 +73,6 @@
|
|||||||
<button
|
<button
|
||||||
class="btn btn-dark btn-sm"
|
class="btn btn-dark btn-sm"
|
||||||
:disabled="!query || isQuering"
|
:disabled="!query || isQuering"
|
||||||
title="CTRL+B"
|
|
||||||
@click="beautify()"
|
@click="beautify()"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-brush pr-1" />
|
<i class="mdi mdi-24px mdi-brush pr-1" />
|
||||||
@ -89,7 +81,6 @@
|
|||||||
<button
|
<button
|
||||||
class="btn btn-dark btn-sm"
|
class="btn btn-dark btn-sm"
|
||||||
:disabled="isQuering"
|
:disabled="isQuering"
|
||||||
title="CTRL+G"
|
|
||||||
@click="openHistoryModal()"
|
@click="openHistoryModal()"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-history pr-1" />
|
<i class="mdi mdi-24px mdi-history pr-1" />
|
||||||
@ -206,6 +197,7 @@ import WorkspaceTabQueryTable from '@/components/WorkspaceTabQueryTable.vue';
|
|||||||
import WorkspaceTabQueryEmptyState from '@/components/WorkspaceTabQueryEmptyState.vue';
|
import WorkspaceTabQueryEmptyState from '@/components/WorkspaceTabQueryEmptyState.vue';
|
||||||
import ModalHistory from '@/components/ModalHistory.vue';
|
import ModalHistory from '@/components/ModalHistory.vue';
|
||||||
import BaseSelect from '@/components/BaseSelect.vue';
|
import BaseSelect from '@/components/BaseSelect.vue';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -427,7 +419,8 @@ const beautify = () => {
|
|||||||
const formattedQuery = format(query.value, {
|
const formattedQuery = format(query.value, {
|
||||||
language,
|
language,
|
||||||
uppercase: true
|
uppercase: true
|
||||||
});
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
|
} as any);
|
||||||
queryEditor.value.editor.session.setValue(formattedQuery);
|
queryEditor.value.editor.session.setValue(formattedQuery);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -499,12 +492,47 @@ selectedSchema.value = props.tab.schema || breadcrumbsSchema.value;
|
|||||||
if (!databaseSchemas.value.includes(selectedSchema.value))
|
if (!databaseSchemas.value.includes(selectedSchema.value))
|
||||||
selectedSchema.value = null;
|
selectedSchema.value = null;
|
||||||
|
|
||||||
// window.addEventListener('keydown', onKey);
|
|
||||||
window.addEventListener('resize', onWindowResize);
|
window.addEventListener('resize', onWindowResize);
|
||||||
|
|
||||||
|
const reloadListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
runQuery(query.value);
|
||||||
|
};
|
||||||
|
|
||||||
|
const formatListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
beautify();
|
||||||
|
};
|
||||||
|
|
||||||
|
const killQueryListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
killTabQuery();
|
||||||
|
};
|
||||||
|
|
||||||
|
const clearQueryListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
clear();
|
||||||
|
};
|
||||||
|
|
||||||
|
const historyListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
openHistoryModal();
|
||||||
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const localResizer = resizer.value;
|
const localResizer = resizer.value;
|
||||||
|
|
||||||
|
ipcRenderer.on('run-or-reload', reloadListener);
|
||||||
|
ipcRenderer.on('format-query', formatListener);
|
||||||
|
ipcRenderer.on('kill-query', killQueryListener);
|
||||||
|
ipcRenderer.on('clear-query', clearQueryListener);
|
||||||
|
ipcRenderer.on('query-history', historyListener);
|
||||||
|
|
||||||
localResizer.addEventListener('mousedown', (e: MouseEvent) => {
|
localResizer.addEventListener('mousedown', (e: MouseEvent) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
@ -518,12 +546,17 @@ onMounted(() => {
|
|||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('resize', onWindowResize);
|
window.removeEventListener('resize', onWindowResize);
|
||||||
// window.removeEventListener('keydown', onKey);
|
|
||||||
const params = {
|
const params = {
|
||||||
uid: props.connection.uid,
|
uid: props.connection.uid,
|
||||||
tabUid: props.tab.uid
|
tabUid: props.tab.uid
|
||||||
};
|
};
|
||||||
Schema.destroyConnectionToCommit(params);
|
Schema.destroyConnectionToCommit(params);
|
||||||
|
|
||||||
|
ipcRenderer.removeListener('run-or-reload', reloadListener);
|
||||||
|
ipcRenderer.removeListener('format-query', formatListener);
|
||||||
|
ipcRenderer.removeListener('kill-query', killQueryListener);
|
||||||
|
ipcRenderer.removeListener('clear-query', clearQueryListener);
|
||||||
|
ipcRenderer.removeListener('query-history', historyListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<button
|
<button
|
||||||
class="btn btn-dark btn-sm mr-0 pr-1"
|
class="btn btn-dark btn-sm mr-0 pr-1"
|
||||||
:class="{'loading':isQuering}"
|
:class="{'loading':isQuering}"
|
||||||
:title="`${t('word.refresh')} (F5)`"
|
:title="`${t('word.refresh')}`"
|
||||||
@click="reloadTable"
|
@click="reloadTable"
|
||||||
>
|
>
|
||||||
<i v-if="!+autorefreshTimer" class="mdi mdi-24px mdi-refresh mr-1" />
|
<i v-if="!+autorefreshTimer" class="mdi mdi-24px mdi-refresh mr-1" />
|
||||||
@ -35,7 +35,7 @@
|
|||||||
<button
|
<button
|
||||||
class="btn btn-dark btn-sm mr-0"
|
class="btn btn-dark btn-sm mr-0"
|
||||||
:disabled="isQuering || page === 1"
|
:disabled="isQuering || page === 1"
|
||||||
title="CTRL+ᐊ"
|
:title="t('message.previousResultsPage')"
|
||||||
@click="pageChange('prev')"
|
@click="pageChange('prev')"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-skip-previous" />
|
<i class="mdi mdi-24px mdi-skip-previous" />
|
||||||
@ -61,7 +61,7 @@
|
|||||||
<button
|
<button
|
||||||
class="btn btn-dark btn-sm mr-0"
|
class="btn btn-dark btn-sm mr-0"
|
||||||
:disabled="isQuering || (results.length && results[0].rows.length < limit)"
|
:disabled="isQuering || (results.length && results[0].rows.length < limit)"
|
||||||
title="CTRL+ᐅ"
|
:title="t('message.nextResultsPage')"
|
||||||
@click="pageChange('next')"
|
@click="pageChange('next')"
|
||||||
>
|
>
|
||||||
<i class="mdi mdi-24px mdi-skip-next" />
|
<i class="mdi mdi-24px mdi-skip-next" />
|
||||||
@ -72,7 +72,7 @@
|
|||||||
|
|
||||||
<button
|
<button
|
||||||
class="btn btn-sm"
|
class="btn btn-sm"
|
||||||
:title="`${t('word.filter')} (CTRL+F)`"
|
:title="t('word.filter')"
|
||||||
:class="{'btn-primary': isSearch, 'btn-dark': !isSearch}"
|
:class="{'btn-primary': isSearch, 'btn-dark': !isSearch}"
|
||||||
@click="isSearch = !isSearch"
|
@click="isSearch = !isSearch"
|
||||||
>
|
>
|
||||||
@ -190,6 +190,7 @@ import ModalFakerRows from '@/components/ModalFakerRows.vue';
|
|||||||
import { ConnectionParams } from 'common/interfaces/antares';
|
import { ConnectionParams } from 'common/interfaces/antares';
|
||||||
import { TableFilterClausole } from 'common/interfaces/tableApis';
|
import { TableFilterClausole } from 'common/interfaces/tableApis';
|
||||||
import { useFilters } from '@/composables/useFilters';
|
import { useFilters } from '@/composables/useFilters';
|
||||||
|
import { ipcRenderer } from 'electron';
|
||||||
|
|
||||||
const { localeString } = useFilters();
|
const { localeString } = useFilters();
|
||||||
|
|
||||||
@ -342,7 +343,6 @@ const pageChange = (direction: 'prev' | 'next') => {
|
|||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
const showFakerModal = (row?: any) => {
|
const showFakerModal = (row?: any) => {
|
||||||
console.log(row);
|
|
||||||
if (isQuering.value) return;
|
if (isQuering.value) return;
|
||||||
isFakerModal.value = true;
|
isFakerModal.value = true;
|
||||||
rowToDuplicate.value = row;
|
rowToDuplicate.value = row;
|
||||||
@ -353,23 +353,6 @@ const hideFakerModal = () => {
|
|||||||
rowToDuplicate.value = null;
|
rowToDuplicate.value = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onKey = (e: KeyboardEvent) => {
|
|
||||||
if (props.isSelected) {
|
|
||||||
e.stopPropagation();
|
|
||||||
if (e.key === 'F5')
|
|
||||||
reloadTable();
|
|
||||||
|
|
||||||
if (e.ctrlKey || e.metaKey) {
|
|
||||||
if (e.key === 'ArrowRight')
|
|
||||||
pageChange('next');
|
|
||||||
if (e.key === 'ArrowLeft')
|
|
||||||
pageChange('prev');
|
|
||||||
if (e.key === 'f')
|
|
||||||
isSearch.value = !isSearch.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const setRefreshInterval = () => {
|
const setRefreshInterval = () => {
|
||||||
if (refreshInterval.value)
|
if (refreshInterval.value)
|
||||||
clearInterval(refreshInterval.value);
|
clearInterval(refreshInterval.value);
|
||||||
@ -401,6 +384,30 @@ const updateFilters = (clausoles: TableFilterClausole[]) => {
|
|||||||
getTableData();
|
getTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const reloadListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
reloadTable();
|
||||||
|
};
|
||||||
|
|
||||||
|
const openFilterListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
isSearch.value = !isSearch.value;
|
||||||
|
};
|
||||||
|
|
||||||
|
const nextPageListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
pageChange('next');
|
||||||
|
};
|
||||||
|
|
||||||
|
const prevPageListener = () => {
|
||||||
|
const hasModalOpen = !!document.querySelectorAll('.modal.active').length;
|
||||||
|
if (props.isSelected && !hasModalOpen)
|
||||||
|
pageChange('prev');
|
||||||
|
};
|
||||||
|
|
||||||
const hasApproximately = computed(() => {
|
const hasApproximately = computed(() => {
|
||||||
return results.value.length &&
|
return results.value.length &&
|
||||||
results.value[0].rows &&
|
results.value[0].rows &&
|
||||||
@ -457,10 +464,17 @@ watch(isSearch, (val) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
getTableData();
|
getTableData();
|
||||||
window.addEventListener('keydown', onKey);
|
|
||||||
|
ipcRenderer.on('run-or-reload', reloadListener);
|
||||||
|
ipcRenderer.on('open-filter', openFilterListener);
|
||||||
|
ipcRenderer.on('next-page', nextPageListener);
|
||||||
|
ipcRenderer.on('prev-page', prevPageListener);
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('keydown', onKey);
|
|
||||||
clearInterval(refreshInterval.value);
|
clearInterval(refreshInterval.value);
|
||||||
|
ipcRenderer.removeListener('run-or-reload', reloadListener);
|
||||||
|
ipcRenderer.removeListener('open-filter', openFilterListener);
|
||||||
|
ipcRenderer.removeListener('next-page', nextPageListener);
|
||||||
|
ipcRenderer.removeListener('prev-page', prevPageListener);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -319,7 +319,10 @@ export const enUS = {
|
|||||||
runOrReload: 'Run or reload',
|
runOrReload: 'Run or reload',
|
||||||
formatQuery: 'Format query',
|
formatQuery: 'Format query',
|
||||||
queryHistory: 'Query history',
|
queryHistory: 'Query history',
|
||||||
clearQuery: 'Clear query'
|
clearQuery: 'Clear query',
|
||||||
|
openFilter: 'Open filter',
|
||||||
|
nextResultsPage: 'Next results page',
|
||||||
|
previousResultsPage: 'Previous results page'
|
||||||
},
|
},
|
||||||
faker: {
|
faker: {
|
||||||
address: 'Address',
|
address: 'Address',
|
||||||
|
Reference in New Issue
Block a user