2014-03-26 09:18:42 -03:00
|
|
|
'use strict';
|
|
|
|
|
|
2014-10-30 14:13:40 -03:00
|
|
|
angular.module('copayApp.controllers').controller('ReceiveController',
|
2014-11-29 18:35:48 -03:00
|
|
|
function($scope, $rootScope, $timeout, $modal) {
|
2014-10-30 18:17:41 -03:00
|
|
|
$rootScope.title = 'Receive';
|
2014-04-30 19:50:13 -03:00
|
|
|
$scope.loading = false;
|
2014-09-19 17:12:54 -03:00
|
|
|
$scope.showAll = false;
|
2014-10-30 18:13:47 -03:00
|
|
|
$scope.isNewAddr = false;
|
2014-05-19 17:51:21 -03:00
|
|
|
|
2014-04-14 16:48:12 -03:00
|
|
|
$scope.newAddr = function() {
|
2014-10-28 11:34:19 -03:00
|
|
|
var w = $rootScope.wallet;
|
2014-05-19 17:51:21 -03:00
|
|
|
$scope.loading = true;
|
2014-10-30 18:13:47 -03:00
|
|
|
$scope.isNewAddr = false;
|
2014-11-28 18:43:22 -03:00
|
|
|
w.generateAddress(null);
|
|
|
|
|
$timeout(function() {
|
|
|
|
|
$scope.loading = false;
|
|
|
|
|
$scope.isNewAddr = true;
|
|
|
|
|
}, 1);
|
2014-04-14 16:48:12 -03:00
|
|
|
};
|
|
|
|
|
|
2014-07-18 11:23:45 -03:00
|
|
|
$scope.openAddressModal = function(address) {
|
2014-09-19 17:12:54 -03:00
|
|
|
var ModalInstanceCtrl = function($scope, $modalInstance, address) {
|
2014-07-18 11:23:45 -03:00
|
|
|
$scope.address = address;
|
2014-07-30 00:51:38 -03:00
|
|
|
|
2014-09-19 17:12:54 -03:00
|
|
|
$scope.cancel = function() {
|
2014-07-18 11:23:45 -03:00
|
|
|
$modalInstance.dismiss('cancel');
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
$modal.open({
|
2014-07-18 18:51:55 -03:00
|
|
|
templateUrl: 'views/modals/qr-address.html',
|
2014-07-22 11:03:08 -03:00
|
|
|
windowClass: 'tiny',
|
2014-07-18 11:23:45 -03:00
|
|
|
controller: ModalInstanceCtrl,
|
|
|
|
|
resolve: {
|
2014-09-19 17:12:54 -03:00
|
|
|
address: function() {
|
|
|
|
|
return address;
|
|
|
|
|
}
|
2014-07-18 11:23:45 -03:00
|
|
|
}
|
|
|
|
|
});
|
2014-04-14 16:48:12 -03:00
|
|
|
};
|
2014-05-20 19:40:02 -03:00
|
|
|
|
2014-05-21 18:53:17 -03:00
|
|
|
$rootScope.$watch('addrInfos', function() {
|
2014-09-23 12:05:04 -03:00
|
|
|
if ($rootScope.updatingBalance) return;
|
2014-05-21 18:53:17 -03:00
|
|
|
$scope.addressList();
|
2014-06-24 12:57:15 -03:00
|
|
|
});
|
2014-05-20 19:40:02 -03:00
|
|
|
|
2014-09-19 17:12:54 -03:00
|
|
|
$scope.toggleShowAll = function() {
|
|
|
|
|
$scope.showAll = !$scope.showAll;
|
|
|
|
|
$scope.addressList();
|
|
|
|
|
};
|
|
|
|
|
|
2014-10-30 18:13:47 -03:00
|
|
|
$scope.limitAddress = function(elements, isNewAddr) {
|
2014-09-19 17:12:54 -03:00
|
|
|
|
2014-10-30 18:13:47 -03:00
|
|
|
if(!isNewAddr){
|
|
|
|
|
elements = elements.sort(function(a, b) {
|
|
|
|
|
return (+a.isChange - +b.isChange);
|
|
|
|
|
});
|
|
|
|
|
}
|
2014-09-19 17:12:54 -03:00
|
|
|
|
|
|
|
|
if (elements.length <= 1 || $scope.showAll) {
|
|
|
|
|
return elements;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Show last 3 non-change addresses plus those with balance
|
|
|
|
|
var addrs = elements.filter(function(e, i) {
|
|
|
|
|
return (!e.isChange && i < 3) || (e.balance && e.balance > 0);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return addrs;
|
|
|
|
|
};
|
|
|
|
|
|
2014-06-24 12:57:15 -03:00
|
|
|
$scope.addressList = function() {
|
2014-05-20 19:40:02 -03:00
|
|
|
$scope.addresses = [];
|
2014-11-29 18:35:48 -03:00
|
|
|
var w = $rootScope.wallet;
|
|
|
|
|
var balance = $rootScope.balanceByAddr;
|
2014-09-19 17:12:54 -03:00
|
|
|
|
2014-11-29 18:35:48 -03:00
|
|
|
var addresses = w.getAddresses();
|
|
|
|
|
if (addresses) {
|
|
|
|
|
$scope.addrLength = addresses.length;
|
|
|
|
|
_.each(addresses, function(address, index){
|
2014-06-24 12:57:15 -03:00
|
|
|
$scope.addresses.push({
|
2014-11-29 18:35:48 -03:00
|
|
|
'index': index,
|
|
|
|
|
'address': address,
|
|
|
|
|
'balance': balance ? balance[address] : 0,
|
|
|
|
|
'isChange': w.addressIsChange(address),
|
|
|
|
|
// TODO
|
|
|
|
|
'owned': w.addressIsOwn(address),
|
2014-05-20 19:40:02 -03:00
|
|
|
});
|
2014-11-29 18:35:48 -03:00
|
|
|
});
|
2014-10-30 18:13:47 -03:00
|
|
|
$scope.addresses = $scope.limitAddress($scope.addresses, $scope.isNewAddr);
|
2014-05-20 19:40:02 -03:00
|
|
|
}
|
2014-09-19 17:12:54 -03:00
|
|
|
};
|
2014-07-18 11:23:45 -03:00
|
|
|
}
|
|
|
|
|
);
|