🎨 Supports specifying the notebook to save new docs https://github.com/siyuan-note/siyuan/issues/10671

This commit is contained in:
Daniel 2024-04-25 23:41:05 +08:00
parent 78216e7909
commit b102219a13
No known key found for this signature in database
GPG Key ID: 86211BA83DF03017
2 changed files with 27 additions and 5 deletions

View File

@ -20,14 +20,14 @@ declare interface INotebookConf {
}
}
export const genNotebookOption = (id: string) => {
export const genNotebookOption = (id: string, notebookId?: string) => {
let html = `<option value="">${window.siyuan.languages.currentNotebook}</option>`;
const helpIds: string[] = [];
Object.keys(Constants.HELP_PATH).forEach((key: "zh_CN") => {
helpIds.push(Constants.HELP_PATH[key]);
});
window.siyuan.notebooks.forEach((item) => {
if (helpIds.includes(item.id)) {
if (helpIds.includes(item.id) || item.id === notebookId) {
return;
}
html += `<option value="${item.id}" ${id === item.id ? "selected" : ""}>${item.name}</option>`;
@ -45,7 +45,7 @@ export const onGetnotebookconf = (data: INotebookConf) => {
<div class="b3-label__text">${window.siyuan.languages.fileTree13}</div>
<span class="fn__hr"></span>
<div class="fn__flex">
<select style="min-width: 200px" class="b3-select" id="docCreateSaveBox">${genNotebookOption(data.conf.docCreateSaveBox)}</select>
<select style="min-width: 200px" class="b3-select" id="docCreateSaveBox">${genNotebookOption(data.conf.docCreateSaveBox, data.box)}</select>
<div class="fn__space"></div>
<input class="b3-text-field fn__flex-1" id="docCreateSavePath" value="">
</div>
@ -55,7 +55,7 @@ export const onGetnotebookconf = (data: INotebookConf) => {
<div class="b3-label__text">${window.siyuan.languages.fileTree6}</div>
<span class="fn__hr"></span>
<div class="fn__flex">
<select style="min-width: 200px" class="b3-select" id="refCreateSaveBox">${genNotebookOption(data.conf.refCreateSaveBox)}</select>
<select style="min-width: 200px" class="b3-select" id="refCreateSaveBox">${genNotebookOption(data.conf.refCreateSaveBox, data.box)}</select>
<div class="fn__space"></div>
<input class="b3-text-field fn__flex-1" id="refCreateSavePath" value="">
</div>

View File

@ -92,6 +92,9 @@ export const newFile = (optios: {
optios.currentPath = resultData.currentPath;
}
fetchPost("/api/filetree/getDocCreateSavePath", {notebook: optios.notebookId}, (data) => {
if (!optios.useSavePath) {
data.data.box = optios.notebookId;
}
if ((data.data.path.indexOf("/") > -1 && optios.useSavePath) || optios.name) {
if (data.data.path.startsWith("/") || optios.currentPath === "/") {
fetchPost("/api/filetree/createDocWithMd", {
@ -138,8 +141,27 @@ export const newFile = (optios: {
if (!validateName(title)) {
return;
}
if (optios.notebookId !== data.data.box) {
fetchPost("/api/filetree/createDocWithMd", {
notebook: data.data.box,
path: pathPosix().join(data.data.path || "/", optios.name || (data.data.path.endsWith("/") ? window.siyuan.languages.untitled : "")),
markdown: ""
}, response => {
/// #if !MOBILE
openFileById({
app: optios.app,
id: response.data,
action: [Constants.CB_GET_HL, Constants.CB_GET_CONTEXT]
});
/// #else
openMobileFileById(optios.app, response.data, [Constants.CB_GET_HL, Constants.CB_GET_CONTEXT]);
/// #endif
});
return;
}
const id = Lute.NewNodeID();
const newPath = optios.notebookId === data.data.box ? (pathPosix().join(getDisplayName(optios.currentPath, false, true), id + ".sy")) : (data.data.path || "/");
const newPath = (pathPosix().join(getDisplayName(optios.currentPath, false, true), id + ".sy"));
if (optios.paths) {
optios.paths[optios.paths.indexOf(undefined)] = newPath;
}