(js) Add caching of cards
This commit is contained in:
parent
1667f8879d
commit
c9d9f7b47a
|
@ -471,8 +471,25 @@
|
|||
* @returns a promise of the HTTP operation
|
||||
*/
|
||||
AddressBook.prototype.$getCard = function(cardId) {
|
||||
var _this = this;
|
||||
|
||||
return this.$id().then(function(addressbookId) {
|
||||
return AddressBook.$Card.$find(addressbookId, cardId);
|
||||
var fullCard,
|
||||
cachedCard = _.find(_this.cards, function(data) {
|
||||
return cardId == data.id;
|
||||
});
|
||||
|
||||
if (cachedCard && cachedCard.$futureCardData)
|
||||
// Full card is available
|
||||
return cachedCard;
|
||||
|
||||
fullCard = AddressBook.$Card.$find(addressbookId, cardId);
|
||||
fullCard.$id().then(function(cardId) {
|
||||
// Extend the Card object of the addressbook list with the full card description
|
||||
if (cachedCard)
|
||||
angular.extend(cachedCard, fullCard);
|
||||
});
|
||||
return fullCard;
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -447,12 +447,7 @@
|
|||
var _this = this;
|
||||
|
||||
// Expose the promise
|
||||
this.$futureCardData = futureCardData;
|
||||
|
||||
// Resolve the promise
|
||||
this.$futureCardData.then(function(data) {
|
||||
// Calling $timeout will force Angular to refresh the view
|
||||
return Card.$timeout(function() {
|
||||
this.$futureCardData = futureCardData.then(function(data) {
|
||||
_this.init(data);
|
||||
// Instanciate Card objects for list members
|
||||
angular.forEach(_this.refs, function(o, i) {
|
||||
|
@ -467,7 +462,6 @@
|
|||
_this.$shadowData = _this.$omit(true);
|
||||
return _this;
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue