2018-12-24 05:28:57 +08:00
|
|
|
import treeService from "./tree.js";
|
2018-12-24 17:10:36 +08:00
|
|
|
import noteDetailService from "./note_detail.js";
|
|
|
|
import dragAndDropSetup from "./drag_and_drop.js";
|
|
|
|
import treeCache from "./tree_cache.js";
|
|
|
|
import treeBuilder from "./tree_builder.js";
|
2018-12-24 05:28:57 +08:00
|
|
|
|
2018-12-24 17:10:36 +08:00
|
|
|
const $tree = $("#tree");
|
2018-12-25 01:39:31 +08:00
|
|
|
const $detail = $("#detail");
|
2018-12-25 03:38:38 +08:00
|
|
|
const $closeDetailButton = $("#close-detail-button");
|
2018-12-25 01:39:31 +08:00
|
|
|
|
2018-12-25 03:38:38 +08:00
|
|
|
function togglePanes() {
|
|
|
|
if (!$tree.is(":visible") || !$detail.is(":visible")) {
|
|
|
|
$detail.toggleClass("d-none");
|
|
|
|
$tree.toggleClass("d-none");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$closeDetailButton.click(togglePanes);
|
2018-12-24 17:10:36 +08:00
|
|
|
|
|
|
|
async function showTree() {
|
|
|
|
const tree = await treeService.loadTree();
|
|
|
|
|
|
|
|
$tree.fancytree({
|
|
|
|
autoScroll: true,
|
|
|
|
extensions: ["dnd5", "clones"],
|
|
|
|
source: tree,
|
|
|
|
scrollParent: $tree,
|
|
|
|
minExpandLevel: 2, // root can't be collapsed
|
|
|
|
activate: (event, data) => {
|
|
|
|
const node = data.node;
|
|
|
|
const noteId = node.data.noteId;
|
|
|
|
|
|
|
|
treeService.setCurrentNotePathToHash(node);
|
2018-12-25 03:38:38 +08:00
|
|
|
togglePanes();
|
2018-12-24 17:10:36 +08:00
|
|
|
|
|
|
|
noteDetailService.switchToNote(noteId, true);
|
|
|
|
},
|
|
|
|
expand: (event, data) => treeService.setExpandedToServer(data.node.data.branchId, true),
|
|
|
|
collapse: (event, data) => treeService.setExpandedToServer(data.node.data.branchId, false),
|
|
|
|
init: (event, data) => treeService.treeInitialized(), // don't collapse to short form
|
|
|
|
dnd5: dragAndDropSetup,
|
|
|
|
lazyLoad: function(event, data) {
|
|
|
|
const noteId = data.node.data.noteId;
|
|
|
|
|
|
|
|
data.result = treeCache.getNote(noteId).then(note => treeBuilder.prepareBranch(note));
|
|
|
|
},
|
|
|
|
clones: {
|
|
|
|
highlightActiveClones: true
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
showTree();
|