1
1
mirror of https://github.com/Fabio286/antares.git synced 2025-06-05 21:59:22 +02:00

Merge branch 'develop' into feat/ssh-keep-alive-interval

This commit is contained in:
Christian Ratz
2023-08-04 11:12:48 +02:00
committed by GitHub
91 changed files with 2430 additions and 2454 deletions

View File

@ -31,13 +31,13 @@
class="btn btn-primary mr-2"
@click.stop="confirmModal"
>
{{ confirmText || t('word.confirm') }}
{{ confirmText || t('general.confirm') }}
</button>
<button
class="btn btn-link"
@click="hideModal"
>
{{ cancelText || t('word.cancel') }}
{{ cancelText || t('general.cancel') }}
</button>
</div>
</div>

View File

@ -4,7 +4,7 @@
v-model="selectedGroup"
class="form-select"
:options="[{name: 'manual'}, ...fakerGroups]"
:option-label="(opt: any) => opt.name === 'manual' ? t('message.manualValue') : t(`faker.${opt.name}`)"
:option-label="(opt: any) => opt.name === 'manual' ? t('general.manualValue') : t(`faker.${opt.name}`)"
option-track-by="name"
:disabled="!isChecked"
:style="'flex-grow: 0;'"
@ -41,7 +41,7 @@
<BaseUploadInput
v-else-if="inputProps().type === 'file'"
:model-value="selectedValue"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="clearValue"
@change="filesChange($event)"
/>

View File

@ -4,7 +4,7 @@
class="form-input"
type="text"
:value="pressedKeys"
:placeholder="t('message.registerAShortcut')"
:placeholder="t('application.registerAShortcut')"
@focus="isFocus = true"
@blur="isFocus = false"
@keydown.prevent.stop="onKey"
@ -49,7 +49,7 @@ const pressedKeys = computed(() => {
keys.push('Shift');
if (keyboardEvent.value.code) {
if (keys.length === 0 && (keyboardEvent.value.key.length === 1 || singleKeysToIgnore.includes(keyboardEvent.value.key)))
return t('message.invalidShortcutMessage');
return t('application.invalidShortcutMessage');
else if (!specialKeys.includes(keyboardEvent.value.key)) {
if (keyboardEvent.value.key === 'Dead') {
keys.push(keyboardEvent.value.code
@ -82,7 +82,7 @@ const pressedKeys = computed(() => {
}
}
else
return t('message.invalidShortcutMessage');
return t('application.invalidShortcutMessage');
}
}
@ -96,7 +96,7 @@ const onKey = (e: KeyboardEvent) => {
};
watch(pressedKeys, (value) => {
if (value !== t('message.invalidShortcutMessage'))
if (value !== t('application.invalidShortcutMessage'))
emit('update:modelValue', pressedKeys.value);
});

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-apps mr-1" />
<span class="cut-text">{{ t('message.allConnections') }}</span>
<span class="cut-text">{{ t('connection.allConnections') }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -21,7 +21,7 @@
v-model="searchTerm"
class="form-input"
type="text"
:placeholder="t('message.searchForConnections')"
:placeholder="t('connection.searchForConnections')"
@keypress.esc="searchTerm = ''"
>
<i v-if="!searchTerm" class="form-icon mdi mdi-magnify mdi-18px pr-4" />
@ -58,7 +58,7 @@
<div class="all-connections-buttons p-absolute d-flex" :style="'top: 0; right: 0;'">
<i
class="all-connections-delete mdi mdi-delete mdi-18px ml-2"
:title="t('word.delete')"
:title="t('general.delete')"
@click.stop="askToDelete(connection)"
/>
</div>
@ -130,12 +130,12 @@
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-server-remove mr-1" /> {{ t('message.deleteConnection') }}
<i class="mdi mdi-24px mdi-server-remove mr-1" /> {{ t('connection.deleteConnection') }}
</div>
</template>
<template #body>
<div class="mb-2">
{{ t('message.deleteConfirm') }} <b>{{ selectedConnectionName }}</b>?
{{ t('general.deleteConfirm') }} <b>{{ selectedConnectionName }}</b>?
</div>
</template>
</ConfirmModal>

View File

@ -6,7 +6,7 @@
<div class="modal-header pl-2">
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-key-variant mr-1" /> {{ t('word.credentials') }}
<i class="mdi mdi-24px mdi-key-variant mr-1" /> {{ t('connection.credentials') }}
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -16,7 +16,7 @@
<form class="form-horizontal">
<div class="form-group">
<div class="col-3">
<label class="form-label">{{ t('word.user') }}</label>
<label class="form-label">{{ t('connection.user') }}</label>
</div>
<div class="col-9">
<input
@ -29,7 +29,7 @@
</div>
<div class="form-group">
<div class="col-3">
<label class="form-label">{{ t('word.password') }}</label>
<label class="form-label">{{ t('connection.password') }}</label>
</div>
<div class="col-9">
<input
@ -44,10 +44,10 @@
</div>
<div class="modal-footer">
<button class="btn btn-primary mr-2" @click.stop="sendCredentials">
{{ t('word.send') }}
{{ t('general.send') }}
</button>
<button class="btn btn-link" @click.stop="closeModal">
{{ t('word.close') }}
{{ t('general.close') }}
</button>
</div>
</div>

View File

@ -1,7 +1,7 @@
<template>
<ConfirmModal
:confirm-text="t('word.run')"
:cancel-text="t('word.cancel')"
:confirm-text="t('general.run')"
:cancel-text="t('general.cancel')"
size="400"
@confirm="runRoutine"
@hide="closeModal"
@ -9,7 +9,7 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-play mr-1" />
<span class="cut-text">{{ t('word.parameters') }}: {{ localRoutine.name }}</span>
<span class="cut-text">{{ t('database.parameters') }}: {{ localRoutine.name }}</span>
</div>
</template>
<template #body>

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-brush-variant mr-1" />
<span class="cut-text">{{ t('message.editConnectionAppearance') }}</span>
<span class="cut-text">{{ t('connection.editConnectionAppearance') }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -17,7 +17,7 @@
<form class="form-horizontal">
<div class="form-group mb-4">
<div class="col-3">
<label class="form-label">{{ t('word.label') }}</label>
<label class="form-label">{{ t('application.label') }}</label>
</div>
<div class="col-9">
<input
@ -31,7 +31,7 @@
</div>
<div class="form-group">
<div class="col-3">
<label class="form-label">{{ t('word.icon') }}</label>
<label class="form-label">{{ t('application.icon') }}</label>
</div>
<div class="col-9 icons-wrapper">
<div
@ -49,10 +49,10 @@
</div>
<div class="modal-footer">
<button class="btn btn-primary mr-2" @click.stop="editFolderAppearance">
{{ t('word.update') }}
{{ t('application.update') }}
</button>
<button class="btn btn-link" @click.stop="closeModal">
{{ t('word.close') }}
{{ t('general.close') }}
</button>
</div>
</div>

View File

@ -1,18 +1,18 @@
<template>
<ConfirmModal
:confirm-text="t('word.discard')"
:cancel-text="t('word.stay')"
:confirm-text="t('general.discard')"
:cancel-text="t('general.stay')"
@confirm="emit('confirm')"
@hide="emit('close')"
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-content-save-alert mr-1" /> {{ t('message.unsavedChanges') }}
<i class="mdi mdi-24px mdi-content-save-alert mr-1" /> {{ t('application.unsavedChanges') }}
</div>
</template>
<template #body>
<div>
{{ t('message.discardUnsavedChanges') }}
{{ t('application.discardUnsavedChanges') }}
</div>
</template>
</ConfirmModal>

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-database-edit mr-1" />
<span class="cut-text">{{ t('message.editSchema') }}</span>
<span class="cut-text">{{ t('database.editSchema') }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -17,7 +17,7 @@
<form class="form-horizontal">
<div class="form-group">
<div class="col-3">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
</div>
<div class="col-9">
<input
@ -26,14 +26,14 @@
class="form-input"
type="text"
required
:placeholder="t('message.schemaName')"
:placeholder="t('database.schemaName')"
readonly
>
</div>
</div>
<div class="form-group">
<div class="col-3">
<label class="form-label">{{ t('word.collation') }}</label>
<label class="form-label">{{ t('database.collation') }}</label>
</div>
<div class="col-9">
<BaseSelect
@ -44,7 +44,7 @@
option-label="collation"
option-track-by="collation"
/>
<small>{{ t('message.serverDefault') }}: {{ defaultCollation }}</small>
<small>{{ t('database.serverDefault') }}: {{ defaultCollation }}</small>
</div>
</div>
</form>
@ -52,10 +52,10 @@
</div>
<div class="modal-footer">
<button class="btn btn-primary mr-2" @click.stop="updateSchema">
{{ t('word.update') }}
{{ t('application.update') }}
</button>
<button class="btn btn-link" @click.stop="closeModal">
{{ t('word.close') }}
{{ t('general.close') }}
</button>
</div>
</div>

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-database-export mr-1" />
<span class="cut-text">{{ t('message.exportSchema') }}</span>
<span class="cut-text">{{ t('database.exportSchema') }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -16,7 +16,7 @@
<div class="container">
<div class="columns">
<div class="col-3">
<label class="form-label">{{ t('message.directoryPath') }}</label>
<label class="form-label">{{ t('general.directoryPath') }}</label>
</div>
<div class="col-9">
<fieldset class="input-group">
@ -26,14 +26,14 @@
type="text"
required
readonly
:placeholder="t('message.schemaName')"
:placeholder="t('database.schemaName')"
>
<button
type="button"
class="btn btn-primary input-group-btn"
@click.prevent="openPathDialog"
>
{{ t('word.change') }}
{{ t('general.change') }}
</button>
</fieldset>
</div>
@ -51,14 +51,14 @@
<div class="column col-auto col-ml-auto ">
<button
class="btn btn-dark btn-sm"
:title="t('word.refresh')"
:title="t('general.refresh')"
@click="refresh"
>
<i class="mdi mdi-database-refresh" />
</button>
<button
class="btn btn-dark btn-sm mx-1"
:title="t('message.uncheckAllTables')"
:title="t('database.uncheckAllTables')"
:disabled="isRefreshing"
@click="uncheckAllTables"
>
@ -66,7 +66,7 @@
</button>
<button
class="btn btn-dark btn-sm"
:title="t('message.checkAllTables')"
:title="t('database.checkAllTables')"
:disabled="isRefreshing"
@click="checkAllTables"
>
@ -122,22 +122,22 @@
<div class="tr">
<div class="th" :style="'width: 50%;'">
<div class="table-column-title">
<span>{{ t('word.table') }}</span>
<span>{{ t('database.table') }}</span>
</div>
</div>
<div class="th text-center">
<div class="table-column-title">
<span>{{ t('word.structure') }}</span>
<span>{{ t('database.structure') }}</span>
</div>
</div>
<div class="th text-center">
<div class="table-column-title">
<span>{{ t('word.content') }}</span>
<span>{{ t('general.content') }}</span>
</div>
</div>
<div class="th text-center">
<div class="table-column-title">
<span>{{ t('word.drop') }}</span>
<span>{{ t('database.drop') }}</span>
</div>
</div>
</div>
@ -183,19 +183,19 @@
</div>
<div class="column col-4">
<h5 class="h5">
{{ t('word.options') }}
{{ t('general.options') }}
</h5>
<span class="h6">{{ t('word.includes') }}:</span>
<span class="h6">{{ t('general.includes') }}:</span>
<label
v-for="(_, key) in options.includes"
:key="key"
class="form-checkbox"
>
<input v-model="options.includes[key]" type="checkbox"><i class="form-icon" /> {{ t(`word.${key}`, 2) }}
<input v-model="options.includes[key]" type="checkbox"><i class="form-icon" /> {{ t(`database.${String(key).slice(0, -1)}`, 2) }}
</label>
<div v-if="clientCustoms.exportByChunks">
<div class="h6 mt-4 mb-2">
{{ t('message.newInsertStmtEvery') }}:
{{ t('database.newInsertStmtEvery') }}:
</div>
<div class="columns">
<div class="column col-6">
@ -209,21 +209,21 @@
<BaseSelect
v-model="options.sqlInsertDivider"
class="form-select"
:options="[{value: 'bytes', label: 'KiB'}, {value: 'rows', label: t('word.row', 2)}]"
:options="[{value: 'bytes', label: 'KiB'}, {value: 'rows', label: t('database.row', 2)}]"
/>
</div>
</div>
</div>
<div class="h6 mb-2 mt-4">
{{ t('message.outputFormat') }}:
{{ t('general.outputFormat') }}:
</div>
<div class="columns">
<div class="column h5 mb-4">
<BaseSelect
v-model="options.outputFormat"
class="form-select"
:options="[{value: 'sql', label: t('message.singleFile', {ext: '.sql'})}, {value: 'sql.zip', label: t('message.zipCompressedFile', {ext: '.sql'})}]"
:options="[{value: 'sql', label: t('general.singleFile', {ext: '.sql'})}, {value: 'sql.zip', label: t('general.zipCompressedFile', {ext: '.sql'})}]"
/>
</div>
</div>
@ -245,7 +245,7 @@
</div>
<div class="column col-auto px-0">
<button class="btn btn-link" @click.stop="closeModal">
{{ t('word.close') }}
{{ t('general.close') }}
</button>
<button
class="btn btn-primary mr-2"
@ -254,7 +254,7 @@
autofocus
@click.prevent="startExport"
>
{{ t('word.export') }}
{{ t('database.export') }}
</button>
</div>
</div>
@ -362,7 +362,7 @@ const startExport = async () => {
try {
const { status, response } = await Schema.export(params);
if (status === 'success')
progressStatus.value = response.cancelled ? t('word.aborted') : t('word.completed');
progressStatus.value = response.cancelled ? t('general.aborted') : t('general.completed');
else {
progressStatus.value = response;
addNotification({ status: 'error', message: response });
@ -379,13 +379,13 @@ const updateProgress = (event: Event, state: ExportState) => {
progressPercentage.value = Number((state.currentItemIndex / state.totalItems * 100).toFixed(1));
switch (state.op) {
case 'PROCESSING':
progressStatus.value = t('message.processingTableExport', { table: state.currentItem });
progressStatus.value = t('database.processingTableExport', { table: state.currentItem });
break;
case 'FETCH':
progressStatus.value = t('message.fetchingTableExport', { table: state.currentItem });
progressStatus.value = t('database.fetchingTableExport', { table: state.currentItem });
break;
case 'WRITE':
progressStatus.value = t('message.writingTableExport', { table: state.currentItem });
progressStatus.value = t('database.writingTableExport', { table: state.currentItem });
break;
}
};

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-playlist-plus mr-1" />
<span class="cut-text">{{ t('message.insertRow', 2) }}</span>
<span class="cut-text">{{ t('database.insertRow', 2) }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -39,7 +39,7 @@
<span class="input-group-addon field-type" :class="typeClass(field.type)">
{{ field.type }} {{ wrapNumber(fieldLength(field)) }}
</span>
<label class="form-checkbox ml-3" :title="t('word.insert')">
<label class="form-checkbox ml-3" :title="t('general.insert')">
<input
type="checkbox"
:checked="!fieldsToExclude.includes(field.name)"
@ -55,7 +55,7 @@
</div>
<div class="modal-footer columns">
<div class="column d-flex" :class="hasFakes ? 'col-4' : 'col-2'">
<div class="input-group tooltip tooltip-right" :data-tooltip="t('message.numberOfInserts')">
<div class="input-group tooltip tooltip-right" :data-tooltip="t('database.numberOfInserts')">
<input
v-model="nInserts"
type="number"
@ -70,7 +70,7 @@
<div
v-if="hasFakes"
class="tooltip tooltip-right ml-2"
:data-tooltip="t('message.fakeDataLanguage')"
:data-tooltip="t('database.fakeDataLanguage')"
>
<BaseSelect
v-model="fakerLocale"
@ -85,10 +85,10 @@
:class="{'loading': isInserting}"
@click.stop="insertRows"
>
{{ t('word.insert') }}
{{ t('general.insert') }}
</button>
<button class="btn btn-link" @click.stop="closeModal">
{{ t('word.close') }}
{{ t('general.close') }}
</button>
</div>
</div>

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-folder-edit mr-1" />
<span class="cut-text">{{ t('message.editFolder') }}</span>
<span class="cut-text">{{ t('application.editFolder') }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -17,7 +17,7 @@
<form class="form-horizontal">
<div class="form-group mb-4">
<div class="col-3">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
</div>
<div class="col-9">
<input
@ -26,13 +26,13 @@
class="form-input"
type="text"
required
:placeholder="t('message.folderName')"
:placeholder="t('application.folderName')"
>
</div>
</div>
<div class="form-group">
<div class="col-3">
<label class="form-label">{{ t('word.color') }}</label>
<label class="form-label">{{ t('application.color') }}</label>
</div>
<div class="col-9 color-wrapper">
<div
@ -52,10 +52,10 @@
</div>
<div class="modal-footer">
<button class="btn btn-primary mr-2" @click.stop="editFolderAppearance">
{{ t('word.update') }}
{{ t('application.update') }}
</button>
<button class="btn btn-link" @click.stop="closeModal">
{{ t('word.close') }}
{{ t('general.close') }}
</button>
</div>
</div>

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-history mr-1" />
<span class="cut-text">{{ t('word.history') }}: {{ connectionName }}</span>
<span class="cut-text">{{ t('general.history') }}: {{ connectionName }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -22,7 +22,7 @@
v-model="searchTerm"
class="form-input"
type="text"
:placeholder="t('message.searchForQueries')"
:placeholder="t('database.searchForQueries')"
>
<i v-if="!searchTerm" class="form-icon mdi mdi-magnify mdi-18px pr-4" />
<i
@ -67,13 +67,13 @@
<small class="tile-subtitle">{{ query.schema }} · {{ formatDate(query.date) }}</small>
<div class="tile-history-buttons">
<button class="btn btn-link pl-1" @click.stop="$emit('select-query', query.sql)">
<i class="mdi mdi-open-in-app pr-1" /> {{ t('word.select') }}
<i class="mdi mdi-open-in-app pr-1" /> {{ t('general.select') }}
</button>
<button class="btn btn-link pl-1" @click="copyQuery(query.sql)">
<i class="mdi mdi-content-copy pr-1" /> {{ t('word.copy') }}
<i class="mdi mdi-content-copy pr-1" /> {{ t('general.copy') }}
</button>
<button class="btn btn-link pl-1" @click="deleteQuery(query)">
<i class="mdi mdi-delete-forever pr-1" /> {{ t('word.delete') }}
<i class="mdi mdi-delete-forever pr-1" /> {{ t('general.delete') }}
</button>
</div>
</div>
@ -88,7 +88,7 @@
<i class="mdi mdi-history mdi-48px" />
</div>
<p class="empty-title h5">
{{ t('message.thereIsNoQueriesYet') }}
{{ t('database.thereIsNoQueriesYet') }}
</p>
</div>
</div>

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-database-import mr-1" />
<span class="cut-text">{{ t('message.importSchema') }}</span>
<span class="cut-text">{{ t('database.importSchema') }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -15,7 +15,7 @@
<div class="modal-body pb-0">
{{ sqlFile }}
<div v-if="queryErrors.length > 0" class="mt-2">
<label>{{ t('message.importQueryErrors', queryErrors.length) }}</label>
<label>{{ t('database.importQueryErrors', queryErrors.length) }}</label>
<textarea
v-model="formattedQueryErrors"
class="form-input"
@ -28,7 +28,7 @@
<div class="column col modal-progress-wrapper text-left">
<div class="import-progress">
<span class="progress-status">
{{ progressPercentage }}% - {{ progressStatus }} - {{ t('message.executedQueries', queryCount) }}
{{ progressPercentage }}% - {{ progressStatus }} - {{ t('database.executedQueries', queryCount) }}
</span>
<progress
class="progress d-block"
@ -39,7 +39,7 @@
</div>
<div class="column col-auto px-0">
<button class="btn btn-link" @click.stop="closeModal">
{{ completed ? t('word.close') : t('word.cancel') }}
{{ completed ? t('general.close') : t('general.cancel') }}
</button>
</div>
</div>
@ -108,7 +108,7 @@ const startImport = async (file: string) => {
const { status, response } = await Schema.import(params);
if (status === 'success')
progressStatus.value = response.cancelled ? t('word.aborted') : t('word.completed');
progressStatus.value = response.cancelled ? t('general.aborted') : t('general.completed');
else {
progressStatus.value = response;
addNotification({ status: 'error', message: response });

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-database-plus mr-1" />
<span class="cut-text">{{ t('message.createNewSchema') }}</span>
<span class="cut-text">{{ t('database.createNewSchema') }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -17,7 +17,7 @@
<form class="form-horizontal" @submit.prevent="createSchema">
<div class="form-group">
<div class="col-3">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
</div>
<div class="col-9">
<input
@ -26,13 +26,13 @@
class="form-input"
type="text"
required
:placeholder="t('message.schemaName')"
:placeholder="t('database.schemaName')"
>
</div>
</div>
<div v-if="customizations.collations" class="form-group">
<div class="col-3">
<label class="form-label">{{ t('word.collation') }}</label>
<label class="form-label">{{ t('database.collation') }}</label>
</div>
<div class="col-9">
<BaseSelect
@ -43,7 +43,7 @@
option-label="collation"
option-track-by="collation"
/>
<small>{{ t('message.serverDefault') }}: {{ defaultCollation }}</small>
<small>{{ t('database.serverDefault') }}: {{ defaultCollation }}</small>
</div>
</div>
</form>
@ -55,10 +55,10 @@
:class="{'loading': isLoading}"
@click.stop="createSchema"
>
{{ t('word.add') }}
{{ t('general.add') }}
</button>
<button class="btn btn-link" @click.stop="closeModal">
{{ t('word.close') }}
{{ t('general.close') }}
</button>
</div>
</div>

View File

@ -17,7 +17,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-memory mr-1" />
<span class="cut-text">{{ t('message.processesList') }}: {{ connectionName }}</span>
<span class="cut-text">{{ t('database.processesList') }}: {{ connectionName }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click.stop="closeModal" />
@ -29,7 +29,7 @@
<button
class="btn btn-dark btn-sm mr-0 pr-1 d-flex"
:class="{'loading':isQuering}"
:title="`${t('word.refresh')}`"
:title="`${t('general.refresh')}`"
@click="getProcessesList"
>
<i v-if="!+autorefreshTimer" class="mdi mdi-24px mdi-refresh mr-1" />
@ -39,7 +39,7 @@
<i class="mdi mdi-24px mdi-menu-down" />
</div>
<div class="menu px-3">
<span>{{ t('word.autoRefresh') }}: <b>{{ +autorefreshTimer ? `${autorefreshTimer}s` : 'OFF' }}</b></span>
<span>{{ t('general.autoRefresh') }}: <b>{{ +autorefreshTimer ? `${autorefreshTimer}s` : 'OFF' }}</b></span>
<input
v-model="autorefreshTimer"
class="slider no-border"
@ -59,7 +59,7 @@
tabindex="0"
>
<i class="mdi mdi-24px mdi-file-export mr-1" />
<span>{{ t('word.export') }}</span>
<span>{{ t('database.export') }}</span>
<i class="mdi mdi-24px mdi-menu-down" />
</button>
<ul class="menu text-left">
@ -74,7 +74,7 @@
</div>
<div class="workspace-query-info">
<div v-if="sortedResults.length">
{{ t('word.processes') }}: <b>{{ sortedResults.length.toLocaleString() }}</b>
{{ t('database.processes') }}: <b>{{ sortedResults.length.toLocaleString() }}</b>
</div>
</div>
</div>

View File

@ -4,7 +4,7 @@
@close-context="closeContext"
>
<div v-if="props.selectedRow" class="context-element">
<span class="d-flex"><i class="mdi mdi-18px mdi-content-copy text-light pr-1" /> {{ t('word.copy') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-content-copy text-light pr-1" /> {{ t('general.copy') }}</span>
<i class="mdi mdi-18px mdi-chevron-right text-light pl-1" />
<div class="context-submenu">
<div
@ -13,7 +13,7 @@
@click="copyCell"
>
<span class="d-flex">
<i class="mdi mdi-18px mdi-numeric-0 mdi-rotate-90 text-light pr-1" /> {{ t('word.cell', 1) }}
<i class="mdi mdi-18px mdi-numeric-0 mdi-rotate-90 text-light pr-1" /> {{ t('database.cell', 1) }}
</span>
</div>
<div
@ -22,7 +22,7 @@
@click="copyRow"
>
<span class="d-flex">
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', 1) }}
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('database.row', 1) }}
</span>
</div>
</div>
@ -33,7 +33,7 @@
@click="killProcess"
>
<span class="d-flex">
<i class="mdi mdi-18px mdi-close-circle-outline text-light pr-1" /> {{ t('message.killProcess') }}
<i class="mdi mdi-18px mdi-close-circle-outline text-light pr-1" /> {{ t('database.killProcess') }}
</span>
</div>
</BaseContextMenu>

View File

@ -16,15 +16,15 @@
</div>
<ConfirmModal
v-if="isInfoModal"
:confirm-text="t('word.update')"
:cancel-text="t('word.close')"
:confirm-text="t('application.update')"
:cancel-text="t('general.close')"
size="medium"
:hide-footer="true"
@hide="hideInfoModal"
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-information-outline mr-1" /> {{ t('message.processInfo') }}
<i class="mdi mdi-24px mdi-information-outline mr-1" /> {{ t('database.processInfo') }}
</div>
</template>
<template #body>

View File

@ -7,7 +7,7 @@
<div class="modal-title h6">
<div class="d-flex">
<i class="mdi mdi-24px mdi-cog mr-1" />
<span class="cut-text">{{ t('word.settings') }}</span>
<span class="cut-text">{{ t('application.settings') }}</span>
</div>
</div>
<a class="btn btn-clear c-hand" @click="closeModal" />
@ -21,21 +21,21 @@
:class="{'active': selectedTab === 'general'}"
@click="selectTab('general')"
>
<a class="tab-link">{{ t('word.general') }}</a>
<a class="tab-link">{{ t('application.general') }}</a>
</li>
<li
class="tab-item c-hand"
:class="{'active': selectedTab === 'themes'}"
@click="selectTab('themes')"
>
<a class="tab-link">{{ t('word.themes') }}</a>
<a class="tab-link">{{ t('application.themes') }}</a>
</li>
<li
class="tab-item c-hand"
:class="{'active': selectedTab === 'shortcuts'}"
@click="selectTab('shortcuts')"
>
<a class="tab-link">{{ t('word.shortcuts') }}</a>
<a class="tab-link">{{ t('application.shortcuts') }}</a>
</li>
<li
v-if="updateStatus !== 'disabled'"
@ -43,21 +43,21 @@
:class="{'active': selectedTab === 'update'}"
@click="selectTab('update')"
>
<a class="tab-link" :class="{'badge badge-update': hasUpdates}">{{ t('word.update') }}</a>
<a class="tab-link" :class="{'badge badge-update': hasUpdates}">{{ t('application.update') }}</a>
</li>
<li
class="tab-item c-hand"
:class="{'active': selectedTab === 'changelog'}"
@click="selectTab('changelog')"
>
<a class="tab-link">{{ t('word.changelog') }}</a>
<a class="tab-link">{{ t('application.changelog') }}</a>
</li>
<li
class="tab-item c-hand"
:class="{'active': selectedTab === 'about'}"
@click="selectTab('about')"
>
<a class="tab-link">{{ t('word.about') }}</a>
<a class="tab-link">{{ t('application.about') }}</a>
</li>
</ul>
</div>
@ -65,14 +65,14 @@
<div class="container">
<form class="form-horizontal columns">
<div class="column col-12 h6 text-uppercase mb-1">
{{ t('word.application') }}
{{ t('application.application') }}
</div>
<div class="column col-12 col-sm-12 mb-2 columns">
<div class="form-group column col-12">
<div class="col-5 col-sm-12">
<label class="form-label">
<i class="mdi mdi-18px mdi-translate mr-1" />
{{ t('word.language') }}
{{ t('application.language') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -87,15 +87,15 @@
</div>
<div class="col-4 col-sm-12 px-2 p-vcentered">
<small class="d-block" :style="'line-height: 1.1; font-size: 70%;'">
{{ t('message.missingOrIncompleteTranslation') }}<br>
<a class="text-bold c-hand" @click="openOutside('https://github.com/antares-sql/antares/wiki/Translate-Antares')">{{ t('message.findOutHowToContribute') }}</a>
{{ t('application.missingOrIncompleteTranslation') }}<br>
<a class="text-bold c-hand" @click="openOutside('https://github.com/antares-sql/antares/wiki/Translate-Antares')">{{ t('application.findOutHowToContribute') }}</a>
</small>
</div>
</div>
<div class="form-group column col-12">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('message.dataTabPageSize') }}
{{ t('application.dataTabPageSize') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -110,7 +110,7 @@
<div class="form-group column col-12 mb-0">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('message.restorePreviousSession') }}
{{ t('application.restorePreviousSession') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -123,7 +123,7 @@
<div class="form-group column col-12 mb-0">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('message.showTableSize') }}
{{ t('application.showTableSize') }}
</label>
</div>
<div class="col-1 col-sm-12">
@ -134,14 +134,14 @@
</div>
<div class="col-6 col-sm-12 px-2 p-vcentered">
<small class="d-block" :style="'line-height: 1.1; font-size: 70%;'">
{{ t('message.showTableSizeDescription') }}
{{ t('application.showTableSizeDescription') }}
</small>
</div>
</div>
<div class="form-group column col-12 mb-0">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('message.disableBlur') }}
{{ t('application.disableBlur') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -154,7 +154,7 @@
<div class="form-group column col-12 mb-0">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('message.disableScratchpad') }}
{{ t('application.disableScratchpad') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -167,7 +167,7 @@
<div class="form-group column col-12">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('message.notificationsTimeout') }}
{{ t('application.notificationsTimeout') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -179,19 +179,19 @@
min="1"
@focusout="checkNotificationsTimeout"
>
<span class="input-group-addon">{{ t('word.seconds') }}</span>
<span class="input-group-addon">{{ t('general.seconds') }}</span>
</div>
</div>
</div>
</div>
<div class="column col-12 h6 mt-4 text-uppercase mb-1">
{{ t('word.editor') }}
{{ t('application.editor') }}
</div>
<div class="column col-12 col-sm-12 columns">
<div class="form-group column col-12 mb-0">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('word.autoCompletion') }}
{{ t('application.autoCompletion') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -204,7 +204,7 @@
<div class="form-group column col-12 mb-0">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('message.wrapLongLines') }}
{{ t('application.wrapLongLines') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -217,7 +217,7 @@
<div class="form-group column col-12 mb-0">
<div class="col-5 col-sm-12">
<label class="form-label">
{{ t('message.executeSelectedQuery') }}
{{ t('database.executeSelectedQuery') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -229,13 +229,13 @@
</div>
</div>
<div class="column col-12 h6 mt-4 text-uppercase mb-1">
{{ t('word.resultsTable') }}
{{ t('database.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') }}
{{ t('application.defaultCopyType') }}
</label>
</div>
<div class="col-3 col-sm-12">
@ -258,7 +258,7 @@
<div class="container">
<div class="columns">
<div class="column col-12 h6 text-uppercase mb-2">
{{ t('message.applicationTheme') }}
{{ t('application.applicationTheme') }}
</div>
<div
class="column col-6 c-hand theme-block"
@ -269,7 +269,7 @@
<div class="theme-name text-light">
<i class="mdi mdi-moon-waning-crescent mdi-48px" />
<div class="h6 mt-4">
{{ t('word.dark') }}
{{ t('application.dark') }}
</div>
</div>
</div>
@ -282,7 +282,7 @@
<div class="theme-name text-dark">
<i class="mdi mdi-white-balance-sunny mdi-48px" />
<div class="h6 mt-4">
{{ t('word.light') }}
{{ t('application.light') }}
</div>
</div>
</div>
@ -290,7 +290,7 @@
<div class="columns mt-4">
<div class="column col-12 h6 text-uppercase mb-2 mt-4">
{{ t('message.editorTheme') }}
{{ t('application.editorTheme') }}
</div>
<div class="column col-5 h5 mb-4">
<BaseSelect
@ -378,16 +378,16 @@
<img :src="appLogo" width="128">
<h4>{{ appName }}</h4>
<p class="mb-2">
{{ t('word.version') }} {{ appVersion }}<br>
{{ t('general.version') }} {{ appVersion }}<br>
<a class="c-hand" @click="openOutside('https://github.com/antares-sql/antares')"><i class="mdi mdi-github d-inline" /> GitHub</a> <a class="c-hand" @click="openOutside('https://twitter.com/AntaresSQL')"><i class="mdi mdi-twitter d-inline" /> Twitter</a> <a class="c-hand" @click="openOutside('https://antares-sql.app/')"><i class="mdi mdi-web d-inline" /> Website</a><br>
<small>{{ t('word.author') }} <a class="c-hand" @click="openOutside('https://github.com/Fabio286')">{{ appAuthor }}</a></small><br>
<small>{{ t('general.author') }} <a class="c-hand" @click="openOutside('https://github.com/Fabio286')">{{ appAuthor }}</a></small><br>
</p>
<div class="mb-2">
<small class="d-block text-uppercase">{{ t('word.contributors') }}:</small>
<small class="d-block text-uppercase">{{ t('general.contributors') }}:</small>
<div class="d-block py-1">
<small v-for="(contributor, i) in otherContributors" :key="i">{{ i !== 0 ? ', ' : '' }}{{ contributor }}</small>
</div>
<small>{{ t('message.madeWithJS') }}</small>
<small>{{ t('application.madeWithJS') }}</small>
</div>
</div>
</div>
@ -500,7 +500,7 @@ const selectedTab: Ref<string> = ref('general');
const editorThemes = computed(() => [
{
group: t('word.light'),
group: t('application.light'),
themes: [
{ code: 'chrome', name: 'Chrome' },
{ code: 'clouds', name: 'Clouds' },
@ -520,7 +520,7 @@ const editorThemes = computed(() => [
]
},
{
group: t('word.dark'),
group: t('application.dark'),
themes: [
{ code: 'ambiance', name: 'Ambiance' },
{ code: 'chaos', name: 'Chaos' },
@ -557,8 +557,8 @@ const locales = computed(() => {
});
const copyTypes = computed(() => [
{ code: 'cell', name: t('word.cell') },
{ code: 'html', name: t('word.table') },
{ code: 'cell', name: t('database.cell') },
{ code: 'html', name: t('database.table') },
{ code: 'json', name: 'JSON' },
{ code: 'csv', name: 'CSV' },
{ code: 'sql', name: 'SQL insert' }

View File

@ -2,10 +2,10 @@
<div class="p-relative">
<div class="shortcuts-tools pb-2 px-2">
<button class="btn btn-dark btn-sm d-flex ml-2" @click="showAddModal">
<i class="mdi mdi-24px mdi-plus mr-1" /><span>{{ t('message.addShortcut') }}</span>
<i class="mdi mdi-24px mdi-plus mr-1" /><span>{{ t('application.addShortcut') }}</span>
</button>
<button class="btn btn-dark btn-sm d-flex ml-2" @click="isConfirmRestoreModal = true">
<i class="mdi mdi-24px mdi-undo mr-1" /><span>{{ t('message.restoreDefaults') }}</span>
<i class="mdi mdi-24px mdi-undo mr-1" /><span>{{ t('application.restoreDefaults') }}</span>
</button>
</div>
<div class="container workspace-query-results">
@ -14,12 +14,12 @@
<div class="tr text-uppercase">
<div class="th no-border">
<div>
{{ t('word.event') }}
{{ t('application.event') }}
</div>
</div>
<div class="th no-border" style="width: 100%;">
<div>
{{ t('word.key', 2) }}
{{ t('application.key', 2) }}
</div>
</div>
<div class="th no-border" />
@ -43,10 +43,10 @@
/>
<div class="td py-1 pr-2">
<button class="shortcut-button btn btn-link btn-sm d-flex p-0 px-1 mr-2" @click="showEditModal({...shortcut, index: i})">
<span>{{ t('word.edit') }}</span><i class="mdi mdi-pencil ml-1" />
<span>{{ t('general.edit') }}</span><i class="mdi mdi-pencil ml-1" />
</button>
<button class="shortcut-button btn btn-link btn-sm d-flex p-0 px-1" @click="showDeleteModal(shortcut)">
<span>{{ t('word.delete') }}</span><i class="mdi mdi-delete-outline ml-1" />
<span>{{ t('general.delete') }}</span><i class="mdi mdi-delete-outline ml-1" />
</button>
</div>
</div>
@ -58,20 +58,20 @@
<ConfirmModal
v-if="isConfirmAddModal"
:disable-autofocus="true"
:confirm-text="t('word.save')"
:confirm-text="t('general.save')"
:close-on-confirm="false"
@confirm="addShortcut"
@hide="closeAddModal"
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-plus mr-1" /> {{ t('message.addShortcut') }}
<i class="mdi mdi-24px mdi-plus mr-1" /> {{ t('application.addShortcut') }}
</div>
</template>
<template #body>
<div class="mb-2">
<div class="form-group">
<label class="form-label">{{ t('word.event') }}</label>
<label class="form-label">{{ t('application.event') }}</label>
<BaseSelect
v-model="shortcutToAdd.event"
class="form-select"
@ -81,31 +81,31 @@
</div>
<div class="mb-2">
<div class="form-group">
<label class="form-label">{{ t('word.key', 2) }}</label>
<label class="form-label">{{ t('application.key', 2) }}</label>
<KeyPressDetector v-model="typedShortcut" />
</div>
</div>
<small v-if="doesShortcutExists" class="text-warning">{{ t('message.shortcutAlreadyExists') }}</small>
<small v-if="doesShortcutExists" class="text-warning">{{ t('application.shortcutAlreadyExists') }}</small>
</template>
</ConfirmModal>
<ConfirmModal
v-if="isConfirmEditModal"
:disable-autofocus="true"
:confirm-text="t('word.save')"
:confirm-text="t('general.save')"
:close-on-confirm="false"
@confirm="editShortcut"
@hide="closeEditModal"
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-plus mr-1" /> {{ t('message.editShortcut') }}
<i class="mdi mdi-24px mdi-plus mr-1" /> {{ t('application.editShortcut') }}
</div>
</template>
<template #body>
<div class="mb-2">
<div class="form-group">
<label class="form-label">{{ t('word.event') }}</label>
<label class="form-label">{{ t('application.event') }}</label>
<BaseSelect
v-model="shortcutToEdit.event"
class="form-select"
@ -116,11 +116,11 @@
</div>
<div class="mb-2">
<div class="form-group">
<label class="form-label">{{ t('word.key', 2) }}</label>
<label class="form-label">{{ t('application.key', 2) }}</label>
<KeyPressDetector v-model="shortcutToEdit.keys[0]" />
</div>
</div>
<small v-if="doesShortcutExists" class="text-warning">{{ t('message.shortcutAlreadyExists') }}</small>
<small v-if="doesShortcutExists" class="text-warning">{{ t('application.shortcutAlreadyExists') }}</small>
</template>
</ConfirmModal>
@ -132,12 +132,12 @@
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-delete mr-1" /> {{ t('message.deleteShortcut') }}
<i class="mdi mdi-24px mdi-delete mr-1" /> {{ t('application.deleteShortcut') }}
</div>
</template>
<template #body>
<div class="mb-2">
{{ t('message.deleteConfirm') }} <b>{{ t(shortcutEvents[shortcutToDelete.event].l18n, {param: shortcutEvents[shortcutToDelete.event].l18nParam}) }} (<span v-html="parseKeys(shortcutToDelete.keys)" />)</b>?
{{ t('general.deleteConfirm') }} <b>{{ t(shortcutEvents[shortcutToDelete.event].l18n, {param: shortcutEvents[shortcutToDelete.event].l18nParam}) }} (<span v-html="parseKeys(shortcutToDelete.keys)" />)</b>?
</div>
</template>
</ConfirmModal>
@ -150,12 +150,12 @@
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-undo mr-1" /> {{ t('message.restoreDefaults') }}
<i class="mdi mdi-24px mdi-undo mr-1" /> {{ t('application.restoreDefaults') }}
</div>
</template>
<template #body>
<div class="mb-2">
{{ t('message.restoreDefaultsQuestion') }}
{{ t('application.restoreDefaultsQuestion') }}
</div>
</template>
</ConfirmModal>

View File

@ -26,27 +26,27 @@
:class="{'loading': updateStatus === 'checking'}"
@click="checkForUpdates"
>
{{ t('message.checkForUpdates') }}
{{ t('application.checkForUpdates') }}
</button>
<button
v-else-if="updateStatus === 'downloaded'"
class="btn btn-primary"
@click="restartToUpdate"
>
{{ t('message.restartToInstall') }}
{{ t('application.restartToInstall') }}
</button>
<button
v-else-if="updateStatus === 'link'"
class="btn btn-primary"
@click="openOutside('https://antares-sql.app/download.html')"
>
{{ t('message.goToDownloadPage') }}
{{ t('application.goToDownloadPage') }}
</button>
</div>
<div class="form-group mt-4">
<label class="form-switch d-inline-block" @click.prevent="toggleAllowPrerelease">
<input type="checkbox" :checked="allowPrerelease">
<i class="form-icon" /> {{ t('message.includeBetaUpdates') }}
<i class="form-icon" /> {{ t('application.includeBetaUpdates') }}
</label>
</div>
</div>
@ -76,19 +76,19 @@ const { changeAllowPrerelease } = settingsStore;
const updateMessage = computed(() => {
switch (updateStatus.value) {
case 'noupdate':
return t('message.noUpdatesAvailable');
return t('application.noUpdatesAvailable');
case 'checking':
return t('message.checkingForUpdate');
return t('application.checkingForUpdate');
case 'nocheck':
return t('message.checkFailure');
return t('application.checkFailure');
case 'available':
return t('message.updateAvailable');
return t('application.updateAvailable');
case 'downloading':
return t('message.downloadingUpdate');
return t('application.downloadingUpdate');
case 'downloaded':
return t('message.updateDownloaded');
return t('application.updateDownloaded');
case 'link':
return t('message.updateAvailable');
return t('application.updateAvailable');
default:
return updateStatus.value;
}

View File

@ -8,20 +8,20 @@
class="context-element"
@click="disconnect"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-power text-light pr-1" /> {{ t('word.disconnect') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-power text-light pr-1" /> {{ t('connection.disconnect') }}</span>
</div>
<div
v-if="!contextConnection.isFolder"
class="context-element"
@click="duplicateConnection"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-content-duplicate text-light pr-1" /> {{ t('word.duplicate') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-content-duplicate text-light pr-1" /> {{ t('general.duplicate') }}</span>
</div>
<div class="context-element" @click.stop="showAppearanceModal">
<span class="d-flex"><i class="mdi mdi-18px mdi-brush-variant text-light pr-1" /> {{ t('word.appearance') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-brush-variant text-light pr-1" /> {{ t('application.appearance') }}</span>
</div>
<div class="context-element" @click="showConfirmModal">
<span class="d-flex"><i class="mdi mdi-18px mdi-delete text-light pr-1" /> {{ t('word.delete') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-delete text-light pr-1" /> {{ t('general.delete') }}</span>
</div>
<ConfirmModal
@ -31,12 +31,12 @@
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mr-1" :class="[contextConnection.isFolder ? 'mdi-folder-remove' : 'mdi-server-remove']" /> {{ t(contextConnection.isFolder ? 'message.deleteFolder' : 'message.deleteConnection') }}
<i class="mdi mdi-24px mr-1" :class="[contextConnection.isFolder ? 'mdi-folder-remove' : 'mdi-server-remove']" /> {{ t(contextConnection.isFolder ? 'application.deleteFolder' : 'connection.deleteConnection') }}
</div>
</template>
<template #body>
<div class="mb-2">
{{ t('message.deleteConfirm') }} <b>{{ connectionName }}</b>?
{{ t('general.deleteConfirm') }} <b>{{ connectionName }}</b>?
</div>
</template>
</ConfirmModal>
@ -96,7 +96,7 @@ const isConfirmModal = ref(false);
const isFolderEdit = ref(false);
const isConnectionEdit = ref(false);
const connectionName = computed(() => props.contextConnection.name || getConnectionName(props.contextConnection.uid) || t('word.folder', 1));
const connectionName = computed(() => props.contextConnection.name || getConnectionName(props.contextConnection.uid) || t('general.folder', 1));
const isConnected = computed(() => getWorkspace(props.contextConnection.uid)?.connectionStatus === 'connected');
const confirmDeleteConnection = () => {

View File

@ -12,7 +12,7 @@
</li>
<li v-if="connectionInfos && connectionInfos.readonly" class="footer-element">
<i class="mdi mdi-18px mdi-lock mr-1" />
<small>{{ t('message.readOnlyMode') }}</small>
<small>{{ t('connection.readOnlyMode') }}</small>
</li>
<li v-if="connectionInfos && connectionInfos.ssl" class="footer-element">
<i class="mdi mdi-18px mdi-shield-key mr-1" />
@ -33,22 +33,22 @@
@click="toggleConsole()"
>
<i class="mdi mdi-18px mdi-console-line mr-1" />
<small>{{ t('word.console') }}</small>
<small>{{ t('application.console') }}</small>
</li>
<li class="footer-element footer-link" @click="openOutside('https://www.paypal.com/paypalme/fabiodistasio')">
<i class="mdi mdi-18px mdi-coffee mr-1" />
<small>{{ t('word.donate') }}</small>
<small>{{ t('general.donate') }}</small>
</li>
<li
class="footer-element footer-link"
:title="t('message.reportABug')"
:title="t('application.reportABug')"
@click="openOutside('https://github.com/antares-sql/antares/issues')"
>
<i class="mdi mdi-18px mdi-bug" />
</li>
<li
class="footer-element footer-link"
:title="t('word.about')"
:title="t('application.about')"
@click="showSettingModal('about')"
>
<i class="mdi mdi-18px mdi-information-outline" />

View File

@ -1,14 +1,14 @@
<template>
<ConfirmModal
:confirm-text="t('word.update')"
:cancel-text="t('word.close')"
:confirm-text="t('application.update')"
:cancel-text="t('general.close')"
size="large"
:hide-footer="true"
@hide="hideScratchpad"
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-notebook-edit-outline mr-1" /> {{ t('word.scratchpad') }}
<i class="mdi mdi-24px mdi-notebook-edit-outline mr-1" /> {{ t('application.scratchpad') }}
</div>
</template>
<template #body>
@ -22,7 +22,7 @@
:show-line-numbers="false"
/>
</div>
<small class="text-gray">{{ t('message.markdownSupported') }}</small>
<small class="text-gray">{{ t('application.markdownSupported') }}</small>
</div>
</template>
</ConfirmModal>

View File

@ -22,7 +22,7 @@
v-tooltip="{
strategy: 'fixed',
placement: 'right',
content: t('message.allConnections')
content: t('connection.allConnections')
}"
class="settingbar-element btn btn-link"
@click="emit('show-connections-modal')"
@ -35,7 +35,7 @@
v-tooltip="{
strategy: 'fixed',
placement: 'right',
content: t('message.addConnection')
content: t('connection.addConnection')
}"
class="settingbar-element btn btn-link"
:class="{ 'selected': 'NEW' === selectedWorkspace }"
@ -55,7 +55,7 @@
v-tooltip="{
strategy: 'fixed',
placement: 'right',
content: t('word.scratchpad')
content: t('application.scratchpad')
}"
class="settingbar-element btn btn-link"
@click="showScratchpad"
@ -66,7 +66,7 @@
v-tooltip="{
strategy: 'fixed',
placement: 'right',
content: t('word.settings')
content: t('application.settings')
}"
class="settingbar-element btn btn-link"
@click="showSettingModal('general')"

View File

@ -63,7 +63,7 @@ const isLinux = process.platform === 'linux';
const windowTitle = computed(() => {
if (!selectedWorkspace.value) return '';
if (selectedWorkspace.value === 'NEW') return t('message.createNewConnection');
if (selectedWorkspace.value === 'NEW') return t('connection.createNewConnection');
const connectionName = getConnectionName(selectedWorkspace.value);
const workspace = getWorkspace(selectedWorkspace.value);

View File

@ -45,7 +45,7 @@
<span>{{ cutText(element.content || 'Query', 20, true) }} #{{ element.index }}</span>
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -58,11 +58,11 @@
@dblclick="openAsPermanentTab(element)"
>
<i class="mdi mdi-18px mr-1" :class="element.elementType === 'view' ? 'mdi-table-eye' : 'mdi-table'" />
<span :title="`${t('word.data').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
<span :title="`${t('general.data').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
<span class=" text-italic">{{ cutText(element.elementName, 20, true) }}</span>
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -71,11 +71,11 @@
<a v-else-if="element.type === 'data'" class="tab-link">
<i class="mdi mdi-18px mr-1" :class="element.elementType === 'view' ? 'mdi-table-eye' : 'mdi-table'" />
<span :title="`${t('word.data').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
<span :title="`${t('general.data').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ cutText(element.elementName, 20, true) }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -88,11 +88,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-shape-square-plus mdi-18px mr-1" />
<span :title="`${t('word.new').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
{{ t('message.newTable') }}
<span :title="`${t('general.new').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ t('database.newTable') }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -105,11 +105,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-wrench-cog mdi-18px mr-1" />
<span :title="`${t('word.settings').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
<span :title="`${t('application.settings').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ cutText(element.elementName, 20, true) }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -122,11 +122,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-wrench-cog mdi-18px mr-1" />
<span :title="`${t('word.settings').toUpperCase()}: ${t(`word.view`)}`">
<span :title="`${t('application.settings').toUpperCase()}: ${t(`database.view`)}`">
{{ cutText(element.elementName, 20, true) }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -139,11 +139,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-shape-square-plus mdi-18px mr-1" />
<span :title="`${t('word.new').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
{{ t('message.newView') }}
<span :title="`${t('general.new').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ t('database.newView') }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -156,11 +156,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-shape-square-plus mdi-18px mr-1" />
<span :title="`${t('word.new').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
{{ t('message.newTrigger') }}
<span :title="`${t('general.new').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ t('database.newTrigger') }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -173,11 +173,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-shape-square-plus mdi-18px mr-1" />
<span :title="`${t('word.new').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
{{ t('message.newRoutine') }}
<span :title="`${t('general.new').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ t('database.newRoutine') }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -190,11 +190,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-shape-square-plus mdi-18px mr-1" />
<span :title="`${t('word.new').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
{{ t('message.newFunction') }}
<span :title="`${t('general.new').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ t('database.newFunction') }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -207,11 +207,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-shape-square-plus mdi-18px mr-1" />
<span :title="`${t('word.new').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
{{ t('message.newTriggerFunction') }}
<span :title="`${t('general.new').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ t('database.newTriggerFunction') }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -224,11 +224,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-shape-square-plus mdi-18px mr-1" />
<span :title="`${t('word.new').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
{{ t('message.newScheduler') }}
<span :title="`${t('general.new').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ t('database.newScheduler') }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -242,11 +242,11 @@
@dblclick="openAsPermanentTab(element)"
>
<i class="mdi mdi-18px mdi-wrench-cog mr-1" />
<span :title="`${t('word.settings').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
<span :title="`${t('application.settings').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
<span class=" text-italic">{{ cutText(element.elementName, 20, true) }}</span>
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -259,11 +259,11 @@
:class="{'badge': element.isChanged}"
>
<i class="mdi mdi-18px mdi-wrench-cog mr-1" />
<span :title="`${t('word.settings').toUpperCase()}: ${t(`word.${element.elementType}`)}`">
<span :title="`${t('application.settings').toUpperCase()}: ${t(`database.${element.elementType}`)}`">
{{ cutText(element.elementName, 20, true) }}
<span
class="btn btn-clear"
:title="t('word.close')"
:title="t('general.close')"
@mousedown.left.stop
@click.stop="closeTab(element)"
/>
@ -279,7 +279,7 @@
<a
class="tab-link workspace-tools-link dropdown-toggle"
tabindex="0"
:title="t('word.tools')"
:title="t('general.tools')"
>
<i class="mdi mdi-24px mdi-tools" />
</a>
@ -287,13 +287,13 @@
<li class="menu-item">
<a class="c-hand p-vcentered" @click="showProcessesModal">
<i class="mdi mdi-memory mr-1 tool-icon" />
<span>{{ t('message.processesList') }}</span>
<span>{{ t('database.processesList') }}</span>
</a>
</li>
<li class="menu-item">
<a class="c-hand p-vcentered" @click="toggleConsole">
<i class="mdi mdi-console-line mr-1 tool-icon" />
<span>{{ t('word.console') }}</span>
<span>{{ t('application.console') }}</span>
</a>
</li>
<li
@ -303,7 +303,7 @@
>
<a class="c-hand p-vcentered disabled">
<i class="mdi mdi-shape mr-1 tool-icon" />
<span>{{ t('word.variables') }}</span>
<span>{{ t('database.variables') }}</span>
</a>
</li>
<li
@ -313,7 +313,7 @@
>
<a class="c-hand p-vcentered disabled">
<i class="mdi mdi-account-group mr-1 tool-icon" />
<span>{{ t('message.manageUsers') }}</span>
<span>{{ t('database.manageUsers') }}</span>
</a>
</li>
</ul>
@ -323,7 +323,7 @@
<li class="tab-item">
<a
class="tab-add"
:title="t('message.openNewTab')"
:title="t('application.openNewTab')"
@click="addQueryTab"
>
<i class="mdi mdi-24px mdi-plus" />

View File

@ -8,7 +8,7 @@
:class="{'active': selectedTab === 'general'}"
@click="selectTab('general')"
>
<a class="tab-link">{{ t('word.general') }}</a>
<a class="tab-link">{{ t('application.general') }}</a>
</li>
<li
v-if="clientCustomizations.sslConnection"
@ -16,7 +16,7 @@
:class="{'active': selectedTab === 'ssl'}"
@click="selectTab('ssl')"
>
<a class="tab-link">{{ t('word.ssl') }}</a>
<a class="tab-link">{{ t('connection.ssl') }}</a>
</li>
<li
v-if="clientCustomizations.sshConnection"
@ -24,7 +24,7 @@
:class="{'active': selectedTab === 'ssh'}"
@click="selectTab('ssh')"
>
<a class="tab-link">{{ t('word.sshTunnel') }}</a>
<a class="tab-link">{{ t('connection.sshTunnel') }}</a>
</li>
</ul>
</div>
@ -91,7 +91,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="connection.databasePath"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('databasePath')"
@change="pathSelection($event, 'databasePath')"
/>
@ -159,7 +159,7 @@
v-model="connection.schema"
class="form-input"
type="text"
:placeholder="t('word.all')"
:placeholder="t('general.all')"
>
</div>
</div>
@ -167,7 +167,7 @@
<div class="column col-5 col-sm-12" />
<div class="column col-7 col-sm-12">
<label class="form-checkbox form-inline">
<input v-model="connection.readonly" type="checkbox"><i class="form-icon" /> {{ t('message.readOnlyMode') }}
<input v-model="connection.readonly" type="checkbox"><i class="form-icon" /> {{ t('connection.readOnlyMode') }}
</label>
</div>
</div>
@ -175,7 +175,7 @@
<div class="column col-5 col-sm-12" />
<div class="column col-7 col-sm-12">
<label class="form-checkbox form-inline">
<input v-model="connection.ask" type="checkbox"><i class="form-icon" /> {{ t('message.askCredentials') }}
<input v-model="connection.ask" type="checkbox"><i class="form-icon" /> {{ t('connection.askCredentials') }}
</label>
</div>
</div>
@ -189,7 +189,7 @@
<div class="form-group columns">
<div class="column col-5 col-sm-12">
<label class="form-label cut-text">
{{ t('message.enableSsl') }}
{{ t('connection.enableSsl') }}
</label>
</div>
<div class="column col-7 col-sm-12">
@ -207,7 +207,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="connection.key"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('key')"
@change="pathSelection($event, 'key')"
/>
@ -220,7 +220,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="connection.cert"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('cert')"
@change="pathSelection($event, 'cert')"
/>
@ -233,7 +233,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="connection.ca"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('ca')"
@change="pathSelection($event, 'ca')"
/>
@ -256,7 +256,7 @@
<div class="column col-5 col-sm-12" />
<div class="column col-7 col-sm-12">
<label class="form-checkbox form-inline">
<input v-model="connection.untrustedConnection" type="checkbox"><i class="form-icon" /> {{ t('message.untrustedConnection') }}
<input v-model="connection.untrustedConnection" type="checkbox"><i class="form-icon" /> {{ t('connection.untrustedConnection') }}
</label>
</div>
</div>
@ -270,7 +270,7 @@
<div class="form-group columns">
<div class="column col-5 col-sm-12">
<label class="form-label cut-text">
{{ t('message.enableSsh') }}
{{ t('connection.enableSsh') }}
</label>
</div>
<div class="column col-7 col-sm-12">
@ -338,7 +338,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="connection.sshKey"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('sshKey')"
@change="pathSelection($event, 'sshKey')"
/>
@ -382,7 +382,7 @@
@click="startTest"
>
<i class="mdi mdi-24px mdi-lightning-bolt mr-1" />
{{ t('message.testConnection') }}
{{ t('connection.testConnection') }}
</button>
<button
id="connection-save"
@ -391,7 +391,7 @@
@click="saveConnection"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
{{ t('word.save') }}
{{ t('general.save') }}
</button>
</div>
</div>
@ -497,7 +497,7 @@ const startTest = async () => {
if (res.status === 'error')
addNotification({ status: 'error', message: res.response.message || res.response.toString() });
else
addNotification({ status: 'success', message: t('message.connectionSuccessfullyMade') });
addNotification({ status: 'success', message: t('connection.connectionSuccessfullyMade') });
}
catch (err) {
addNotification({ status: 'error', message: err.stack });
@ -521,7 +521,7 @@ const continueTest = async (credentials: { user: string; password: string }) =>
if (res.status === 'error')
addNotification({ status: 'error', message: res.response.message || res.response.toString() });
else
addNotification({ status: 'success', message: t('message.connectionSuccessfullyMade') });
addNotification({ status: 'success', message: t('connection.connectionSuccessfullyMade') });
}
}
catch (err) {

View File

@ -8,7 +8,7 @@
:class="{'active': selectedTab === 'general'}"
@click="selectTab('general')"
>
<a class="tab-link">{{ t('word.general') }}</a>
<a class="tab-link">{{ t('application.general') }}</a>
</li>
<li
v-if="clientCustomizations.sslConnection"
@ -16,7 +16,7 @@
:class="{'active': selectedTab === 'ssl'}"
@click="selectTab('ssl')"
>
<a class="tab-link">{{ t('word.ssl') }}</a>
<a class="tab-link">{{ t('connection.ssl') }}</a>
</li>
<li
v-if="clientCustomizations.sshConnection"
@ -24,7 +24,7 @@
:class="{'active': selectedTab === 'ssh'}"
@click="selectTab('ssh')"
>
<a class="tab-link">{{ t('word.sshTunnel') }}</a>
<a class="tab-link">{{ t('connection.sshTunnel') }}</a>
</li>
</ul>
</div>
@ -93,7 +93,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="localConnection.databasePath"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('databasePath')"
@change="pathSelection($event, 'databasePath')"
/>
@ -161,7 +161,7 @@
v-model="localConnection.schema"
class="form-input"
type="text"
:placeholder="t('word.all')"
:placeholder="t('general.all')"
>
</div>
</div>
@ -169,7 +169,7 @@
<div class="column col-5 col-sm-12" />
<div class="column col-7 col-sm-12">
<label class="form-checkbox form-inline">
<input v-model="localConnection.readonly" type="checkbox"><i class="form-icon" /> {{ t('message.readOnlyMode') }}
<input v-model="localConnection.readonly" type="checkbox"><i class="form-icon" /> {{ t('connection.readOnlyMode') }}
</label>
</div>
</div>
@ -177,7 +177,7 @@
<div class="column col-5 col-sm-12" />
<div class="column col-7 col-sm-12">
<label class="form-checkbox form-inline">
<input v-model="localConnection.ask" type="checkbox"><i class="form-icon" /> {{ t('message.askCredentials') }}
<input v-model="localConnection.ask" type="checkbox"><i class="form-icon" /> {{ t('connection.askCredentials') }}
</label>
</div>
</div>
@ -191,7 +191,7 @@
<div class="form-group columns">
<div class="column col-5 col-sm-12">
<label class="form-label cut-text">
{{ t('message.enableSsl') }}
{{ t('connection.enableSsl') }}
</label>
</div>
<div class="column col-7 col-sm-12">
@ -209,7 +209,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="localConnection.key"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('key')"
@change="pathSelection($event, 'key')"
/>
@ -222,7 +222,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="localConnection.cert"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('cert')"
@change="pathSelection($event, 'cert')"
/>
@ -235,7 +235,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="localConnection.ca"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('ca')"
@change="pathSelection($event, 'ca')"
/>
@ -258,7 +258,7 @@
<div class="column col-5 col-sm-12" />
<div class="column col-7 col-sm-12">
<label class="form-checkbox form-inline">
<input v-model="localConnection.untrustedConnection" type="checkbox"><i class="form-icon" /> {{ t('message.untrustedConnection') }}
<input v-model="localConnection.untrustedConnection" type="checkbox"><i class="form-icon" /> {{ t('connection.untrustedConnection') }}
</label>
</div>
</div>
@ -272,7 +272,7 @@
<div class="form-group columns">
<div class="column col-5 col-sm-12">
<label class="form-label cut-text">
{{ t('message.enableSsh') }}
{{ t('connection.enableSsh') }}
</label>
</div>
<div class="column col-7 col-sm-12">
@ -340,7 +340,7 @@
<div class="column col-7 col-sm-12">
<BaseUploadInput
:model-value="localConnection.sshKey"
:message="t('word.browse')"
:message="t('general.browse')"
@clear="pathClear('sshKey')"
@change="pathSelection($event, 'sshKey')"
/>
@ -384,7 +384,7 @@
@click="startTest"
>
<i class="mdi mdi-24px mdi-lightning-bolt mr-1" />
{{ t('message.testConnection') }}
{{ t('connection.testConnection') }}
</button>
<button
id="connection-save"
@ -393,7 +393,7 @@
@click="saveConnection"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
{{ t('word.save') }}
{{ t('general.save') }}
</button>
<button
id="connection-connect"
@ -403,7 +403,7 @@
@click="startConnection"
>
<i class="mdi mdi-24px mdi-connection mr-1" />
{{ t('word.connect') }}
{{ t('connection.connect') }}
</button>
</div>
</div>
@ -492,7 +492,7 @@ const startTest = async () => {
if (res.status === 'error')
addNotification({ status: 'error', message: res.response.message || res.response.toString() });
else
addNotification({ status: 'success', message: t('message.connectionSuccessfullyMade') });
addNotification({ status: 'success', message: t('connection.connectionSuccessfullyMade') });
}
catch (err) {
addNotification({ status: 'error', message: err.stack });
@ -516,7 +516,7 @@ const continueTest = async (credentials: {user: string; password: string }) => {
if (res.status === 'error')
addNotification({ status: 'error', message: res.response.message || res.response.toString() });
else
addNotification({ status: 'success', message: t('message.connectionSuccessfullyMade') });
addNotification({ status: 'success', message: t('connection.connectionSuccessfullyMade') });
}
}
catch (err) {

View File

@ -4,12 +4,12 @@
<img :src="logos[applicationTheme]" width="200">
</div>
<p class="h6 empty-subtitle">
{{ t('message.noOpenTabs') }}
{{ t('application.noOpenTabs') }}
</p>
<div class="empty-action">
<button class="btn btn-primary d-flex" @click="emit('new-tab')">
<i class="mdi mdi-24px mdi-tab-plus mr-2" />
{{ t('message.openNewTab') }}
{{ t('application.openNewTab') }}
</button>
</div>
</div>

View File

@ -13,7 +13,7 @@
<div
v-if="customizations.database"
class="workspace-explorebar-database-switch"
:title="t('message.switchDatabase')"
:title="t('database.switchDatabase')"
>
<BaseSelect
v-model="selectedDatabase"
@ -26,18 +26,18 @@
<i
v-if="customizations.schemas"
class="mdi mdi-18px mdi-database-plus c-hand mr-2"
:title="t('message.createNewSchema')"
:title="t('database.createNewSchema')"
@click="showNewDBModal"
/>
<i
class="mdi mdi-18px mdi-refresh c-hand mr-2"
:class="{'rotate':isRefreshing}"
:title="t('word.refresh')"
:title="t('general.refresh')"
@click="refresh"
/>
<i
class="mdi mdi-18px mdi-power c-hand"
:title="t('word.disconnect')"
:title="t('connection.disconnect')"
@click="disconnectWorkspace(connection.uid)"
/>
</span>
@ -46,7 +46,7 @@
<div v-if="workspace.connectionStatus === 'connected'" class="input-group has-icon-right">
<div
class="input-group-addon px-1 py-0 p-vcentered c-hand"
:title="t('message.switchSearchMethod')"
:title="t('application.switchSearchMethod')"
@click="toggleSearchMethod"
>
<i class="mdi mdi-18px" :class="[searchMethod === 'elements' ? 'mdi-shape' : 'mdi-database']" />
@ -56,7 +56,7 @@
v-model="searchTerm"
class="form-input input-sm"
type="text"
:placeholder="searchMethod === 'elements' ? t('message.searchForElements') : t('message.searchForSchemas')"
:placeholder="searchMethod === 'elements' ? t('database.searchForElements') : t('database.searchForSchemas')"
>
<i v-if="!searchTerm" class="form-icon mdi mdi-magnify mdi-18px" />
<i

View File

@ -8,7 +8,7 @@
class="context-element"
@click="runElementCheck"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-play text-light pr-1" /> {{ t('word.run') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-play text-light pr-1" /> {{ t('general.run') }}</span>
</div>
<div
v-if="selectedMisc.type === 'trigger' && customizations.triggerEnableDisable"
@ -16,10 +16,10 @@
@click="toggleTrigger"
>
<span v-if="!selectedMisc.enabled" class="d-flex">
<i class="mdi mdi-18px mdi-play text-light pr-1" /> {{ t('word.enable') }}
<i class="mdi mdi-18px mdi-play text-light pr-1" /> {{ t('general.enable') }}
</span>
<span v-else class="d-flex">
<i class="mdi mdi-18px mdi-pause text-light pr-1" /> {{ t('word.disable') }}
<i class="mdi mdi-18px mdi-pause text-light pr-1" /> {{ t('general.disable') }}
</span>
</div>
<div
@ -28,14 +28,14 @@
@click="toggleScheduler"
>
<span v-if="!selectedMisc.enabled" class="d-flex">
<i class="mdi mdi-18px mdi-play text-light pr-1" /> {{ t('word.enable') }}
<i class="mdi mdi-18px mdi-play text-light pr-1" /> {{ t('general.enable') }}
</span>
<span v-else class="d-flex">
<i class="mdi mdi-18px mdi-pause text-light pr-1" /> {{ t('word.disable') }}
<i class="mdi mdi-18px mdi-pause text-light pr-1" /> {{ t('general.disable') }}
</span>
</div>
<div class="context-element" @click="showDeleteModal">
<span class="d-flex"><i class="mdi mdi-18px mdi-table-remove text-light pr-1" /> {{ t('word.delete') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-remove text-light pr-1" /> {{ t('general.delete') }}</span>
</div>
<ConfirmModal
v-if="isDeleteModal"
@ -50,7 +50,7 @@
</template>
<template #body>
<div class="mb-2">
{{ t('message.deleteConfirm') }} "<b>{{ selectedMisc.name }}</b>"?
{{ t('general.deleteConfirm') }} "<b>{{ selectedMisc.name }}</b>"?
</div>
</template>
</ConfirmModal>
@ -117,14 +117,14 @@ const customizations = computed(() => {
const deleteMessage = computed(() => {
switch (props.selectedMisc.type) {
case 'trigger':
return t('message.deleteTrigger');
return t('database.deleteTrigger');
case 'procedure':
return t('message.deleteRoutine');
return t('database.deleteRoutine');
case 'function':
case 'triggerFunction':
return t('message.deleteFunction');
return t('database.deleteFunction');
case 'scheduler':
return t('message.deleteScheduler');
return t('database.deleteScheduler');
default:
return '';
}

View File

@ -8,35 +8,35 @@
class="context-element"
@click="emit('open-create-trigger-tab')"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-cog text-light pr-1" /> {{ t('message.createNewTrigger') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-cog text-light pr-1" /> {{ t('database.createNewTrigger') }}</span>
</div>
<div
v-if="['procedure', 'routine'].includes(props.selectedMisc)"
class="context-element"
@click="emit('open-create-routine-tab')"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-sync-circle text-light pr-1" /> {{ t('message.createNewRoutine') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-sync-circle text-light pr-1" /> {{ t('database.createNewRoutine') }}</span>
</div>
<div
v-if="props.selectedMisc === 'function'"
class="context-element"
@click="emit('open-create-function-tab')"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-arrow-right-bold-box text-light pr-1" /> {{ t('message.createNewFunction') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-arrow-right-bold-box text-light pr-1" /> {{ t('database.createNewFunction') }}</span>
</div>
<div
v-if="props.selectedMisc === 'triggerFunction'"
class="context-element"
@click="emit('open-create-trigger-function-tab')"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-cog-clockwise text-light pr-1" /> {{ t('message.createNewFunction') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-cog-clockwise text-light pr-1" /> {{ t('database.createNewFunction') }}</span>
</div>
<div
v-if="props.selectedMisc === 'scheduler'"
class="context-element"
@click="emit('open-create-scheduler-tab')"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-calendar-clock text-light pr-1" /> {{ t('message.createNewScheduler') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-calendar-clock text-light pr-1" /> {{ t('database.createNewScheduler') }}</span>
</div>
</BaseContextMenu>
</template>

View File

@ -60,7 +60,7 @@
@contextmenu.prevent="showMiscFolderContext($event, 'trigger')"
>
<i class="misc-icon mdi mdi-18px mdi-folder-cog mr-1" />
{{ t('word.trigger', 2) }}
{{ t('database.trigger', 2) }}
</summary>
<div class="accordion-body">
<div>
@ -82,7 +82,7 @@
<div
v-if="trigger.enabled === false"
class="tooltip tooltip-left disabled-indicator"
:data-tooltip="t('word.disabled')"
:data-tooltip="t('general.disabled')"
>
<i class="table-icon mdi mdi-pause mdi-18px mr-1" />
</div>
@ -101,7 +101,7 @@
@contextmenu.prevent="showMiscFolderContext($event, 'routine')"
>
<i class="misc-icon mdi mdi-18px mdi-folder-sync mr-1" />
{{ t('word.storedRoutine', 2) }}
{{ t('database.storedRoutine', 2) }}
</summary>
<div class="accordion-body">
<div>
@ -134,7 +134,7 @@
@contextmenu.prevent="showMiscFolderContext($event, 'triggerFunction')"
>
<i class="misc-icon mdi mdi-18px mdi-folder-refresh mr-1" />
{{ t('word.triggerFunction', 2) }}
{{ t('database.triggerFunction', 2) }}
</summary>
<div class="accordion-body">
<div>
@ -167,7 +167,7 @@
@contextmenu.prevent="showMiscFolderContext($event, 'function')"
>
<i class="misc-icon mdi mdi-18px mdi-folder-move mr-1" />
{{ t('word.function', 2) }}
{{ t('database.function', 2) }}
</summary>
<div class="accordion-body">
<div>
@ -200,7 +200,7 @@
@contextmenu.prevent="showMiscFolderContext($event, 'scheduler')"
>
<i class="misc-icon mdi mdi-18px mdi-folder-clock mr-1" />
{{ t('word.scheduler', 2) }}
{{ t('database.scheduler', 2) }}
</summary>
<div class="accordion-body">
<div>
@ -222,7 +222,7 @@
<div
v-if="scheduler.enabled === false"
class="tooltip tooltip-left disabled-indicator"
:data-tooltip="t('word.disabled')"
:data-tooltip="t('general.disabled')"
>
<i class="table-icon mdi mdi-pause mdi-18px mr-1" />
</div>

View File

@ -4,7 +4,7 @@
@close-context="closeContext"
>
<div class="context-element">
<span class="d-flex"><i class="mdi mdi-18px mdi-plus text-light pr-1" /> {{ t('word.add') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-plus text-light pr-1" /> {{ t('general.add') }}</span>
<i class="mdi mdi-18px mdi-chevron-right text-light pl-1" />
<div class="context-submenu">
<div
@ -12,49 +12,49 @@
class="context-element"
@click="openCreateTableTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-table text-light pr-1" /> {{ t('word.table') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-table text-light pr-1" /> {{ t('database.table') }}</span>
</div>
<div
v-if="workspace.customizations.viewAdd"
class="context-element"
@click="openCreateViewTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-eye text-light pr-1" /> {{ t('word.view') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-eye text-light pr-1" /> {{ t('database.view') }}</span>
</div>
<div
v-if="workspace.customizations.triggerAdd"
class="context-element"
@click="openCreateTriggerTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-cog text-light pr-1" /> {{ t('word.trigger', 1) }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-cog text-light pr-1" /> {{ t('database.trigger', 1) }}</span>
</div>
<div
v-if="workspace.customizations.routineAdd"
class="context-element"
@click="openCreateRoutineTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-sync-circle pr-1" /> {{ t('word.storedRoutine', 1) }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-sync-circle pr-1" /> {{ t('database.storedRoutine', 1) }}</span>
</div>
<div
v-if="workspace.customizations.functionAdd"
class="context-element"
@click="openCreateFunctionTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-arrow-right-bold-box pr-1" /> {{ t('word.function', 1) }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-arrow-right-bold-box pr-1" /> {{ t('database.function', 1) }}</span>
</div>
<div
v-if="workspace.customizations.triggerFunctionAdd"
class="context-element"
@click="openCreateTriggerFunctionTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-cog-clockwise pr-1" /> {{ t('word.triggerFunction', 1) }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-cog-clockwise pr-1" /> {{ t('database.triggerFunction', 1) }}</span>
</div>
<div
v-if="workspace.customizations.schedulerAdd"
class="context-element"
@click="openCreateSchedulerTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-calendar-clock text-light pr-1" /> {{ t('word.scheduler', 1) }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-calendar-clock text-light pr-1" /> {{ t('database.scheduler', 1) }}</span>
</div>
</div>
</div>
@ -63,28 +63,28 @@
class="context-element"
@click="showExportSchemaModal"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-database-export text-light pr-1" /> {{ t('word.export') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-database-export text-light pr-1" /> {{ t('database.export') }}</span>
</div>
<div
v-if="workspace.customizations.schemaImport"
class="context-element"
@click="initImport"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-database-import text-light pr-1" /> {{ t('word.import') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-database-import text-light pr-1" /> {{ t('database.import') }}</span>
</div>
<div
v-if="workspace.customizations.schemaEdit"
class="context-element"
@click="showEditModal"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-database-edit text-light pr-1" /> {{ t('word.edit') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-database-edit text-light pr-1" /> {{ t('database.editSchema') }}</span>
</div>
<div
v-if="workspace.customizations.schemaDrop"
class="context-element"
@click="showDeleteModal"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-database-remove text-light pr-1" /> {{ t('word.delete') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-database-remove text-light pr-1" /> {{ t('database.deleteSchema') }}</span>
</div>
<ConfirmModal
@ -95,12 +95,12 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-database-remove mr-1" />
<span class="cut-text">{{ t('message.deleteSchema') }}</span>
<span class="cut-text">{{ t('database.deleteSchema') }}</span>
</div>
</template>
<template #body>
<div class="mb-2">
{{ t('message.deleteConfirm') }} "<b>{{ selectedSchema }}</b>"?
{{ t('general.deleteConfirm') }} "<b>{{ selectedSchema }}</b>"?
</div>
</template>
</ConfirmModal>

View File

@ -8,31 +8,31 @@
class="context-element"
@click="openTableSettingTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-wrench-cog text-light pr-1" /> {{ t('word.settings') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-wrench-cog text-light pr-1" /> {{ t('application.settings') }}</span>
</div>
<div
v-if="selectedTable && selectedTable.type === 'view' && customizations.viewSettings"
class="context-element"
@click="openViewSettingTab"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-wrench-cog text-light pr-1" /> {{ t('word.settings') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-wrench-cog text-light pr-1" /> {{ t('application.settings') }}</span>
</div>
<div
v-if="selectedTable && selectedTable.type === 'table' && customizations.tableDuplicate"
class="context-element"
@click="duplicateTable"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-multiple text-light pr-1" /> {{ t('message.duplicateTable') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-multiple text-light pr-1" /> {{ t('database.duplicateTable') }}</span>
</div>
<div
v-if="selectedTable && selectedTable.type === 'table'"
class="context-element"
@click="showEmptyModal"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-off text-light pr-1" /> {{ t('message.emptyTable') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-off text-light pr-1" /> {{ t('database.emptyTable') }}</span>
</div>
<div class="context-element" @click="showDeleteModal">
<span class="d-flex"><i class="mdi mdi-18px mdi-table-remove text-light pr-1" /> {{ t('word.delete') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-table-remove text-light pr-1" /> {{ t('database.deleteTable') }}</span>
</div>
<ConfirmModal
@ -42,16 +42,16 @@
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-table-off mr-1" /> <span class="cut-text">{{ t('message.emptyTable') }}</span>
<i class="mdi mdi-24px mdi-table-off mr-1" /> <span class="cut-text">{{ t('database.emptyTable') }}</span>
</div>
</template>
<template #body>
<div class="mb-2">
{{ t('message.emptyConfirm') }} "<b>{{ selectedTable.name }}</b>"?
{{ t('database.emptyConfirm') }} "<b>{{ selectedTable.name }}</b>"?
</div>
<div v-if="customizations.tableTruncateDisableFKCheck">
<label class="form-checkbox form-inline">
<input v-model="forceTruncate" type="checkbox"><i class="form-icon" /> {{ t('message.disableFKChecks') }}
<input v-model="forceTruncate" type="checkbox"><i class="form-icon" /> {{ t('database.disableFKChecks') }}
</label>
</div>
</template>
@ -64,12 +64,12 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-table-remove mr-1" />
<span class="cut-text">{{ selectedTable.type === 'table' ? t('message.deleteTable') : t('message.deleteView') }}</span>
<span class="cut-text">{{ selectedTable.type === 'table' ? t('database.deleteTable') : t('database.deleteView') }}</span>
</div>
</template>
<template #body>
<div class="mb-2">
{{ t('message.deleteConfirm') }} "<b>{{ selectedTable.name }}</b>"?
{{ t('general.deleteConfirm') }} "<b>{{ selectedTable.name }}</b>"?
</div>
</template>
</ConfirmModal>

View File

@ -13,7 +13,7 @@
:style="{height: localHeight ? localHeight+'px' : ''}"
>
<div class="query-console-header">
<div>{{ t('word.console') }}</div>
<div>{{ t('application.console') }}</div>
<button class="btn btn-clear mr-1" @click="resizeConsole(0)" />
</div>
<div ref="queryConsoleBody" class="query-console-body">
@ -35,7 +35,7 @@
@close-context="isContext = false"
>
<div class="context-element" @click="copyQuery">
<span class="d-flex"><i class="mdi mdi-18px mdi-content-copy text-light pr-1" /> {{ t('word.copy') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-content-copy text-light pr-1" /> {{ t('general.copy') }}</span>
</div>
</BaseContextMenu>
</template>

View File

@ -10,27 +10,27 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
<button class="btn btn-dark btn-sm" @click="showParamsModal">
<i class="mdi mdi-24px mdi-dots-horizontal mr-1" />
<span>{{ t('word.parameters') }}</span>
<span>{{ t('database.parameters') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -41,7 +41,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<input
ref="firstInput"
@ -54,7 +54,7 @@
<div v-if="customizations.languages" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.language') }}
{{ t('application.language') }}
</label>
<BaseSelect
v-model="localFunction.language"
@ -66,11 +66,11 @@
<div v-if="customizations.definer" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.definer') }}
{{ t('database.definer') }}
</label>
<BaseSelect
v-model="localFunction.definer"
:options="[{value: '', name:t('message.currentUser')}, ...workspace.users]"
:options="[{value: '', name:t('database.currentUser')}, ...workspace.users]"
:option-label="(user: any) => user.value === '' ? user.name : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
@ -80,7 +80,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.returns') }}
{{ t('database.returns') }}
</label>
<div class="input-group">
<BaseSelect
@ -100,7 +100,7 @@
class="form-input"
type="number"
min="0"
:placeholder="t('word.length')"
:placeholder="t('database.length')"
>
</div>
</div>
@ -108,7 +108,7 @@
<div v-if="customizations.comment" class="column">
<div class="form-group">
<label class="form-label">
{{ t('word.comment') }}
{{ t('database.comment') }}
</label>
<input
v-model="localFunction.comment"
@ -120,7 +120,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('message.sqlSecurity') }}
{{ t('database.sqlSecurity') }}
</label>
<BaseSelect
v-model="localFunction.security"
@ -132,7 +132,7 @@
<div v-if="customizations.functionDataAccess" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('message.dataAccess') }}
{{ t('database.dataAccess') }}
</label>
<BaseSelect
v-model="localFunction.dataAccess"
@ -145,7 +145,7 @@
<div class="form-group">
<label class="form-label d-invisible">.</label>
<label class="form-checkbox form-inline">
<input v-model="localFunction.deterministic" type="checkbox"><i class="form-icon" /> {{ t('word.deterministic') }}
<input v-model="localFunction.deterministic" type="checkbox"><i class="form-icon" /> {{ t('database.deterministic') }}
</label>
</div>
</div>
@ -153,7 +153,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.functionBody') }}</label>
<label class="form-label ml-2">{{ t('database.functionBody') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -10,27 +10,27 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
<button class="btn btn-dark btn-sm" @click="showParamsModal">
<i class="mdi mdi-24px mdi-dots-horizontal mr-1" />
<span>{{ t('word.parameters') }}</span>
<span>{{ t('database.parameters') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -41,7 +41,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<input
ref="firstInput"
@ -54,7 +54,7 @@
<div v-if="customizations.languages" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.language') }}
{{ t('application.language') }}
</label>
<BaseSelect
v-model="localRoutine.language"
@ -66,11 +66,11 @@
<div v-if="customizations.definer" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.definer') }}
{{ t('database.definer') }}
</label>
<BaseSelect
v-model="localRoutine.definer"
:options="[{value: '', name:t('message.currentUser')}, ...workspace.users]"
:options="[{value: '', name:t('database.currentUser')}, ...workspace.users]"
:option-label="(user: any) => user.value === '' ? user.name : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
@ -80,7 +80,7 @@
<div v-if="customizations.comment" class="column">
<div class="form-group">
<label class="form-label">
{{ t('word.comment') }}
{{ t('database.comment') }}
</label>
<input
v-model="localRoutine.comment"
@ -92,7 +92,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('message.sqlSecurity') }}
{{ t('database.sqlSecurity') }}
</label>
<BaseSelect
v-model="localRoutine.security"
@ -104,7 +104,7 @@
<div v-if="customizations.procedureDataAccess" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('message.dataAccess') }}
{{ t('database.dataAccess') }}
</label>
<BaseSelect
v-model="localRoutine.dataAccess"
@ -117,7 +117,7 @@
<div class="form-group">
<label class="form-label d-invisible">.</label>
<label class="form-checkbox form-inline">
<input v-model="localRoutine.deterministic" type="checkbox"><i class="form-icon" /> {{ t('word.deterministic') }}
<input v-model="localRoutine.deterministic" type="checkbox"><i class="form-icon" /> {{ t('database.deterministic') }}
</label>
</div>
</div>
@ -125,7 +125,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.routineBody') }}</label>
<label class="form-label ml-2">{{ t('database.routineBody') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -10,26 +10,26 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
<button class="btn btn-dark btn-sm" @click="showTimingModal">
<i class="mdi mdi-24px mdi-timer mr-1" />
<span>{{ t('word.timing') }}</span>
<span>{{ t('database.timing') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -39,7 +39,7 @@
<div class="columns">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
<input
ref="firstInput"
v-model="localScheduler.name"
@ -50,11 +50,11 @@
</div>
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.definer') }}</label>
<label class="form-label">{{ t('database.definer') }}</label>
<BaseSelect
v-model="localScheduler.definer"
:options="users"
:option-label="(user: any) => user.value === '' ? t('message.currentUser') : `${user.name}@${user.host}`"
:option-label="(user: any) => user.value === '' ? t('database.currentUser') : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
/>
@ -62,7 +62,7 @@
</div>
<div class="column">
<div class="form-group">
<label class="form-label">{{ t('word.comment') }}</label>
<label class="form-label">{{ t('database.comment') }}</label>
<input
v-model="localScheduler.comment"
class="form-input"
@ -72,7 +72,7 @@
</div>
<div class="column">
<div class="form-group">
<label class="form-label mr-2">{{ t('word.state') }}</label>
<label class="form-label mr-2">{{ t('database.state') }}</label>
<label class="form-radio form-inline">
<input
v-model="localScheduler.state"
@ -103,7 +103,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.schedulerBody') }}</label>
<label class="form-label ml-2">{{ t('database.schedulerBody') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -10,16 +10,16 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged || isSaving"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
@ -27,20 +27,20 @@
<button
:disabled="isSaving"
class="btn btn-dark btn-sm"
:title="t('message.addNewField')"
:title="t('database.addNewField')"
@click="addField"
>
<i class="mdi mdi-24px mdi-playlist-plus mr-1" />
<span>{{ t('word.add') }}</span>
<span>{{ t('general.add') }}</span>
</button>
<button
:disabled="isSaving || !localFields.length"
class="btn btn-dark btn-sm"
:title="t('message.manageIndexes')"
:title="t('database.manageIndexes')"
@click="showIntdexesModal"
>
<i class="mdi mdi-24px mdi-key mdi-rotate-45 mr-1" />
<span>{{ t('word.indexes') }}</span>
<span>{{ t('database.indexes') }}</span>
</button>
<button
class="btn btn-dark btn-sm"
@ -48,11 +48,11 @@
@click="showForeignModal"
>
<i class="mdi mdi-24px mdi-key-link mr-1" />
<span>{{ t('word.foreignKeys') }}</span>
<span>{{ t('database.foreignKeys') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -62,7 +62,7 @@
<div class="columns mb-4">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
<input
ref="firstInput"
v-model="localOptions.name"
@ -73,7 +73,7 @@
</div>
<div v-if="workspace.customizations.comment" class="column">
<div class="form-group">
<label class="form-label">{{ t('word.comment') }}</label>
<label class="form-label">{{ t('database.comment') }}</label>
<input
v-model="localOptions.comment"
class="form-input"
@ -85,7 +85,7 @@
<div v-if="workspace.customizations.collations" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.collation') }}
{{ t('database.collation') }}
</label>
<BaseSelect
v-model="localOptions.collation"
@ -100,7 +100,7 @@
<div v-if="workspace.customizations.engines" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.engine') }}
{{ t('database.engine') }}
</label>
<BaseSelect
v-model="localOptions.engine"
@ -315,7 +315,7 @@ const addField = () => {
const uid = uidGen();
localFields.value.push({
_antares_id: uid,
name: `${t('word.field', 1)}_${uid.substring(0, 4)}`,
name: `${t('database.field', 1)}_${uid.substring(0, 4)}`,
key: '',
// eslint-disable-next-line @typescript-eslint/no-explicit-any
type: (workspace.value.dataTypes[0] as any).types[0].name,

View File

@ -1,12 +1,12 @@
<template>
<div class="column col-12 empty">
<p class="h6 empty-subtitle">
{{ t('message.thereAreNoTableFields') }}
{{ t('database.thereAreNoTableFields') }}
</p>
<div class="empty-action">
<button class="btn btn-gray d-flex" @click="emit('new-field')">
<i class="mdi mdi-24px mdi-playlist-plus mr-2" />
{{ t('message.addNewField') }}
{{ t('database.addNewField') }}
</button>
</div>
</div>

View File

@ -10,20 +10,20 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -33,7 +33,7 @@
<div class="columns">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
<input
ref="firstInput"
v-model="localTrigger.name"
@ -44,11 +44,11 @@
</div>
<div v-if="customizations.definer" class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.definer') }}</label>
<label class="form-label">{{ t('database.definer') }}</label>
<BaseSelect
v-model="localTrigger.definer"
:options="users"
:option-label="(user: any) => user.value === '' ? t('message.currentUser') : `${user.name}@${user.host}`"
:option-label="(user: any) => user.value === '' ? t('database.currentUser') : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
/>
@ -57,7 +57,7 @@
<fieldset class="column columns mb-0" :disabled="customizations.triggerOnlyRename">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.table') }}</label>
<label class="form-label">{{ t('database.table') }}</label>
<BaseSelect
v-model="localTrigger.table"
:options="schemaTables"
@ -69,7 +69,7 @@
</div>
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.event') }}</label>
<label class="form-label">{{ t('database.event') }}</label>
<div class="input-group">
<BaseSelect
v-model="localTrigger.activation"
@ -100,7 +100,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.triggerStatement') }}</label>
<label class="form-label ml-2">{{ t('database.triggerStatement') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -10,16 +10,16 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
</div>
@ -29,7 +29,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<input
ref="firstInput"
@ -42,7 +42,7 @@
<div v-if="customizations.triggerFunctionlanguages" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.language') }}
{{ t('application.language') }}
</label>
<BaseSelect
v-model="localFunction.language"
@ -54,12 +54,12 @@
<div v-if="customizations.definer" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.definer') }}
{{ t('database.definer') }}
</label>
<BaseSelect
v-model="localFunction.definer"
:options="workspace.users"
:option-label="(user: any) => user.value === '' ? t('message.currentUser') : `${user.name}@${user.host}`"
:option-label="(user: any) => user.value === '' ? t('database.currentUser') : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
/>
@ -67,7 +67,7 @@
</div>
<div v-if="customizations.comment" class="form-group">
<label class="form-label">
{{ t('word.comment') }}
{{ t('database.comment') }}
</label>
<input
v-model="localFunction.comment"
@ -79,7 +79,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.functionBody') }}</label>
<label class="form-label ml-2">{{ t('database.functionBody') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -10,20 +10,20 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -33,7 +33,7 @@
<div class="columns">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
<input
ref="firstInput"
v-model="localView.name"
@ -44,11 +44,11 @@
</div>
<div class="column col-auto">
<div v-if="workspace.customizations.definer" class="form-group">
<label class="form-label">{{ t('word.definer') }}</label>
<label class="form-label">{{ t('database.definer') }}</label>
<BaseSelect
v-model="localView.definer"
:options="users"
:option-label="(user: any) => user.value === '' ? t('message.currentUser') : `${user.name}@${user.host}`"
:option-label="(user: any) => user.value === '' ? t('database.currentUser') : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
/>
@ -56,7 +56,7 @@
</div>
<div class="column col-auto mr-2">
<div v-if="workspace.customizations.viewSqlSecurity" class="form-group">
<label class="form-label">{{ t('message.sqlSecurity') }}</label>
<label class="form-label">{{ t('database.sqlSecurity') }}</label>
<BaseSelect
v-model="localView.security"
:options="['DEFINER', 'INVOKER']"
@ -66,7 +66,7 @@
</div>
<div class="column col-auto mr-2">
<div v-if="workspace.customizations.viewAlgorithm" class="form-group">
<label class="form-label">{{ t('word.algorithm') }}</label>
<label class="form-label">{{ t('database.algorithm') }}</label>
<BaseSelect
v-model="localView.algorithm"
:options="['UNDEFINED', 'MERGE', 'TEMPTABLE']"
@ -76,7 +76,7 @@
</div>
<div v-if="workspace.customizations.viewUpdateOption" class="column col-auto mr-2">
<div class="form-group">
<label class="form-label">{{ t('message.updateOption') }}</label>
<label class="form-label">{{ t('database.updateOption') }}</label>
<BaseSelect
v-model="localView.updateOption"
:option-track-by="(user: any) => user.value"
@ -89,7 +89,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.selectStatement') }}</label>
<label class="form-label ml-2">{{ t('database.selectStatement') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -10,16 +10,16 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
@ -30,15 +30,15 @@
@click="runFunctionCheck"
>
<i class="mdi mdi-24px mdi-play mr-1" />
<span>{{ t('word.run') }}</span>
<span>{{ t('general.run') }}</span>
</button>
<button class="btn btn-dark btn-sm" @click="showParamsModal">
<i class="mdi mdi-24px mdi-dots-horizontal mr-1" />
<span>{{ t('word.parameters') }}</span>
<span>{{ t('database.parameters') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -49,7 +49,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<input
ref="firstInput"
@ -63,7 +63,7 @@
<div v-if="customizations.languages" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.language') }}
{{ t('application.language') }}
</label>
<BaseSelect
v-model="localFunction.language"
@ -75,11 +75,11 @@
<div v-if="customizations.definer" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.definer') }}
{{ t('database.definer') }}
</label>
<BaseSelect
v-model="localFunction.definer"
:options="[{value: '', name:t('message.currentUser')}, ...workspace.users]"
:options="[{value: '', name:t('database.currentUser')}, ...workspace.users]"
:option-label="(user: any) => user.value === '' ? user.name : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
@ -89,7 +89,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.returns') }}
{{ t('database.returns') }}
</label>
<div class="input-group">
<BaseSelect
@ -109,7 +109,7 @@
class="form-input"
type="number"
min="0"
:placeholder="t('word.length')"
:placeholder="t('database.length')"
>
</div>
</div>
@ -117,7 +117,7 @@
<div v-if="customizations.comment" class="column">
<div class="form-group">
<label class="form-label">
{{ t('word.comment') }}
{{ t('database.comment') }}
</label>
<input
v-model="localFunction.comment"
@ -129,7 +129,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('message.sqlSecurity') }}
{{ t('database.sqlSecurity') }}
</label>
<BaseSelect
v-model="localFunction.security"
@ -141,7 +141,7 @@
<div v-if="customizations.functionDataAccess" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('message.dataAccess') }}
{{ t('database.dataAccess') }}
</label>
<BaseSelect
v-model="localFunction.dataAccess"
@ -154,7 +154,7 @@
<div class="form-group">
<label class="form-label d-invisible">.</label>
<label class="form-checkbox form-inline">
<input v-model="localFunction.deterministic" type="checkbox"><i class="form-icon" /> {{ t('word.deterministic') }}
<input v-model="localFunction.deterministic" type="checkbox"><i class="form-icon" /> {{ t('database.deterministic') }}
</label>
</div>
</div>
@ -162,7 +162,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.functionBody') }}</label>
<label class="form-label ml-2">{{ t('database.functionBody') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -1,6 +1,6 @@
<template>
<ConfirmModal
:confirm-text="t('word.confirm')"
:confirm-text="t('general.confirm')"
size="medium"
class="options-modal"
@confirm="confirmParametersChange"
@ -9,7 +9,7 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-dots-horizontal mr-1" />
<span class="cut-text">{{ t('word.parameters') }} "{{ func }}"</span>
<span class="cut-text">{{ t('database.parameters') }} "{{ func }}"</span>
</div>
</template>
<template #body>
@ -20,16 +20,16 @@
<div class="d-flex">
<button class="btn btn-dark btn-sm d-flex" @click="addParameter">
<i class="mdi mdi-24px mdi-plus mr-1" />
<span>{{ t('word.add') }}</span>
<span>{{ t('general.add') }}</span>
</button>
<button
class="btn btn-dark btn-sm d-flex ml-2 mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
:disabled="!isChanged"
@click.prevent="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
</div>
@ -55,7 +55,7 @@
<div class="tile-action">
<button
class="btn btn-link remove-field p-0 mr-2"
:title="t('word.delete')"
:title="t('general.delete')"
@click.prevent="removeParameter(param._antares_id)"
>
<i class="mdi mdi-close" />
@ -74,7 +74,7 @@
>
<div class="form-group">
<label class="form-label col-3">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<div class="column">
<input
@ -86,7 +86,7 @@
</div>
<div class="form-group">
<label class="form-label col-3">
{{ t('word.type') }}
{{ t('database.type') }}
</label>
<div class="column">
<BaseSelect
@ -102,7 +102,7 @@
</div>
<div v-if="customizations.parametersLength" class="form-group">
<label class="form-label col-3">
{{ t('word.length') }}
{{ t('database.length') }}
</label>
<div class="column">
<input
@ -115,7 +115,7 @@
</div>
<div v-if="customizations.functionContext" class="form-group">
<label class="form-label col-3">
{{ t('word.context') }}
{{ t('database.context') }}
</label>
<div class="column">
<label class="form-radio">
@ -150,11 +150,11 @@
<i class="mdi mdi-dots-horizontal mdi-48px" />
</div>
<p class="empty-title h5">
{{ t('message.thereAreNoParameters') }}
{{ t('database.thereAreNoParameters') }}
</p>
<div class="empty-action">
<button class="btn btn-primary" @click="addParameter">
{{ t('message.createNewParameter') }}
{{ t('database.createNewParameter') }}
</button>
</div>
</div>

View File

@ -10,16 +10,16 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
@ -30,15 +30,15 @@
@click="runRoutineCheck"
>
<i class="mdi mdi-24px mdi-play mr-1" />
<span>{{ t('word.run') }}</span>
<span>{{ t('general.run') }}</span>
</button>
<button class="btn btn-dark btn-sm" @click="showParamsModal">
<i class="mdi mdi-24px mdi-dots-horizontal mr-1" />
<span>{{ t('word.parameters') }}</span>
<span>{{ t('database.parameters') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -49,7 +49,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<input
ref="firstInput"
@ -63,7 +63,7 @@
<div v-if="customizations.languages" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.language') }}
{{ t('application.language') }}
</label>
<BaseSelect
v-model="localRoutine.language"
@ -75,11 +75,11 @@
<div v-if="customizations.definer" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.definer') }}
{{ t('database.definer') }}
</label>
<BaseSelect
v-model="localRoutine.definer"
:options="[{value: '', name: t('message.currentUser')}, ...workspace.users]"
:options="[{value: '', name: t('database.currentUser')}, ...workspace.users]"
:option-label="(user: any) => user.value === '' ? user.name : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
@ -89,7 +89,7 @@
<div v-if="customizations.comment" class="column">
<div class="form-group">
<label class="form-label">
{{ t('word.comment') }}
{{ t('database.comment') }}
</label>
<input
v-model="localRoutine.comment"
@ -101,7 +101,7 @@
<div class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('message.sqlSecurity') }}
{{ t('database.sqlSecurity') }}
</label>
<BaseSelect
v-model="localRoutine.security"
@ -113,7 +113,7 @@
<div v-if="customizations.procedureDataAccess" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('message.dataAccess') }}
{{ t('database.dataAccess') }}
</label>
<BaseSelect
v-model="localRoutine.dataAccess"
@ -126,7 +126,7 @@
<div class="form-group">
<label class="form-label d-invisible">.</label>
<label class="form-checkbox form-inline">
<input v-model="localRoutine.deterministic" type="checkbox"><i class="form-icon" /> {{ t('word.deterministic') }}
<input v-model="localRoutine.deterministic" type="checkbox"><i class="form-icon" /> {{ t('database.deterministic') }}
</label>
</div>
</div>
@ -134,7 +134,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.routineBody') }}</label>
<label class="form-label ml-2">{{ t('database.routineBody') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -1,6 +1,6 @@
<template>
<ConfirmModal
:confirm-text="t('word.confirm')"
:confirm-text="t('general.confirm')"
size="medium"
class="options-modal"
@confirm="confirmParametersChange"
@ -9,7 +9,7 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-dots-horizontal mr-1" />
<span class="cut-text">{{ t('word.parameters') }} "{{ routine }}"</span>
<span class="cut-text">{{ t('database.parameters') }} "{{ routine }}"</span>
</div>
</template>
<template #body>
@ -20,16 +20,16 @@
<div class="d-flex">
<button class="btn btn-dark btn-sm d-flex" @click="addParameter">
<i class="mdi mdi-24px mdi-plus mr-1" />
<span>{{ t('word.add') }}</span>
<span>{{ t('general.add') }}</span>
</button>
<button
class="btn btn-dark btn-sm d-flex ml-2 mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
:disabled="!isChanged"
@click.prevent="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
</div>
@ -55,7 +55,7 @@
<div class="tile-action">
<button
class="btn btn-link remove-field p-0 mr-2"
:title="t('word.delete')"
:title="t('general.delete')"
@click.prevent="removeParameter(param._antares_id)"
>
<i class="mdi mdi-close" />
@ -74,7 +74,7 @@
>
<div class="form-group">
<label class="form-label col-3">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<div class="column">
<input
@ -86,7 +86,7 @@
</div>
<div class="form-group">
<label class="form-label col-3">
{{ t('word.type') }}
{{ t('database.type') }}
</label>
<div class="column">
<BaseSelect
@ -102,7 +102,7 @@
</div>
<div v-if="customizations.parametersLength" class="form-group">
<label class="form-label col-3">
{{ t('word.length') }}
{{ t('database.length') }}
</label>
<div class="column">
<input
@ -115,7 +115,7 @@
</div>
<div v-if="customizations.procedureContext" class="form-group">
<label class="form-label col-3">
{{ t('word.context') }}
{{ t('database.context') }}
</label>
<div class="column">
<label
@ -138,11 +138,11 @@
<i class="mdi mdi-dots-horizontal mdi-48px" />
</div>
<p class="empty-title h5">
{{ t('message.thereAreNoParameters') }}
{{ t('database.thereAreNoParameters') }}
</p>
<div class="empty-action">
<button class="btn btn-primary" @click="addParameter">
{{ t('message.createNewParameter') }}
{{ t('database.createNewParameter') }}
</button>
</div>
</div>

View File

@ -10,26 +10,26 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
<button class="btn btn-dark btn-sm" @click="showTimingModal">
<i class="mdi mdi-24px mdi-timer mr-1" />
<span>{{ t('word.timing') }}</span>
<span>{{ t('database.timing') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -39,7 +39,7 @@
<div class="columns">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
<input
v-model="localScheduler.name"
class="form-input"
@ -49,11 +49,11 @@
</div>
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.definer') }}</label>
<label class="form-label">{{ t('database.definer') }}</label>
<BaseSelect
v-model="localScheduler.definer"
:options="users"
:option-label="(user: any) => user.value === '' ? t('message.currentUser') : `${user.name}@${user.host}`"
:option-label="(user: any) => user.value === '' ? t('database.currentUser') : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
/>
@ -61,7 +61,7 @@
</div>
<div class="column">
<div class="form-group">
<label class="form-label">{{ t('word.comment') }}</label>
<label class="form-label">{{ t('database.comment') }}</label>
<input
v-model="localScheduler.comment"
class="form-input"
@ -71,7 +71,7 @@
</div>
<div class="column">
<div class="form-group">
<label class="form-label mr-2">{{ t('word.state') }}</label>
<label class="form-label mr-2">{{ t('database.state') }}</label>
<label class="form-radio form-inline">
<input
v-model="localScheduler.state"
@ -102,7 +102,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.schedulerBody') }}</label>
<label class="form-label ml-2">{{ t('database.schedulerBody') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -1,6 +1,6 @@
<template>
<ConfirmModal
:confirm-text="t('word.confirm')"
:confirm-text="t('general.confirm')"
size="400"
:disable-autofocus="true"
@confirm="confirmOptionsChange"
@ -9,14 +9,14 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-timer mr-1" />
<span class="cut-text">{{ t('word.timing') }} "{{ localOptions.name }}"</span>
<span class="cut-text">{{ t('database.timing') }} "{{ localOptions.name }}"</span>
</div>
</template>
<template #body>
<form class="form-horizontal">
<div class="form-group">
<label class="form-label col-4">
{{ t('word.execution') }}
{{ t('database.execution') }}
</label>
<div class="column">
<BaseSelect
@ -62,7 +62,7 @@
</div>
<div class="form-group">
<label class="form-label col-4">
{{ t('word.starts') }}
{{ t('database.starts') }}
</label>
<div class="column">
<div class="input-group">
@ -83,7 +83,7 @@
</div>
<div class="form-group">
<label class="form-label col-4">
{{ t('word.ends') }}
{{ t('database.ends') }}
</label>
<div class="column">
<div class="input-group">
@ -125,7 +125,7 @@
<div class="col-4" />
<div class="column">
<label class="form-checkbox form-inline mt-2">
<input v-model="optionsProxy.preserve" type="checkbox"><i class="form-icon" /> {{ t('message.preserveOnCompletion') }}
<input v-model="optionsProxy.preserve" type="checkbox"><i class="form-icon" /> {{ t('database.preserveOnCompletion') }}
</label>
</div>
</div>

View File

@ -10,16 +10,16 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged || isSaving"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
@ -27,20 +27,20 @@
<button
:disabled="isSaving"
class="btn btn-dark btn-sm"
:title="t('message.addNewField')"
:title="t('database.addNewField')"
@click="addField"
>
<i class="mdi mdi-24px mdi-playlist-plus mr-1" />
<span>{{ t('word.add') }}</span>
<span>{{ t('general.add') }}</span>
</button>
<button
:disabled="isSaving"
class="btn btn-dark btn-sm"
:title="t('message.manageIndexes')"
:title="t('database.manageIndexes')"
@click="showIntdexesModal"
>
<i class="mdi mdi-24px mdi-key mdi-rotate-45 mr-1" />
<span>{{ t('word.indexes') }}</span>
<span>{{ t('database.indexes') }}</span>
</button>
<button
class="btn btn-dark btn-sm mr-0"
@ -48,7 +48,7 @@
@click="showForeignModal"
>
<i class="mdi mdi-24px mdi-key-link mr-1" />
<span>{{ t('word.foreignKeys') }}</span>
<span>{{ t('database.foreignKeys') }}</span>
</button>
<div class="divider-vert py-3" />
@ -60,11 +60,11 @@
@click="showDdlModal"
>
<i class="mdi mdi-24px mdi-code-tags mr-1" />
<span>{{ t('word.ddl') }}</span>
<span>{{ t('database.ddl') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -74,7 +74,7 @@
<div class="columns mb-4">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
<input
v-model="localOptions.name"
class="form-input"
@ -84,7 +84,7 @@
</div>
<div v-if="workspace.customizations.comment" class="column">
<div class="form-group">
<label class="form-label">{{ t('word.comment') }}</label>
<label class="form-label">{{ t('database.comment') }}</label>
<input
v-model="localOptions.comment"
class="form-input"
@ -96,7 +96,7 @@
<div v-if="workspace.customizations.autoIncrement" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.autoIncrement') }}
{{ t('database.autoIncrement') }}
</label>
<input
ref="firstInput"
@ -110,7 +110,7 @@
<div v-if="workspace.customizations.collations" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.collation') }}
{{ t('database.collation') }}
</label>
<BaseSelect
v-model="localOptions.collation"
@ -125,7 +125,7 @@
<div v-if="workspace.customizations.engines" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.engine') }}
{{ t('database.engine') }}
</label>
<BaseSelect
v-model="localOptions.engine"
@ -559,7 +559,7 @@ const addField = () => {
const uid = uidGen();
localFields.value.push({
_antares_id: uid,
name: `${t('word.field', 1)}_${uid.substring(0, 4)}`,
name: `${t('database.field', 1)}_${uid.substring(0, 4)}`,
key: '',
// eslint-disable-next-line @typescript-eslint/no-explicit-any
type: (workspace.value.dataTypes[0] as any).types[0].name,

View File

@ -4,7 +4,7 @@
@close-context="closeContext"
>
<div class="context-element">
<span class="d-flex"><i class="mdi mdi-18px mdi-key-plus text-light pr-1" /> {{ t('message.createNewIndex') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-key-plus text-light pr-1" /> {{ t('database.createNewIndex') }}</span>
<i class="mdi mdi-18px mdi-chevron-right text-light pl-1" />
<div class="context-submenu">
<div
@ -19,7 +19,7 @@
</div>
</div>
<div v-if="indexes.length" class="context-element">
<span class="d-flex"><i class="mdi mdi-18px mdi-key-arrow-right text-light pr-1" /> {{ t('message.addToIndex') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-key-arrow-right text-light pr-1" /> {{ t('database.addToIndex') }}</span>
<i class="mdi mdi-18px mdi-chevron-right text-light pl-1" />
<div class="context-submenu">
<div
@ -34,10 +34,10 @@
</div>
</div>
<div class="context-element" @click="duplicateField">
<span class="d-flex"><i class="mdi mdi-18px mdi-content-duplicate text-light pr-1" /> {{ t('word.duplicate') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-content-duplicate text-light pr-1" /> {{ t('general.duplicate') }}</span>
</div>
<div class="context-element" @click="deleteField">
<span class="d-flex"><i class="mdi mdi-18px mdi-delete text-light pr-1" /> {{ t('message.deleteField') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-delete text-light pr-1" /> {{ t('database.deleteField') }}</span>
</div>
</BaseContextMenu>
</template>

View File

@ -1,16 +1,16 @@
<template>
<ConfirmModal
:confirm-text="t('word.confirm')"
:confirm-text="t('general.confirm')"
size="large"
class="options-modal"
:cancel-text="t('word.close')"
:cancel-text="t('general.close')"
:hide-footer="true"
@hide="$emit('hide')"
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-code-tags mr-1" />
<span class="cut-text">{{ t('word.ddl') }} "{{ table }}"</span>
<span class="cut-text">{{ t('database.ddl') }} "{{ table }}"</span>
</div>
</template>
<template #body>

View File

@ -21,81 +21,81 @@
<div class="tr">
<div class="th">
<div class="text-right">
{{ t('word.order') }}
{{ t('database.order') }}
</div>
</div>
<div class="th">
<div class="table-column-title">
{{ t('word.key', 2) }}
{{ t('database.key', 2) }}
</div>
</div>
<div class="th">
<div class="column-resizable min-100">
<div class="table-column-title">
{{ t('word.name') }}
{{ t('general.name') }}
</div>
</div>
</div>
<div class="th">
<div class="column-resizable min-100">
<div class="table-column-title">
{{ t('word.type') }}
{{ t('database.type') }}
</div>
</div>
</div>
<div v-if="customizations.tableArray" class="th">
<div class="column-resizable">
<div class="table-column-title">
{{ t('word.array') }}
{{ t('database.array') }}
</div>
</div>
</div>
<div class="th">
<div class="column-resizable">
<div class="table-column-title">
{{ t('word.length') }}
{{ t('database.length') }}
</div>
</div>
</div>
<div v-if="customizations.unsigned" class="th">
<div class="column-resizable">
<div class="table-column-title">
{{ t('word.unsigned') }}
{{ t('database.unsigned') }}
</div>
</div>
</div>
<div v-if="customizations.nullable" class="th">
<div class="column-resizable">
<div class="table-column-title">
{{ t('message.allowNull') }}
{{ t('database.allowNull') }}
</div>
</div>
</div>
<div v-if="customizations.zerofill" class="th">
<div class="column-resizable">
<div class="table-column-title">
{{ t('message.zeroFill') }}
{{ t('database.zeroFill') }}
</div>
</div>
</div>
<div class="th">
<div class="column-resizable">
<div class="table-column-title">
{{ t('word.default') }}
{{ t('database.default') }}
</div>
</div>
</div>
<div v-if="customizations.comment" class="th">
<div class="column-resizable">
<div class="table-column-title">
{{ t('word.comment') }}
{{ t('database.comment') }}
</div>
</div>
</div>
<div v-if="customizations.collation" class="th">
<div class="column-resizable min-100">
<div class="table-column-title">
{{ t('word.collation') }}
{{ t('database.collation') }}
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<template>
<ConfirmModal
:confirm-text="t('word.confirm')"
:confirm-text="t('general.confirm')"
size="medium"
class="options-modal"
@confirm="confirmForeignsChange"
@ -9,7 +9,7 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-key-link mr-1" />
<span class="cut-text">{{ t('word.foreignKeys') }} "{{ table }}"</span>
<span class="cut-text">{{ t('database.foreignKeys') }} "{{ table }}"</span>
</div>
</template>
<template #body>
@ -20,16 +20,16 @@
<div class="d-flex">
<button class="btn btn-dark btn-sm d-flex" @click="addForeign">
<i class="mdi mdi-24px mdi-link-plus mr-1" />
<span>{{ t('word.add') }}</span>
<span>{{ t('general.add') }}</span>
</button>
<button
class="btn btn-dark btn-sm d-flex ml-2 mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
:disabled="!isChanged"
@click.prevent="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
</div>
@ -67,7 +67,7 @@
<div class="tile-action">
<button
class="btn btn-link remove-field p-0 mr-2"
:title="t('word.delete')"
:title="t('general.delete')"
@click.prevent="removeIndex(foreign._antares_id)"
>
<i class="mdi mdi-close" />
@ -86,7 +86,7 @@
>
<div class="form-group">
<label class="form-label col-3">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<div class="column">
<input
@ -98,7 +98,7 @@
</div>
<div class="form-group mb-4">
<label class="form-label col-3">
{{ t('word.field', 1) }}
{{ t('database.field', 1) }}
</label>
<div class="fields-list column pt-1">
<label
@ -114,7 +114,7 @@
</div>
<div class="form-group">
<label class="form-label col-3">
{{ t('message.referenceTable') }}
{{ t('database.referenceTable') }}
</label>
<div class="column">
<BaseSelect
@ -129,7 +129,7 @@
</div>
<div class="form-group mb-4">
<label class="form-label col-3">
{{ t('message.referenceField') }}
{{ t('database.referenceField') }}
</label>
<div class="fields-list column pt-1">
<label
@ -145,7 +145,7 @@
</div>
<div class="form-group">
<label class="form-label col-3">
{{ t('message.onUpdate') }}
{{ t('database.onUpdate') }}
</label>
<div class="column">
<BaseSelect
@ -157,7 +157,7 @@
</div>
<div class="form-group">
<label class="form-label col-3">
{{ t('message.onDelete') }}
{{ t('database.onDelete') }}
</label>
<div class="column">
<BaseSelect
@ -174,11 +174,11 @@
<i class="mdi mdi-key-link mdi-48px" />
</div>
<p class="empty-title h5">
{{ t('message.thereAreNoForeign') }}
{{ t('database.thereAreNoForeign') }}
</p>
<div class="empty-action">
<button class="btn btn-primary" @click="addForeign">
{{ t('message.createNewForeign') }}
{{ t('database.createNewForeign') }}
</button>
</div>
</div>

View File

@ -1,6 +1,6 @@
<template>
<ConfirmModal
:confirm-text="t('word.confirm')"
:confirm-text="t('general.confirm')"
size="medium"
class="options-modal"
@confirm="confirmIndexesChange"
@ -9,7 +9,7 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-key mdi-rotate-45 mr-1" />
<span class="cut-text">{{ t('word.indexes') }} "{{ table }}"</span>
<span class="cut-text">{{ t('database.indexes') }} "{{ table }}"</span>
</div>
</template>
<template #body>
@ -20,16 +20,16 @@
<div class="d-flex">
<button class="btn btn-dark btn-sm d-flex" @click="addIndex">
<i class="mdi mdi-24px mdi-key-plus mr-1" />
<span>{{ t('word.add') }}</span>
<span>{{ t('general.add') }}</span>
</button>
<button
class="btn btn-dark btn-sm d-flex ml-2 mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
:disabled="!isChanged"
@click.prevent="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
</div>
@ -50,12 +50,12 @@
<div class="tile-title">
{{ index.name }}
</div>
<small class="tile-subtitle text-gray">{{ index.type }} · {{ index.fields.length }} {{ t('word.field', index.fields.length) }}</small>
<small class="tile-subtitle text-gray">{{ index.type }} · {{ index.fields.length }} {{ t('database.field', index.fields.length) }}</small>
</div>
<div class="tile-action">
<button
class="btn btn-link remove-field p-0 mr-2"
:title="t('word.delete')"
:title="t('general.delete')"
@click.prevent="removeIndex(index._antares_id)"
>
<i class="mdi mdi-close" />
@ -74,7 +74,7 @@
>
<div class="form-group">
<label class="form-label col-3">
{{ t('word.name') }}
{{ t('general.name') }}
</label>
<div class="column">
<input
@ -86,7 +86,7 @@
</div>
<div class="form-group">
<label class="form-label col-3">
{{ t('word.type') }}
{{ t('database.type') }}
</label>
<div class="column">
<BaseSelect
@ -99,7 +99,7 @@
</div>
<div class="form-group">
<label class="form-label col-3">
{{ t('word.field', fields.length) }}
{{ t('database.field', fields.length) }}
</label>
<div class="fields-list column pt-1">
<label
@ -119,11 +119,11 @@
<i class="mdi mdi-key-outline mdi-48px" />
</div>
<p class="empty-title h5">
{{ t('message.thereAreNoIndexes') }}
{{ t('database.thereAreNoIndexes') }}
</p>
<div class="empty-action">
<button class="btn btn-primary" @click="addIndex">
{{ t('message.createNewIndex') }}
{{ t('database.createNewIndex') }}
</button>
</div>
</div>

View File

@ -220,7 +220,7 @@
</div>
<ConfirmModal
v-if="isDefaultModal"
:confirm-text="t('word.confirm')"
:confirm-text="t('general.confirm')"
size="400"
@confirm="editOFF"
@hide="hideDefaultModal"
@ -228,7 +228,7 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-playlist-edit mr-1" />
<span class="cut-text">{{ t('word.default') }} "{{ row.name }}"</span>
<span class="cut-text">{{ t('database.default') }} "{{ row.name }}"</span>
</div>
</template>
<template #body>
@ -251,7 +251,7 @@
value="custom"
type="radio"
name="default"
><i class="form-icon" /> {{ t('message.customValue') }}
><i class="form-icon" /> {{ t('database.customValue') }}
</label>
<div class="column">
<input
@ -292,7 +292,7 @@
type="radio"
name="default"
value="expression"
><i class="form-icon" /> {{ t('word.expression') }}
><i class="form-icon" /> {{ t('database.expression') }}
</label>
<div class="column">
<input
@ -307,7 +307,7 @@
<div v-if="customizations.onUpdate">
<div class="form-group">
<label class="form-label col-4">
{{ t('message.onUpdate') }}
{{ t('database.onUpdate') }}
</label>
<div class="column">
<input

View File

@ -10,20 +10,20 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -33,7 +33,7 @@
<div class="columns">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
<input
v-model="localTrigger.name"
class="form-input"
@ -43,11 +43,11 @@
</div>
<div v-if="customizations.definer" class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.definer') }}</label>
<label class="form-label">{{ t('database.definer') }}</label>
<BaseSelect
v-model="localTrigger.definer"
:options="users"
:option-label="(user: any) => user.value === '' ? t('message.currentUser') : `${user.name}@${user.host}`"
:option-label="(user: any) => user.value === '' ? t('database.currentUser') : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
/>
@ -56,7 +56,7 @@
<fieldset class="column columns mb-0" :disabled="customizations.triggerOnlyRename">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.table') }}</label>
<label class="form-label">{{ t('database.table') }}</label>
<BaseSelect
v-model="localTrigger.table"
:options="schemaTables"
@ -68,7 +68,7 @@
</div>
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.event') }}</label>
<label class="form-label">{{ t('database.event') }}</label>
<div class="input-group">
<BaseSelect
v-model="localTrigger.activation"
@ -100,7 +100,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.triggerStatement') }}</label>
<label class="form-label ml-2">{{ t('database.triggerStatement') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -10,16 +10,16 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
</div>
@ -29,7 +29,7 @@
<div v-if="customizations.triggerFunctionlanguages" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.language') }}
{{ t('application.language') }}
</label>
<BaseSelect
v-model="localFunction.language"
@ -41,12 +41,12 @@
<div v-if="customizations.definer" class="column col-auto">
<div class="form-group">
<label class="form-label">
{{ t('word.definer') }}
{{ t('database.definer') }}
</label>
<BaseSelect
v-model="localFunction.definer"
:options="workspace.users"
:option-label="(user: any) => user.value === '' ? t('message.currentUser') : `${user.name}@${user.host}`"
:option-label="(user: any) => user.value === '' ? t('database.currentUser') : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
/>
@ -54,7 +54,7 @@
</div>
<div v-if="customizations.comment" class="form-group">
<label class="form-label">
{{ t('word.comment') }}
{{ t('database.comment') }}
</label>
<input
v-model="localFunction.comment"
@ -66,7 +66,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.functionBody') }}</label>
<label class="form-label ml-2">{{ t('database.functionBody') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -10,20 +10,20 @@
@click="saveChanges"
>
<i class="mdi mdi-24px mdi-content-save mr-1" />
<span>{{ t('word.save') }}</span>
<span>{{ t('general.save') }}</span>
</button>
<button
:disabled="!isChanged"
class="btn btn-link btn-sm mr-0"
:title="t('message.clearChanges')"
:title="t('database.clearChanges')"
@click="clearChanges"
>
<i class="mdi mdi-24px mdi-delete-sweep mr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
</div>
<div class="workspace-query-info">
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -33,7 +33,7 @@
<div class="columns">
<div class="column col-auto">
<div class="form-group">
<label class="form-label">{{ t('word.name') }}</label>
<label class="form-label">{{ t('general.name') }}</label>
<input
v-model="localView.name"
class="form-input"
@ -43,11 +43,11 @@
</div>
<div class="column col-auto">
<div v-if="workspace.customizations.definer" class="form-group">
<label class="form-label">{{ t('word.definer') }}</label>
<label class="form-label">{{ t('database.definer') }}</label>
<BaseSelect
v-model="localView.definer"
:options="users"
:option-label="(user: any) => user.value === '' ? t('message.currentUser') : `${user.name}@${user.host}`"
:option-label="(user: any) => user.value === '' ? t('database.currentUser') : `${user.name}@${user.host}`"
:option-track-by="(user: any) => user.value === '' ? '' : `\`${user.name}\`@\`${user.host}\``"
class="form-select"
/>
@ -55,7 +55,7 @@
</div>
<div class="column col-auto mr-2">
<div v-if="workspace.customizations.viewSqlSecurity" class="form-group">
<label class="form-label">{{ t('message.sqlSecurity') }}</label>
<label class="form-label">{{ t('database.sqlSecurity') }}</label>
<BaseSelect
v-model="localView.security"
:options="['DEFINER', 'INVOKER']"
@ -65,7 +65,7 @@
</div>
<div class="column col-auto mr-2">
<div v-if="workspace.customizations.viewAlgorithm" class="form-group">
<label class="form-label">{{ t('word.algorithm') }}</label>
<label class="form-label">{{ t('database.algorithm') }}</label>
<BaseSelect
v-model="localView.algorithm"
:options="['UNDEFINED', 'MERGE', 'TEMPTABLE']"
@ -75,7 +75,7 @@
</div>
<div v-if="workspace.customizations.viewUpdateOption" class="column col-auto mr-2">
<div class="form-group">
<label class="form-label">{{ t('message.updateOption') }}</label>
<label class="form-label">{{ t('database.updateOption') }}</label>
<BaseSelect
v-model="localView.updateOption"
:option-track-by="(user: any) => user.value"
@ -88,7 +88,7 @@
</div>
<div class="workspace-query-results column col-12 mt-2 p-relative">
<BaseLoader v-if="isLoading" />
<label class="form-label ml-2">{{ t('message.selectStatement') }}</label>
<label class="form-label ml-2">{{ t('database.selectStatement') }}</label>
<QueryEditor
v-show="isSelected"
ref="queryEditor"

View File

@ -24,11 +24,11 @@
v-if="showCancel && isQuering"
class="btn btn-primary btn-sm cancellable"
:disabled="!query"
:title="t('word.cancel')"
:title="t('general.cancel')"
@click="killTabQuery()"
>
<i class="mdi mdi-24px mdi-window-close" />
<span class="d-invisible pr-1">{{ t('word.run') }}</span>
<span class="d-invisible pr-1">{{ t('general.run') }}</span>
</button>
<button
v-else
@ -38,7 +38,7 @@
@click="runQuery(query)"
>
<i class="mdi mdi-24px mdi-play pr-1" />
<span>{{ t('word.run') }}</span>
<span>{{ t('general.run') }}</span>
</button>
</div>
<button
@ -48,7 +48,7 @@
@click="commitTab()"
>
<i class="mdi mdi-24px mdi-cube-send pr-1" />
<span>{{ t('word.commit') }}</span>
<span>{{ t('database.commit') }}</span>
</button>
<button
v-if="!autocommit"
@ -57,7 +57,7 @@
@click="rollbackTab()"
>
<i class="mdi mdi-24px mdi-undo-variant pr-1" />
<span>{{ t('word.rollback') }}</span>
<span>{{ t('database.rollback') }}</span>
</button>
<button
class="btn btn-link btn-sm mr-0"
@ -65,7 +65,7 @@
@click="clear()"
>
<i class="mdi mdi-24px mdi-delete-sweep pr-1" />
<span>{{ t('word.clear') }}</span>
<span>{{ t('general.clear') }}</span>
</button>
<div class="divider-vert py-3" />
@ -76,7 +76,7 @@
@click="beautify()"
>
<i class="mdi mdi-24px mdi-brush pr-1" />
<span>{{ t('word.format') }}</span>
<span>{{ t('general.format') }}</span>
</button>
<button
class="btn btn-dark btn-sm"
@ -84,7 +84,7 @@
@click="openHistoryModal()"
>
<i class="mdi mdi-24px mdi-history pr-1" />
<span>{{ t('word.history') }}</span>
<span>{{ t('general.history') }}</span>
</button>
<div class="dropdown table-dropdown pr-2">
<button
@ -93,7 +93,7 @@
tabindex="0"
>
<i class="mdi mdi-24px mdi-file-export mr-1" />
<span>{{ t('word.export') }}</span>
<span>{{ t('database.export') }}</span>
<i class="mdi mdi-24px mdi-menu-down" />
</button>
<ul class="menu text-left">
@ -104,18 +104,18 @@
<a class="c-hand" @click="downloadTable('csv')">CSV</a>
</li>
<li class="menu-item">
<a class="c-hand" @click="downloadTable('php')">{{ t('message.phpArray') }}</a>
<a class="c-hand" @click="downloadTable('php')">{{ t('application.phpArray') }}</a>
</li>
<li class="menu-item">
<a class="c-hand" @click="downloadTable('sql')">SQL INSERT</a>
</li>
</ul>
</div>
<div class="input-group pr-2" :title="t('message.commitMode')">
<div class="input-group pr-2" :title="t('database.commitMode')">
<i class="input-group-addon addon-sm mdi mdi-24px mdi-source-commit p-0" />
<BaseSelect
v-model="autocommit"
:options="[{value: true, label: t('message.autoCommit')}, {value: false, label: t('message.manualCommit')}]"
:options="[{value: true, label: t('database.autoCommit')}, {value: false, label: t('database.manualCommit')}]"
:option-label="(opt: any) => opt.label"
:option-track-by="(opt: any) => opt.value"
class="form-select select-sm text-bold"
@ -126,30 +126,30 @@
<div
v-if="results.length"
class="d-flex"
:title="t('message.queryDuration')"
:title="t('database.queryDuration')"
>
<i class="mdi mdi-timer-sand mdi-rotate-180 pr-1" /> <b>{{ durationsCount / 1000 }}s</b>
</div>
<div
v-if="resultsCount"
class="d-flex"
:title="t('word.results')"
:title="t('general.results')"
>
<i class="mdi mdi-equal pr-1" /> <b>{{ resultsCount.toLocaleString() }}</b>
</div>
<div
v-if="hasAffected"
class="d-flex"
:title="t('message.affectedRows')"
:title="t('database.affectedRows')"
>
<i class="mdi mdi-target pr-1" /> <b>{{ affectedCount }}</b>
</div>
<div class="input-group" :title="t('word.schema')">
<div class="input-group" :title="t('database.schema')">
<i class="input-group-addon addon-sm mdi mdi-24px mdi-database" />
<BaseSelect
v-model="selectedSchema"
:options="[{value: null, label: t('message.noSchema')}, ...databaseSchemas.map(el => ({label: el, value: el}))]"
:options="[{value: null, label: t('database.noSchema')}, ...databaseSchemas.map(el => ({label: el, value: el}))]"
class="form-select select-sm text-bold"
/>
</div>
@ -468,7 +468,7 @@ const commitTab = async () => {
await Schema.commitTab(params);
setUnsavedChanges({ uid: props.connection.uid, tUid: props.tabUid, isChanged: false });
addNotification({ status: 'success', message: t('message.actionSuccessful', { action: 'COMMIT' }) });
addNotification({ status: 'success', message: t('general.actionSuccessful', { action: 'COMMIT' }) });
}
catch (err) {
addNotification({ status: 'error', message: err.stack });
@ -487,7 +487,7 @@ const rollbackTab = async () => {
await Schema.rollbackTab(params);
setUnsavedChanges({ uid: props.connection.uid, tUid: props.tabUid, isChanged: false });
addNotification({ status: 'success', message: t('message.actionSuccessful', { action: 'ROLLBACK' }) });
addNotification({ status: 'success', message: t('general.actionSuccessful', { action: 'ROLLBACK' }) });
}
catch (err) {
addNotification({ status: 'error', message: err.stack });

View File

@ -102,12 +102,12 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-delete mr-1" />
<span class="cut-text">{{ t('message.deleteRows', selectedRows.length) }}</span>
<span class="cut-text">{{ t('database.deleteRows', selectedRows.length) }}</span>
</div>
</template>
<template #body>
<div class="mb-2">
{{ t('message.confirmToDeleteRows', selectedRows.length) }}
{{ t('database.confirmToDeleteRows', selectedRows.length) }}
</div>
</template>
</ConfirmModal>
@ -120,12 +120,12 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-file-export mr-1" />
<span class="cut-text">{{ t('message.sqlExportOptions') }}</span>
<span class="cut-text">{{ t('database.sqlExportOptions') }}</span>
</div>
</template>
<template #body>
<div class="columns">
<label class="column col-12 h6 mb-2 cut-text">{{ t('message.targetTable') }}</label>
<label class="column col-12 h6 mb-2 cut-text">{{ t('database.targetTable') }}</label>
<div class="column col-12">
<input
v-model.number="sqlExportOptions.targetTable"
@ -134,7 +134,7 @@
:placeholder="chunkModalRequest"
>
</div>
<label class="column col-12 h6 mb-2 mt-4 cut-text">{{ t('message.newInsertStmtEvery') }}:</label>
<label class="column col-12 h6 mb-2 mt-4 cut-text">{{ t('database.newInsertStmtEvery') }}:</label>
<div class="column col-6">
<input
v-model.number="sqlExportOptions.sqlInsertAfter"
@ -146,7 +146,7 @@
<BaseSelect
v-model="sqlExportOptions.sqlInsertDivider"
class="form-select"
:options="[{value: 'bytes', label: 'KiB'}, {value: 'rows', label: t('word.row', 2)}]"
:options="[{value: 'bytes', label: 'KiB'}, {value: 'rows', label: t('database.row', 2)}]"
/>
</div>
</div>
@ -161,14 +161,14 @@
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-file-export mr-1" />
<span class="cut-text">{{ t('message.csvExportOptions') }}</span>
<span class="cut-text">{{ t('application.csvExportOptions') }}</span>
</div>
</template>
<template #body>
<div class="columns">
<div class="form-group column col-12 columns col-gapless">
<div class="column col-5">
<label class="form-label cut-text">{{ t('message.csvFieldDelimiter') }}:</label>
<label class="form-label cut-text">{{ t('application.csvFieldDelimiter') }}:</label>
</div>
<div class="column col-7">
<input
@ -180,23 +180,23 @@
</div>
<div class="form-group column col-12 columns col-gapless">
<div class="column col-5">
<label class="form-label cut-text">{{ t('message.csvStringDelimiter') }}:</label>
<label class="form-label cut-text">{{ t('application.csvStringDelimiter') }}:</label>
</div>
<div class="column col-7">
<BaseSelect
v-model="csvExportOptions.stringDelimiter"
class="form-select"
:options="[
{value: '', label: t('word.none')},
{value: 'single', label: t('word.singleQuote')},
{value: 'double', label: t('word.doubleQuote')}
{value: '', label: t('general.none')},
{value: 'single', label: t('general.singleQuote')},
{value: 'double', label: t('general.doubleQuote')}
]"
/>
</div>
</div>
<div class="form-group column col-12 columns col-gapless">
<div class="column col-5">
<label class="form-label cut-text">{{ t('message.csvLinesTerminator') }}:</label>
<label class="form-label cut-text">{{ t('application.csvLinesTerminator') }}:</label>
</div>
<div class="column col-7">
<textarea
@ -210,7 +210,7 @@
<div class="form-group column col-12 columns col-gapless">
<div class="column col-5">
<label class="form-label">
{{ t('message.csvIncludeHeader') }}
{{ t('application.csvIncludeHeader') }}
</label>
</div>
<div class="column col-7">

View File

@ -4,7 +4,7 @@
@close-context="closeContext"
>
<div class="context-element">
<span class="d-flex"><i class="mdi mdi-18px mdi-content-copy text-light pr-1" /> {{ t('word.copy') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-content-copy text-light pr-1" /> {{ t('general.copy') }}</span>
<i class="mdi mdi-18px mdi-chevron-right text-light pl-1" />
<div class="context-submenu">
<div
@ -13,32 +13,32 @@
@click="copyCell"
>
<span class="d-flex">
<i class="mdi mdi-18px mdi-numeric-0 mdi-rotate-90 text-light pr-1" /> {{ t('word.cell', 1) }}
<i class="mdi mdi-18px mdi-numeric-0 mdi-rotate-90 text-light pr-1" /> {{ t('database.cell', 1) }}
</span>
</div>
<div class="context-element" @click="copyRow('html')">
<span class="d-flex">
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', selectedRows.length) }} ({{ t('word.table') }})
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('database.row', selectedRows.length) }} ({{ t('database.table') }})
</span>
</div>
<div class="context-element" @click="copyRow('json')">
<span class="d-flex">
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', selectedRows.length) }} (JSON)
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('database.row', selectedRows.length) }} (JSON)
</span>
</div>
<div class="context-element" @click="copyRow('csv')">
<span class="d-flex">
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', selectedRows.length) }} (CSV)
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('database.row', selectedRows.length) }} (CSV)
</span>
</div>
<div class="context-element" @click="copyRow('php')">
<span class="d-flex">
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', selectedRows.length) }} (PHP)
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('database.row', selectedRows.length) }} (PHP)
</span>
</div>
<div class="context-element" @click="copyRow('sql')">
<span class="d-flex">
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', selectedRows.length) }} (SQL INSERT)
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('database.row', selectedRows.length) }} (SQL INSERT)
</span>
</div>
</div>
@ -49,7 +49,7 @@
@click="duplicateRow"
>
<span class="d-flex">
<i class="mdi mdi-18px mdi-content-duplicate text-light pr-1" /> {{ t('word.duplicate') }}
<i class="mdi mdi-18px mdi-content-duplicate text-light pr-1" /> {{ t('general.duplicate') }}
</span>
</div>
<div
@ -57,7 +57,7 @@
class="context-element"
>
<span class="d-flex">
<i class="mdi mdi-18px mdi-auto-fix text-light pr-1" /> {{ t('message.fillCell') }}
<i class="mdi mdi-18px mdi-auto-fix text-light pr-1" /> {{ t('database.fillCell') }}
</span>
<i class="mdi mdi-18px mdi-chevron-right text-light pl-1" />
<div class="context-submenu">
@ -79,7 +79,7 @@
@click="setNull"
>
<span class="d-flex">
<i class="mdi mdi-18px mdi-null text-light pr-1" /> {{ t('message.setNull') }}
<i class="mdi mdi-18px mdi-null text-light pr-1" /> {{ t('database.setNull') }}
</span>
</div>
<div
@ -88,7 +88,7 @@
@click="showConfirmModal"
>
<span class="d-flex">
<i class="mdi mdi-18px mdi-delete text-light pr-1" /> {{ t('message.deleteRows', selectedRows.length) }}
<i class="mdi mdi-18px mdi-delete text-light pr-1" /> {{ t('database.deleteRows', selectedRows.length) }}
</span>
</div>
</BaseContextMenu>

View File

@ -73,7 +73,7 @@
</div>
<ConfirmModal
v-if="isTextareaEditor"
:confirm-text="t('word.update')"
:confirm-text="t('application.update')"
size="medium"
:disable-autofocus="true"
@confirm="editOFF"
@ -81,7 +81,7 @@
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-playlist-edit mr-1" /> <span class="cut-text">{{ t('word.edit') }} "{{ editingField }}"</span>
<i class="mdi mdi-24px mdi-playlist-edit mr-1" /> <span class="cut-text">{{ t('general.edit') }} "{{ editingField }}"</span>
</div>
</template>
<template #body>
@ -96,7 +96,7 @@
<div class="editor-field-info p-vcentered">
<div class="d-flex p-vcentered">
<label for="editorMode" class="form-label mr-2">
<b>{{ t('word.content') }}</b>:
<b>{{ t('general.content') }}</b>:
</label>
<BaseSelect
id="editorMode"
@ -110,10 +110,10 @@
<div class="d-flex">
<div class="p-vcentered">
<div class="mr-4">
<b>{{ t('word.size') }}</b>: {{ editingContent ? editingContent.length : 0 }}
<b>{{ t('general.size') }}</b>: {{ editingContent ? editingContent.length : 0 }}
</div>
<div v-if="editingType">
<b>{{ t('word.type') }}</b>: {{ editingType.toUpperCase() }}
<b>{{ t('database.type') }}</b>: {{ editingType.toUpperCase() }}
</div>
</div>
</div>
@ -138,14 +138,14 @@
</ConfirmModal>
<ConfirmModal
v-if="isBlobEditor"
:confirm-text="t('word.update')"
:confirm-text="t('application.update')"
@confirm="editOFF"
@hide="hideEditorModal"
>
<template #header>
<div class="d-flex">
<i class="mdi mdi-24px mdi-playlist-edit mr-1" />
<span class="cut-text">{{ t('word.edit') }} "{{ editingField }}"</span>
<span class="cut-text">{{ t('general.edit') }} "{{ editingField }}"</span>
</div>
</template>
<template #body>
@ -162,11 +162,11 @@
</div>
<div class="editor-buttons mt-2">
<button class="btn btn-link btn-sm" @click="downloadFile">
<span>{{ t('word.download') }}</span>
<span>{{ t('general.download') }}</span>
<i class="mdi mdi-24px mdi-download ml-1" />
</button>
<button class="btn btn-link btn-sm" @click="prepareToDelete">
<span>{{ t('word.delete') }}</span>
<span>{{ t('general.delete') }}</span>
<i class="mdi mdi-24px mdi-delete-forever ml-1" />
</button>
</div>
@ -174,15 +174,15 @@
</Transition>
<div class="editor-field-info">
<div>
<b>{{ t('word.size') }}</b>: {{ formatBytes(editingContent.length) }}<br>
<b>{{ t('word.mimeType') }}</b>: {{ contentInfo.mime }}
<b>{{ t('general.size') }}</b>: {{ formatBytes(editingContent.length) }}<br>
<b>{{ t('general.mimeType') }}</b>: {{ contentInfo.mime }}
</div>
<div v-if="editingType">
<b>{{ t('word.type') }}</b>: {{ editingType.toUpperCase() }}
<b>{{ t('database.type') }}</b>: {{ editingType.toUpperCase() }}
</div>
</div>
<div class="mt-3">
<label>{{ t('message.uploadFile') }}</label>
<label>{{ t('general.uploadFile') }}</label>
<input
class="form-input"
type="file"

View File

@ -8,7 +8,7 @@
<button
class="btn btn-dark btn-sm mr-0 pr-1"
:class="{'loading':isQuering}"
:title="`${t('word.refresh')}`"
:title="`${t('general.refresh')}`"
@click="reloadTable"
>
<i v-if="!+autorefreshTimer" class="mdi mdi-24px mdi-refresh mr-1" />
@ -18,7 +18,7 @@
<i class="mdi mdi-24px mdi-menu-down" />
</div>
<div class="menu px-3">
<span>{{ t('word.autoRefresh') }}: <b>{{ +autorefreshTimer ? `${autorefreshTimer}s` : 'OFF' }}</b></span>
<span>{{ t('general.autoRefresh') }}: <b>{{ +autorefreshTimer ? `${autorefreshTimer}s` : 'OFF' }}</b></span>
<input
v-model="autorefreshTimer"
class="slider no-border"
@ -35,7 +35,7 @@
<button
class="btn btn-dark btn-sm mr-0"
:disabled="isQuering || page === 1"
:title="t('message.previousResultsPage')"
:title="t('application.previousResultsPage')"
@click="pageChange('prev')"
>
<i class="mdi mdi-24px mdi-skip-previous" />
@ -46,7 +46,7 @@
{{ page }}
</div>
<div class="menu px-3">
<span>{{ t('message.pageNumber') }}</span>
<span>{{ t('general.pageNumber') }}</span>
<input
ref="pageSelect"
v-model="pageProxy"
@ -61,7 +61,7 @@
<button
class="btn btn-dark btn-sm mr-0"
:disabled="isQuering || (results.length && results[0].rows.length < limit)"
:title="t('message.nextResultsPage')"
:title="t('application.nextResultsPage')"
@click="pageChange('next')"
>
<i class="mdi mdi-24px mdi-skip-next" />
@ -72,7 +72,7 @@
<button
class="btn btn-sm"
:title="t('word.filter')"
:title="t('general.filter')"
:disabled="isQuering"
:class="{'btn-primary': isSearch, 'btn-dark': !isSearch}"
@click="isSearch = !isSearch"
@ -86,7 +86,7 @@
@click="showFakerModal()"
>
<i class="mdi mdi-24px mdi-playlist-plus mr-1" />
<span>{{ t('message.insertRow', 2) }}</span>
<span>{{ t('database.insertRow', 2) }}</span>
</button>
<div class="dropdown table-dropdown">
@ -96,7 +96,7 @@
tabindex="0"
>
<i class="mdi mdi-24px mdi-file-export mr-1" />
<span>{{ t('word.export') }}</span>
<span>{{ t('database.export') }}</span>
<i class="mdi mdi-24px mdi-menu-down" />
</button>
<ul class="menu text-left">
@ -107,7 +107,7 @@
<a class="c-hand" @click="downloadTable('csv')">CSV</a>
</li>
<li class="menu-item">
<a class="c-hand" @click="downloadTable('php')">{{ t('message.phpArray') }}</a>
<a class="c-hand" @click="downloadTable('php')">{{ t('application.phpArray') }}</a>
</li>
<li class="menu-item">
<a class="c-hand" @click="downloadTable('sql')">SQL INSERT</a>
@ -120,33 +120,33 @@
<button
class="btn btn-dark btn-sm"
:disabled="isQuering"
:title="t('word.settings')"
:title="t('application.settings')"
@click="openTableSettingTab()"
>
<i class="mdi mdi-24px mdi-cog" />
<!-- <span>{{ t('word.settings') }}</span> -->
<!-- <span>{{ t('application.settings') }}</span> -->
</button>
</div>
<div class="workspace-query-info">
<div
v-if="results.length"
class="d-flex"
:title="t('message.queryDuration')"
:title="t('database.queryDuration')"
>
<i class="mdi mdi-timer-sand mdi-rotate-180 pr-1" /> <b>{{ results[0].duration / 1000 }}s</b>
</div>
<div v-if="results.length && results[0].rows">
{{ t('word.results') }}: <b>{{ localeString(results[0].rows.length) }}</b>
{{ t('general.results') }}: <b>{{ localeString(results[0].rows.length) }}</b>
</div>
<div v-if="hasApproximately || (page > 1 && approximateCount)">
{{ t('word.total') }}: <b
:title="!customizations.tableRealCount ? t('word.approximately') : ''"
{{ t('database.total') }}: <b
:title="!customizations.tableRealCount ? t('database.approximately') : ''"
>
<span v-if="!customizations.tableRealCount"></span>
{{ localeString(approximateCount) }}
</b>
</div>
<div class="d-flex" :title="t('word.schema')">
<div class="d-flex" :title="t('database.schema')">
<i class="mdi mdi-18px mdi-database mr-1" /><b>{{ schema }}</b>
</div>
</div>
@ -166,7 +166,7 @@
<i class="mdi mdi-48px mdi-island" />
</div>
<p class="h4 empty-subtitle">
{{ t('message.noResultsPresent') }}
{{ t('database.noResultsPresent') }}
</p>
</div>
<WorkspaceTabQueryTable

View File

@ -51,7 +51,7 @@
class="btn btn-sm btn-primary mr-0 ml-2"
type="submit"
>
{{ t('word.filter') }}
{{ t('general.filter') }}
</button>
<button
class="btn btn-sm btn-dark mr-0 ml-2"

View File

@ -4,19 +4,19 @@
@close-context="closeContext"
>
<div class="context-element" @click.stop="closeAllTabs">
<span class="d-flex"><i class="mdi mdi-18px mdi-asterisk text-light pr-1" /> {{ t('message.closeAllTabs') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-asterisk text-light pr-1" /> {{ t('application.closeAllTabs') }}</span>
</div>
<div class="context-element" @click.stop="closeOtherTabs">
<span class="d-flex"><i class="mdi mdi-18px mdi-not-equal text-light pr-1" /> {{ t('message.closeOtherTabs') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-not-equal text-light pr-1" /> {{ t('application.closeOtherTabs') }}</span>
</div>
<div class="context-element" @click.stop="closeLeftTabs">
<span class="d-flex"><i class="mdi mdi-18px mdi-less-than text-light pr-1" /> {{ t('message.closeTabsToLeft') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-less-than text-light pr-1" /> {{ t('application.closeTabsToLeft') }}</span>
</div>
<div class="context-element" @click.stop="closeRightTabs">
<span class="d-flex"><i class="mdi mdi-18px mdi-greater-than text-light pr-1" /> {{ t('message.closeTabsToRight') }}</span>
<span class="d-flex"><i class="mdi mdi-18px mdi-greater-than text-light pr-1" /> {{ t('application.closeTabsToRight') }}</span>
</div>
</BaseContextMenu>
</template>