2014-03-25 07:35:04 -07:00
'use strict' ;
2014-09-16 13:30:30 -07:00
angular . module ( 'copayApp.controllers' ) . controller ( 'SidebarController' , function ( $scope , $rootScope , $sce , $location , $http , $filter , notification , controllerUtils ) {
2014-08-12 12:26:15 -07:00
$scope . menu = [ {
'title' : 'Receive' ,
2014-09-02 08:30:31 -07:00
'icon' : 'fi-download' ,
2014-08-12 12:26:15 -07:00
'link' : 'receive'
} , {
'title' : 'Send' ,
'icon' : 'fi-arrow-right' ,
'link' : 'send'
} , {
'title' : 'History' ,
'icon' : 'fi-clipboard-pencil' ,
'link' : 'history'
} , {
2014-09-02 08:52:52 -07:00
'title' : 'Settings' ,
'icon' : 'fi-widget' ,
2014-08-21 08:08:20 -07:00
'link' : 'more'
2014-08-12 12:26:15 -07:00
} ] ;
$scope . signout = function ( ) {
logout ( ) ;
} ;
// Ensures a graceful disconnect
window . onbeforeunload = function ( ) {
controllerUtils . logout ( ) ;
} ;
$scope . $on ( '$destroy' , function ( ) {
window . onbeforeunload = undefined ;
} ) ;
2014-07-18 11:23:01 -07:00
2014-05-15 13:04:26 -07:00
2014-08-12 12:26:15 -07:00
$scope . refresh = function ( ) {
var w = $rootScope . wallet ;
2014-10-10 13:58:19 -07:00
if ( w . isReady ( ) ) {
w . sendWalletReady ( ) ;
if ( $rootScope . addrInfos . length > 0 ) {
2014-10-16 12:02:32 -07:00
controllerUtils . clearBalanceCache ( w ) ;
2014-10-15 08:09:10 -07:00
controllerUtils . updateBalance ( w , function ( ) {
2014-10-10 13:58:19 -07:00
$rootScope . $digest ( ) ;
} ) ;
}
2014-07-16 15:00:34 -07:00
}
2014-08-12 12:26:15 -07:00
} ;
2014-07-16 15:00:34 -07:00
2014-08-12 12:26:15 -07:00
$scope . isActive = function ( item ) {
return item . link && item . link == $location . path ( ) . split ( '/' ) [ 1 ] ;
} ;
2014-07-08 11:26:20 -07:00
2014-08-12 12:26:15 -07:00
function logout ( ) {
2014-08-28 14:58:43 -07:00
controllerUtils . logout ( ) ;
2014-08-12 12:26:15 -07:00
}
2014-07-30 16:12:22 -07:00
2014-08-12 12:26:15 -07:00
// ng-repeat defined number of times instead of repeating over array?
$scope . getNumber = function ( num ) {
return new Array ( num ) ;
}
2014-08-07 14:57:19 -07:00
2014-10-08 06:54:26 -07:00
2014-08-12 12:26:15 -07:00
if ( $rootScope . wallet ) {
2014-10-05 11:59:41 -07:00
$scope . $on ( '$idleWarn' , function ( a , countdown ) {
if ( ! ( countdown % 5 ) )
notification . warning ( 'Session will be closed' , $filter ( 'translate' ) ( 'Your session is about to expire due to inactivity in' ) + ' ' + countdown + ' ' + $filter ( 'translate' ) ( 'seconds' ) ) ;
2014-08-12 12:26:15 -07:00
} ) ;
$scope . $on ( '$idleTimeout' , function ( ) {
$scope . signout ( ) ;
notification . warning ( 'Session closed' , 'Session closed because a long time of inactivity' ) ;
} ) ;
2014-08-15 09:43:43 -07:00
$scope . $on ( '$keepalive' , function ( ) {
$rootScope . wallet . keepAlive ( ) ;
} ) ;
2014-08-12 12:26:15 -07:00
}
2014-10-05 11:59:41 -07:00
2014-10-08 06:54:26 -07:00
$scope . switchWallet = function ( wid ) {
2014-10-16 08:48:47 -07:00
$scope . walletSelection = false ;
2014-10-08 06:54:26 -07:00
controllerUtils . setFocusedWallet ( wid ) ;
2014-10-05 11:59:41 -07:00
} ;
2014-10-20 06:29:43 -07:00
2014-10-16 08:48:47 -07:00
$scope . toggleWalletSelection = function ( ) {
$scope . walletSelection = ! $scope . walletSelection ;
2014-10-21 05:51:07 -07:00
if ( ! $scope . walletSelection ) return ;
2014-10-20 06:29:43 -07:00
$scope . wallets = [ ] ;
var wids = _ . pluck ( $rootScope . iden . listWallets ( ) , 'id' ) ;
_ . each ( wids , function ( wid ) {
if ( controllerUtils . isFocusedWallet ( wid ) ) return ;
var w = $rootScope . iden . getOpenWallet ( wid ) ;
$scope . wallets . push ( w ) ;
controllerUtils . updateBalance ( w , function ( err , res ) {
if ( err ) return ;
2014-10-20 06:34:45 -07:00
setTimeout ( function ( ) {
$scope . $digest ( ) ;
} , 1 ) ;
2014-10-20 06:29:43 -07:00
} ) ;
} ) ;
2014-10-16 08:48:47 -07:00
} ;
2014-08-12 12:26:15 -07:00
} ) ;