2016-09-03 06:03:13 +02:00
|
|
|
|
angular
|
|
|
|
|
.module('bit')
|
|
|
|
|
|
2016-09-21 18:04:40 +02:00
|
|
|
|
.config(function ($stateProvider, $urlRouterProvider, toastrConfig) {
|
2016-09-13 01:48:36 +02:00
|
|
|
|
angular.extend(toastrConfig, {
|
|
|
|
|
closeButton: true,
|
|
|
|
|
progressBar: true,
|
|
|
|
|
showMethod: 'slideDown',
|
|
|
|
|
positionClass: 'toast-bottom-center'
|
|
|
|
|
});
|
|
|
|
|
|
2016-09-03 06:03:13 +02:00
|
|
|
|
$urlRouterProvider.otherwise(function ($injector, $location) {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
var $state = $injector.get('$state');
|
2016-09-20 23:47:21 +02:00
|
|
|
|
$state.go('home');
|
2016-09-03 06:03:13 +02:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$stateProvider
|
2016-09-20 22:40:04 +02:00
|
|
|
|
.state('splash', {
|
|
|
|
|
url: '/splash',
|
|
|
|
|
controller: 'splashController',
|
|
|
|
|
templateUrl: 'app/global/splash.html',
|
|
|
|
|
data: { authorize: false },
|
|
|
|
|
params: { animation: null }
|
|
|
|
|
})
|
|
|
|
|
.state('home', {
|
|
|
|
|
url: '/home',
|
|
|
|
|
controller: 'homeController',
|
|
|
|
|
templateUrl: 'app/global/home.html',
|
|
|
|
|
data: { authorize: false },
|
|
|
|
|
params: { animation: null }
|
|
|
|
|
})
|
|
|
|
|
|
2016-09-03 06:03:13 +02:00
|
|
|
|
.state('login', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/login',
|
2016-09-03 06:03:13 +02:00
|
|
|
|
controller: 'accountsLoginController',
|
2016-09-18 00:27:36 +02:00
|
|
|
|
templateUrl: 'app/accounts/views/accountsLogin.html',
|
2016-09-10 00:35:12 +02:00
|
|
|
|
data: { authorize: false },
|
2016-09-21 01:57:24 +02:00
|
|
|
|
params: { animation: null, email: null }
|
2016-09-09 04:37:29 +02:00
|
|
|
|
})
|
2016-09-20 23:47:21 +02:00
|
|
|
|
.state('hint', {
|
|
|
|
|
url: '/hint',
|
|
|
|
|
controller: 'accountsHintController',
|
|
|
|
|
templateUrl: 'app/accounts/views/accountsHint.html',
|
|
|
|
|
data: { authorize: false },
|
|
|
|
|
params: { animation: null }
|
|
|
|
|
})
|
2016-09-09 04:37:29 +02:00
|
|
|
|
.state('twoFactor', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/two-factor',
|
2016-09-21 17:35:24 +02:00
|
|
|
|
controller: 'accountsLoginTwoFactorController',
|
2016-09-18 00:27:36 +02:00
|
|
|
|
templateUrl: 'app/accounts/views/accountsLoginTwoFactor.html',
|
2016-09-10 00:35:12 +02:00
|
|
|
|
data: { authorize: false },
|
|
|
|
|
params: { animation: null }
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
2016-09-21 01:57:24 +02:00
|
|
|
|
.state('register', {
|
|
|
|
|
url: '/register',
|
|
|
|
|
controller: 'accountsRegisterController',
|
|
|
|
|
templateUrl: 'app/accounts/views/accountsRegister.html',
|
|
|
|
|
data: { authorize: false },
|
|
|
|
|
params: { animation: null }
|
|
|
|
|
})
|
2016-09-03 06:03:13 +02:00
|
|
|
|
|
|
|
|
|
.state('tabs', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/tab',
|
2016-09-03 06:03:13 +02:00
|
|
|
|
abstract: true,
|
2016-09-18 00:27:36 +02:00
|
|
|
|
templateUrl: 'app/global/tabs.html',
|
2016-09-10 00:35:12 +02:00
|
|
|
|
data: { authorize: true },
|
|
|
|
|
params: { animation: null }
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
|
|
|
|
.state('tabs.current', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/current',
|
|
|
|
|
templateUrl: 'app/current/views/current.html',
|
2016-09-09 03:13:54 +02:00
|
|
|
|
controller: 'currentController'
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
|
|
|
|
.state('tabs.vault', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/vault',
|
|
|
|
|
templateUrl: 'app/vault/views/vault.html',
|
2016-09-13 01:48:36 +02:00
|
|
|
|
controller: 'vaultController',
|
2016-09-13 06:14:49 +02:00
|
|
|
|
params: { scrollY: 0, searchText: null }
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
|
|
|
|
.state('tabs.settings', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/settings',
|
|
|
|
|
templateUrl: 'app/settings/views/settings.html',
|
2016-09-09 03:13:54 +02:00
|
|
|
|
controller: 'settingsController'
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
|
|
|
|
.state('tabs.tools', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/tools',
|
|
|
|
|
templateUrl: 'app/tools/views/tools.html',
|
2016-09-09 03:13:54 +02:00
|
|
|
|
controller: 'toolsController'
|
|
|
|
|
})
|
2016-09-09 04:37:29 +02:00
|
|
|
|
|
2016-09-09 04:23:56 +02:00
|
|
|
|
.state('viewSite', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/view-site?siteId',
|
|
|
|
|
templateUrl: 'app/vault/views/vaultViewSite.html',
|
2016-09-09 04:23:56 +02:00
|
|
|
|
controller: 'vaultViewSiteController',
|
2016-09-10 00:35:12 +02:00
|
|
|
|
data: { authorize: true },
|
2016-09-13 06:14:49 +02:00
|
|
|
|
params: { animation: null, returnScrollY: 0, returnSearchText: null }
|
2016-09-09 04:37:29 +02:00
|
|
|
|
})
|
|
|
|
|
.state('addSite', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/add-site',
|
|
|
|
|
templateUrl: 'app/vault/views/vaultAddSite.html',
|
2016-09-09 04:37:29 +02:00
|
|
|
|
controller: 'vaultAddSiteController',
|
2016-09-10 00:35:12 +02:00
|
|
|
|
data: { authorize: true },
|
2016-09-20 04:24:55 +02:00
|
|
|
|
params: { animation: null, returnScrollY: 0, returnSearchText: null, name: null, uri: null, site: null, fromCurrent: false }
|
2016-09-09 04:37:29 +02:00
|
|
|
|
})
|
|
|
|
|
.state('editSite', {
|
2016-09-18 00:27:36 +02:00
|
|
|
|
url: '/edit-site?siteId',
|
|
|
|
|
templateUrl: 'app/vault/views/vaultEditSite.html',
|
2016-09-09 04:37:29 +02:00
|
|
|
|
controller: 'vaultEditSiteController',
|
2016-09-10 00:35:12 +02:00
|
|
|
|
data: { authorize: true },
|
2016-09-20 04:24:55 +02:00
|
|
|
|
params: { animation: null, fromView: true, returnScrollY: 0, returnSearchText: null, site: null }
|
2016-09-18 00:27:36 +02:00
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
.state('passwordGenerator', {
|
|
|
|
|
url: '/password-generator',
|
|
|
|
|
templateUrl: 'app/tools/views/toolsPasswordGenerator.html',
|
|
|
|
|
controller: 'toolsPasswordGeneratorController',
|
|
|
|
|
data: { authorize: true },
|
2016-09-18 04:57:51 +02:00
|
|
|
|
params: { animation: null, addState: null, editState: null }
|
2016-09-20 18:06:01 +02:00
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
.state('about', {
|
|
|
|
|
url: '/about',
|
|
|
|
|
templateUrl: 'app/settings/views/settingsAbout.html',
|
|
|
|
|
controller: 'settingsAboutController',
|
|
|
|
|
data: { authorize: true },
|
|
|
|
|
params: { animation: null }
|
|
|
|
|
})
|
|
|
|
|
.state('help', {
|
|
|
|
|
url: '/help',
|
|
|
|
|
templateUrl: 'app/settings/views/settingsHelp.html',
|
|
|
|
|
controller: 'settingsHelpController',
|
|
|
|
|
data: { authorize: true },
|
|
|
|
|
params: { animation: null }
|
2016-09-21 23:14:01 +02:00
|
|
|
|
})
|
|
|
|
|
.state('sync', {
|
|
|
|
|
url: '/sync',
|
|
|
|
|
templateUrl: 'app/settings/views/settingsSync.html',
|
|
|
|
|
controller: 'settingsSyncController',
|
|
|
|
|
data: { authorize: true },
|
|
|
|
|
params: { animation: null }
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
.state('folders', {
|
|
|
|
|
url: '/folders',
|
|
|
|
|
templateUrl: 'app/settings/views/settingsFolders.html',
|
|
|
|
|
controller: 'settingsFoldersController',
|
|
|
|
|
data: { authorize: true },
|
|
|
|
|
params: { animation: null }
|
|
|
|
|
})
|
|
|
|
|
.state('addFolder', {
|
2016-09-22 01:10:48 +02:00
|
|
|
|
url: '/addFolder',
|
2016-09-21 23:14:01 +02:00
|
|
|
|
templateUrl: 'app/settings/views/settingsAddFolder.html',
|
2016-09-22 01:10:48 +02:00
|
|
|
|
controller: 'settingsAddFolderController',
|
2016-09-21 23:14:01 +02:00
|
|
|
|
data: { authorize: true },
|
|
|
|
|
params: { animation: null }
|
|
|
|
|
})
|
2016-09-22 01:10:48 +02:00
|
|
|
|
.state('editFolder', {
|
|
|
|
|
url: '/editFolder?folderId',
|
2016-09-21 23:14:01 +02:00
|
|
|
|
templateUrl: 'app/settings/views/settingsEditFolder.html',
|
2016-09-22 01:10:48 +02:00
|
|
|
|
controller: 'settingsEditFolderController',
|
2016-09-21 23:14:01 +02:00
|
|
|
|
data: { authorize: true },
|
|
|
|
|
params: { animation: null }
|
2016-09-09 04:23:56 +02:00
|
|
|
|
});
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
2016-09-03 06:11:57 +02:00
|
|
|
|
.run(function ($rootScope, userService, loginService, tokenService, $state) {
|
2016-09-03 06:03:13 +02:00
|
|
|
|
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
|
|
|
|
|
tokenService.getToken(function (token) {
|
|
|
|
|
userService.isAuthenticated(function (isAuthenticated) {
|
|
|
|
|
if (!toState.data || !toState.data.authorize) {
|
2016-09-03 06:11:57 +02:00
|
|
|
|
if (isAuthenticated && !tokenService.isTokenExpired(token)) {
|
2016-09-03 06:03:13 +02:00
|
|
|
|
event.preventDefault();
|
|
|
|
|
$state.go('tabs.current');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2016-09-03 06:11:57 +02:00
|
|
|
|
if (!isAuthenticated || tokenService.isTokenExpired(token)) {
|
2016-09-03 06:03:13 +02:00
|
|
|
|
event.preventDefault();
|
|
|
|
|
loginService.logOut(function () {
|
2016-09-20 22:40:04 +02:00
|
|
|
|
$state.go('home');
|
2016-09-03 06:03:13 +02:00
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|