This commit is contained in:
Matias Alejo Garcia 2016-09-01 17:41:00 -03:00
commit b90e06dd4c
No known key found for this signature in database
GPG key ID: 02470DB551277AB3
2 changed files with 75 additions and 13 deletions

View file

@ -6,13 +6,18 @@ angular.module('copayApp.controllers').controller('tabHomeController',
$scope.externalServices = {};
$scope.bitpayCardEnabled = true; // TODO
var setNotifications = function(notifications) {
$scope.notifications = notifications;
$timeout(function() {
$scope.$apply();
}, 1);
var setPendingTxps = function(txps) {
if (!txps) {
$scope.txps = [];
return;
}
$scope.txps = lodash.sortBy(txps, 'createdOn').reverse();
};
$scope.updateAllWallets = function() {
$scope.wallets = profileService.getWallets();
if (lodash.isEmpty($scope.wallets)) return;
@ -33,16 +38,37 @@ angular.module('copayApp.controllers').controller('tabHomeController',
});
$scope.fetchingNotifications = true;
profileService.getNotifications({
profileService.getTxps({
limit: 3
}, function(err, n) {
}, function(err, txps) {
console.log('[tab-home.js.44:txps:]',txps); //TODO
if (err) {
console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
return;
}
$scope.fetchingNotifications = false;
setNotifications(n);
$scope.txps = txps;
$ionicScrollDelegate.resize();
$timeout(function() {
$scope.$apply();
}, 1);
profileService.getNotifications({
limit: 3
}, function(err, n) {
if (err) {
console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
return;
}
$scope.fetchingNotifications = false;
$scope.notifications = n;
$ionicScrollDelegate.resize();
$timeout(function() {
$scope.$apply();
}, 1);
})
})
};
@ -62,8 +88,12 @@ angular.module('copayApp.controllers').controller('tabHomeController',
console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
return;
}
setNotifications(n);
$scope.notifications = n;
$ionicScrollDelegate.resize();
$timeout(function() {
$scope.$apply();
}, 1);
})
});
};

View file

@ -122,6 +122,12 @@ angular.module('copayApp.services')
if (wallet.cachedActivity)
wallet.cachedActivity.isValid = false;
if (wallet.cachedTxps)
wallet.cachedTxps.isValid = false;
$rootScope.$emit('bwsEvent', wallet.id, n.type, n);
});
@ -779,7 +785,7 @@ angular.module('copayApp.services')
};
function getNotifications(wallet, cb2) {
function updateNotifications(wallet, cb2) {
if (isActivityCached(wallet) && !opts.force) return cb2();
wallet.getNotifications({
@ -858,7 +864,7 @@ angular.module('copayApp.services')
};
lodash.each(w, function(wallet) {
getNotifications(wallet, function(err) {
updateNotifications(wallet, function(err) {
j++;
if (err) {
$log.warn('Error updating notifications:' + err);
@ -892,5 +898,31 @@ angular.module('copayApp.services')
});
};
root.getTxps = function(opts, cb) {
opts = opts || {};
var w = root.getWallets();
if (lodash.isEmpty(w)) return cb();
var txps = [];
function process(notifications) {
if (!notifications) return [];
var shown = lodash.sortBy(notifications, 'createdOn').reverse();
shown = shown.splice(0, opts.limit || MAX);
return shown;
};
lodash.each(w, function(x) {
if (x.pendingTxps)
txps = txps.concat(x.pendingTxps);
});
txps = lodash.sortBy(txps, 'createdOn');
txps = lodash.compact(lodash.flatten(notifications)).slice(0,MAX);
return cb(null, process(txps));
};
return root;
});