sync fixes
This commit is contained in:
@@ -128,14 +128,11 @@ angular.module('app.frontend')
|
|||||||
$scope.selectedNote = null;
|
$scope.selectedNote = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.updateAllTag();
|
|
||||||
|
|
||||||
if(note.dummy) {
|
if(note.dummy) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
apiController.deleteItem(note, function(success){})
|
apiController.deleteItem(note, function(success){})
|
||||||
apiController.sync(function(){});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ angular.module('app.frontend')
|
|||||||
}
|
}
|
||||||
|
|
||||||
var dirtyItems = modelManager.dirtyItems;
|
var dirtyItems = modelManager.dirtyItems;
|
||||||
var request = Restangular.one("users", this.user.uuid).one("items/sync");
|
var request = Restangular.one("items/sync");
|
||||||
request.items = _.map(dirtyItems, function(item){
|
request.items = _.map(dirtyItems, function(item){
|
||||||
return this.createRequestParamsForItem(item);
|
return this.createRequestParamsForItem(item);
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
@@ -241,6 +241,8 @@ angular.module('app.frontend')
|
|||||||
this.syncToken = response.sync_token;
|
this.syncToken = response.sync_token;
|
||||||
$rootScope.$broadcast("sync:updated_token", this.syncToken);
|
$rootScope.$broadcast("sync:updated_token", this.syncToken);
|
||||||
this.handleItemsResponse(response.retrieved_items, null);
|
this.handleItemsResponse(response.retrieved_items, null);
|
||||||
|
// merge only metadata for saved items
|
||||||
|
this.handleItemsResponse(response.saved_items, ["content", "enc_item_key", "auth_hash"]);
|
||||||
if(callback) {
|
if(callback) {
|
||||||
callback(response);
|
callback(response);
|
||||||
}
|
}
|
||||||
@@ -263,7 +265,7 @@ angular.module('app.frontend')
|
|||||||
this.paramsForItem = function(item, encrypted, additionalFields, forExportFile) {
|
this.paramsForItem = function(item, encrypted, additionalFields, forExportFile) {
|
||||||
var itemCopy = _.cloneDeep(item);
|
var itemCopy = _.cloneDeep(item);
|
||||||
|
|
||||||
var params = {uuid: item.uuid, content_type: item.content_type, presentation_name: item.presentation_name};
|
var params = {uuid: item.uuid, content_type: item.content_type, presentation_name: item.presentation_name, deleted: item.deleted};
|
||||||
|
|
||||||
itemCopy.content.references = _.map(itemCopy.content.references, function(reference){
|
itemCopy.content.references = _.map(itemCopy.content.references, function(reference){
|
||||||
return {uuid: reference.uuid, content_type: reference.content_type};
|
return {uuid: reference.uuid, content_type: reference.content_type};
|
||||||
@@ -292,15 +294,10 @@ angular.module('app.frontend')
|
|||||||
|
|
||||||
|
|
||||||
this.deleteItem = function(item, callback) {
|
this.deleteItem = function(item, callback) {
|
||||||
if(!this.user.uuid) {
|
item.deleted = true;
|
||||||
this.writeItemsToLocalStorage();
|
console.log("adding dirty item", item);
|
||||||
callback(true);
|
modelManager.addDirtyItems([item]);
|
||||||
} else {
|
this.sync(callback);
|
||||||
Restangular.one("users", this.user.uuid).one("items", item.uuid).remove()
|
|
||||||
.then(function(response) {
|
|
||||||
callback(true);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.shareItem = function(item, callback) {
|
this.shareItem = function(item, callback) {
|
||||||
|
|||||||
@@ -72,10 +72,22 @@ class ModelManager extends ItemManager {
|
|||||||
this.addDirtyItems(dirty);
|
this.addDirtyItems(dirty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deleteItem(item) {
|
||||||
|
var dirty = super.deleteItem(item);
|
||||||
|
if(item.content_type == "Note") {
|
||||||
|
_.remove(this.notes, item);
|
||||||
|
} else if(item.content_type == "Tag") {
|
||||||
|
_.remove(this.tags, item);
|
||||||
|
}
|
||||||
|
return dirty;
|
||||||
|
}
|
||||||
|
|
||||||
deleteNote(note) {
|
deleteNote(note) {
|
||||||
var dirty = this.deleteItem(note);
|
var dirty = this.deleteItem(note);
|
||||||
_.remove(this.notes, note);
|
_.remove(this.notes, note);
|
||||||
this.addDirtyItems(dirty);
|
if(!note.dummy) {
|
||||||
|
this.addDirtyItems(dirty);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteTag(tag) {
|
deleteTag(tag) {
|
||||||
|
|||||||
36
vendor/assets/javascripts/transpiled.js
vendored
36
vendor/assets/javascripts/transpiled.js
vendored
@@ -1001,14 +1001,11 @@ angular.module('app.frontend').controller('BaseCtrl', BaseCtrl);
|
|||||||
$scope.selectedNote = null;
|
$scope.selectedNote = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.updateAllTag();
|
|
||||||
|
|
||||||
if (note.dummy) {
|
if (note.dummy) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
apiController.deleteItem(note, function (success) {});
|
apiController.deleteItem(note, function (success) {});
|
||||||
apiController.sync(function () {});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1759,7 +1756,7 @@ var User = function User(json_obj) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var dirtyItems = modelManager.dirtyItems;
|
var dirtyItems = modelManager.dirtyItems;
|
||||||
var request = Restangular.one("users", this.user.uuid).one("items/sync");
|
var request = Restangular.one("items/sync");
|
||||||
request.items = _.map(dirtyItems, function (item) {
|
request.items = _.map(dirtyItems, function (item) {
|
||||||
return this.createRequestParamsForItem(item);
|
return this.createRequestParamsForItem(item);
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
@@ -1773,6 +1770,8 @@ var User = function User(json_obj) {
|
|||||||
this.syncToken = response.sync_token;
|
this.syncToken = response.sync_token;
|
||||||
$rootScope.$broadcast("sync:updated_token", this.syncToken);
|
$rootScope.$broadcast("sync:updated_token", this.syncToken);
|
||||||
this.handleItemsResponse(response.retrieved_items, null);
|
this.handleItemsResponse(response.retrieved_items, null);
|
||||||
|
// merge only metadata for saved items
|
||||||
|
this.handleItemsResponse(response.saved_items, ["content", "enc_item_key", "auth_hash"]);
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback(response);
|
callback(response);
|
||||||
}
|
}
|
||||||
@@ -1794,7 +1793,7 @@ var User = function User(json_obj) {
|
|||||||
this.paramsForItem = function (item, encrypted, additionalFields, forExportFile) {
|
this.paramsForItem = function (item, encrypted, additionalFields, forExportFile) {
|
||||||
var itemCopy = _.cloneDeep(item);
|
var itemCopy = _.cloneDeep(item);
|
||||||
|
|
||||||
var params = { uuid: item.uuid, content_type: item.content_type, presentation_name: item.presentation_name };
|
var params = { uuid: item.uuid, content_type: item.content_type, presentation_name: item.presentation_name, deleted: item.deleted };
|
||||||
|
|
||||||
itemCopy.content.references = _.map(itemCopy.content.references, function (reference) {
|
itemCopy.content.references = _.map(itemCopy.content.references, function (reference) {
|
||||||
return { uuid: reference.uuid, content_type: reference.content_type };
|
return { uuid: reference.uuid, content_type: reference.content_type };
|
||||||
@@ -1821,14 +1820,10 @@ var User = function User(json_obj) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.deleteItem = function (item, callback) {
|
this.deleteItem = function (item, callback) {
|
||||||
if (!this.user.uuid) {
|
item.deleted = true;
|
||||||
this.writeItemsToLocalStorage();
|
console.log("adding dirty item", item);
|
||||||
callback(true);
|
modelManager.addDirtyItems([item]);
|
||||||
} else {
|
this.sync(callback);
|
||||||
Restangular.one("users", this.user.uuid).one("items", item.uuid).remove().then(function (response) {
|
|
||||||
callback(true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.shareItem = function (item, callback) {
|
this.shareItem = function (item, callback) {
|
||||||
@@ -2698,12 +2693,25 @@ var ModelManager = function (_ItemManager) {
|
|||||||
var dirty = this.removeReferencesBetweenItems(tag, note);
|
var dirty = this.removeReferencesBetweenItems(tag, note);
|
||||||
this.addDirtyItems(dirty);
|
this.addDirtyItems(dirty);
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
key: 'deleteItem',
|
||||||
|
value: function deleteItem(item) {
|
||||||
|
var dirty = _get(ModelManager.prototype.__proto__ || Object.getPrototypeOf(ModelManager.prototype), 'deleteItem', this).call(this, item);
|
||||||
|
if (item.content_type == "Note") {
|
||||||
|
_.remove(this.notes, item);
|
||||||
|
} else if (item.content_type == "Tag") {
|
||||||
|
_.remove(this.tags, item);
|
||||||
|
}
|
||||||
|
return dirty;
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
key: 'deleteNote',
|
key: 'deleteNote',
|
||||||
value: function deleteNote(note) {
|
value: function deleteNote(note) {
|
||||||
var dirty = this.deleteItem(note);
|
var dirty = this.deleteItem(note);
|
||||||
_.remove(this.notes, note);
|
_.remove(this.notes, note);
|
||||||
this.addDirtyItems(dirty);
|
if (!note.dummy) {
|
||||||
|
this.addDirtyItems(dirty);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
key: 'deleteTag',
|
key: 'deleteTag',
|
||||||
|
|||||||
2
vendor/assets/javascripts/transpiled.js.map
vendored
2
vendor/assets/javascripts/transpiled.js.map
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user