Wallet/js/controllers/sidebar.js

97 lines
2.4 KiB
JavaScript
Raw Normal View History

2014-03-25 11:35:04 -03:00
'use strict';
2014-12-03 12:40:13 -03:00
angular.module('copayApp.controllers').controller('SidebarController', function($scope, $rootScope, $location, $timeout, identityService) {
2014-08-12 15:26:15 -04:00
$scope.menu = [{
2014-10-31 11:49:52 -03:00
'title': 'Home',
2014-11-28 16:27:21 -03:00
'icon': 'icon-home',
2014-10-31 11:49:52 -03:00
'link': 'homeWallet'
}, {
2014-08-12 15:26:15 -04:00
'title': 'Receive',
2014-11-28 16:27:21 -03:00
'icon': 'icon-receive',
2014-08-12 15:26:15 -04:00
'link': 'receive'
}, {
'title': 'Send',
2014-11-28 16:27:21 -03:00
'icon': 'icon-paperplane',
2014-08-12 15:26:15 -04:00
'link': 'send'
}, {
'title': 'History',
2014-11-28 16:27:21 -03:00
'icon': 'icon-history',
2014-08-12 15:26:15 -04:00
'link': 'history'
}, {
'title': 'Settings',
2014-11-28 16:27:21 -03:00
'icon': 'icon-gear',
2014-08-21 11:08:20 -04:00
'link': 'more'
2014-08-12 15:26:15 -04:00
}];
2014-12-03 20:53:49 -03:00
$scope.go = function (path) {
$location.path(path);
};
2014-10-28 12:37:15 -03:00
$scope.signout = function() {
2014-12-02 23:30:44 -03:00
$rootScope.signingOut = true;
identityService.signout();
2014-10-28 12:37:15 -03:00
};
2014-08-12 15:26:15 -04:00
$scope.isActive = function(item) {
return item.link && item.link == $location.path().split('/')[1];
};
2014-07-08 15:26:20 -03:00
$scope.switchWallet = function(wid) {
2014-11-30 01:02:18 -03:00
$scope.walletSelection = false;
2014-11-29 18:35:48 -03:00
identityService.setFocusedWallet(wid);
2014-11-30 01:02:18 -03:00
identityService.goWalletHome();
};
2014-10-20 10:29:43 -03:00
$scope.toggleWalletSelection = function() {
$scope.walletSelection = !$scope.walletSelection;
if (!$scope.walletSelection) return;
2014-11-29 18:35:48 -03:00
$scope.setWallets();
};
2014-11-29 18:35:48 -03:00
$scope.init = function() {
2014-11-30 11:08:51 -03:00
// This should be called only once.
2014-12-03 00:30:44 -03:00
2014-11-30 11:08:51 -03:00
// focused wallet change
2014-11-29 18:35:48 -03:00
if ($rootScope.wallet) {
$rootScope.$watch('wallet', function() {
$scope.walletSelection = false;
$scope.setWallets();
});
}
2014-11-30 11:08:51 -03:00
// wallet list chane
2014-11-30 00:44:25 -03:00
if ($rootScope.iden) {
var iden = $rootScope.iden;
iden.on('newWallet', function() {
$scope.walletSelection = false;
$scope.setWallets();
});
2014-12-02 16:53:24 -03:00
iden.on('walletDeleted', function(wid) {
if (wid == $rootScope.wallet.id) {
copay.logger.debug('Deleted focused wallet:', wid);
// new focus
var newWid = $rootScope.iden.getLastFocusedWalletId();
if (newWid && $rootScope.iden.getWalletById(newWid)) {
identityService.setFocusedWallet(newWid);
} else {
2014-12-03 00:30:44 -03:00
copay.logger.debug('No wallets');
2014-12-02 16:53:24 -03:00
identityService.noFocusedWallet(newWid);
}
}
2014-11-30 00:44:25 -03:00
$scope.walletSelection = false;
$scope.setWallets();
});
}
};
2014-11-29 18:35:48 -03:00
$scope.setWallets = function() {
if (!$rootScope.iden) return;
2014-11-29 18:35:48 -03:00
var ret = _.filter($rootScope.iden.listWallets(), function(w) {
return !identityService.isFocused(w.getId());
2014-10-20 10:29:43 -03:00
});
2014-11-29 18:35:48 -03:00
$scope.wallets = ret;
};
2014-08-12 15:26:15 -04:00
});