walnut_launchpad.html/js/app.js

142 lines
3.7 KiB
JavaScript

var app = angular.module('launchpad', ['oauth3.org', 'ui.router', 'LocalStorageModule', 'angucomplete-alt']);
app.config(['$stateProvider', '$urlRouterProvider', 'localStorageServiceProvider',
function ($stateProvider, $urlRouterProvider, localStorageServiceProvider) {
localStorageServiceProvider.setPrefix('launchpad').setStorageType('sessionStorage');
$urlRouterProvider.otherwise('/splash-page');
$stateProvider
.state('splash-page', {
data: { requiresLogin: false, session: null },
url: '/splash-page',
templateUrl: '/templates/splash-page.html',
controller: 'loginCtrl as vm'
})
.state('app',{
data: { requiresLogin: true, session: null },
url: '/',
controller: 'loginCtrl as vm',
views: {
'header': {
templateUrl: '/templates/partials/header.html',
},
'menu': {
templateUrl: '/templates/partials/menu.html'
},
'content': {
templateUrl: '/templates/home.html'
}
}
})
.state('app.home', {
url: 'home',
views: {
'content@': {
templateUrl: 'templates/home.html',
controller: 'loginCtrl as vm'
}
}
})
.state('app.bolt', {
url: 'bolt',
views: {
'content@': {
templateUrl: 'templates/bolt.html',
controller: 'boltCtrl as vm',
}
}
})
.state('app.files', {
url: 'files',
views: {
'content@': {
templateUrl: 'templates/files.html',
controller: 'fileCtrl as vm',
}
}
})
.state('app.contacts', {
url: 'contacts',
views: {
'content@': {
templateUrl: 'templates/contacts.html',
controller: 'contactCtrl as vm',
}
}
})
.state('app.music', {
url: 'music',
views: {
'content@': {
templateUrl: 'templates/music.html',
controller: 'musicCtrl as vm',
}
}
})
.state('app.email', {
url: 'email',
views: {
'content@': {
templateUrl: 'templates/email.html',
controller: 'emailCtrl as vm',
}
}
})
.state('app.website', {
url: 'website',
views: {
'content@': {
templateUrl: 'templates/website.html',
controller: 'websiteCtrl as vm',
}
}
})
.state('app.dns', {
url: 'dns',
views: {
'content@': {
templateUrl: 'templates/dns.html',
controller: 'dnsCtrl',
}
}
})
.state('app.account-settings', {
url: 'account-settings',
views: {
'content@': {
templateUrl: 'templates/account-settings.html',
controller: 'loginCtrl as vm',
}
}
});
}]);
app.run(['$rootScope', '$state', 'Auth', '$location', function($rootScope, $state, Auth, $location) {
$rootScope.urlArray = [];
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
var requiresLogin = toState.data.requiresLogin;
toState.data.session = $location.search();
var urlParams = $location.search();
$rootScope.redirectedURL = toState.url;
$rootScope.urlArray.push($rootScope.redirectedURL);
if ($rootScope.urlArray.length > 1) {
$rootScope.redirectedURL = $rootScope.urlArray[0];
$rootScope.urlArray = [];
}
if (requiresLogin && !Auth.isLoggedIn()) {
event.preventDefault();
console.log('stuff here ->', toState);
if (!angular.equals(toState.data.session, {})) {
if ('access_token' in urlParams && 'refresh_token' in urlParams && 'issuer' in urlParams && 'audience' in urlParams) {
Auth.add(urlParams)
console.log('CURRENT SESSION IS: ',Auth.sessions);
}
}
console.log('WHERE', $rootScope.redirectedURL );
// $state.go('splash-page', { 'toState': toState.name });
}
});
}]);