mirror of https://github.com/Fabio286/antares.git
Merge pull request #520 from dyaskur/master
add copy shortcut and default copy type setting
This commit is contained in:
commit
5624b3b2d7
|
@ -210,6 +210,28 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="column col-12 h6 mt-4 text-uppercase mb-1">
|
||||||
|
{{ t('word.resultsTable') }}
|
||||||
|
</div>
|
||||||
|
<div class="column col-12 col-sm-12 columns">
|
||||||
|
<div class="form-group column col-12">
|
||||||
|
<div class="col-5 col-sm-12">
|
||||||
|
<label class="form-label">
|
||||||
|
{{ t('message.defaultCopyType') }}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="col-3 col-sm-12">
|
||||||
|
<BaseSelect
|
||||||
|
v-model="defaultCopyType"
|
||||||
|
class="form-select"
|
||||||
|
:options="copyTypes"
|
||||||
|
option-track-by="code"
|
||||||
|
option-label="name"
|
||||||
|
@change="changeDefaultCopyType(defaultCopyType)"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -393,6 +415,7 @@ const {
|
||||||
autoComplete: selectedAutoComplete,
|
autoComplete: selectedAutoComplete,
|
||||||
lineWrap: selectedLineWrap,
|
lineWrap: selectedLineWrap,
|
||||||
executeSelected: selectedExecuteSelected,
|
executeSelected: selectedExecuteSelected,
|
||||||
|
defaultCopyType: selectedCopyType,
|
||||||
notificationsTimeout,
|
notificationsTimeout,
|
||||||
restoreTabs,
|
restoreTabs,
|
||||||
disableBlur,
|
disableBlur,
|
||||||
|
@ -416,7 +439,8 @@ const {
|
||||||
changeApplicationTheme,
|
changeApplicationTheme,
|
||||||
changeEditorTheme,
|
changeEditorTheme,
|
||||||
changeEditorFontSize,
|
changeEditorFontSize,
|
||||||
updateNotificationsTimeout
|
updateNotificationsTimeout,
|
||||||
|
changeDefaultCopyType
|
||||||
} = settingsStore;
|
} = settingsStore;
|
||||||
const {
|
const {
|
||||||
hideSettingModal: closeModal,
|
hideSettingModal: closeModal,
|
||||||
|
@ -448,6 +472,7 @@ ORDER BY
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const localLocale: Ref<AvailableLocale> = ref(null);
|
const localLocale: Ref<AvailableLocale> = ref(null);
|
||||||
|
const defaultCopyType: Ref<string> = ref(null);
|
||||||
const localPageSize: Ref<number> = ref(null);
|
const localPageSize: Ref<number> = ref(null);
|
||||||
const localTimeout: Ref<number> = ref(null);
|
const localTimeout: Ref<number> = ref(null);
|
||||||
const localEditorTheme: Ref<string> = ref(null);
|
const localEditorTheme: Ref<string> = ref(null);
|
||||||
|
@ -511,6 +536,14 @@ const locales = computed(() => {
|
||||||
return locales;
|
return locales;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const copyTypes = computed(() => [
|
||||||
|
{ code: 'cell', name: t('word.cell') },
|
||||||
|
{ code: 'html', name: t('word.table') },
|
||||||
|
{ code: 'json', name: 'JSON' },
|
||||||
|
{ code: 'csv', name: 'CSV' },
|
||||||
|
{ code: 'sql', name: 'SQL insert' }
|
||||||
|
]);
|
||||||
|
|
||||||
const hasUpdates = computed(() => ['available', 'downloading', 'downloaded', 'link'].includes(updateStatus.value));
|
const hasUpdates = computed(() => ['available', 'downloading', 'downloaded', 'link'].includes(updateStatus.value));
|
||||||
|
|
||||||
const workspace = computed(() => {
|
const workspace = computed(() => {
|
||||||
|
@ -570,6 +603,7 @@ const toggleExecuteSelected = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
localLocale.value = selectedLocale.value;
|
localLocale.value = selectedLocale.value;
|
||||||
|
defaultCopyType.value = selectedCopyType.value;
|
||||||
localPageSize.value = pageSize.value as number;
|
localPageSize.value = pageSize.value as number;
|
||||||
localTimeout.value = notificationsTimeout.value as number;
|
localTimeout.value = notificationsTimeout.value as number;
|
||||||
localEditorTheme.value = editorTheme.value as string;
|
localEditorTheme.value = editorTheme.value as string;
|
||||||
|
|
|
@ -142,7 +142,7 @@ const settingsStore = useSettingsStore();
|
||||||
const consoleStore = useConsoleStore();
|
const consoleStore = useConsoleStore();
|
||||||
const { getWorkspace } = useWorkspacesStore();
|
const { getWorkspace } = useWorkspacesStore();
|
||||||
|
|
||||||
const { dataTabLimit: pageSize } = storeToRefs(settingsStore);
|
const { dataTabLimit: pageSize, defaultCopyType } = storeToRefs(settingsStore);
|
||||||
|
|
||||||
const { consoleHeight } = storeToRefs(consoleStore);
|
const { consoleHeight } = storeToRefs(consoleStore);
|
||||||
|
|
||||||
|
@ -697,6 +697,18 @@ const onKey = async (e: KeyboardEvent) => {
|
||||||
if ((e.ctrlKey || e.metaKey) && e.code === 'KeyA' && !e.altKey)
|
if ((e.ctrlKey || e.metaKey) && e.code === 'KeyA' && !e.altKey)
|
||||||
selectAllRows(e);
|
selectAllRows(e);
|
||||||
|
|
||||||
|
if ((e.ctrlKey || e.metaKey) && e.code === 'KeyC' && !e.altKey) {
|
||||||
|
const copyType = defaultCopyType.value;
|
||||||
|
if (selectedRows.value.length >= 1) {
|
||||||
|
if (selectedRows.value.length === 1 && copyType === 'cell')
|
||||||
|
await navigator.clipboard.writeText(scrollElement.value.querySelector('.td.selected').innerText);
|
||||||
|
else if (selectedRows.value.length > 1 && copyType === 'cell')
|
||||||
|
copyRow('html');
|
||||||
|
else
|
||||||
|
copyRow(copyType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// row navigation stuff
|
// row navigation stuff
|
||||||
if (!(e.ctrlKey || e.metaKey) && (e.code.includes('Arrow') || e.code === 'Tab') && sortedResults.value.length > 0 && !e.altKey) {
|
if (!(e.ctrlKey || e.metaKey) && (e.code.includes('Arrow') || e.code === 'Tab') && sortedResults.value.length > 0 && !e.altKey) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
@ -148,7 +148,8 @@ export const enUS = {
|
||||||
appearence: 'Appearence',
|
appearence: 'Appearence',
|
||||||
color: 'Color',
|
color: 'Color',
|
||||||
label: 'Label',
|
label: 'Label',
|
||||||
icon: 'Icon'
|
icon: 'Icon',
|
||||||
|
resultsTable: 'Results table'
|
||||||
},
|
},
|
||||||
message: {
|
message: {
|
||||||
appWelcome: 'Welcome to Antares SQL Client!',
|
appWelcome: 'Welcome to Antares SQL Client!',
|
||||||
|
@ -333,7 +334,8 @@ export const enUS = {
|
||||||
folderName: 'Folder name',
|
folderName: 'Folder name',
|
||||||
deleteFolder: 'Delete folder',
|
deleteFolder: 'Delete folder',
|
||||||
editConnectionAppearence: 'Edit connection appearence',
|
editConnectionAppearence: 'Edit connection appearence',
|
||||||
executeSelectedQuery: 'Execute selected query'
|
executeSelectedQuery: 'Execute selected query',
|
||||||
|
defaultCopyType: 'Default copy type'
|
||||||
},
|
},
|
||||||
faker: {
|
faker: {
|
||||||
address: 'Address',
|
address: 'Address',
|
||||||
|
|
|
@ -333,7 +333,8 @@ export const idID = {
|
||||||
folderName: 'Nama folder',
|
folderName: 'Nama folder',
|
||||||
deleteFolder: 'Hapus folder',
|
deleteFolder: 'Hapus folder',
|
||||||
editConnectionAppearence: 'Ubah connection appearence',
|
editConnectionAppearence: 'Ubah connection appearence',
|
||||||
executeSelectedQuery: 'Eksekusi query yang dipilih'
|
executeSelectedQuery: 'Eksekusi query yang dipilih',
|
||||||
|
defaultCopyType: 'Jenis salin default'
|
||||||
},
|
},
|
||||||
faker: {
|
faker: {
|
||||||
address: 'Alamat',
|
address: 'Alamat',
|
||||||
|
|
|
@ -29,7 +29,8 @@ export const useSettingsStore = defineStore('settings', {
|
||||||
restoreTabs: settingsStore.get('restore_tabs', true) as boolean,
|
restoreTabs: settingsStore.get('restore_tabs', true) as boolean,
|
||||||
disableBlur: settingsStore.get('disable_blur', false) as boolean,
|
disableBlur: settingsStore.get('disable_blur', false) as boolean,
|
||||||
disableScratchpad: settingsStore.get('disable_scratchpad', false) as boolean,
|
disableScratchpad: settingsStore.get('disable_scratchpad', false) as boolean,
|
||||||
shortcuts: shortcutsStore.get('shortcuts', []) as ShortcutRecord[]
|
shortcuts: shortcutsStore.get('shortcuts', []) as ShortcutRecord[],
|
||||||
|
defaultCopyType: settingsStore.get('default_copy_type', 'cell') as string
|
||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
changeLocale (locale: AvailableLocale) {
|
changeLocale (locale: AvailableLocale) {
|
||||||
|
@ -92,6 +93,10 @@ export const useSettingsStore = defineStore('settings', {
|
||||||
},
|
},
|
||||||
updateShortcuts (shortcuts: ShortcutRecord[]) {
|
updateShortcuts (shortcuts: ShortcutRecord[]) {
|
||||||
this.shortcuts = shortcuts;
|
this.shortcuts = shortcuts;
|
||||||
|
},
|
||||||
|
changeDefaultCopyType (type: string) {
|
||||||
|
this.defaultCopyType = type;
|
||||||
|
settingsStore.set('default_copy_type', this.defaultCopyType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue