From a02a3230f173e58d44c83434619b3da8f50ce06c Mon Sep 17 00:00:00 2001 From: Stela Augustinova Date: Wed, 3 Dec 2025 10:34:09 +0100 Subject: [PATCH 01/25] Added isTypeNumber check for right alignment in DataGridCell --- packages/web/src/datagrid/DataGridCell.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/src/datagrid/DataGridCell.svelte b/packages/web/src/datagrid/DataGridCell.svelte index 131ba93a8..585a4c081 100644 --- a/packages/web/src/datagrid/DataGridCell.svelte +++ b/packages/web/src/datagrid/DataGridCell.svelte @@ -1,7 +1,7 @@
- +
{_t('settings.connection', { defaultMessage: 'Connection' })}
- { - $lockedDatabaseMode = !$lockedDatabaseMode; - }, - }} - > - ($lockedDatabaseMode = e.target.checked)} data-testid="ConnectionSettings_lockedDatabaseMode"/> - -
{_t('settings.session', { defaultMessage: 'Query sessions' })}
-
+
- \ No newline at end of file + diff --git a/packages/web/src/settings/GeneralSettings.svelte b/packages/web/src/settings/GeneralSettings.svelte index 364c6d939..c5fd0fe2d 100644 --- a/packages/web/src/settings/GeneralSettings.svelte +++ b/packages/web/src/settings/GeneralSettings.svelte @@ -10,6 +10,9 @@ import { isMac } from '../utility/common'; import getElectron from '../utility/getElectron'; import ConfirmModal from '../modals/ConfirmModal.svelte'; + import hasPermission from '../utility/hasPermission'; + import CheckboxField from '../forms/CheckboxField.svelte'; + import { lockedDatabaseMode } from '../stores'; const electron = getElectron(); let restartWarning = false; @@ -78,6 +81,24 @@ /> {/if} + { + $lockedDatabaseMode = !$lockedDatabaseMode; + }, + }} + > + ($lockedDatabaseMode = e.target['checked'])} + data-testid="ConnectionSettings_lockedDatabaseMode" + /> + +
{_t('settings.appearance', { defaultMessage: 'Appearance' })}
{#if electron} @@ -106,6 +127,7 @@ defaultMessage: 'Show server name alongside database name in title of the tab group', })} defaultValue={false} + disabled={!hasPermission('settings/change')} /> diff --git a/packages/web/src/settings/settingsTools.ts b/packages/web/src/settings/settingsTools.ts index 41028529d..8e2e2ec79 100644 --- a/packages/web/src/settings/settingsTools.ts +++ b/packages/web/src/settings/settingsTools.ts @@ -29,6 +29,13 @@ export function getStringSettingsValue(name, defaultValue) { return res; } +export function getObjectSettingsValue(name, defaultValue) { + const settings = getCurrentSettings(); + const res = settings[name]; + if (res == null) return defaultValue; + return res; +} + export function getConnectionClickActionSetting(): 'connect' | 'openDetails' | 'none' { return getStringSettingsValue('defaultAction.connectionClick', 'connect'); } diff --git a/packages/web/src/tabs/SettingsTab.svelte b/packages/web/src/tabs/SettingsTab.svelte index 290530b96..431a15ceb 100644 --- a/packages/web/src/tabs/SettingsTab.svelte +++ b/packages/web/src/tabs/SettingsTab.svelte @@ -3,111 +3,114 @@ - - \ No newline at end of file + From 8020e2a2630d66ec8ed18f0d97119d0e0deb6da0 Mon Sep 17 00:00:00 2001 From: CI workflows Date: Wed, 3 Dec 2025 10:09:55 +0000 Subject: [PATCH 04/25] Update pro ref --- workflow-templates/includes.tpl.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow-templates/includes.tpl.yaml b/workflow-templates/includes.tpl.yaml index 4011deeb2..89984c18f 100644 --- a/workflow-templates/includes.tpl.yaml +++ b/workflow-templates/includes.tpl.yaml @@ -7,7 +7,7 @@ checkout-and-merge-pro: repository: dbgate/dbgate-pro token: ${{ secrets.GH_TOKEN }} path: dbgate-pro - ref: 911941a53e91a5a777b8c7d455be0719234dde5f + ref: ae1fcf6e61c6f7dfbb21005daa259c68e899a80a - name: Merge dbgate/dbgate-pro run: | mkdir ../dbgate-pro From f2e0b1cfa281d5876bb909bb4ad30a1cab8bfafa Mon Sep 17 00:00:00 2001 From: CI workflows Date: Wed, 3 Dec 2025 10:10:08 +0000 Subject: [PATCH 05/25] chore: auto-update github workflows --- .github/workflows/build-app-pro-beta.yaml | 2 +- .github/workflows/build-app-pro.yaml | 2 +- .github/workflows/build-cloud-pro.yaml | 2 +- .github/workflows/build-docker-pro.yaml | 2 +- .github/workflows/build-npm-pro.yaml | 2 +- .github/workflows/e2e-pro.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-app-pro-beta.yaml b/.github/workflows/build-app-pro-beta.yaml index 750be45bd..46704c546 100644 --- a/.github/workflows/build-app-pro-beta.yaml +++ b/.github/workflows/build-app-pro-beta.yaml @@ -43,7 +43,7 @@ jobs: repository: dbgate/dbgate-pro token: ${{ secrets.GH_TOKEN }} path: dbgate-pro - ref: 911941a53e91a5a777b8c7d455be0719234dde5f + ref: ae1fcf6e61c6f7dfbb21005daa259c68e899a80a - name: Merge dbgate/dbgate-pro run: | mkdir ../dbgate-pro diff --git a/.github/workflows/build-app-pro.yaml b/.github/workflows/build-app-pro.yaml index b6203eed9..cb0c217dd 100644 --- a/.github/workflows/build-app-pro.yaml +++ b/.github/workflows/build-app-pro.yaml @@ -43,7 +43,7 @@ jobs: repository: dbgate/dbgate-pro token: ${{ secrets.GH_TOKEN }} path: dbgate-pro - ref: 911941a53e91a5a777b8c7d455be0719234dde5f + ref: ae1fcf6e61c6f7dfbb21005daa259c68e899a80a - name: Merge dbgate/dbgate-pro run: | mkdir ../dbgate-pro diff --git a/.github/workflows/build-cloud-pro.yaml b/.github/workflows/build-cloud-pro.yaml index d0f844d70..396a7dbdb 100644 --- a/.github/workflows/build-cloud-pro.yaml +++ b/.github/workflows/build-cloud-pro.yaml @@ -39,7 +39,7 @@ jobs: repository: dbgate/dbgate-pro token: ${{ secrets.GH_TOKEN }} path: dbgate-pro - ref: 911941a53e91a5a777b8c7d455be0719234dde5f + ref: ae1fcf6e61c6f7dfbb21005daa259c68e899a80a - name: Merge dbgate/dbgate-pro run: | mkdir ../dbgate-pro diff --git a/.github/workflows/build-docker-pro.yaml b/.github/workflows/build-docker-pro.yaml index 6944edcd6..0a8469b43 100644 --- a/.github/workflows/build-docker-pro.yaml +++ b/.github/workflows/build-docker-pro.yaml @@ -44,7 +44,7 @@ jobs: repository: dbgate/dbgate-pro token: ${{ secrets.GH_TOKEN }} path: dbgate-pro - ref: 911941a53e91a5a777b8c7d455be0719234dde5f + ref: ae1fcf6e61c6f7dfbb21005daa259c68e899a80a - name: Merge dbgate/dbgate-pro run: | mkdir ../dbgate-pro diff --git a/.github/workflows/build-npm-pro.yaml b/.github/workflows/build-npm-pro.yaml index 3d4cebfad..eee812d47 100644 --- a/.github/workflows/build-npm-pro.yaml +++ b/.github/workflows/build-npm-pro.yaml @@ -35,7 +35,7 @@ jobs: repository: dbgate/dbgate-pro token: ${{ secrets.GH_TOKEN }} path: dbgate-pro - ref: 911941a53e91a5a777b8c7d455be0719234dde5f + ref: ae1fcf6e61c6f7dfbb21005daa259c68e899a80a - name: Merge dbgate/dbgate-pro run: | mkdir ../dbgate-pro diff --git a/.github/workflows/e2e-pro.yaml b/.github/workflows/e2e-pro.yaml index b46572e96..d7ad2b1ef 100644 --- a/.github/workflows/e2e-pro.yaml +++ b/.github/workflows/e2e-pro.yaml @@ -26,7 +26,7 @@ jobs: repository: dbgate/dbgate-pro token: ${{ secrets.GH_TOKEN }} path: dbgate-pro - ref: 911941a53e91a5a777b8c7d455be0719234dde5f + ref: ae1fcf6e61c6f7dfbb21005daa259c68e899a80a - name: Merge dbgate/dbgate-pro run: | mkdir ../dbgate-pro From b4b52e12d55e4311d611583586a7c371ab44f361 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 11:12:41 +0100 Subject: [PATCH 06/25] SYNC: try to fix test --- e2e-tests/cypress/e2e/multi-sql.cy.js | 3 ++- packages/web/src/modals/DropDownMenu.svelte | 7 ++++++- packages/web/src/utility/common.ts | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/e2e-tests/cypress/e2e/multi-sql.cy.js b/e2e-tests/cypress/e2e/multi-sql.cy.js index 59a537208..496a40a3c 100644 --- a/e2e-tests/cypress/e2e/multi-sql.cy.js +++ b/e2e-tests/cypress/e2e/multi-sql.cy.js @@ -210,7 +210,8 @@ describe('Import CSV', () => { cy.testid('ImportExportConfigurator_tableMappingSection').contains('20 rows written').should('be.visible'); cy.testid('SqlObjectList_refreshButton').click(); - cy.contains('Refresh DB structure (incremental)').click(); + cy.testid('DatabasStatusMenu_refreshFull').click(); + // cy.contains('Refresh DB structure (incremental)').click(); cy.testid('SqlObjectList_container').contains('customers-20').click(); cy.contains('Rows: 20').should('be.visible'); diff --git a/packages/web/src/modals/DropDownMenu.svelte b/packages/web/src/modals/DropDownMenu.svelte index aeacb017b..2f45c1edf 100644 --- a/packages/web/src/modals/DropDownMenu.svelte +++ b/packages/web/src/modals/DropDownMenu.svelte @@ -164,7 +164,12 @@ changeActiveSubmenu(); }} > - handleClick(e, item)} class:disabled={item.disabled} class:bold={item.isBold}> + handleClick(e, item)} + class:disabled={item.disabled} + class:bold={item.isBold} + data-testid={item.testid} + > {#if item.switchValue && item.switchStoreGetter} {#key switchIndex} diff --git a/packages/web/src/utility/common.ts b/packages/web/src/utility/common.ts index a08b8e370..d95c36b04 100644 --- a/packages/web/src/utility/common.ts +++ b/packages/web/src/utility/common.ts @@ -166,6 +166,7 @@ export function getDatabasStatusMenu(dbid, driver = null) { apiCall('database-connections/sync-model', dbid); callSchemalListChanged(); }, + testid: 'DatabasStatusMenu_refreshIncremental', }, { text: driver?.supportsIncrementalAnalysis @@ -175,6 +176,7 @@ export function getDatabasStatusMenu(dbid, driver = null) { apiCall('database-connections/sync-model', { ...dbid, isFullRefresh: true }); callSchemalListChanged(); }, + testid: 'DatabasStatusMenu_refreshFull', }, { text: _t('command.database.reopenConnection', { defaultMessage: 'Reopen connection' }), @@ -182,6 +184,7 @@ export function getDatabasStatusMenu(dbid, driver = null) { apiCall('database-connections/refresh', dbid); callSchemalListChanged(); }, + testid: 'DatabasStatusMenu_reopenConnection', }, { text: _t('command.database.disconnect', { defaultMessage: 'Disconnect' }), @@ -190,6 +193,7 @@ export function getDatabasStatusMenu(dbid, driver = null) { if (electron) apiCall('database-connections/disconnect', dbid); switchCurrentDatabase(null); }, + testid: 'DatabasStatusMenu_disconnect', }, ]); } From 05391743177904094155e6b531551776117e398f Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 12:34:23 +0100 Subject: [PATCH 07/25] SYNC: fixed e2e test --- e2e-tests/cypress/e2e/charts.cy.js | 8 ++++---- packages/web/src/settings/GeneralSettings.svelte | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/e2e-tests/cypress/e2e/charts.cy.js b/e2e-tests/cypress/e2e/charts.cy.js index 7a5199c46..e3ea894c2 100644 --- a/e2e-tests/cypress/e2e/charts.cy.js +++ b/e2e-tests/cypress/e2e/charts.cy.js @@ -199,7 +199,7 @@ describe('Charts', () => { cy.testid('WidgetIconPanel_settings'); }); - it.only('Settings', () => { + it('Settings', () => { cy.testid('WidgetIconPanel_settings').click(); cy.themeshot('app-settings-general'); @@ -234,10 +234,10 @@ describe('Charts', () => { cy.contains('Light').click(); cy.get('body').find('.theme-light').should('exist'); - // Connection - cy.contains(/^Connection$/).click(); + // General + cy.contains(/^General$/).click(); cy.contains('charts_sample'); - cy.get('[data-testid=ConnectionSettings_lockedDatabaseMode]').check(); + cy.get('[data-testid=GeneralSettings_lockedDatabaseMode]').check(); cy.contains('Connections').click(); cy.contains('charts_sample').should('not.exist'); diff --git a/packages/web/src/settings/GeneralSettings.svelte b/packages/web/src/settings/GeneralSettings.svelte index c5fd0fe2d..786c49cb5 100644 --- a/packages/web/src/settings/GeneralSettings.svelte +++ b/packages/web/src/settings/GeneralSettings.svelte @@ -95,7 +95,7 @@ ($lockedDatabaseMode = e.target['checked'])} - data-testid="ConnectionSettings_lockedDatabaseMode" + data-testid="GeneralSettings_lockedDatabaseMode" /> From 7d2196f4c3ef1a2a44b3dd0161d8a256e6f7f8b1 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 12:42:25 +0100 Subject: [PATCH 08/25] v6.7.2-premium-beta.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4706df1b5..5391cc6a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "6.7.2-premium-beta.5", + "version": "6.7.2-premium-beta.6", "name": "dbgate-all", "workspaces": [ "packages/*", From d6bcd4f94f574c9d3d992a160b8e629b4d2ea48e Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 12:52:40 +0100 Subject: [PATCH 09/25] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2785d3479..898d4d345 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ Builds: - FIXED: Fixed incremental DB structure refresh for PostgreSQL, optimalized slow loading primary keys in PostgreSQL - CHANGED: You could now choose, how to refresh structure, added ability to disconnect or reconnect - ADDED: Better processing of table backups, generate table restore script #1274 +- CHANGED: Improved storage of settings, especially for Team Premium edition ## 6.7.1 - ADDED: LANGUAGE environment variable for the web version. #1266 From be9505f8fe8c04ce1355e23b9799fcb93beafce7 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 12:55:27 +0100 Subject: [PATCH 10/25] SYNC: translations --- translations/cs.json | 2 ++ translations/de.json | 2 ++ translations/en.json | 2 ++ translations/es.json | 2 ++ translations/fr.json | 2 ++ translations/it.json | 2 ++ translations/ja.json | 2 ++ translations/pt.json | 2 ++ translations/sk.json | 2 ++ translations/zh.json | 2 ++ 10 files changed, 20 insertions(+) diff --git a/translations/cs.json b/translations/cs.json index 674d2490a..ff0088bb8 100644 --- a/translations/cs.json +++ b/translations/cs.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "Vyhledávání v databázi", "command.database.disconnect": "Odpojit", "command.database.export": "Exportovat databázi", + "command.database.refresh": "Obnovit strukturu DB", "command.database.refreshFull": "Obnovit strukturu DB (úplně)", "command.database.refreshIncremental": "Obnovit strukturu DB (inkrementálně)", "command.database.reopenConnection": "Znovu otevřít připojení", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "Velikost písmen SQL příkazů", "settings.sqlEditor.title": "SQL editor", "settings.tabGroup.showServerName": "Zobrazit název serveru vedle názvu databáze v záhlaví skupiny karet", + "settings.tabPreviewMode": "Režim náhledu karet", "settings.theme": "Vzhled", "settings.title": "Nastavení", "settings.useNativeWindowTitle": "Použít nativní titulek okna", diff --git a/translations/de.json b/translations/de.json index cd33c3422..85ccc86c4 100644 --- a/translations/de.json +++ b/translations/de.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "Datenbanksuche", "command.database.disconnect": "Trennen", "command.database.export": "Datenbank exportieren", + "command.database.refresh": "DB-Struktur aktualisieren", "command.database.refreshFull": "DB-Struktur aktualisieren (vollständig)", "command.database.refreshIncremental": "DB-Struktur aktualisieren (inkrementell)", "command.database.reopenConnection": "Verbindung erneut öffnen", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "Groß-/Kleinschreibung der SQL-Befehle", "settings.sqlEditor.title": "SQL-Editor", "settings.tabGroup.showServerName": "Servername neben Datenbankname im Titel der Tab-Gruppe anzeigen", + "settings.tabPreviewMode": "Tab-Vorschaumodus", "settings.theme": "Designs", "settings.title": "Einstellungen", "settings.useNativeWindowTitle": "Nativen Fenstertitel verwenden", diff --git a/translations/en.json b/translations/en.json index ec5580165..93c3146fa 100644 --- a/translations/en.json +++ b/translations/en.json @@ -167,6 +167,7 @@ "command.database.databaseSearch": "Database search", "command.database.disconnect": "Disconnect", "command.database.export": "Export database", + "command.database.refresh": "Refresh DB structure", "command.database.refreshFull": "Refresh DB structure (full)", "command.database.refreshIncremental": "Refresh DB structure (incremental)", "command.database.reopenConnection": "Reopen connection", @@ -1190,6 +1191,7 @@ "settings.sqlEditor.sqlCommandsCase": "SQL commands case", "settings.sqlEditor.title": "SQL Editor", "settings.tabGroup.showServerName": "Show server name alongside database name in title of the tab group", + "settings.tabPreviewMode": "Tab Preview Mode", "settings.theme": "Themes", "settings.useNativeWindowTitle": "Use native window title", "settings.useSystemNativeMenu": "Use system native menu", diff --git a/translations/es.json b/translations/es.json index 36f7a9cc5..34070b779 100644 --- a/translations/es.json +++ b/translations/es.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "Búsqueda en base de datos", "command.database.disconnect": "Desconectar", "command.database.export": "Exportar base de datos", + "command.database.refresh": "Refrescar estructura de BD", "command.database.refreshFull": "Refrescar estructura de BD (completa)", "command.database.refreshIncremental": "Refrescar estructura de BD (incremental)", "command.database.reopenConnection": "Reabrir conexión", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "Mayúsculas/minúsculas de comandos SQL", "settings.sqlEditor.title": "Editor SQL", "settings.tabGroup.showServerName": "Mostrar nombre del servidor junto con nombre de base de datos en el título del grupo de pestañas", + "settings.tabPreviewMode": "Modo de vista previa de pestaña", "settings.theme": "Temas", "settings.title": "Configuración", "settings.useNativeWindowTitle": "Usar título de ventana nativo", diff --git a/translations/fr.json b/translations/fr.json index fef8f4eb2..dea337b8f 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "Recherche dans la base de données", "command.database.disconnect": "Déconnecter", "command.database.export": "Exporter la base de données", + "command.database.refresh": "Rafraîchir la structure de BD", "command.database.refreshFull": "Rafraîchir la structure de BD (complète)", "command.database.refreshIncremental": "Rafraîchir la structure de BD (incrémentale)", "command.database.reopenConnection": "Rouvrir la connexion", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "Casse des commandes SQL", "settings.sqlEditor.title": "Éditeur SQL", "settings.tabGroup.showServerName": "Afficher le nom du serveur à côté du nom de la base de données dans le titre du groupe d'onglets", + "settings.tabPreviewMode": "Mode aperçu d'onglet", "settings.theme": "Thèmes", "settings.title": "Paramètres", "settings.useNativeWindowTitle": "Utiliser le titre de fenêtre natif", diff --git a/translations/it.json b/translations/it.json index 140ea8035..62970482f 100644 --- a/translations/it.json +++ b/translations/it.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "Ricerca database", "command.database.disconnect": "Disconnetti", "command.database.export": "Esporta database", + "command.database.refresh": "Aggiorna struttura DB", "command.database.refreshFull": "Aggiorna struttura DB (completo)", "command.database.refreshIncremental": "Aggiorna struttura DB (incrementale)", "command.database.reopenConnection": "Riapri connessione", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "Maiuscole/minuscole comandi SQL", "settings.sqlEditor.title": "Editor SQL", "settings.tabGroup.showServerName": "Mostra nome server accanto al nome database nel titolo del gruppo schede", + "settings.tabPreviewMode": "Modalità anteprima scheda", "settings.theme": "Temi", "settings.title": "Impostazioni", "settings.useNativeWindowTitle": "Usa titolo finestra nativo", diff --git a/translations/ja.json b/translations/ja.json index e202a1623..6c854934b 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "データベース検索", "command.database.disconnect": "切断", "command.database.export": "データベースをエクスポート", + "command.database.refresh": "DB構造を更新", "command.database.refreshFull": "DB構造を更新(フル)", "command.database.refreshIncremental": "DB構造を更新(増分)", "command.database.reopenConnection": "接続を再度開く", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "SQLコマンドの大文字小文字", "settings.sqlEditor.title": "SQLエディター", "settings.tabGroup.showServerName": "タブグループのタイトルにデータベース名と並んでサーバー名を表示", + "settings.tabPreviewMode": "タブプレビューモード", "settings.theme": "テーマ", "settings.title": "設定", "settings.useNativeWindowTitle": "ネイティブウィンドウタイトルを使用", diff --git a/translations/pt.json b/translations/pt.json index 51823cabb..658ce1b99 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "Pesquisar banco de dados", "command.database.disconnect": "Desconectar", "command.database.export": "Exportar banco de dados", + "command.database.refresh": "Atualizar estrutura do BD", "command.database.refreshFull": "Atualizar estrutura do BD (completa)", "command.database.refreshIncremental": "Atualizar estrutura do BD (incremental)", "command.database.reopenConnection": "Reabrir conexão", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "Maiúsculas/minúsculas de comandos SQL", "settings.sqlEditor.title": "Editor SQL", "settings.tabGroup.showServerName": "Mostrar nome do servidor junto ao nome do banco de dados no título do grupo de abas", + "settings.tabPreviewMode": "Modo de visualização de aba", "settings.theme": "Temas", "settings.title": "Configurações", "settings.useNativeWindowTitle": "Usar título de janela nativo", diff --git a/translations/sk.json b/translations/sk.json index 9f7d5723f..2ae3b52c2 100644 --- a/translations/sk.json +++ b/translations/sk.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "Hľadanie v databáze", "command.database.disconnect": "Odpojiť", "command.database.export": "Exportovať databázu", + "command.database.refresh": "Obnoviť štruktúru DB", "command.database.refreshFull": "Obnoviť štruktúru DB (úplne)", "command.database.refreshIncremental": "Obnoviť štruktúru DB (inkrementálne)", "command.database.reopenConnection": "Znovu otvoriť pripojenie", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "Veľkosť písmen", "settings.sqlEditor.title": "SQL editor", "settings.tabGroup.showServerName": "Zobraziť názov servera vedľa názvu databázy v názve skupiny kariet", + "settings.tabPreviewMode": "Režim náhľadu kariet", "settings.theme": "Vzhľad", "settings.title": "Nastavenia", "settings.useNativeWindowTitle": "Použiť natívne menu", diff --git a/translations/zh.json b/translations/zh.json index c720cd975..dd646c6d0 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -171,6 +171,7 @@ "command.database.databaseSearch": "数据库搜索", "command.database.disconnect": "断开连接", "command.database.export": "导出数据库", + "command.database.refresh": "刷新数据库结构", "command.database.refreshFull": "刷新数据库结构(完整)", "command.database.refreshIncremental": "刷新数据库结构(增量)", "command.database.reopenConnection": "重新打开连接", @@ -1198,6 +1199,7 @@ "settings.sqlEditor.sqlCommandsCase": "SQL命令大小写", "settings.sqlEditor.title": "SQL 编辑器", "settings.tabGroup.showServerName": "在标签页组标题中显示服务器名称和数据库名称", + "settings.tabPreviewMode": "标签页预览模式", "settings.theme": "主题", "settings.title": "设置", "settings.useNativeWindowTitle": "使用原生窗口标题", From e1c10b76539e46a7024f2b4e78e39481fa21d990 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 12:57:52 +0100 Subject: [PATCH 11/25] v6.7.2-beta.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5391cc6a7..ca801aaf0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "6.7.2-premium-beta.6", + "version": "6.7.2-beta.7", "name": "dbgate-all", "workspaces": [ "packages/*", From 780dd8ade9863e6cf3b85fdf226d19eb9d7ca2c9 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 13:37:13 +0100 Subject: [PATCH 12/25] language icon --- packages/web/src/forms/FormFieldTemplateLarge.svelte | 6 ++++++ packages/web/src/settings/GeneralSettings.svelte | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/web/src/forms/FormFieldTemplateLarge.svelte b/packages/web/src/forms/FormFieldTemplateLarge.svelte index 6976375cc..2ecbfebfb 100644 --- a/packages/web/src/forms/FormFieldTemplateLarge.svelte +++ b/packages/web/src/forms/FormFieldTemplateLarge.svelte @@ -1,9 +1,12 @@
@@ -12,6 +15,9 @@ {label} {:else}
+ {#if labelIcon} + + {/if} {label}
diff --git a/packages/web/src/settings/GeneralSettings.svelte b/packages/web/src/settings/GeneralSettings.svelte index 786c49cb5..4807b0777 100644 --- a/packages/web/src/settings/GeneralSettings.svelte +++ b/packages/web/src/settings/GeneralSettings.svelte @@ -20,7 +20,11 @@
{_t('settings.application', { defaultMessage: 'Application' })}
- + Date: Wed, 3 Dec 2025 13:44:35 +0100 Subject: [PATCH 13/25] v6.7.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca801aaf0..76529021e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "6.7.2-beta.7", + "version": "6.7.2", "name": "dbgate-all", "workspaces": [ "packages/*", From c1f216c7c70bf9f490edc4fa9f12545e9dcb08bb Mon Sep 17 00:00:00 2001 From: Stela Augustinova Date: Wed, 3 Dec 2025 13:53:10 +0100 Subject: [PATCH 14/25] Deleted checkbox for thousands separator and updated select field options --- .../web/src/settings/DataGridSettings.svelte | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/web/src/settings/DataGridSettings.svelte b/packages/web/src/settings/DataGridSettings.svelte index 08df7512c..cfb57afe8 100644 --- a/packages/web/src/settings/DataGridSettings.svelte +++ b/packages/web/src/settings/DataGridSettings.svelte @@ -27,21 +27,18 @@ defaultValue="100" {/if} - - From 78e838f2f0c801fecb9ebd5ebae6af4953274c8a Mon Sep 17 00:00:00 2001 From: Stela Augustinova Date: Wed, 3 Dec 2025 13:53:47 +0100 Subject: [PATCH 15/25] Custom thousands separator formatting in grid cell values --- packages/tools/src/stringTools.ts | 24 ++++++++++++++-------- packages/web/src/datagrid/CellValue.svelte | 4 ++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/tools/src/stringTools.ts b/packages/tools/src/stringTools.ts index f44017b69..26ab837c4 100644 --- a/packages/tools/src/stringTools.ts +++ b/packages/tools/src/stringTools.ts @@ -200,6 +200,12 @@ function stringifyJsonToGrid(value): ReturnType { return { value: '(JSON)', gridStyle: 'nullCellStyle' }; } +function formatNumberCustomSeparator(value, thousandsSeparator) { + const [intPart, decPart] = value.split('.'); + const intPartWithSeparator = intPart.replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparator); + return decPart ? `${intPartWithSeparator}.${decPart}` : intPartWithSeparator; +} + export function stringifyCellValue( value, intent: @@ -210,7 +216,7 @@ export function stringifyCellValue( | 'exportIntent' | 'clipboardIntent', editorTypes?: DataEditorTypesBehaviour, - gridFormattingOptions?: { useThousandsSeparator?: boolean }, + gridFormattingOptions?: { thousandsSeparator?: string}, jsonParsedValue?: any ): { value: string; @@ -351,13 +357,15 @@ export function stringifyCellValue( if (_isNumber(value)) { switch (intent) { case 'gridCellIntent': - return { - value: - gridFormattingOptions?.useThousandsSeparator && (value >= 10000 || value <= -10000) - ? value.toLocaleString() - : value.toString(), - gridStyle: 'valueCellStyle', - }; + const separator = gridFormattingOptions?.thousandsSeparator; + let formattedValue; + if (separator === 'none' || (value < 1000 && value > -1000)) formattedValue = value.toString(); + else if (separator === 'system') formattedValue = value.toLocaleString(); + else if (separator === 'space') formattedValue = formatNumberCustomSeparator(value.toString(), ' '); + else if (separator === 'nobreakspace') formattedValue = formatNumberCustomSeparator(value.toString(), '\u202F'); + else if (separator === 'comma') formattedValue = formatNumberCustomSeparator(value.toString(), ','); + else if (separator === 'dot') formattedValue = formatNumberCustomSeparator(value.toString(), '.'); + return { value: formattedValue, gridStyle: 'valueCellStyle' }; default: return { value: value.toString() }; } diff --git a/packages/web/src/datagrid/CellValue.svelte b/packages/web/src/datagrid/CellValue.svelte index 8d006962e..ed813727b 100644 --- a/packages/web/src/datagrid/CellValue.svelte +++ b/packages/web/src/datagrid/CellValue.svelte @@ -1,6 +1,6 @@
-
{_t('settings.dataGrid.title', { defaultMessage: 'Data grid' })}
- -{#if isProApp()} - -{/if} - +
{_t('settings.dataGrid.title', { defaultMessage: 'Data grid' })}
+ + {#if isProApp()} + + {/if} + - + - + - + - + - + - +
\ No newline at end of file + From b0b5b1c30d636c22fefee4031cd2a28044b019f1 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 18:22:02 +0100 Subject: [PATCH 24/25] v6.7.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 484768d85..1e0781e0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "6.7.3-premium-beta.1", + "version": "6.7.3", "name": "dbgate-all", "workspaces": [ "packages/*", From 0c15e524d76f721150c4e0f583800c09db4f9918 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 3 Dec 2025 18:32:14 +0100 Subject: [PATCH 25/25] changelog --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 129b84574..01c6f2bf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ Builds: - linux - application for linux - win - application for Windows +## 6.7.3 +- FIXED: Fixed problem in analyser core - in PostgreSQL, after dropping table, dropped table still appeared in structure +- FIXED: PostgreSQL numeric columns do not align right #1254 +- ADDED: Custom thousands separator #1213 + ## 6.7.2 - CHANGED: Settings modal redesign - now is settings opened in tab instead of modal, similarily as in VSCode - FIXED: Fixed search in table shortcuts #1273