updating data model after change parent of the note

This commit is contained in:
azivner 2017-12-17 16:28:13 -05:00
parent cf7ab2b8d6
commit 42dfbaa986
2 changed files with 31 additions and 14 deletions

View File

@ -93,6 +93,15 @@ const noteTree = (function() {
});
}
function removeParentChildRelation(parentNoteId, childNoteId) {
const key = parentNoteId + "-" + childNoteId;
delete parentChildToNoteTreeId[key];
parentToChildren[parentNoteId] = parentToChildren[parentNoteId].filter(noteId => noteId !== childNoteId);
childToParents[childNoteId] = childToParents[childNoteId].filter(noteId => noteId !== parentNoteId);
}
function setParentChildRelation(noteTreeId, parentNoteId, childNoteId) {
const key = parentNoteId + "-" + childNoteId;
@ -653,6 +662,8 @@ const noteTree = (function() {
createNewTopLevelNote,
createNote,
setPrefix,
getNotePathTitle
getNotePathTitle,
removeParentChildRelation,
setParentChildRelation
};
})();

View File

@ -4,17 +4,13 @@ const treeChanges = (function() {
async function moveBeforeNode(node, beforeNode) {
await server.put('notes/' + node.data.note_tree_id + '/move-before/' + beforeNode.data.note_tree_id);
node.moveTo(beforeNode, 'before');
noteTree.setCurrentNotePathToHash(node);
changeNode(node, node => node.moveTo(beforeNode, 'before'));
}
async function moveAfterNode(node, afterNode) {
await server.put('notes/' + node.data.note_tree_id + '/move-after/' + afterNode.data.note_tree_id);
node.moveTo(afterNode, 'after');
noteTree.setCurrentNotePathToHash(node);
changeNode(node, node => node.moveTo(afterNode, 'after'));
}
// beware that first arg is noteId and second is noteTreeId!
@ -32,14 +28,14 @@ const treeChanges = (function() {
async function moveToNode(node, toNode) {
await server.put('notes/' + node.data.note_tree_id + '/move-to/' + toNode.data.note_id);
node.moveTo(toNode);
changeNode(node, node => {
node.moveTo(toNode);
toNode.setExpanded(true);
toNode.setExpanded(true);
toNode.folder = true;
toNode.renderTitle();
noteTree.setCurrentNotePathToHash(node);
toNode.folder = true;
toNode.renderTitle();
});
}
async function cloneNoteTo(childNoteId, parentNoteId) {
@ -96,7 +92,17 @@ const treeChanges = (function() {
node.getParent().renderTitle();
}
node.moveTo(node.getParent(), 'after');
changeNode(node, node => node.moveTo(node.getParent(), 'after'));
}
function changeNode(node, func) {
noteTree.removeParentChildRelation(node.data.note_pid, node.data.note_id);
func(node);
node.data.note_pid = node.getParent() === null ? 'root' : node.getParent().data.note_id;
noteTree.setParentChildRelation(node.data.note_tree_id, node.data.note_pid, node.data.note_id);
noteTree.setCurrentNotePathToHash(node);
}