Files
dss.web/client/app/app.js
Fergal Moran 29f9f68fee Maybe not
2016-01-10 23:07:05 +00:00

137 lines
5.0 KiB
JavaScript
Executable File

'use strict';
angular.module('dssWebApp', [
'ngCookies',
'ngResource',
'ngAnimate',
'ngSanitize',
'btford.socket-io',
'ui.router',
'angular-loading-bar',
'js-data',
'ui.bootstrap',
'ui.select',
'dialogs.main',
'infinite-scroll',
'angularFileUpload',
'angulartics',
'ngClipboard',
'angular-jwt',
'http-auth-interceptor',
'angular-smilies',
'satellizer',
'angulartics.google.analytics'
])
.config(function ($stateProvider, $sceDelegateProvider, $httpProvider, $urlRouterProvider, $locationProvider, $provide, $authProvider,
ngClipProvider, jwtInterceptorProvider, $analyticsProvider, dialogsProvider, DSProvider, DSHttpAdapterProvider,
SERVER_CONFIG, STORAGE) {
$urlRouterProvider
.otherwise('/');
//$httpProvider.defaults.headers.common.Accept = 'application/json';
$httpProvider.defaults.useXDomain = true;
$httpProvider.interceptors.push('AuthInterceptor');
$authProvider.baseUrl = SERVER_CONFIG.apiUrl + '/';
$authProvider.loginUrl = '_login';
$authProvider.authToken = 'JWT';
$authProvider.facebook({
name: 'facebook',
url: '/_login/?backend=facebook',
clientId: '154504534677009',
authorizationEndpoint: 'https://www.facebook.com/v2.5/dialog/oauth',
redirectUri: window.location.origin + '/',
requiredUrlParams: ['display', 'scope'],
scope: ['email'],
scopeDelimiter: ',',
display: 'popup',
type: '2.0',
popupOptions: {width: 580, height: 400}
});
$authProvider.twitter({
//qmvJ6tptgd8G9T9WYp6P3Q
url: '/_login?backend=twitter',
});
ngClipProvider.setPath("bower_components/zeroclipboard/dist/ZeroClipboard.swf");
$analyticsProvider.firstPageview(true);
$analyticsProvider.withAutoBase(true);
DSHttpAdapterProvider.defaults.forceTrailingSlash = true;
DSProvider.defaults.basePath = SERVER_CONFIG.apiUrl;
DSProvider.defaults.deserialize = function (resourceName, res) {
if (angular.isDefined(res.data) &&
angular.isDefined(res.data.count) &&
angular.isDefined(res.data.next) &&
angular.isDefined(res.data.previous) &&
angular.isDefined(res.data.results)) {
return res.data.results;
} else {
return res.data;
}
};
$sceDelegateProvider.resourceUrlWhitelist([
'self',
'https://dsscdn.blob.core.windows.net/mixes/**'
]);
$locationProvider.html5Mode(true);
$authProvider.google({
clientId: '248170132962-5km115budk9h84raa26hdmnnqdj8ivkl.apps.googleusercontent.com'
});
}).run(function ($http, $rootScope, $state, $window, LoginService, Session, SocketService) {
$rootScope.isPlaying = false;
$rootScope.setCurrentUser = function (user) {
console.log('Current user', user);
$rootScope.currentUser = user;
};
$rootScope.connectSockets = function () {
SocketService.connectSocket(Session.getSession());
SocketService.registerHandler('site:broadcast', function (data) {
console.log(data);
$.notify({
message: data,
icon: '/assets/images/yeoman.png'
}, {
placement: {
from: 'bottom',
align: 'left'
},
icon_type: 'image'
});
});
};
//ensure login before state change
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
if (!$rootScope.currentUser && Session.getLocalToken() != null && Session.getBackend()) {
LoginService.loginUser().then(function (user) {
LoginService.getUserProfile()
.then(function (user) {
$rootScope.setCurrentUser(user);
$rootScope.connectSockets();
return $state.go(toState.name, toParams);
});
}, function (result) {
console.log('Unable to login', result);
if (result.code === 403 || result.code === 400 || result.code === 401 || result.code === 500) {
LoginService.logoutUser()
.then(function () {
return $state.go(toState.name, toParams);
});
} else {
debugger;
console.error('Ooops');
LoginService.logoutUser()
.then(function () {
return $state.go(toState.name, toParams);
});
}
});
event.preventDefault();
}
});
});