diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index 2ef93b861..2479b1831 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -1,4 +1,5 @@
{
+ "removeCol": "Are you sure you want to delete the ${x} column in the database?",
"video": "Video",
"audio": "Audio",
"updateAll": "Update all",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 8074c9f87..410d08aab 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -1,4 +1,5 @@
{
+ "removeCol": "¿Está seguro de que desea eliminar la columna ${x} en la base de datos?",
"vídeo": "Vídeo",
"audio": "Audio",
"updateAll": "Actualizar todo",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index 550c67a25..cd5ca14cd 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -1,4 +1,5 @@
{
+ "removeCol": "Êtes-vous sûr de vouloir supprimer la colonne ${x} de la base de données ?",
"video": "Vidéo",
"audio": "Audio",
"updateAll": "Tout mettre à jour",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index c2acd85a4..aa0969057 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -1,4 +1,5 @@
{
+ "removeCol": "確定刪除資料庫中的 ${x} 欄位?",
"video": "影片",
"audio": "音訊",
"updateAll": "全部更新",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index 443dd1f45..c3e3bb495 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -1,4 +1,5 @@
{
+ "removeCol": "确定删除数据库中的 ${x} 列?",
"video": "视频",
"audio": "音频",
"updateAll": "全部更新",
diff --git a/app/src/dialog/confirmDialog.ts b/app/src/dialog/confirmDialog.ts
index 3ea995fcb..98cc3eb2b 100644
--- a/app/src/dialog/confirmDialog.ts
+++ b/app/src/dialog/confirmDialog.ts
@@ -1,7 +1,11 @@
import {isMobile} from "../util/functions";
import {Dialog} from "./index";
-export const confirmDialog = (title: string, text: string, confirm?: (dialog:Dialog) => void, cancel?: (dialog:Dialog) => void) => {
+export const confirmDialog = (title: string, text: string, confirm?: (dialog?: Dialog) => void, cancel?: (dialog: Dialog) => void) => {
+ if (!text && !title) {
+ confirm();
+ return;
+ }
const dialog = new Dialog({
title,
content: `
diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts
index 5af33b29b..090dbc614 100644
--- a/app/src/protyle/render/av/openMenuPanel.ts
+++ b/app/src/protyle/render/av/openMenuPanel.ts
@@ -31,6 +31,7 @@ import {bindRollupData, getRollupHTML, goSearchRollupCol} from "./rollup";
import {updateCellsValue} from "./cell";
import {openCalcMenu} from "./calc";
import * as dayjs from "dayjs";
+import {confirmDialog} from "../../../dialog/confirmDialog";
export const openMenuPanel = (options: {
protyle: IProtyle,
@@ -1025,38 +1026,40 @@ export const openMenuPanel = (options: {
event.stopPropagation();
break;
} else if (type === "removeCol") {
- const colId = menuElement.querySelector(".b3-menu__item").getAttribute("data-col-id");
- let previousID: string;
- const colData = data.view.columns.find((item: IAVColumn, index) => {
- if (item.id === colId) {
- previousID = data.view.columns[index - 1]?.id;
- return true;
- }
- });
- const newUpdated = dayjs().format("YYYYMMDDHHmmss");
- transaction(options.protyle, [{
- action: "removeAttrViewCol",
- id: colId,
- avID,
- }, {
- action: "doUpdateUpdated",
- id: blockID,
- data: newUpdated,
- }], [{
- action: "addAttrViewCol",
- name: colData.name,
- avID,
- type: colData.type,
- id: colId,
- previousID
- }, {
- action: "doUpdateUpdated",
- id: blockID,
- data: options.blockElement.getAttribute("updated")
- }]);
- removeAttrViewColAnimation(options.blockElement, colId);
- options.blockElement.setAttribute("updated", newUpdated);
- avPanelElement.remove();
+ confirmDialog(isCustomAttr ? window.siyuan.languages.deleteOpConfirm : "", isCustomAttr ? window.siyuan.languages.removeCol.replace("${x}", menuElement.querySelector("input").value) : "", () => {
+ const colId = menuElement.querySelector(".b3-menu__item").getAttribute("data-col-id");
+ let previousID: string;
+ const colData = data.view.columns.find((item: IAVColumn, index) => {
+ if (item.id === colId) {
+ previousID = data.view.columns[index - 1]?.id;
+ return true;
+ }
+ });
+ const newUpdated = dayjs().format("YYYYMMDDHHmmss");
+ transaction(options.protyle, [{
+ action: "removeAttrViewCol",
+ id: colId,
+ avID,
+ }, {
+ action: "doUpdateUpdated",
+ id: blockID,
+ data: newUpdated,
+ }], [{
+ action: "addAttrViewCol",
+ name: colData.name,
+ avID,
+ type: colData.type,
+ id: colId,
+ previousID
+ }, {
+ action: "doUpdateUpdated",
+ id: blockID,
+ data: options.blockElement.getAttribute("updated")
+ }]);
+ removeAttrViewColAnimation(options.blockElement, colId);
+ options.blockElement.setAttribute("updated", newUpdated);
+ avPanelElement.remove();
+ })
event.preventDefault();
event.stopPropagation();
break;