mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
const treeUtils = (function() {
 | 
						|
    const treeEl = $("#tree");
 | 
						|
 | 
						|
    function getParentKey(node) {
 | 
						|
        return (node.getParent() === null || node.getParent().key === "root_1") ? "root" : node.getParent().key;
 | 
						|
    }
 | 
						|
 | 
						|
    function getParentEncryption(node) {
 | 
						|
        return node.getParent() === null ? 0 : node.getParent().data.encryption;
 | 
						|
    }
 | 
						|
 | 
						|
    function getNodeByKey(noteId) {
 | 
						|
        return treeEl.fancytree('getNodeByKey', noteId);
 | 
						|
    }
 | 
						|
 | 
						|
    function activateNode(noteId) {
 | 
						|
        const node = treeUtils.getNodeByKey(noteId);
 | 
						|
 | 
						|
        node.setActive();
 | 
						|
    }
 | 
						|
 | 
						|
    function getNoteTitle(noteId) {
 | 
						|
        const note = treeUtils.getNodeByKey(noteId);
 | 
						|
        if (!note) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
 | 
						|
        let noteTitle = note.title;
 | 
						|
 | 
						|
        if (noteTitle.endsWith(" (clone)")) {
 | 
						|
            noteTitle = noteTitle.substr(0, noteTitle.length - 8);
 | 
						|
        }
 | 
						|
 | 
						|
        return noteTitle;
 | 
						|
    }
 | 
						|
 | 
						|
    function getFullName(noteId) {
 | 
						|
        let note = treeUtils.getNodeByKey(noteId);
 | 
						|
 | 
						|
        if (note === null) {
 | 
						|
            return "[unknown]";
 | 
						|
        }
 | 
						|
 | 
						|
        // why?
 | 
						|
        if (note.data.is_clone) {
 | 
						|
            return null;
 | 
						|
        }
 | 
						|
 | 
						|
        const path = [];
 | 
						|
 | 
						|
        while (note) {
 | 
						|
            if (note.data.encryption > 0 && !encryption.isEncryptionAvailable()) {
 | 
						|
                path.push("[encrypted]");
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                path.push(note.title);
 | 
						|
            }
 | 
						|
 | 
						|
            note = note.getParent();
 | 
						|
        }
 | 
						|
 | 
						|
        // remove "root" element
 | 
						|
        path.pop();
 | 
						|
 | 
						|
        return path.reverse().join(" > ");
 | 
						|
    }
 | 
						|
 | 
						|
    return {
 | 
						|
        getParentKey,
 | 
						|
        getParentEncryption,
 | 
						|
        getNodeByKey,
 | 
						|
        activateNode,
 | 
						|
        getNoteTitle,
 | 
						|
        getFullName
 | 
						|
    };
 | 
						|
})(); |