import {fetchPost} from "../util/fetch"; export const fileTree = { element: undefined as Element, genHTML: () => { return ` `; }, _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; } };