From 0af476e8db5134322f61cf4c38f15ab3cb7c945c Mon Sep 17 00:00:00 2001 From: Mo Bitar Date: Thu, 11 May 2017 12:58:13 -0500 Subject: [PATCH] only save new tags --- .../app/frontend/controllers/home.js | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/app/frontend/controllers/home.js b/app/assets/javascripts/app/frontend/controllers/home.js index a243058e1..c7afafda6 100644 --- a/app/assets/javascripts/app/frontend/controllers/home.js +++ b/app/assets/javascripts/app/frontend/controllers/home.js @@ -56,11 +56,28 @@ angular.module('app.frontend') */ $scope.updateTagsForNote = function(note, stringTags) { - note.removeAllRelationships(); + var toRemove = []; + for(var tag of note.tags) { + if(stringTags.indexOf(tag.title) === -1) { + // remove this tag + toRemove.push(tag); + } + } + + for(var tagToRemove of toRemove) { + note.removeItemAsRelationship(tagToRemove); + tagToRemove.removeItemAsRelationship(note); + tagToRemove.setDirty(true); + } + var tags = []; for(var tagString of stringTags) { - tags.push(modelManager.findOrCreateTagByTitle(tagString)); + var existingRelationship = _.find(note.tags, {title: tagString}); + if(!existingRelationship) { + tags.push(modelManager.findOrCreateTagByTitle(tagString)); + } } + for(var tag of tags) { modelManager.createRelationshipBetweenItems(note, tag); }