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) { function setParentChildRelation(noteTreeId, parentNoteId, childNoteId) {
const key = parentNoteId + "-" + childNoteId; const key = parentNoteId + "-" + childNoteId;
@ -653,6 +662,8 @@ const noteTree = (function() {
createNewTopLevelNote, createNewTopLevelNote,
createNote, createNote,
setPrefix, setPrefix,
getNotePathTitle getNotePathTitle,
removeParentChildRelation,
setParentChildRelation
}; };
})(); })();

View File

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