fixes references issue
This commit is contained in:
@@ -10,7 +10,7 @@ class Note extends Item {
|
||||
if(!this.content.title) {
|
||||
this.content.title = "";
|
||||
}
|
||||
|
||||
|
||||
if(!this.content.text) {
|
||||
this.content.text = "";
|
||||
}
|
||||
@@ -31,15 +31,12 @@ class Note extends Item {
|
||||
}
|
||||
|
||||
get hasOnePublicTag() {
|
||||
var hasPublicTag = false;
|
||||
this.tags.forEach(function(tag){
|
||||
for (var tag of this.tags) {
|
||||
if(tag.isPublic()) {
|
||||
hasPublicTag = true;
|
||||
return;
|
||||
return true
|
||||
}
|
||||
})
|
||||
|
||||
return hasPublicTag;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
toJSON() {
|
||||
|
||||
@@ -443,7 +443,7 @@ angular.module('app.frontend')
|
||||
|
||||
this.loadLocalItemsAndUser = function() {
|
||||
var user = {};
|
||||
var items = JSON.parse(localStorage.getItem('items'));
|
||||
var items = JSON.parse(localStorage.getItem('items')) || [];
|
||||
items = modelManager.mapResponseItemsToLocalModels(items);
|
||||
Item.sortItemsByDate(items);
|
||||
user.items = items;
|
||||
|
||||
@@ -16,6 +16,40 @@ class ItemManager {
|
||||
this._items = _.uniq(this.items.concat(items));
|
||||
}
|
||||
|
||||
mapResponseItemsToLocalModels(items) {
|
||||
var models = []
|
||||
for (var json_obj of items) {
|
||||
var item = this.findItem(json_obj["uuid"]);
|
||||
if(json_obj["deleted"] == true) {
|
||||
if(item) {
|
||||
this.deleteItem(item)
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if(item) {
|
||||
_.merge(item, json_obj);
|
||||
} else {
|
||||
item = this.createItem(json_obj);
|
||||
}
|
||||
|
||||
models.push(item)
|
||||
}
|
||||
this.addItems(models)
|
||||
this.resolveReferences()
|
||||
return models;
|
||||
}
|
||||
|
||||
createItem(json_obj) {
|
||||
if(json_obj.content_type == "Note") {
|
||||
return new Note(json_obj);
|
||||
} else if(json_obj.content_type == "Tag") {
|
||||
return new Tag(json_obj);
|
||||
} else {
|
||||
return new Item(json_obj);
|
||||
}
|
||||
}
|
||||
|
||||
resolveReferences() {
|
||||
this.items.forEach(function(item){
|
||||
// build out references, safely handle broken references
|
||||
|
||||
@@ -7,45 +7,9 @@ class ModelManager extends ItemManager {
|
||||
this.dirtyItems = [];
|
||||
}
|
||||
|
||||
// get items() {
|
||||
// return super.items()
|
||||
// }
|
||||
resolveReferences() {
|
||||
super.resolveReferences()
|
||||
|
||||
mapResponseItemsToLocalModels(items) {
|
||||
var models = []
|
||||
for (var json_obj of items) {
|
||||
var item = this.findItem(json_obj["uuid"]);
|
||||
if(json_obj["deleted"] == true) {
|
||||
if(item) {
|
||||
this.deleteItem(item)
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if(item) {
|
||||
_.merge(item, json_obj);
|
||||
} else {
|
||||
item = this.createItem(json_obj);
|
||||
}
|
||||
|
||||
models.push(item)
|
||||
}
|
||||
this.addItems(models)
|
||||
return models;
|
||||
}
|
||||
|
||||
createItem(json_obj) {
|
||||
if(json_obj.content_type == "Note") {
|
||||
return new Note(json_obj);
|
||||
} else if(json_obj.content_type == "Tag") {
|
||||
return new Tag(json_obj);
|
||||
} else {
|
||||
return new Item(json_obj);
|
||||
}
|
||||
}
|
||||
|
||||
addItems(items) {
|
||||
super.addItems(items)
|
||||
this.notes = this.itemsForContentType("Note");
|
||||
this.notes.forEach(function(note){
|
||||
note.updateReferencesLocalMapping();
|
||||
|
||||
Reference in New Issue
Block a user