Merge branch 'stable'

This commit is contained in:
azivner
2018-10-21 22:48:58 +02:00
10 changed files with 56 additions and 13 deletions

View File

@@ -5,6 +5,13 @@ import infoService from "./info.js";
import treeCache from "./tree_cache.js";
async function moveBeforeNode(nodesToMove, beforeNode) {
nodesToMove = filterRootNote(nodesToMove);
if (beforeNode.data.noteId === 'root') {
alert('Cannot move notes before root note.');
return;
}
for (const nodeToMove of nodesToMove) {
const resp = await server.put('branches/' + nodeToMove.data.branchId + '/move-before/' + beforeNode.data.branchId);
@@ -18,6 +25,13 @@ async function moveBeforeNode(nodesToMove, beforeNode) {
}
async function moveAfterNode(nodesToMove, afterNode) {
nodesToMove = filterRootNote(nodesToMove);
if (afterNode.data.noteId === 'root') {
alert('Cannot move notes after root note.');
return;
}
nodesToMove.reverse(); // need to reverse to keep the note order
for (const nodeToMove of nodesToMove) {
@@ -33,6 +47,8 @@ async function moveAfterNode(nodesToMove, afterNode) {
}
async function moveToNode(nodesToMove, toNode) {
nodesToMove = filterRootNote(nodesToMove);
for (const nodeToMove of nodesToMove) {
const resp = await server.put('branches/' + nodeToMove.data.branchId + '/move-to/' + toNode.data.noteId);
@@ -58,8 +74,13 @@ async function moveToNode(nodesToMove, toNode) {
}
}
function filterRootNote(nodes) {
// some operations are not possible on root notes
return nodes.filter(node => node.data.noteId !== 'root');
}
async function deleteNodes(nodes) {
nodes = nodes.filter(node => node.data.noteId !== 'root');
nodes = filterRootNote(nodes);
if (nodes.length === 0 || !confirm('Are you sure you want to delete select note(s) and all the sub-notes?')) {
return;
@@ -94,7 +115,7 @@ async function deleteNodes(nodes) {
}
async function moveNodeUpInHierarchy(node) {
if (utils.isTopLevelNode(node)) {
if (utils.isRootNode(node) || utils.isTopLevelNode(node)) {
return;
}

View File

@@ -14,6 +14,10 @@ const dragAndDropSetup = {
preventVoidMoves: true, // Prevent dropping nodes 'before self', etc.
dragStart: (node, data) => {
if (node.data.noteId === 'root') {
return false;
}
// This function MUST be defined to enable dragging for the tree.
// Return false to cancel dragging of node.
return true;

View File

@@ -105,7 +105,7 @@ const keyBindings = {
return false;
},
"backspace": node => {
if (!utils.isTopLevelNode(node)) {
if (!utils.isRootNode(node)) {
node.getParent().setActive().then(treeService.clearSelectedNodes);
}
},

View File

@@ -4,7 +4,7 @@ import treeCache from "./tree_cache.js";
const $tree = $("#tree");
function getParentProtectedStatus(node) {
return utils.isTopLevelNode(node) ? 0 : node.getParent().data.isProtected;
return utils.isRootNode(node) ? 0 : node.getParent().data.isProtected;
}
function getNodeByKey(key) {
@@ -32,6 +32,8 @@ function getNotePath(node) {
node = node.getParent();
}
path.push('root');
return path.reverse().join("/");
}

View File

@@ -59,7 +59,7 @@ function isTopLevelNode(node) {
}
function isRootNode(node) {
return node.key === "root_1";
return node.data.noteId === "root";
}
function escapeHtml(str) {