mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	refactoring of note creation APIs WIP
This commit is contained in:
		| @@ -649,11 +649,9 @@ async function createNote(node, parentNoteId, target, extraOptions = {}) { | ||||
|  | ||||
|     const newNoteName = extraOptions.title || "new note"; | ||||
|  | ||||
|     const {note, branch} = await server.post('notes/' + parentNoteId + '/children', { | ||||
|     const {note, branch} = await server.post(`notes/${parentNoteId}/children?target=${target}&targetBranchId=${node.data.branchId}`, { | ||||
|         title: newNoteName, | ||||
|         content: extraOptions.content, | ||||
|         target: target, | ||||
|         target_branchId: node.data.branchId, | ||||
|         isProtected: extraOptions.isProtected, | ||||
|         type: extraOptions.type | ||||
|     }); | ||||
|   | ||||
| @@ -56,7 +56,9 @@ async function createNote(req) { | ||||
|     const params = Object.assign({}, req.body); // clone | ||||
|     params.parentNoteId = req.params.parentNoteId; | ||||
|  | ||||
|     const { note, branch } = await noteService.createNewNote(params); | ||||
|     const { target, targetBranchId } = req.query; | ||||
|  | ||||
|     const { note, branch } = await noteService.createNewNoteWithTarget(target, targetBranchId, params); | ||||
|  | ||||
|     note.cssClass = (await note.getLabels("cssClass")).map(label => label.value).join(" "); | ||||
|  | ||||
|   | ||||
| @@ -76,7 +76,7 @@ async function copyChildAttributes(parentNote, childNote) { | ||||
|  * - {string} parentNoteId | ||||
|  * - {string} title | ||||
|  * - {*} content | ||||
|  * - {string} type | ||||
|  * - {string} type - text, code, file, image, search, book, relation-map | ||||
|  * | ||||
|  * Following are optional (have defaults) | ||||
|  * - {string} mime - value is derived from default mimes for type | ||||
| @@ -128,6 +128,28 @@ async function createNewNote(params) { | ||||
|     }; | ||||
| } | ||||
|  | ||||
| async function createNewNoteWithTarget(target, targetBranchId, params) { | ||||
|     if (target === 'into') { | ||||
|         return await createNewNote(params); | ||||
|     } | ||||
|     else if (target === 'after') { | ||||
|         const afterNote = await sql.getRow('SELECT notePosition FROM branches WHERE branchId = ?', [noteData.target_branchId]); | ||||
|  | ||||
|         // not updating utcDateModified to avoig having to sync whole rows | ||||
|         await sql.execute('UPDATE branches SET notePosition = notePosition + 10 WHERE parentNoteId = ? AND notePosition > ? AND isDeleted = 0', | ||||
|             [params.parentNoteId, afterNote.notePosition]); | ||||
|  | ||||
|         params.notePosition = afterNote.notePosition + 10; | ||||
|  | ||||
|         await createNewNote(params); | ||||
|  | ||||
|         await syncTableService.addNoteReorderingSync(params.parentNoteId); | ||||
|     } | ||||
|     else { | ||||
|         throw new Error(`Unknown target ${target}`); | ||||
|     } | ||||
| } | ||||
|  | ||||
| // methods below should be probably just backend API methods | ||||
| async function createJsonNote(parentNoteId, title, content = {}, params = {}) { | ||||
|     params.parentNoteId = parentNoteId; | ||||
| @@ -512,6 +534,7 @@ sqlInit.dbReady.then(() => { | ||||
|  | ||||
| module.exports = { | ||||
|     createNewNote, | ||||
|     createNewNoteWithTarget, | ||||
|     updateNote, | ||||
|     deleteBranch, | ||||
|     protectNoteRecursively, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user