1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-10-20 07:40:57 +02:00
bitwarden-browser/src/popup/app/config.js

229 lines
9.1 KiB
JavaScript
Raw Normal View History

2016-09-03 06:03:13 +02:00
angular
.module('bit')
2016-09-21 18:04:40 +02:00
.config(function ($stateProvider, $urlRouterProvider, toastrConfig) {
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) {
var $state = $injector.get('$state');
2017-02-24 01:31:29 +01:00
var userService = $injector.get('userService');
var cryptoService = $injector.get('cryptoService');
cryptoService.getKey(false, function (key) {
userService.isAuthenticated(function (isAuthenticated) {
if (isAuthenticated) {
if (!key) {
$state.go('lock');
}
else {
$state.go('tabs.current');
}
}
else {
$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', {
url: '/login',
2016-09-03 06:03:13 +02:00
controller: 'accountsLoginController',
templateUrl: 'app/accounts/views/accountsLogin.html',
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', {
url: '/two-factor',
2016-09-21 17:35:24 +02:00
controller: 'accountsLoginTwoFactorController',
templateUrl: 'app/accounts/views/accountsLoginTwoFactor.html',
data: { authorize: false },
params: { animation: null, email: null, masterPassword: 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', {
url: '/tab',
2016-09-03 06:03:13 +02:00
abstract: true,
templateUrl: 'app/global/tabs.html',
data: { authorize: true },
params: { animation: null }
2016-09-03 06:03:13 +02:00
})
.state('tabs.current', {
url: '/current',
templateUrl: 'app/current/views/current.html',
controller: 'currentController'
2016-09-03 06:03:13 +02:00
})
.state('tabs.vault', {
url: '/vault',
templateUrl: 'app/vault/views/vault.html',
controller: 'vaultController',
2016-12-08 06:56:38 +01:00
params: { syncOnLoad: false }
2016-09-03 06:03:13 +02:00
})
.state('tabs.settings', {
url: '/settings',
templateUrl: 'app/settings/views/settings.html',
controller: 'settingsController'
2016-09-03 06:03:13 +02:00
})
.state('tabs.tools', {
url: '/tools',
templateUrl: 'app/tools/views/tools.html',
controller: 'toolsController'
})
2016-09-09 04:37:29 +02:00
.state('viewFolder', {
url: '/view-folder?folderId',
templateUrl: 'app/vault/views/vaultViewFolder.html',
controller: 'vaultViewFolderController',
data: { authorize: true },
2016-12-08 06:56:38 +01:00
params: { animation: null, from: 'vault' }
})
2017-01-04 00:40:07 +01:00
.state('viewLogin', {
url: '/view-login?loginId',
templateUrl: 'app/vault/views/vaultViewLogin.html',
controller: 'vaultViewLoginController',
data: { authorize: true },
2016-12-08 06:56:38 +01:00
params: { animation: null, from: 'vault' }
2016-09-09 04:37:29 +02:00
})
2017-01-04 00:40:07 +01:00
.state('addLogin', {
url: '/add-login',
templateUrl: 'app/vault/views/vaultAddLogin.html',
controller: 'vaultAddLoginController',
data: { authorize: true },
2017-01-04 00:40:07 +01:00
params: { animation: null, name: null, uri: null, folderId: null, login: null, from: 'vault' }
2016-09-09 04:37:29 +02:00
})
2017-01-04 00:40:07 +01:00
.state('editLogin', {
url: '/edit-login?loginId',
templateUrl: 'app/vault/views/vaultEditLogin.html',
controller: 'vaultEditLoginController',
data: { authorize: true },
2017-01-04 00:40:07 +01:00
params: { animation: null, fromView: true, login: null, from: 'vault' }
})
.state('passwordGenerator', {
url: '/password-generator',
templateUrl: 'app/tools/views/toolsPasswordGenerator.html',
controller: 'toolsPasswordGeneratorController',
data: { authorize: true },
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('credits', {
url: '/credits',
templateUrl: 'app/settings/views/settingsCredits.html',
controller: 'settingsCreditsController',
data: { authorize: true },
params: { animation: null }
})
.state('features', {
url: '/features',
templateUrl: 'app/settings/views/settingsFeatures.html',
controller: 'settingsFeaturesController',
data: { authorize: true },
params: { animation: null }
})
2016-09-20 18:06:01 +02:00
.state('help', {
url: '/help',
templateUrl: 'app/settings/views/settingsHelp.html',
controller: 'settingsHelpController',
data: { authorize: true },
params: { animation: null }
})
.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',
templateUrl: 'app/settings/views/settingsAddFolder.html',
2016-09-22 01:10:48 +02:00
controller: 'settingsAddFolderController',
data: { authorize: true },
params: { animation: null }
})
2016-09-22 01:10:48 +02:00
.state('editFolder', {
url: '/editFolder?folderId',
templateUrl: 'app/settings/views/settingsEditFolder.html',
2016-09-22 01:10:48 +02:00
controller: 'settingsEditFolderController',
data: { authorize: true },
params: { animation: null }
})
.state('lock', {
url: '/lock',
templateUrl: 'app/lock/views/lock.html',
controller: 'lockController',
data: { authorize: true },
params: { animation: null }
2016-09-09 04:23:56 +02:00
});
2016-09-03 06:03:13 +02:00
})
2017-02-24 01:31:29 +01:00
.run(function ($rootScope, userService, $state, constantsService, stateService) {
2016-09-03 06:03:13 +02:00
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
2016-12-08 06:56:38 +01:00
if ($state.current.name.indexOf('tabs.') > -1 && toState.name.indexOf('tabs.') > -1) {
stateService.purgeState();
}
2017-02-24 01:31:29 +01:00
userService.isAuthenticated(function (isAuthenticated) {
if (isAuthenticated) {
var obj = {};
obj[constantsService.lastActiveKey] = (new Date()).getTime();
chrome.storage.local.set(obj, function () { });
}
else if (toState.data && toState.data.authorize) {
event.preventDefault();
chrome.runtime.sendMessage({ command: 'logout' });
}
2016-09-03 06:03:13 +02:00
});
});
});