(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
|
* @returns a promise of the HTTP operation
|
||||||
*/
|
*/
|
||||||
AddressBook.prototype.$getCard = function(cardId) {
|
AddressBook.prototype.$getCard = function(cardId) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
return this.$id().then(function(addressbookId) {
|
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;
|
var _this = this;
|
||||||
|
|
||||||
// Expose the promise
|
// Expose the promise
|
||||||
this.$futureCardData = futureCardData;
|
this.$futureCardData = futureCardData.then(function(data) {
|
||||||
|
|
||||||
// Resolve the promise
|
|
||||||
this.$futureCardData.then(function(data) {
|
|
||||||
// Calling $timeout will force Angular to refresh the view
|
|
||||||
return Card.$timeout(function() {
|
|
||||||
_this.init(data);
|
_this.init(data);
|
||||||
// Instanciate Card objects for list members
|
// Instanciate Card objects for list members
|
||||||
angular.forEach(_this.refs, function(o, i) {
|
angular.forEach(_this.refs, function(o, i) {
|
||||||
|
@ -467,7 +462,6 @@
|
||||||
_this.$shadowData = _this.$omit(true);
|
_this.$shadowData = _this.$omit(true);
|
||||||
return _this;
|
return _this;
|
||||||
});
|
});
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue