import {fetchPost} from "../util/fetch"; export const fileTree = { element: undefined as Element, genHTML: () => { return ` ${window.siyuan.languages.selectOpen} ${window.siyuan.languages.fileTree2} ${window.siyuan.languages.fileTree7} ${window.siyuan.languages.fileTree8} ${window.siyuan.languages.fileTree9} ${window.siyuan.languages.fileTree10} ${window.siyuan.languages.fileTree18} ${window.siyuan.languages.fileTree19} ${window.siyuan.languages.fileTree3} ${window.siyuan.languages.fileTree4} ${window.siyuan.languages.fileTree20} ${window.siyuan.languages.fileTree21} ${window.siyuan.languages.fileTree12} ${window.siyuan.languages.fileTree13} ${window.siyuan.languages.fileTree5} ${window.siyuan.languages.fileTree6} ${window.siyuan.languages.fileTree16} ${window.siyuan.languages.fileTree17} ${window.siyuan.languages.tabLimit} ${window.siyuan.languages.tabLimit1} `; }, _send() { // 限制页签最大打开数量为 `32` https://github.com/siyuan-note/siyuan/issues/6303 let inputMaxOpenTabCount = parseInt((fileTree.element.querySelector("#maxOpenTabCount") as HTMLInputElement).value); if (32 < inputMaxOpenTabCount) { inputMaxOpenTabCount = 32; (fileTree.element.querySelector("#maxOpenTabCount") as HTMLInputElement).value = "32"; } if (1 > inputMaxOpenTabCount) { inputMaxOpenTabCount = 1; (fileTree.element.querySelector("#maxOpenTabCount") as HTMLInputElement).value = "1"; } fetchPost("/api/setting/setFiletree", { sort: window.siyuan.config.fileTree.sort, alwaysSelectOpenedFile: (fileTree.element.querySelector("#alwaysSelectOpenedFile") as HTMLInputElement).checked, refCreateSavePath: (fileTree.element.querySelector("#refCreateSavePath") as HTMLInputElement).value, docCreateSavePath: (fileTree.element.querySelector("#docCreateSavePath") as HTMLInputElement).value, openFilesUseCurrentTab: (fileTree.element.querySelector("#openFilesUseCurrentTab") as HTMLInputElement).checked, closeTabsOnStart: (fileTree.element.querySelector("#closeTabsOnStart") as HTMLInputElement).checked, allowCreateDeeper: (fileTree.element.querySelector("#allowCreateDeeper") as HTMLInputElement).checked, removeDocWithoutConfirm: (fileTree.element.querySelector("#removeDocWithoutConfirm") as HTMLInputElement).checked, useSingleLineSave: (fileTree.element.querySelector("#useSingleLineSave") as HTMLInputElement).checked, maxListCount: parseInt((fileTree.element.querySelector("#maxListCount") as HTMLInputElement).value), maxOpenTabCount: inputMaxOpenTabCount, }, response => { fileTree.onSetfiletree(response.data); }); }, bindEvent: () => { (fileTree.element.querySelector("#docCreateSavePath") as HTMLInputElement).value = window.siyuan.config.fileTree.docCreateSavePath; (fileTree.element.querySelector("#refCreateSavePath") as HTMLInputElement).value = window.siyuan.config.fileTree.refCreateSavePath; fileTree.element.querySelectorAll("input").forEach((item) => { item.addEventListener("change", () => { fileTree._send(); }); }); }, onSetfiletree: (fileTree: IFileTree) => { window.siyuan.config.fileTree = fileTree; } };