mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	changes in API format
This commit is contained in:
		
							parent
							
								
									311952d4dd
								
							
						
					
					
						commit
						a066c6fe2b
					
				@ -33,7 +33,7 @@ async function showDialog() {
 | 
			
		||||
async function savePrefix() {
 | 
			
		||||
    const prefix = $treePrefixInput.val();
 | 
			
		||||
 | 
			
		||||
    await server.put('tree/' + branchId + '/set-prefix', { prefix: prefix });
 | 
			
		||||
    await server.put('branches/' + branchId + '/set-prefix', { prefix: prefix });
 | 
			
		||||
 | 
			
		||||
    await treeService.setPrefix(branchId, prefix);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -25,7 +25,7 @@ async function showNoteRevisionsDialog(noteId, noteRevisionId) {
 | 
			
		||||
    $list.empty();
 | 
			
		||||
    $content.empty();
 | 
			
		||||
 | 
			
		||||
    revisionItems = await server.get('note-revisions/' + noteId);
 | 
			
		||||
    revisionItems = await server.get('notes/' + noteId + '/revisions');
 | 
			
		||||
 | 
			
		||||
    for (const item of revisionItems) {
 | 
			
		||||
        const dateModified = utils.parseDate(item.dateModifiedFrom);
 | 
			
		||||
 | 
			
		||||
@ -34,10 +34,7 @@ async function showDialog() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function saveOptions(optionName, optionValue) {
 | 
			
		||||
    await server.post('options', {
 | 
			
		||||
        name: optionName,
 | 
			
		||||
        value: optionValue
 | 
			
		||||
    });
 | 
			
		||||
    await server.put('options/' + encodeURIComponent(optionName) + '/' + encodeURIComponent(optionValue));
 | 
			
		||||
 | 
			
		||||
    infoService.showMessage("Options change have been saved.");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								src/public/javascripts/services/bootstrap.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								src/public/javascripts/services/bootstrap.js
									
									
									
									
										vendored
									
									
								
							@ -22,7 +22,7 @@ import ScriptApi from './script_api.js';
 | 
			
		||||
import ScriptContext from './script_context.js';
 | 
			
		||||
import sync from './sync.js';
 | 
			
		||||
import treeService from './tree.js';
 | 
			
		||||
import treeChanges from './tree_changes.js';
 | 
			
		||||
import treeChanges from './branches.js';
 | 
			
		||||
import treeUtils from './tree_utils.js';
 | 
			
		||||
import utils from './utils.js';
 | 
			
		||||
import server from './server.js';
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ import treeCache from "./tree_cache.js";
 | 
			
		||||
 | 
			
		||||
async function moveBeforeNode(nodesToMove, beforeNode) {
 | 
			
		||||
    for (const nodeToMove of nodesToMove) {
 | 
			
		||||
        const resp = await server.put('tree/' + nodeToMove.data.branchId + '/move-before/' + beforeNode.data.branchId);
 | 
			
		||||
        const resp = await server.put('branches/' + nodeToMove.data.branchId + '/move-before/' + beforeNode.data.branchId);
 | 
			
		||||
 | 
			
		||||
        if (!resp.success) {
 | 
			
		||||
            alert(resp.message);
 | 
			
		||||
@ -21,7 +21,7 @@ async function moveAfterNode(nodesToMove, afterNode) {
 | 
			
		||||
    nodesToMove.reverse(); // need to reverse to keep the note order
 | 
			
		||||
 | 
			
		||||
    for (const nodeToMove of nodesToMove) {
 | 
			
		||||
        const resp = await server.put('tree/' + nodeToMove.data.branchId + '/move-after/' + afterNode.data.branchId);
 | 
			
		||||
        const resp = await server.put('branches/' + nodeToMove.data.branchId + '/move-after/' + afterNode.data.branchId);
 | 
			
		||||
 | 
			
		||||
        if (!resp.success) {
 | 
			
		||||
            alert(resp.message);
 | 
			
		||||
@ -34,7 +34,7 @@ async function moveAfterNode(nodesToMove, afterNode) {
 | 
			
		||||
 | 
			
		||||
async function moveToNode(nodesToMove, toNode) {
 | 
			
		||||
    for (const nodeToMove of nodesToMove) {
 | 
			
		||||
        const resp = await server.put('tree/' + nodeToMove.data.branchId + '/move-to/' + toNode.data.noteId);
 | 
			
		||||
        const resp = await server.put('branches/' + nodeToMove.data.branchId + '/move-to/' + toNode.data.noteId);
 | 
			
		||||
 | 
			
		||||
        if (!resp.success) {
 | 
			
		||||
            alert(resp.message);
 | 
			
		||||
@ -64,7 +64,7 @@ async function deleteNodes(nodes) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (const node of nodes) {
 | 
			
		||||
        await server.remove('tree/' + node.data.branchId);
 | 
			
		||||
        await server.remove('branches/' + node.data.branchId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // following code assumes that nodes contain only top-most selected nodes - getSelectedNodes has been
 | 
			
		||||
@ -96,7 +96,7 @@ async function moveNodeUpInHierarchy(node) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const resp = await server.put('tree/' + node.data.branchId + '/move-after/' + node.getParent().data.branchId);
 | 
			
		||||
    const resp = await server.put('branches/' + node.data.branchId + '/move-after/' + node.getParent().data.branchId);
 | 
			
		||||
 | 
			
		||||
    if (!resp.success) {
 | 
			
		||||
        alert(resp.message);
 | 
			
		||||
@ -3,9 +3,8 @@ import cloningService from './cloning.js';
 | 
			
		||||
import exportService from './export.js';
 | 
			
		||||
import messagingService from './messaging.js';
 | 
			
		||||
import protectedSessionService from './protected_session.js';
 | 
			
		||||
import treeChangesService from './tree_changes.js';
 | 
			
		||||
import treeChangesService from './branches.js';
 | 
			
		||||
import treeUtils from './tree_utils.js';
 | 
			
		||||
import utils from './utils.js';
 | 
			
		||||
import editTreePrefixDialog from '../dialogs/edit_tree_prefix.js';
 | 
			
		||||
import infoService from "./info.js";
 | 
			
		||||
import treeCache from "./tree_cache.js";
 | 
			
		||||
@ -86,18 +85,18 @@ const contextMenuOptions = {
 | 
			
		||||
        {title: "----"},
 | 
			
		||||
        {title: "Edit tree prefix <kbd>F2</kbd>", cmd: "editTreePrefix", uiIcon: "ui-icon-pencil"},
 | 
			
		||||
        {title: "----"},
 | 
			
		||||
        {title: "Protect sub-tree", cmd: "protectSubTree", uiIcon: "ui-icon-locked"},
 | 
			
		||||
        {title: "Unprotect sub-tree", cmd: "unprotectSubTree", uiIcon: "ui-icon-unlocked"},
 | 
			
		||||
        {title: "Protect branch", cmd: "protectBranch", uiIcon: "ui-icon-locked"},
 | 
			
		||||
        {title: "Unprotect branch", cmd: "unprotectBranch", uiIcon: "ui-icon-unlocked"},
 | 
			
		||||
        {title: "----"},
 | 
			
		||||
        {title: "Copy / clone <kbd>Ctrl+C</kbd>", cmd: "copy", uiIcon: "ui-icon-copy"},
 | 
			
		||||
        {title: "Cut <kbd>Ctrl+X</kbd>", cmd: "cut", uiIcon: "ui-icon-scissors"},
 | 
			
		||||
        {title: "Paste into <kbd>Ctrl+V</kbd>", cmd: "pasteInto", uiIcon: "ui-icon-clipboard"},
 | 
			
		||||
        {title: "Paste after", cmd: "pasteAfter", uiIcon: "ui-icon-clipboard"},
 | 
			
		||||
        {title: "----"},
 | 
			
		||||
        {title: "Export sub-tree", cmd: "exportSubTree", uiIcon: " ui-icon-arrowthick-1-ne"},
 | 
			
		||||
        {title: "Import sub-tree into", cmd: "importSubTree", uiIcon: "ui-icon-arrowthick-1-sw"},
 | 
			
		||||
        {title: "Export branch", cmd: "exportBranch", uiIcon: " ui-icon-arrowthick-1-ne"},
 | 
			
		||||
        {title: "Import into branch", cmd: "importBranch", uiIcon: "ui-icon-arrowthick-1-sw"},
 | 
			
		||||
        {title: "----"},
 | 
			
		||||
        {title: "Collapse sub-tree <kbd>Alt+-</kbd>", cmd: "collapseSubTree", uiIcon: "ui-icon-minus"},
 | 
			
		||||
        {title: "Collapse branch <kbd>Alt+-</kbd>", cmd: "collapseBranch", uiIcon: "ui-icon-minus"},
 | 
			
		||||
        {title: "Force note sync", cmd: "forceNoteSync", uiIcon: "ui-icon-refresh"},
 | 
			
		||||
        {title: "Sort alphabetically <kbd>Alt+S</kbd>", cmd: "sortAlphabetically", uiIcon: " ui-icon-arrowthick-2-n-s"}
 | 
			
		||||
 | 
			
		||||
@ -113,8 +112,8 @@ const contextMenuOptions = {
 | 
			
		||||
        $tree.contextmenu("enableEntry", "pasteInto", clipboardIds.length > 0 && note.type !== 'search');
 | 
			
		||||
        $tree.contextmenu("enableEntry", "insertNoteHere", !parentNote || parentNote.type !== 'search');
 | 
			
		||||
        $tree.contextmenu("enableEntry", "insertChildNote", note.type !== 'search');
 | 
			
		||||
        $tree.contextmenu("enableEntry", "importSubTree", note.type !== 'search');
 | 
			
		||||
        $tree.contextmenu("enableEntry", "exportSubTree", note.type !== 'search');
 | 
			
		||||
        $tree.contextmenu("enableEntry", "importBranch", note.type !== 'search');
 | 
			
		||||
        $tree.contextmenu("enableEntry", "exportBranch", note.type !== 'search');
 | 
			
		||||
 | 
			
		||||
        // Activate node on right-click
 | 
			
		||||
        node.setActive();
 | 
			
		||||
@ -138,11 +137,11 @@ const contextMenuOptions = {
 | 
			
		||||
        else if (ui.cmd === "editTreePrefix") {
 | 
			
		||||
            editTreePrefixDialog.showDialog(node);
 | 
			
		||||
        }
 | 
			
		||||
        else if (ui.cmd === "protectSubTree") {
 | 
			
		||||
            protectedSessionService.protectSubTree(node.data.noteId, true);
 | 
			
		||||
        else if (ui.cmd === "protectBranch") {
 | 
			
		||||
            protectedSessionService.protectBranch(node.data.noteId, true);
 | 
			
		||||
        }
 | 
			
		||||
        else if (ui.cmd === "unprotectSubTree") {
 | 
			
		||||
            protectedSessionService.protectSubTree(node.data.noteId, false);
 | 
			
		||||
        else if (ui.cmd === "unprotectBranch") {
 | 
			
		||||
            protectedSessionService.protectBranch(node.data.noteId, false);
 | 
			
		||||
        }
 | 
			
		||||
        else if (ui.cmd === "copy") {
 | 
			
		||||
            copy(treeService.getSelectedNodes());
 | 
			
		||||
@ -159,13 +158,13 @@ const contextMenuOptions = {
 | 
			
		||||
        else if (ui.cmd === "delete") {
 | 
			
		||||
            treeChangesService.deleteNodes(treeService.getSelectedNodes(true));
 | 
			
		||||
        }
 | 
			
		||||
        else if (ui.cmd === "exportSubTree") {
 | 
			
		||||
            exportService.exportSubTree(node.data.noteId);
 | 
			
		||||
        else if (ui.cmd === "exportBranch") {
 | 
			
		||||
            exportService.exportBranch(node.data.noteId);
 | 
			
		||||
        }
 | 
			
		||||
        else if (ui.cmd === "importSubTree") {
 | 
			
		||||
            exportService.importSubTree(node.data.noteId);
 | 
			
		||||
        else if (ui.cmd === "importBranch") {
 | 
			
		||||
            exportService.importBranch(node.data.noteId);
 | 
			
		||||
        }
 | 
			
		||||
        else if (ui.cmd === "collapseSubTree") {
 | 
			
		||||
        else if (ui.cmd === "collapseBranch") {
 | 
			
		||||
            treeService.collapseTree(node);
 | 
			
		||||
        }
 | 
			
		||||
        else if (ui.cmd === "forceNoteSync") {
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import treeService from './tree.js';
 | 
			
		||||
import treeChangesService from './tree_changes.js';
 | 
			
		||||
import treeChangesService from './branches.js';
 | 
			
		||||
 | 
			
		||||
const dragAndDropSetup = {
 | 
			
		||||
    autoExpandMS: 600,
 | 
			
		||||
 | 
			
		||||
@ -3,8 +3,8 @@ import protectedSessionHolder from './protected_session_holder.js';
 | 
			
		||||
import utils from './utils.js';
 | 
			
		||||
import server from './server.js';
 | 
			
		||||
 | 
			
		||||
function exportSubTree(noteId) {
 | 
			
		||||
    const url = utils.getHost() + "/api/export/" + noteId + "?protectedSessionId="
 | 
			
		||||
function exportBranch(noteId) {
 | 
			
		||||
    const url = utils.getHost() + "/api/notes/" + noteId + "/export?protectedSessionId="
 | 
			
		||||
        + encodeURIComponent(protectedSessionHolder.getProtectedSessionId());
 | 
			
		||||
 | 
			
		||||
    utils.download(url);
 | 
			
		||||
@ -12,7 +12,7 @@ function exportSubTree(noteId) {
 | 
			
		||||
 | 
			
		||||
let importNoteId;
 | 
			
		||||
 | 
			
		||||
function importSubTree(noteId) {
 | 
			
		||||
function importBranch(noteId) {
 | 
			
		||||
    importNoteId = noteId;
 | 
			
		||||
 | 
			
		||||
    $("#import-upload").trigger('click');
 | 
			
		||||
@ -23,7 +23,7 @@ $("#import-upload").change(async function() {
 | 
			
		||||
    formData.append('upload', this.files[0]);
 | 
			
		||||
 | 
			
		||||
    await $.ajax({
 | 
			
		||||
        url: baseApiUrl + 'import/' + importNoteId,
 | 
			
		||||
        url: baseApiUrl + 'notes/' + importNoteId + '/import',
 | 
			
		||||
        headers: server.getHeaders(),
 | 
			
		||||
        data: formData,
 | 
			
		||||
        type: 'POST',
 | 
			
		||||
@ -35,6 +35,6 @@ $("#import-upload").change(async function() {
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    exportSubTree,
 | 
			
		||||
    importSubTree
 | 
			
		||||
    exportBranch,
 | 
			
		||||
    importBranch
 | 
			
		||||
};
 | 
			
		||||
@ -119,10 +119,10 @@ async function unprotectNoteAndSendToServer() {
 | 
			
		||||
    noteDetail.setNoteBackgroundIfProtected(note);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function protectSubTree(noteId, protect) {
 | 
			
		||||
async function protectBranch(noteId, protect) {
 | 
			
		||||
    await ensureProtectedSession(true, true);
 | 
			
		||||
 | 
			
		||||
    await server.put('notes/' + noteId + "/protect-sub-tree/" + (protect ? 1 : 0));
 | 
			
		||||
    await server.put('notes/' + noteId + "/protect/" + (protect ? 1 : 0));
 | 
			
		||||
 | 
			
		||||
    infoService.showMessage("Request to un/protect sub tree has finished successfully");
 | 
			
		||||
 | 
			
		||||
@ -143,6 +143,6 @@ export default {
 | 
			
		||||
    ensureProtectedSession,
 | 
			
		||||
    protectNoteAndSendToServer,
 | 
			
		||||
    unprotectNoteAndSendToServer,
 | 
			
		||||
    protectSubTree,
 | 
			
		||||
    protectBranch,
 | 
			
		||||
    ensureDialogIsClosed
 | 
			
		||||
};
 | 
			
		||||
@ -6,7 +6,7 @@ let protectedSessionTimeout = null;
 | 
			
		||||
let protectedSessionId = null;
 | 
			
		||||
 | 
			
		||||
$(document).ready(() => {
 | 
			
		||||
    server.get('options/all').then(options => protectedSessionTimeout = options.protected_session_timeout);
 | 
			
		||||
    server.get('options').then(options => protectedSessionTimeout = options.protected_session_timeout);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
setInterval(() => {
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import linkService from './link.js';
 | 
			
		||||
import messagingService from './messaging.js';
 | 
			
		||||
import noteDetailService from './note_detail.js';
 | 
			
		||||
import protectedSessionHolder from './protected_session_holder.js';
 | 
			
		||||
import treeChangesService from './tree_changes.js';
 | 
			
		||||
import treeChangesService from './branches.js';
 | 
			
		||||
import treeUtils from './tree_utils.js';
 | 
			
		||||
import utils from './utils.js';
 | 
			
		||||
import server from './server.js';
 | 
			
		||||
@ -238,7 +238,7 @@ async function setExpandedToServer(branchId, isExpanded) {
 | 
			
		||||
 | 
			
		||||
    const expandedNum = isExpanded ? 1 : 0;
 | 
			
		||||
 | 
			
		||||
    await server.put('tree/' + branchId + '/expanded/' + expandedNum);
 | 
			
		||||
    await server.put('branches/' + branchId + '/expanded/' + expandedNum);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function setCurrentNotePathToHash(node) {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import noteDetailService from "./note_detail.js";
 | 
			
		||||
import utils from "./utils.js";
 | 
			
		||||
import treeChangesService from "./tree_changes.js";
 | 
			
		||||
import treeChangesService from "./branches.js";
 | 
			
		||||
import contextMenuService from "./context_menu.js";
 | 
			
		||||
import treeService from "./tree.js";
 | 
			
		||||
import editTreePrefixDialog from "../dialogs/edit_tree_prefix.js";
 | 
			
		||||
 | 
			
		||||
@ -105,10 +105,20 @@ async function deleteBranch(req) {
 | 
			
		||||
    await notes.deleteNote(branch);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function setPrefix(req) {
 | 
			
		||||
    const branchId = req.params.branchId;
 | 
			
		||||
    const prefix = utils.isEmptyOrWhitespace(req.body.prefix) ? null : req.body.prefix;
 | 
			
		||||
 | 
			
		||||
    const branch = await repository.getBranch(branchId);
 | 
			
		||||
    branch.prefix = prefix;
 | 
			
		||||
    await branch.save();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    moveBranchToParent,
 | 
			
		||||
    moveBranchBeforeNote,
 | 
			
		||||
    moveBranchAfterNote,
 | 
			
		||||
    setExpanded,
 | 
			
		||||
    deleteBranch
 | 
			
		||||
    deleteBranch,
 | 
			
		||||
    setPrefix
 | 
			
		||||
};
 | 
			
		||||
@ -1,17 +1,16 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
const sql = require('../../services/sql');
 | 
			
		||||
const utils = require('../../services/utils');
 | 
			
		||||
const sync_table = require('../../services/sync_table');
 | 
			
		||||
const tree = require('../../services/tree');
 | 
			
		||||
const Branch = require('../../entities/branch');
 | 
			
		||||
 | 
			
		||||
async function cloneNoteToParent(req) {
 | 
			
		||||
    const noteId = req.params.noteId;
 | 
			
		||||
    const parentNoteId = req.params.parentNoteId;
 | 
			
		||||
    const childNoteId = req.params.childNoteId;
 | 
			
		||||
    const prefix = req.body.prefix;
 | 
			
		||||
 | 
			
		||||
    const validationResult = await tree.validateParentChild(parentNoteId, childNoteId);
 | 
			
		||||
    const validationResult = await tree.validateParentChild(parentNoteId, noteId);
 | 
			
		||||
 | 
			
		||||
    if (!validationResult.success) {
 | 
			
		||||
        return validationResult;
 | 
			
		||||
@ -21,7 +20,7 @@ async function cloneNoteToParent(req) {
 | 
			
		||||
    const newNotePos = maxNotePos === null ? 0 : maxNotePos + 1;
 | 
			
		||||
 | 
			
		||||
    const branch = new Branch({
 | 
			
		||||
        noteId: childNoteId,
 | 
			
		||||
        noteId: noteId,
 | 
			
		||||
        parentNoteId: parentNoteId,
 | 
			
		||||
        prefix: prefix,
 | 
			
		||||
        notePosition: newNotePos,
 | 
			
		||||
 | 
			
		||||
@ -86,18 +86,18 @@ async function parseImportFile(file) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function importTar(req) {
 | 
			
		||||
    const parentNoteId = req.params.parentNoteId;
 | 
			
		||||
    const noteId = req.params.noteId;
 | 
			
		||||
    const file = req.file;
 | 
			
		||||
 | 
			
		||||
    const parentNote = await repository.getNote(parentNoteId);
 | 
			
		||||
    const parentNote = await repository.getNote(noteId);
 | 
			
		||||
 | 
			
		||||
    if (!parentNote) {
 | 
			
		||||
        return [404, `Note ${parentNoteId} doesn't exist.`];
 | 
			
		||||
        return [404, `Note ${noteId} doesn't exist.`];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const files = await parseImportFile(file);
 | 
			
		||||
 | 
			
		||||
    await importNotes(files, parentNoteId);
 | 
			
		||||
    await importNotes(files, noteId);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function importNotes(files, parentNoteId) {
 | 
			
		||||
 | 
			
		||||
@ -6,11 +6,7 @@ const options = require('../../services/options');
 | 
			
		||||
// options allowed to be updated directly in options dialog
 | 
			
		||||
const ALLOWED_OPTIONS = ['protected_session_timeout', 'note_revision_snapshot_time_interval'];
 | 
			
		||||
 | 
			
		||||
async function getAllOptions() {
 | 
			
		||||
    return await sql.getMap("SELECT name, value FROM options");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function getAllowedOptions() {
 | 
			
		||||
async function getOptions() {
 | 
			
		||||
    const options = await sql.getMap("SELECT name, value FROM options WHERE name IN ("
 | 
			
		||||
        + ALLOWED_OPTIONS.map(x => '?').join(",") + ")", ALLOWED_OPTIONS);
 | 
			
		||||
 | 
			
		||||
@ -18,17 +14,16 @@ async function getAllowedOptions() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function updateOption(req) {
 | 
			
		||||
    const body = req.body;
 | 
			
		||||
    const {name, value} = req.params;
 | 
			
		||||
 | 
			
		||||
    if (!ALLOWED_OPTIONS.includes(body['name'])) {
 | 
			
		||||
    if (!ALLOWED_OPTIONS.includes(name)) {
 | 
			
		||||
        return [400, "not allowed option to set"];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    await options.setOption(body['name'], body['value']);
 | 
			
		||||
    await options.setOption(name, value);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    getAllowedOptions,
 | 
			
		||||
    getAllOptions,
 | 
			
		||||
    getOptions,
 | 
			
		||||
    updateOption
 | 
			
		||||
};
 | 
			
		||||
@ -60,16 +60,6 @@ async function getTree() {
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function setPrefix(req) {
 | 
			
		||||
    const branchId = req.params.branchId;
 | 
			
		||||
    const prefix = utils.isEmptyOrWhitespace(req.body.prefix) ? null : req.body.prefix;
 | 
			
		||||
 | 
			
		||||
    const branch = await repository.getBranch(branchId);
 | 
			
		||||
    branch.prefix = prefix;
 | 
			
		||||
    await branch.save();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    getTree,
 | 
			
		||||
    setPrefix
 | 
			
		||||
    getTree
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ const multer = require('multer')();
 | 
			
		||||
// API routes
 | 
			
		||||
const treeApiRoute = require('./api/tree');
 | 
			
		||||
const notesApiRoute = require('./api/notes');
 | 
			
		||||
const treeChangesApiRoute = require('./api/tree_changes');
 | 
			
		||||
const branchesApiRoute = require('./api/branches');
 | 
			
		||||
const cloningApiRoute = require('./api/cloning');
 | 
			
		||||
const noteRevisionsApiRoute = require('./api/note_revisions');
 | 
			
		||||
const recentChangesApiRoute = require('./api/recent_changes');
 | 
			
		||||
@ -99,36 +99,37 @@ function register(app) {
 | 
			
		||||
    route(GET, '/setup', [auth.checkAppNotInitialized], setupRoute.setupPage);
 | 
			
		||||
 | 
			
		||||
    apiRoute(GET, '/api/tree', treeApiRoute.getTree);
 | 
			
		||||
    apiRoute(PUT, '/api/tree/:branchId/set-prefix', treeApiRoute.setPrefix);
 | 
			
		||||
    apiRoute(PUT, '/api/branches/:branchId/set-prefix', branchesApiRoute.setPrefix);
 | 
			
		||||
 | 
			
		||||
    apiRoute(PUT, '/api/tree/:branchId/move-to/:parentNoteId', treeChangesApiRoute.moveBranchToParent);
 | 
			
		||||
    apiRoute(PUT, '/api/tree/:branchId/move-before/:beforeBranchId', treeChangesApiRoute.moveBranchBeforeNote);
 | 
			
		||||
    apiRoute(PUT, '/api/tree/:branchId/move-after/:afterBranchId', treeChangesApiRoute.moveBranchAfterNote);
 | 
			
		||||
    apiRoute(PUT, '/api/tree/:branchId/expanded/:expanded', treeChangesApiRoute.setExpanded);
 | 
			
		||||
    apiRoute(DELETE, '/api/tree/:branchId', treeChangesApiRoute.deleteBranch);
 | 
			
		||||
    apiRoute(PUT, '/api/branches/:branchId/move-to/:parentNoteId', branchesApiRoute.moveBranchToParent);
 | 
			
		||||
    apiRoute(PUT, '/api/branches/:branchId/move-before/:beforeBranchId', branchesApiRoute.moveBranchBeforeNote);
 | 
			
		||||
    apiRoute(PUT, '/api/branches/:branchId/move-after/:afterBranchId', branchesApiRoute.moveBranchAfterNote);
 | 
			
		||||
    apiRoute(PUT, '/api/branches/:branchId/expanded/:expanded', branchesApiRoute.setExpanded);
 | 
			
		||||
    apiRoute(DELETE, '/api/branches/:branchId', branchesApiRoute.deleteBranch);
 | 
			
		||||
 | 
			
		||||
    apiRoute(GET, '/api/notes/:noteId', notesApiRoute.getNote);
 | 
			
		||||
    apiRoute(PUT, '/api/notes/:noteId', notesApiRoute.updateNote);
 | 
			
		||||
    apiRoute(POST, '/api/notes/:parentNoteId/children', notesApiRoute.createNote);
 | 
			
		||||
    apiRoute(PUT, '/api/notes/:noteId/sort', notesApiRoute.sortNotes);
 | 
			
		||||
    apiRoute(PUT, '/api/notes/:noteId/protect-sub-tree/:isProtected', notesApiRoute.protectBranch);
 | 
			
		||||
    apiRoute(PUT, '/api/notes/:noteId/protect/:isProtected', notesApiRoute.protectBranch);
 | 
			
		||||
    apiRoute(PUT, /\/api\/notes\/(.*)\/type\/(.*)\/mime\/(.*)/, notesApiRoute.setNoteTypeMime);
 | 
			
		||||
    apiRoute(GET, '/api/notes/:noteId/revisions', noteRevisionsApiRoute.getNoteRevisions);
 | 
			
		||||
 | 
			
		||||
    apiRoute(PUT, '/api/notes/:childNoteId/clone-to/:parentNoteId', cloningApiRoute.cloneNoteToParent);
 | 
			
		||||
    apiRoute(PUT, '/api/notes/:noteId/clone-to/:parentNoteId', cloningApiRoute.cloneNoteToParent);
 | 
			
		||||
    apiRoute(PUT, '/api/notes/:noteId/clone-after/:afterBranchId', cloningApiRoute.cloneNoteAfter);
 | 
			
		||||
 | 
			
		||||
    route(GET, '/api/notes/:noteId/export', [auth.checkApiAuthOrElectron], exportRoute.exportNote);
 | 
			
		||||
    route(POST, '/api/notes/:noteId/import', [auth.checkApiAuthOrElectron, uploadMiddleware], importRoute.importTar, apiResultHandler);
 | 
			
		||||
 | 
			
		||||
    apiRoute(GET, '/api/notes/:noteId/labels', labelsRoute.getNoteLabels);
 | 
			
		||||
    apiRoute(PUT, '/api/notes/:noteId/labels', labelsRoute.updateNoteLabels);
 | 
			
		||||
    apiRoute(GET, '/api/labels/names', labelsRoute.getAllLabelNames);
 | 
			
		||||
    apiRoute(GET, '/api/labels/values/:labelName', labelsRoute.getValuesForLabel);
 | 
			
		||||
 | 
			
		||||
    apiRoute(GET, '/api/note-revisions/:noteId', noteRevisionsApiRoute.getNoteRevisions);
 | 
			
		||||
 | 
			
		||||
    apiRoute(GET, '/api/recent-changes', recentChangesApiRoute.getRecentChanges);
 | 
			
		||||
 | 
			
		||||
    apiRoute(GET, '/api/options', optionsApiRoute.getAllowedOptions);
 | 
			
		||||
    apiRoute(GET, '/api/options/all', optionsApiRoute.getAllOptions);
 | 
			
		||||
    apiRoute(POST, '/api/options', optionsApiRoute.updateOption);
 | 
			
		||||
    apiRoute(GET, '/api/options', optionsApiRoute.getOptions);
 | 
			
		||||
    apiRoute(PUT, '/api/options/:name/:value', optionsApiRoute.updateOption);
 | 
			
		||||
 | 
			
		||||
    apiRoute(POST, '/api/password/change', passwordApiRoute.changePassword);
 | 
			
		||||
 | 
			
		||||
@ -164,9 +165,6 @@ function register(app) {
 | 
			
		||||
    apiRoute(PUT, '/api/recent-notes/:branchId/:notePath', recentNotesRoute.addRecentNote);
 | 
			
		||||
    apiRoute(GET, '/api/app-info', appInfoRoute.getAppInfo);
 | 
			
		||||
 | 
			
		||||
    route(GET, '/api/export/:noteId', [auth.checkApiAuthOrElectron], exportRoute.exportNote);
 | 
			
		||||
    route(POST, '/api/import/:parentNoteId', [auth.checkApiAuthOrElectron], importRoute.importTar, apiResultHandler);
 | 
			
		||||
 | 
			
		||||
    route(POST, '/api/setup', [auth.checkAppNotInitialized], setupApiRoute.setup, apiResultHandler);
 | 
			
		||||
 | 
			
		||||
    apiRoute(POST, '/api/sql/execute', sqlRoute.execute);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user