copay/js/routes.js

181 lines
4.8 KiB
JavaScript
Raw Normal View History

2014-04-07 20:54:38 -07:00
'use strict';
2014-12-04 12:59:02 -08:00
var LS = require('../js/plugins/LocalStorage');
2014-12-04 10:45:50 -08:00
var ls = new LS();
2014-12-16 08:04:39 -08:00
var unsupported = false;
if (!ls || ls.length < 1)
unsupported = true;
if (window && window.navigator) {
var rxaosp = window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);
var isaosp = (rxaosp && rxaosp[1] < 537);
if (!window.cordova && isaosp)
2014-12-16 08:04:39 -08:00
unsupported = true;
}
2014-04-07 20:54:38 -07:00
//Setting up route
angular
.module('copayApp')
.config(function($routeProvider) {
2014-04-07 20:54:38 -07:00
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
})
.when('/createProfile', {
templateUrl: 'views/createProfile.html',
})
.when('/unsupported', {
templateUrl: 'views/unsupported.html'
})
.when('/confirmed', {
template: " ", // just fire controller
controller: 'EmailConfirmationController',
})
2014-12-09 06:52:01 -08:00
// Payment intents come here.
.when('/uri-payment/:data', {
template: " ", // just fire controller
controller: 'paymentUriController',
})
.when('/selectWalletForPayment', {
template: " ", // just fire controller
controller: 'walletForPaymentController',
logged: true
})
.when('/join', {
templateUrl: 'views/join.html',
logged: true
})
.when('/import', {
templateUrl: 'views/import.html',
logged: true
})
2014-10-31 15:39:01 -07:00
.when('/importProfile', {
templateUrl: 'views/importProfile.html',
})
.when('/create', {
templateUrl: 'views/create.html',
logged: true
})
.when('/copayers', {
templateUrl: 'views/copayers.html',
logged: true
})
2014-10-31 07:49:52 -07:00
.when('/homeWallet', {
templateUrl: 'views/homeWallet.html',
2014-11-29 19:31:17 -08:00
walletShouldBeComplete: true,
2014-10-31 07:49:52 -07:00
logged: true
})
.when('/receive', {
2014-10-30 10:13:40 -07:00
templateUrl: 'views/receive.html',
2014-11-29 19:31:17 -08:00
walletShouldBeComplete: true,
logged: true
})
.when('/history', {
2014-10-30 10:13:40 -07:00
templateUrl: 'views/history.html',
2014-11-29 19:31:17 -08:00
walletShouldBeComplete: true,
logged: true
})
.when('/send', {
templateUrl: 'views/send.html',
2014-11-29 19:31:17 -08:00
walletShouldBeComplete: true,
logged: true
})
.when('/more', {
templateUrl: 'views/more.html',
2014-11-29 19:31:17 -08:00
walletShouldBeComplete: true,
logged: true
})
.when('/settings', {
templateUrl: 'views/settings.html',
2014-11-29 19:31:17 -08:00
walletShouldBeComplete: true,
logged: false
})
.when('/warning', {
templateUrl: 'views/warning.html',
logged: true
})
.when('/profile', {
templateUrl: 'views/profile.html',
logged: true
2014-12-17 14:36:35 -08:00
})
.when('/add', {
templateUrl: 'views/add.html',
logged: true
})
.when('/signout', {
template: " ", // just fire controller
controller: 'signOutController',
logged: true
});
2014-11-04 06:30:44 -08:00
if (config.developmentFeatures) {
$routeProvider.when('/devLogin/:mail/:password', {
2014-11-04 05:58:32 -08:00
templateUrl: 'views/devLogin.html',
logged: false
});
2014-11-04 06:30:44 -08:00
}
$routeProvider.otherwise({
templateUrl: 'views/errors/404.html',
title: 'Error'
});
2014-04-07 20:54:38 -07:00
});
//Setting HTML5 Location Mode
angular
.module('copayApp')
2015-03-30 13:20:13 -07:00
.config(function($locationProvider, IdleProvider, KeepaliveProvider) {
$locationProvider
.html5Mode(false)
.hashPrefix('!');
// IDLE timeout
var timeout = config.wallet.idleDurationMin * 60 || 300;
2015-03-30 13:20:13 -07:00
IdleProvider.idle(timeout); // in seconds
IdleProvider.timeout(40); // in seconds
KeepaliveProvider.interval(30); // in seconds
})
2015-03-30 13:20:13 -07:00
.run(function($rootScope, $location, Idle, gettextCatalog, uriHandler, isCordova, amMoment) {
var userLang, androidLang;
if (navigator && navigator.userAgent && (androidLang = navigator.userAgent.match(/android.*\W(\w\w)-(\w\w)\W/i))) {
userLang = androidLang[1];
} else {
// works for iOS and Android 4.x
userLang = navigator.userLanguage || navigator.language;
}
2015-02-24 05:25:44 -08:00
userLang = userLang ? (userLang.split('-', 1)[0] || 'en') : 'en';
gettextCatalog.setCurrentLanguage(userLang);
amMoment.changeLanguage(userLang);
// Register URI handler, not for mobileApp
2014-12-07 09:12:58 -08:00
if (!isCordova) {
2015-03-30 13:20:13 -07:00
Idle.watch();
uriHandler.register();
}
2014-12-02 05:40:24 -08:00
$rootScope.$on('$routeChangeStart', function(event, next, current) {
if (unsupported) {
$location.path('unsupported');
2014-12-16 08:04:39 -08:00
return;
}
if (!$rootScope.iden && next.logged) {
2015-03-30 13:20:13 -07:00
Idle.unwatch();
2014-12-16 08:04:39 -08:00
$location.path('/');
}
if ($rootScope.wallet && !$rootScope.wallet.isComplete() && next.walletShouldBeComplete) {
$location.path('/copayers');
2014-08-12 12:26:15 -07:00
}
});
})
.config(function($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel|chrome-extension|resource):/);
2014-04-07 20:54:38 -07:00
});