locally clear refs before processing

This commit is contained in:
Mo Bitar
2017-02-19 22:57:36 -06:00
parent f7b1759cd6
commit a0d582db52
9 changed files with 32 additions and 6 deletions

View File

@@ -29,6 +29,7 @@ angular.module('app.frontend')
modelManager.createRelationshipBetweenItems(note, tag);
}
note.setDirty(true);
syncManager.sync();
}

View File

@@ -37,7 +37,7 @@ class Item {
updateFromJSON(json) {
_.merge(this, json);
if(this.created_at) {
this.created_at = new Date(this.created_at);
this.updated_at = new Date(this.updated_at);
@@ -113,6 +113,10 @@ class Item {
this.setDirty(true);
}
locallyClearAllReferences() {
}
mergeMetadataFromItem(item) {
_.merge(this, _.omit(item, ["content"]));
}

View File

@@ -56,6 +56,14 @@ class Note extends Item {
this.tags = [];
}
locallyClearAllReferences() {
super.locallyClearAllReferences();
this.tags.forEach(function(tag){
_.pull(tag.notes, this);
}.bind(this))
this.tags = [];
}
isBeingRemovedLocally() {
this.tags.forEach(function(tag){
_.pull(tag.notes, this);

View File

@@ -55,6 +55,15 @@ class Tag extends Item {
this.notes = [];
}
locallyClearAllReferences() {
super.locallyClearAllReferences();
this.notes.forEach(function(note){
_.pull(note.tags, this);
}.bind(this))
this.notes = [];
}
isBeingRemovedLocally() {
this.notes.forEach(function(note){
_.pull(note.tags, this);

View File

@@ -60,11 +60,13 @@ class SNCrypto {
}
base64(text) {
return CryptoJS.enc.Utf8.parse(text).toString(CryptoJS.enc.Base64)
// return CryptoJS.enc.Utf8.parse(text).toString(CryptoJS.enc.Base64)
return window.btoa(text);
}
base64Decode(base64String) {
return CryptoJS.enc.Base64.parse(base64String).toString(CryptoJS.enc.Utf8)
// return CryptoJS.enc.Base64.parse(base64String).toString(CryptoJS.enc.Utf8)
return window.atob(base64String);
}
sha256(text) {

View File

@@ -168,6 +168,7 @@ class ModelManager {
}
resolveReferencesForItem(item) {
item.locallyClearAllReferences();
var contentObject = item.contentObject;
if(!contentObject.references) {
return;

View File

@@ -89,6 +89,7 @@
.wrap {
word-wrap: break-word;
word-break: break-all;
}
.one-line-overflow {

View File

@@ -1,8 +1,8 @@
.panel.panel-default.account-panel.panel-right
.panel-body
%div{"style" => "font-size: 18px;", "ng-if" => "!extensionManager.extensions.length"} No extensions installed
%div{"style" => "font-size: 15px;", "ng-if" => "!extensionManager.extensions.length"} No extensions installed
%div{"ng-if" => "extensionManager.extensions.length"}
%section.gray-bg.inline-h.mb-10.medium-padding{"ng-repeat" => "extension in extensionManager.extensions", "ng-init" => "extension.formData = {}"}
%section.gray-bg.inline-h.mb-10.medium-padding{"ng-repeat" => "extension in extensionManager.extensions | orderBy: 'name'", "ng-init" => "extension.formData = {}"}
%h3.center-align {{extension.name}}
.center-align.centered.mt-10
%label.block.normal Send data:

View File

@@ -6,7 +6,7 @@
"select-on-click" => "true"}
.save-status{"ng-class" => "{'red bold': ctrl.saveError}", "ng-bind-html" => "ctrl.noteStatus"}
.tags
%input.tags-input{"type" => "text", "ng-keyup" => "$event.keyCode == 13 && ctrl.updateTagsFromTagsString($event, ctrl.tagsString)",
%input.tags-input{"type" => "text", "ng-keyup" => "$event.keyCode == 13 && $event.target.blur();",
"ng-model" => "ctrl.tagsString", "placeholder" => "#tags", "ng-blur" => "ctrl.updateTagsFromTagsString($event, ctrl.tagsString)"}
.section-menu
%ul.nav