Selaa lähdekoodia

:art: https://github.com/siyuan-note/siyuan/issues/11552

Vanessa 1 vuosi sitten
vanhempi
commit
f1993e13e3

+ 18 - 63
app/src/protyle/render/av/col.ts

@@ -34,69 +34,24 @@ export const duplicateCol = (options: {
     newColData.id = Lute.NewNodeID();
     newColData.id = Lute.NewNodeID();
     const newUpdated = dayjs().format("YYYYMMDDHHmmss");
     const newUpdated = dayjs().format("YYYYMMDDHHmmss");
     const blockId = options.blockElement.getAttribute("data-node-id");
     const blockId = options.blockElement.getAttribute("data-node-id");
-    if (["select", "mSelect", "rollup"].includes(newColData.type)) {
-        fetchPost("/api/av/renderAttributeView", {
-            id: options.data.id,
-            viewID: options.viewID
-        }, (response) => {
-            const data = response.data as IAV;
-            let colOptions;
-            data.view.columns.find((item) => {
-                if (item.id === options.colId) {
-                    colOptions = item.options;
-                    return true;
-                }
-            });
-            transaction(options.protyle, [{
-                action: "addAttrViewCol",
-                name: newColData.name,
-                avID: options.data.id,
-                type: newColData.type,
-                data: newColData.icon,
-                previousID: options.colId,
-                id: newColData.id
-            }, {
-                action: "updateAttrViewColOptions",
-                id: newColData.id,
-                avID: options.data.id,
-                data: colOptions
-            }, {
-                action: "doUpdateUpdated",
-                id: blockId,
-                data: newUpdated,
-            }], [{
-                action: "removeAttrViewCol",
-                id: newColData.id,
-                avID: options.data.id,
-            }, {
-                action: "doUpdateUpdated",
-                id: blockId,
-                data: options.blockElement.getAttribute("updated")
-            }]);
-        });
-    } else {
-        transaction(options.protyle, [{
-            action: "addAttrViewCol",
-            name: newColData.name,
-            avID: options.data.id,
-            type: newColData.type,
-            data: newColData.icon,
-            id: newColData.id,
-            previousID: options.colId,
-        }, {
-            action: "doUpdateUpdated",
-            id: blockId,
-            data: newUpdated,
-        }], [{
-            action: "removeAttrViewCol",
-            id: newColData.id,
-            avID: options.data.id,
-        }, {
-            action: "doUpdateUpdated",
-            id: blockId,
-            data: options.blockElement.getAttribute("updated")
-        }]);
-    }
+    transaction(options.protyle, [{
+        action: "duplicateAttrViewKey",
+        keyID:newColData.id,
+        nextID:options.colId,
+        avID: options.data.id,
+    }, {
+        action: "doUpdateUpdated",
+        id: blockId,
+        data: newUpdated,
+    }], [{
+        action: "removeAttrViewCol",
+        id: newColData.id,
+        avID: options.data.id,
+    }, {
+        action: "doUpdateUpdated",
+        id: blockId,
+        data: options.blockElement.getAttribute("updated")
+    }]);
     addAttrViewColAnimation({
     addAttrViewColAnimation({
         blockElement: options.blockElement,
         blockElement: options.blockElement,
         protyle: options.protyle,
         protyle: options.protyle,

+ 1 - 1
app/src/protyle/render/util.ts

@@ -20,4 +20,4 @@ export const processClonePHElement = (item:Element) => {
         phElement.setAttribute("data-content", Lute.UnEscapeHTMLStr(phElement.getAttribute("data-content")));
         phElement.setAttribute("data-content", Lute.UnEscapeHTMLStr(phElement.getAttribute("data-content")));
     }
     }
     return item;
     return item;
-}
+};

+ 1 - 1
app/src/protyle/wysiwyg/transaction.ts

@@ -767,7 +767,7 @@ export const onTransaction = (protyle: IProtyle, operation: IOperation, isUndo:
         "setAttrViewSorts", "setAttrViewColCalc", "removeAttrViewCol", "updateAttrViewColNumberFormat", "removeAttrViewBlock",
         "setAttrViewSorts", "setAttrViewColCalc", "removeAttrViewCol", "updateAttrViewColNumberFormat", "removeAttrViewBlock",
         "replaceAttrViewBlock", "updateAttrViewColTemplate", "setAttrViewColPin", "addAttrViewView", "setAttrViewColIcon",
         "replaceAttrViewBlock", "updateAttrViewColTemplate", "setAttrViewColPin", "addAttrViewView", "setAttrViewColIcon",
         "removeAttrViewView", "setAttrViewViewName", "setAttrViewViewIcon", "duplicateAttrViewView", "sortAttrViewView",
         "removeAttrViewView", "setAttrViewViewName", "setAttrViewViewIcon", "duplicateAttrViewView", "sortAttrViewView",
-        "updateAttrViewColRelation", "setAttrViewPageSize", "updateAttrViewColRollup", "sortAttrViewKey"].includes(operation.action)) {
+        "updateAttrViewColRelation", "setAttrViewPageSize", "updateAttrViewColRollup", "sortAttrViewKey", "duplicateAttrViewKey"].includes(operation.action)) {
         refreshAV(protyle, operation);
         refreshAV(protyle, operation);
         return;
         return;
     }
     }

+ 4 - 4
app/src/search/spread.ts

@@ -54,7 +54,7 @@ export const openSearch = async (options: {
     const exitDialog = window.siyuan.dialogs.find((item) => {
     const exitDialog = window.siyuan.dialogs.find((item) => {
         // 再次打开
         // 再次打开
         if (item.element.querySelector("#searchList")) {
         if (item.element.querySelector("#searchList")) {
-            const searchElement = item.element.querySelector(".b3-dialog__body")
+            const searchElement = item.element.querySelector(".b3-dialog__body");
             const cloneData = JSON.parse(JSON.stringify(item.data)) as Config.IUILayoutTabSearchConfig;
             const cloneData = JSON.parse(JSON.stringify(item.data)) as Config.IUILayoutTabSearchConfig;
             const selectText = getSelection().rangeCount > 0 ? getSelection().getRangeAt(0).toString() : undefined;
             const selectText = getSelection().rangeCount > 0 ? getSelection().getRangeAt(0).toString() : undefined;
             if (selectText) {
             if (selectText) {
@@ -71,12 +71,12 @@ export const openSearch = async (options: {
                 updateConfig(searchElement, cloneData, item.data, item.editors.edit);
                 updateConfig(searchElement, cloneData, item.data, item.editors.edit);
             } else if (options.hotkey === Constants.DIALOG_SEARCH) {
             } else if (options.hotkey === Constants.DIALOG_SEARCH) {
                 cloneData.hasReplace = false;
                 cloneData.hasReplace = false;
-                const toPath = item.editors.edit.protyle.path
+                const toPath = item.editors.edit.protyle.path;
                 fetchPost("/api/filetree/getHPathsByPaths", {paths: [toPath]}, (response) => {
                 fetchPost("/api/filetree/getHPathsByPaths", {paths: [toPath]}, (response) => {
                     cloneData.idPath = [pathPosix().join(item.editors.edit.protyle.notebookId, toPath)];
                     cloneData.idPath = [pathPosix().join(item.editors.edit.protyle.notebookId, toPath)];
                     cloneData.hPath = response.data[0];
                     cloneData.hPath = response.data[0];
-                    item.data.idPath = cloneData.idPath
-                    item.data.hPath = cloneData.hPath
+                    item.data.idPath = cloneData.idPath;
+                    item.data.hPath = cloneData.hPath;
                     updateConfig(searchElement, cloneData, item.data, item.editors.edit);
                     updateConfig(searchElement, cloneData, item.data, item.editors.edit);
                 });
                 });
             }
             }

+ 1 - 0
app/src/types/index.d.ts

@@ -33,6 +33,7 @@ type TOperation =
     | "updateAttrViewColOption"
     | "updateAttrViewColOption"
     | "setAttrViewName"
     | "setAttrViewName"
     | "doUpdateUpdated"
     | "doUpdateUpdated"
+    | "duplicateAttrViewKey"
     | "setAttrViewColIcon"
     | "setAttrViewColIcon"
     | "setAttrViewFilters"
     | "setAttrViewFilters"
     | "setAttrViewSorts"
     | "setAttrViewSorts"