fix: restore workspace build and refine grid menu
This commit is contained in:
1 parent
40a3c13961
commit
de6fecb18b
2 files changed
+26
-6
No files matched your search
@@ -467,6 +467,23 @@ async fn exec_tx_mysql_inner(
|
|||||||
pool: sqlx::mysql::MySqlPool,
|
pool: sqlx::mysql::MySqlPool,
|
||||||
statements: &[String],
|
statements: &[String],
|
||||||
start: std::time::Instant,
|
start: std::time::Instant,
|
||||||
|
) -> Result<db::QueryResult, String> {
|
||||||
|
let statements = statements.to_vec();
|
||||||
|
tokio::task::spawn_blocking(move || {
|
||||||
|
tokio::runtime::Builder::new_current_thread()
|
||||||
|
.enable_all()
|
||||||
|
.build()
|
||||||
|
.map_err(|e| format!("Failed to start MySQL transaction runtime: {}", e))?
|
||||||
|
.block_on(exec_tx_mysql_raw_inner(pool, statements, start))
|
||||||
|
})
|
||||||
|
.await
|
||||||
|
.map_err(|e| format!("MySQL transaction task failed: {}", e))?
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn exec_tx_mysql_raw_inner(
|
||||||
|
pool: sqlx::mysql::MySqlPool,
|
||||||
|
statements: Vec<String>,
|
||||||
|
start: std::time::Instant,
|
||||||
) -> Result<db::QueryResult, String> {
|
) -> Result<db::QueryResult, String> {
|
||||||
let mut conn = pool.acquire().await.map_err(|e| format!("Failed to acquire connection: {}", e))?;
|
let mut conn = pool.acquire().await.map_err(|e| format!("Failed to acquire connection: {}", e))?;
|
||||||
sqlx::raw_sql("START TRANSACTION")
|
sqlx::raw_sql("START TRANSACTION")
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import {
|
|||||||
Pencil,
|
Pencil,
|
||||||
Filter,
|
Filter,
|
||||||
FileDown,
|
FileDown,
|
||||||
|
SquareDashed,
|
||||||
} from "lucide-vue-next";
|
} from "lucide-vue-next";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import {
|
import {
|
||||||
@@ -2315,7 +2316,7 @@ defineExpose({
|
|||||||
</div>
|
</div>
|
||||||
</ContextMenuTrigger>
|
</ContextMenuTrigger>
|
||||||
|
|
||||||
<ContextMenuContent class="w-64">
|
<ContextMenuContent class="w-max max-w-[min(80vw,20rem)]">
|
||||||
<template v-if="contextColumn">
|
<template v-if="contextColumn">
|
||||||
<ContextMenuItem @click="applyContextSort('asc')">
|
<ContextMenuItem @click="applyContextSort('asc')">
|
||||||
<ArrowUp class="w-3.5 h-3.5 mr-2" /> {{ t("grid.sortAscending") }}
|
<ArrowUp class="w-3.5 h-3.5 mr-2" /> {{ t("grid.sortAscending") }}
|
||||||
@@ -2328,7 +2329,7 @@ defineExpose({
|
|||||||
</ContextMenuItem>
|
</ContextMenuItem>
|
||||||
<ContextMenuSub v-if="canUseWhereSearch">
|
<ContextMenuSub v-if="canUseWhereSearch">
|
||||||
<ContextMenuSubTrigger> <Filter class="w-3.5 h-3.5 mr-2" /> {{ t("grid.filter") }} </ContextMenuSubTrigger>
|
<ContextMenuSubTrigger> <Filter class="w-3.5 h-3.5 mr-2" /> {{ t("grid.filter") }} </ContextMenuSubTrigger>
|
||||||
<ContextMenuSubContent class="w-56">
|
<ContextMenuSubContent class="w-max max-w-[min(80vw,18rem)]">
|
||||||
<ContextMenuItem @click="applyContextFilter('equals')">{{ t("grid.filterByValue") }}</ContextMenuItem>
|
<ContextMenuItem @click="applyContextFilter('equals')">{{ t("grid.filterByValue") }}</ContextMenuItem>
|
||||||
<ContextMenuItem @click="applyContextFilter('not-equals')">
|
<ContextMenuItem @click="applyContextFilter('not-equals')">
|
||||||
{{ t("grid.filterExcludeValue") }}
|
{{ t("grid.filterExcludeValue") }}
|
||||||
@@ -2345,7 +2346,7 @@ defineExpose({
|
|||||||
</template>
|
</template>
|
||||||
<ContextMenuSub>
|
<ContextMenuSub>
|
||||||
<ContextMenuSubTrigger> <Copy class="w-3.5 h-3.5 mr-2" /> {{ t("grid.copy") }} </ContextMenuSubTrigger>
|
<ContextMenuSubTrigger> <Copy class="w-3.5 h-3.5 mr-2" /> {{ t("grid.copy") }} </ContextMenuSubTrigger>
|
||||||
<ContextMenuSubContent class="w-56">
|
<ContextMenuSubContent class="w-max max-w-[min(80vw,18rem)]">
|
||||||
<ContextMenuItem v-if="contextColumn" @click="copyCell">{{ t("grid.copyCell") }}</ContextMenuItem>
|
<ContextMenuItem v-if="contextColumn" @click="copyCell">{{ t("grid.copyCell") }}</ContextMenuItem>
|
||||||
<ContextMenuItem @click="copyRow">{{ t("grid.copyRow") }}</ContextMenuItem>
|
<ContextMenuItem @click="copyRow">{{ t("grid.copyRow") }}</ContextMenuItem>
|
||||||
<ContextMenuItem @click="copyRowAsInsert">{{ t("grid.copyRowInsert") }}</ContextMenuItem>
|
<ContextMenuItem @click="copyRowAsInsert">{{ t("grid.copyRowInsert") }}</ContextMenuItem>
|
||||||
@@ -2356,8 +2357,10 @@ defineExpose({
|
|||||||
<Rows3 class="w-3.5 h-3.5 mr-2" /> {{ t("grid.transpose") }}
|
<Rows3 class="w-3.5 h-3.5 mr-2" /> {{ t("grid.transpose") }}
|
||||||
</ContextMenuItem>
|
</ContextMenuItem>
|
||||||
<ContextMenuSub v-if="hasCellSelection">
|
<ContextMenuSub v-if="hasCellSelection">
|
||||||
<ContextMenuSubTrigger>{{ t("grid.selection") }}</ContextMenuSubTrigger>
|
<ContextMenuSubTrigger>
|
||||||
<ContextMenuSubContent class="w-60">
|
<SquareDashed class="w-3.5 h-3.5 mr-2" /> {{ t("grid.selection") }}
|
||||||
|
</ContextMenuSubTrigger>
|
||||||
|
<ContextMenuSubContent class="w-max max-w-[min(80vw,20rem)]">
|
||||||
<ContextMenuItem @click="copySelectionTsv">{{ t("grid.copySelectionTsv") }}</ContextMenuItem>
|
<ContextMenuItem @click="copySelectionTsv">{{ t("grid.copySelectionTsv") }}</ContextMenuItem>
|
||||||
<ContextMenuItem @click="copySelectionCsv">{{ t("grid.copySelectionCsv") }}</ContextMenuItem>
|
<ContextMenuItem @click="copySelectionCsv">{{ t("grid.copySelectionCsv") }}</ContextMenuItem>
|
||||||
<ContextMenuItem @click="copySelectionJson">{{ t("grid.copySelectionJson") }}</ContextMenuItem>
|
<ContextMenuItem @click="copySelectionJson">{{ t("grid.copySelectionJson") }}</ContextMenuItem>
|
||||||
@@ -2378,7 +2381,7 @@ defineExpose({
|
|||||||
</template>
|
</template>
|
||||||
<ContextMenuSub>
|
<ContextMenuSub>
|
||||||
<ContextMenuSubTrigger> <FileDown class="w-3.5 h-3.5 mr-2" /> {{ t("grid.export") }} </ContextMenuSubTrigger>
|
<ContextMenuSubTrigger> <FileDown class="w-3.5 h-3.5 mr-2" /> {{ t("grid.export") }} </ContextMenuSubTrigger>
|
||||||
<ContextMenuSubContent class="w-44">
|
<ContextMenuSubContent class="w-max max-w-[min(80vw,16rem)]">
|
||||||
<ContextMenuItem @click="exportCsv">{{ t("grid.exportCsv") }}</ContextMenuItem>
|
<ContextMenuItem @click="exportCsv">{{ t("grid.exportCsv") }}</ContextMenuItem>
|
||||||
<ContextMenuItem @click="exportJson">{{ t("grid.exportJson") }}</ContextMenuItem>
|
<ContextMenuItem @click="exportJson">{{ t("grid.exportJson") }}</ContextMenuItem>
|
||||||
<ContextMenuItem @click="exportMarkdown">{{ t("grid.exportMarkdown") }}</ContextMenuItem>
|
<ContextMenuItem @click="exportMarkdown">{{ t("grid.exportMarkdown") }}</ContextMenuItem>
|
||||||
|
|||||||
Reference in new issue
Block a user