From d8bc5153d27c4ce7df7dd9bc827ceca32d78cf66 Mon Sep 17 00:00:00 2001 From: miracle Date: Sun, 23 Aug 2026 12:23:46 +0800 Subject: [PATCH] feat(mysql): manage and edit MySQL events --- .../src/components/layout/ContentArea.vue | 4 + .../components/objects/MySqlEventEditor.vue | 190 ++++++++++++++++++ .../src/components/objects/ObjectBrowser.vue | 117 +++++++++-- .../sidebar/SidebarTreeRuntimeHost.vue | 45 ++++- apps/desktop/src/i18n/locales/en.ts | 24 +++ apps/desktop/src/i18n/locales/es.ts | 22 ++ apps/desktop/src/i18n/locales/it.ts | 22 ++ apps/desktop/src/i18n/locales/ja.ts | 22 ++ apps/desktop/src/i18n/locales/ko.ts | 19 ++ apps/desktop/src/i18n/locales/pt-BR.ts | 22 ++ apps/desktop/src/i18n/locales/zh-CN.ts | 22 ++ apps/desktop/src/i18n/locales/zh-TW.ts | 22 ++ apps/desktop/src/lib/backend/api.ts | 1 + apps/desktop/src/lib/backend/http.ts | 5 + apps/desktop/src/lib/backend/tauri.ts | 5 + .../src/lib/sidebar/sidebarTreeItemLayout.ts | 1 + .../src/lib/table/mysqlEventSql.spec.ts | 19 ++ apps/desktop/src/lib/table/mysqlEventSql.ts | 48 +++++ .../src/lib/table/objectBrowserRowAction.ts | 6 +- .../lib/table/objectBrowserRows.event.spec.ts | 11 + .../src/lib/table/objectBrowserRows.ts | 8 +- apps/desktop/src/stores/queryStore.ts | 15 +- apps/desktop/src/types/database.ts | 28 ++- crates/dbx-core/src/db/mod.rs | 1 + crates/dbx-core/src/db/mysql.rs | 39 ++++ crates/dbx-core/src/db_admin_sql.rs | 2 + crates/dbx-core/src/lib.rs | 1 + crates/dbx-core/src/mysql_event_sql.rs | 171 ++++++++++++++++ crates/dbx-core/src/schema.rs | 53 +++++ crates/dbx-core/src/types.rs | 2 + crates/dbx-web/src/main.rs | 1 + crates/dbx-web/src/routes/schema.rs | 16 ++ .../main/java/app/dbx/jdbc/DbxJdbcPlugin.java | 32 +++ src-tauri/src/commands/schema.rs | 11 + src-tauri/src/lib.rs | 1 + 35 files changed, 981 insertions(+), 27 deletions(-) create mode 100644 apps/desktop/src/components/objects/MySqlEventEditor.vue create mode 100644 apps/desktop/src/lib/table/mysqlEventSql.spec.ts create mode 100644 apps/desktop/src/lib/table/mysqlEventSql.ts create mode 100644 apps/desktop/src/lib/table/objectBrowserRows.event.spec.ts create mode 100644 crates/dbx-core/src/mysql_event_sql.rs diff --git a/apps/desktop/src/components/layout/ContentArea.vue b/apps/desktop/src/components/layout/ContentArea.vue index 4e3c36015f..ed211037c1 100644 --- a/apps/desktop/src/components/layout/ContentArea.vue +++ b/apps/desktop/src/components/layout/ContentArea.vue @@ -2309,6 +2309,10 @@ defineExpose({ :database="activeTab.database" :catalog="activeTab.objectBrowser?.catalog" :schema="activeTab.objectBrowser?.schema" + :initial-event-name="activeTab.objectBrowser?.eventName" + :initial-event-read-only="activeTab.objectBrowser?.eventReadOnly" + :initial-event-open-request-id="activeTab.objectBrowser?.eventOpenRequestId" + :initial-object-filter="activeTab.objectBrowser?.initialObjectFilter" :viewport="activeTab.objectBrowser?.viewport" @open-table="emit('openObjectTable', $event)" @schema-change="emit('objectSchemaChange', $event)" diff --git a/apps/desktop/src/components/objects/MySqlEventEditor.vue b/apps/desktop/src/components/objects/MySqlEventEditor.vue new file mode 100644 index 0000000000..6e802d4bb0 --- /dev/null +++ b/apps/desktop/src/components/objects/MySqlEventEditor.vue @@ -0,0 +1,190 @@ + +