recent activity

This commit is contained in:
Matias Alejo Garcia 2016-08-31 17:12:36 -03:00
commit 0c668f3b83
No known key found for this signature in database
GPG key ID: 02470DB551277AB3
5 changed files with 89 additions and 83 deletions

View file

@ -42,6 +42,7 @@
<p class="wallet-activity-note"> <p class="wallet-activity-note">
<!-- {{x.types}} -->
<i class="icon ion-record wallet-activity-note-child" ng-style="{'color':x.wallet.color}"></i> <i class="icon ion-record wallet-activity-note-child" ng-style="{'color':x.wallet.color}"></i>
<span ng-if="x.creatorName" class="wallet-activity-note-child">{{ x.creatorName}}@</span> <span ng-if="x.creatorName" class="wallet-activity-note-child">{{ x.creatorName}}@</span>
<span class="wallet-activity-note-child">{{x.wallet.name}}</span> <span class="wallet-activity-note-child">{{x.wallet.name}}</span>

View file

@ -17,31 +17,14 @@ angular.module('copayApp.controllers').controller('activityController',
$scope.init = function() { $scope.init = function() {
$scope.wallets = profileService.getWallets();
var i = $scope.wallets.length,
j = 0;
var timeSpan = 60 * 60 * 24 * 7;
var notifications = [];
$scope.fetchingNotifications = true; $scope.fetchingNotifications = true;
profileService.getNotifications(50, function(err, n) {
lodash.each($scope.wallets, function(wallet) { if (err) {
console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
walletService.getNotifications(wallet, { return;
includeOwn: true, }
timeSpan: timeSpan, $scope.fetchingNotifications = false;
}, function(err, n) { setNotifications(n);
if (err) { })
console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
return;
}
notifications.push(n);
if (++j == i) {
$scope.fetchingNotifications = false;
setNotifications(lodash.compact(lodash.flatten(notifications)));
};
});
});
} }
}); });

View file

@ -4,9 +4,9 @@ angular.module('copayApp.controllers').controller('tabHomeController',
function($rootScope, $timeout, $scope, $state, lodash, profileService, walletService, configService, txFormatService, $ionicModal, $log, platformInfo, storageService) { function($rootScope, $timeout, $scope, $state, lodash, profileService, walletService, configService, txFormatService, $ionicModal, $log, platformInfo, storageService) {
var setNotifications = function(notifications) { var setNotifications = function(notifications) {
var n = walletService.processNotifications(notifications, 5); var n = walletService.processNotifications(notifications, 3);
$scope.notifications = n; $scope.notifications = n;
$scope.notificationsMore = notifications.length > 5 ? notifications.length - 5 : null; $scope.notificationsMore = notifications.length > 3 ? notifications.length - 3 : null;
$timeout(function() { $timeout(function() {
$scope.$apply(); $scope.$apply();
}, 1); }, 1);
@ -22,8 +22,6 @@ angular.module('copayApp.controllers').controller('tabHomeController',
var timeSpan = 60 * 60 * 24 * 7; var timeSpan = 60 * 60 * 24 * 7;
var notifications = []; var notifications = [];
$scope.fetchingNotifications = true;
lodash.each($scope.wallets, function(wallet) { lodash.each($scope.wallets, function(wallet) {
walletService.getStatus(wallet, {}, function(err, status) { walletService.getStatus(wallet, {}, function(err, status) {
@ -34,22 +32,19 @@ angular.module('copayApp.controllers').controller('tabHomeController',
wallet.status = status; wallet.status = status;
}); });
walletService.getNotifications(wallet, {
timeSpan: timeSpan,
includeOwn: true,
}, function(err, n) {
if (err) {
console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
return;
}
notifications.push(n);
if (++j == i) {
$scope.fetchingNotifications = false;
setNotifications(lodash.compact(lodash.flatten(notifications)));
};
});
}); });
$scope.fetchingNotifications = true;
profileService.getNotifications(3, function(err, n) {
if (err) {
console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
return;
}
$scope.fetchingNotifications = false;
setNotifications(n);
})
$scope.$digest(); $scope.$digest();
}, 100); }, 100);
}; };

View file

@ -428,8 +428,8 @@ angular.module('copayApp.services')
// check if exist // check if exist
if (lodash.find(root.profile.credentials, { if (lodash.find(root.profile.credentials, {
'walletId': walletData.walletId 'walletId': walletData.walletId
})) { })) {
return cb(gettext('Cannot join the same wallet more that once')); return cb(gettext('Cannot join the same wallet more that once'));
} }
} catch (ex) { } catch (ex) {
@ -735,15 +735,76 @@ angular.module('copayApp.services')
}); });
} else {} } else {}
return lodash.sortBy(ret, [function(x) { return lodash.sortBy(ret, [
return x.isComplete(); function(x) {
}, 'createdOn']); return x.isComplete();
}, 'createdOn'
]);
}; };
root.toggleHideBalanceFlag = function(walletId, cb) { root.toggleHideBalanceFlag = function(walletId, cb) {
root.wallet[walletId].balanceHidden = !root.wallet[walletId].balanceHidden; root.wallet[walletId].balanceHidden = !root.wallet[walletId].balanceHidden;
storageService.setHideBalanceFlag(walletId, root.wallet[walletId].balanceHidden.toString(), cb); storageService.setHideBalanceFlag(walletId, root.wallet[walletId].balanceHidden.toString(), cb);
} };
root.getNotifications = function(limit, cb) {
var TIME_STAMP = 60 * 60 * 24 * 7;
var opts = {
timeSpan: TIME_STAMP,
includeOwn: true,
};
var ignored = {
'NewBlock': 1,
'BalanceUpdated': 1,
'NewOutgoingTxByThirdParty': 1,
'NewAddress': 1,
'TxProposalFinallyAccepted': 1,
'TxProposalFinallyRejected': 1,
};
var w = root.getWallets();
if (lodash.isEmpty(w)) return cb();
var l = w.length,
j = 0,
notifications = [];
lodash.each(w, function(wallet) {
wallet.getNotifications(opts, function(err, n) {
j++;
if (err) {
console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
return;
}
n = lodash.filter(n, function(x) {
return !ignored[x.type];
});
var idToName = {};
if (wallet.cachedStatus) {
lodash.each(wallet.cachedStatus.wallet.copayers, function(c) {
idToName[c.id] = c.name;
});
}
lodash.each(n, function(x) {
x.wallet = wallet;
if (x.creatorId && wallet.cachedStatus) {
x.creatorName = idToName[x.creatorId];
};
});
notifications.push(n);
if (++j == l) {
notifications = lodash.sortBy(notifications,'createdOn');
return cb(null, lodash.compact(lodash.flatten(notifications)));
};
});
});
};
return root; return root;
}); });

View file

@ -976,40 +976,6 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
}); });
}; };
root.getNotifications = function(wallet, opts, cb) {
wallet.getNotifications(opts, function(err, notifications) {
if (err) return cb(err);
var ignored = {
'NewBlock': 1,
'BalanceUpdated': 1,
'NewOutgoingTxByThirdParty': 1,
'NewAddress': 1,
};
notifications = lodash.filter(notifications, function(x) {
return !ignored[x.type];
});
var idToName = {};
if (wallet.cachedStatus) {
lodash.each(wallet.cachedStatus.wallet.copayers, function(c) {
idToName[c.id] = c.name;
});
}
lodash.each(notifications, function(x) {
x.wallet = wallet;
if (x.creatorId && wallet.cachedStatus) {
x.creatorName = idToName[x.creatorId];
};
});
return cb(null, notifications);
});
};
root.getEncodedWalletInfo = function(wallet, cb) { root.getEncodedWalletInfo = function(wallet, cb) {
var derivationPath = wallet.credentials.getBaseAddressDerivationPath(); var derivationPath = wallet.credentials.getBaseAddressDerivationPath();