From f120af25f4572adea4d68bd4a98051ee74f14366 Mon Sep 17 00:00:00 2001 From: Fabio Di Stasio Date: Tue, 1 Aug 2023 10:02:35 +0200 Subject: [PATCH 01/10] build(deps): update mysql2 --- package-lock.json | 38 +++++++++++++++++++------------------- package.json | 4 +++- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1028213..5068c791 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "leaflet": "~1.7.1", "marked": "~4.0.19", "moment": "~2.29.4", - "mysql2": "~2.3.2", + "mysql2": "~3.5.2", "node-firebird": "~1.1.4", "pg": "~8.11.1", "pg-connection-string": "~2.5.0", @@ -9664,15 +9664,16 @@ "license": "ISC" }, "node_modules/mysql2": { - "version": "2.3.3", - "license": "MIT", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.5.2.tgz", + "integrity": "sha512-cptobmhYkYeTBIFp2c0piw2+gElpioga1rUw5UidHvo8yaHijMZoo8A3zyBVoo/K71f7ZFvrShA9iMIy9dCzCA==", "dependencies": { - "denque": "^2.0.1", + "denque": "^2.1.0", "generate-function": "^2.3.1", "iconv-lite": "^0.6.3", - "long": "^4.0.0", - "lru-cache": "^6.0.0", - "named-placeholders": "^1.1.2", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", "seq-queue": "^0.0.5", "sqlstring": "^2.3.2" }, @@ -9680,19 +9681,18 @@ "node": ">= 8.0" } }, - "node_modules/mysql2/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "node_modules/mysql2/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, - "node_modules/mysql2/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" + } }, "node_modules/named-placeholders": { "version": "1.1.3", diff --git a/package.json b/package.json index ef40124c..8d9d9d8c 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "target": "deb", "arch": [ "x64", + "arm64", "armv7l" ] }, @@ -73,6 +74,7 @@ "target": "AppImage", "arch": [ "x64", + "arm64", "armv7l" ] } @@ -134,7 +136,7 @@ "leaflet": "~1.7.1", "marked": "~4.0.19", "moment": "~2.29.4", - "mysql2": "~2.3.2", + "mysql2": "~3.5.2", "node-firebird": "~1.1.4", "pg": "~8.11.1", "pg-connection-string": "~2.5.0", From 7b1cb4ff86dddb5fb4b4d960b47ea17f38a24aa6 Mon Sep 17 00:00:00 2001 From: Fabio Di Stasio Date: Tue, 1 Aug 2023 10:04:00 +0200 Subject: [PATCH 02/10] fix(MySQL): missing error details on mysql importer with some exceptione --- src/main/libs/importers/sql/MySQLlImporter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/libs/importers/sql/MySQLlImporter.ts b/src/main/libs/importers/sql/MySQLlImporter.ts index 51c8e418..9888e0d0 100644 --- a/src/main/libs/importers/sql/MySQLlImporter.ts +++ b/src/main/libs/importers/sql/MySQLlImporter.ts @@ -47,7 +47,7 @@ export default class MySQLImporter extends BaseImporter { catch (error) { this.emit('query-error', { sql: query, - message: error.sqlMessage, + message: error.sqlMessage || error.message, sqlSnippet: error.sql, time: new Date().getTime() }); From 1dd2147b68598f0864c2d2cb4bcd12e186e06b42 Mon Sep 17 00:00:00 2001 From: Fabio Di Stasio Date: Thu, 3 Aug 2023 18:28:50 +0200 Subject: [PATCH 03/10] refactor(translation): complete refactor of translations structure --- src/common/shortcuts.ts | 38 +-- src/renderer/App.vue | 8 +- src/renderer/components/BaseConfirmModal.vue | 4 +- src/renderer/components/FakerSelect.vue | 4 +- src/renderer/components/KeyPressDetector.vue | 8 +- .../components/ModalAllConnections.vue | 10 +- .../components/ModalAskCredentials.vue | 10 +- .../components/ModalAskParameters.vue | 6 +- .../components/ModalConnectionAppearance.vue | 10 +- .../components/ModalDiscardChanges.vue | 8 +- src/renderer/components/ModalEditSchema.vue | 14 +- src/renderer/components/ModalExportSchema.vue | 48 +-- src/renderer/components/ModalFakerRows.vue | 12 +- .../components/ModalFolderAppearance.vue | 12 +- src/renderer/components/ModalHistory.vue | 12 +- src/renderer/components/ModalImportSchema.vue | 10 +- src/renderer/components/ModalNewSchema.vue | 14 +- .../components/ModalProcessesList.vue | 10 +- .../components/ModalProcessesListContext.vue | 8 +- .../components/ModalProcessesListRow.vue | 6 +- src/renderer/components/ModalSettings.vue | 74 ++-- .../components/ModalSettingsShortcuts.vue | 40 +-- .../components/ModalSettingsUpdate.vue | 22 +- src/renderer/components/SettingBarContext.vue | 14 +- src/renderer/components/TheFooter.vue | 10 +- src/renderer/components/TheScratchpad.vue | 8 +- src/renderer/components/TheSettingBar.vue | 8 +- src/renderer/components/TheTitleBar.vue | 2 +- src/renderer/components/Workspace.vue | 80 ++--- .../WorkspaceAddConnectionPanel.vue | 76 ++--- .../WorkspaceEditConnectionPanel.vue | 78 ++--- .../components/WorkspaceEmptyState.vue | 4 +- .../components/WorkspaceExploreBar.vue | 12 +- .../WorkspaceExploreBarMiscContext.vue | 22 +- .../WorkspaceExploreBarMiscFolderContext.vue | 10 +- .../components/WorkspaceExploreBarSchema.vue | 14 +- .../WorkspaceExploreBarSchemaContext.vue | 28 +- .../WorkspaceExploreBarTableContext.vue | 20 +- .../components/WorkspaceQueryConsole.vue | 4 +- .../components/WorkspaceTabNewFunction.vue | 32 +- .../components/WorkspaceTabNewRoutine.vue | 28 +- .../components/WorkspaceTabNewScheduler.vue | 22 +- .../components/WorkspaceTabNewTable.vue | 28 +- .../WorkspaceTabNewTableEmptyState.vue | 4 +- .../components/WorkspaceTabNewTrigger.vue | 20 +- .../WorkspaceTabNewTriggerFunction.vue | 18 +- .../components/WorkspaceTabNewView.vue | 22 +- .../components/WorkspaceTabPropsFunction.vue | 34 +- .../WorkspaceTabPropsFunctionParamsModal.vue | 24 +- .../components/WorkspaceTabPropsRoutine.vue | 30 +- .../WorkspaceTabPropsRoutineParamsModal.vue | 24 +- .../components/WorkspaceTabPropsScheduler.vue | 22 +- .../WorkspaceTabPropsSchedulerTimingModal.vue | 12 +- .../components/WorkspaceTabPropsTable.vue | 32 +- .../WorkspaceTabPropsTableContext.vue | 8 +- .../WorkspaceTabPropsTableDdlModal.vue | 6 +- .../WorkspaceTabPropsTableFields.vue | 24 +- .../WorkspaceTabPropsTableForeignModal.vue | 28 +- .../WorkspaceTabPropsTableIndexesModal.vue | 24 +- .../components/WorkspaceTabPropsTableRow.vue | 10 +- .../components/WorkspaceTabPropsTrigger.vue | 20 +- .../WorkspaceTabPropsTriggerFunction.vue | 16 +- .../components/WorkspaceTabPropsView.vue | 22 +- src/renderer/components/WorkspaceTabQuery.vue | 38 +-- .../components/WorkspaceTabQueryTable.vue | 28 +- .../WorkspaceTabQueryTableContext.vue | 22 +- .../components/WorkspaceTabQueryTableRow.vue | 26 +- src/renderer/components/WorkspaceTabTable.vue | 34 +- .../components/WorkspaceTabTableFilters.vue | 2 +- .../components/WorkspaceTabsContext.vue | 8 +- src/renderer/i18n/ar-SA.ts | 74 ++-- src/renderer/i18n/de-DE.ts | 176 +++++----- src/renderer/i18n/en-US.ts | 315 +++++++++--------- src/renderer/i18n/es-ES.ts | 77 ++--- src/renderer/i18n/fr-FR.ts | 308 +++++++++-------- src/renderer/i18n/id-ID.ts | 289 ++++++++-------- src/renderer/i18n/it-IT.ts | 293 ++++++++-------- src/renderer/i18n/ja-JP.ts | 199 ++++++----- src/renderer/i18n/ko-KR.ts | 289 ++++++++-------- src/renderer/i18n/nl-NL.ts | 308 +++++++++-------- src/renderer/i18n/pt-BR.ts | 307 +++++++++-------- src/renderer/i18n/ru-RU.ts | 299 ++++++++--------- src/renderer/i18n/vi-VN.ts | 255 +++++++------- src/renderer/i18n/zh-CN.ts | 291 ++++++++-------- src/renderer/scss/_data-types.scss | 1 + 85 files changed, 2435 insertions(+), 2492 deletions(-) diff --git a/src/common/shortcuts.ts b/src/common/shortcuts.ts index 46822cfe..0f63517c 100644 --- a/src/common/shortcuts.ts +++ b/src/common/shortcuts.ts @@ -1,22 +1,22 @@ export const shortcutEvents: { [key: string]: { l18n: string; l18nParam?: string | number; context?: 'tab' }} = { - 'run-or-reload': { l18n: 'message.runOrReload', context: 'tab' }, - 'open-new-tab': { l18n: 'message.openNewTab', context: 'tab' }, - 'close-tab': { l18n: 'message.closeTab', context: 'tab' }, - 'format-query': { l18n: 'message.formatQuery', context: 'tab' }, - 'kill-query': { l18n: 'message.killQuery', context: 'tab' }, - 'query-history': { l18n: 'message.queryHistory', context: 'tab' }, - 'clear-query': { l18n: 'message.clearQuery', context: 'tab' }, - 'next-tab': { l18n: 'message.nextTab' }, - 'prev-tab': { l18n: 'message.previousTab' }, - 'open-all-connections': { l18n: 'message.openAllConnections' }, - 'open-filter': { l18n: 'message.openFilter' }, - 'next-page': { l18n: 'message.nextResultsPage' }, - 'prev-page': { l18n: 'message.previousResultsPage' }, - 'toggle-console': { l18n: 'message.toggleConsole' }, - 'save-content': { l18n: 'message.saveContent' }, - 'create-connection': { l18n: 'message.createNewConnection' }, - 'open-settings': { l18n: 'message.openSettings' }, - 'open-scratchpad': { l18n: 'message.openScratchpad' } + 'run-or-reload': { l18n: 'application.runOrReload', context: 'tab' }, + 'open-new-tab': { l18n: 'application.openNewTab', context: 'tab' }, + 'close-tab': { l18n: 'application.closeTab', context: 'tab' }, + 'format-query': { l18n: 'database.formatQuery', context: 'tab' }, + 'kill-query': { l18n: 'database.killQuery', context: 'tab' }, + 'query-history': { l18n: 'database.queryHistory', context: 'tab' }, + 'clear-query': { l18n: 'database.clearQuery', context: 'tab' }, + 'next-tab': { l18n: 'application.nextTab' }, + 'prev-tab': { l18n: 'application.previousTab' }, + 'open-all-connections': { l18n: 'application.openAllConnections' }, + 'open-filter': { l18n: 'application.openFilter' }, + 'next-page': { l18n: 'application.nextResultsPage' }, + 'prev-page': { l18n: 'application.previousResultsPage' }, + 'toggle-console': { l18n: 'application.toggleConsole' }, + 'save-content': { l18n: 'application.saveContent' }, + 'create-connection': { l18n: 'connection.createNewConnection' }, + 'open-settings': { l18n: 'application.openSettings' }, + 'open-scratchpad': { l18n: 'application.openScratchpad' } }; interface ShortcutRecord { @@ -124,7 +124,7 @@ const shortcuts: ShortcutRecord[] = [ for (let i = 1; i <= 9; i++) { shortcutEvents[`select-tab-${i}`] = { - l18n: 'message.selectTabNumber', + l18n: 'application.selectTabNumber', l18nParam: i }; diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 3d3b720f..3a20a72d 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -95,22 +95,22 @@ onMounted(() => { const InputMenu = Menu.buildFromTemplate([ { - label: t('word.cut'), + label: t('general.cut'), role: 'cut' }, { - label: t('word.copy'), + label: t('general.copy'), role: 'copy' }, { - label: t('word.paste'), + label: t('general.paste'), role: 'paste' }, { type: 'separator' }, { - label: t('message.selectAll'), + label: t('general.selectAll'), role: 'selectAll' } ]); diff --git a/src/renderer/components/BaseConfirmModal.vue b/src/renderer/components/BaseConfirmModal.vue index 76481f79..61a98278 100644 --- a/src/renderer/components/BaseConfirmModal.vue +++ b/src/renderer/components/BaseConfirmModal.vue @@ -31,13 +31,13 @@ class="btn btn-primary mr-2" @click.stop="confirmModal" > - {{ confirmText || t('word.confirm') }} + {{ confirmText || t('general.confirm') }} diff --git a/src/renderer/components/FakerSelect.vue b/src/renderer/components/FakerSelect.vue index 49385bd3..8aea2fb3 100644 --- a/src/renderer/components/FakerSelect.vue +++ b/src/renderer/components/FakerSelect.vue @@ -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 @@ diff --git a/src/renderer/components/KeyPressDetector.vue b/src/renderer/components/KeyPressDetector.vue index 283f6c96..df89eac5 100644 --- a/src/renderer/components/KeyPressDetector.vue +++ b/src/renderer/components/KeyPressDetector.vue @@ -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); }); diff --git a/src/renderer/components/ModalAllConnections.vue b/src/renderer/components/ModalAllConnections.vue index 16bd4131..3cadbaed 100644 --- a/src/renderer/components/ModalAllConnections.vue +++ b/src/renderer/components/ModalAllConnections.vue @@ -7,7 +7,7 @@ @@ -21,7 +21,7 @@ v-model="searchTerm" class="form-input" type="text" - :placeholder="t('message.searchForConnections')" + :placeholder="t('connection.searchForConnections')" @keypress.esc="searchTerm = ''" > @@ -58,7 +58,7 @@
@@ -130,12 +130,12 @@ > diff --git a/src/renderer/components/ModalAskCredentials.vue b/src/renderer/components/ModalAskCredentials.vue index d3f6f850..d506f086 100644 --- a/src/renderer/components/ModalAskCredentials.vue +++ b/src/renderer/components/ModalAskCredentials.vue @@ -6,7 +6,7 @@