136 lines
5.7 KiB
JavaScript
136 lines
5.7 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
var soter = angular.module('soter', ['ngRoute', 'ngResource', 'chieffancypants.loadingBar', 'ngFileUpload'])
|
|
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
|
|
$routeProvider
|
|
.when('/', {templateUrl: '/app/home/view.html'})
|
|
.when('/login', {templateUrl: '/app/shared/login.html', controller: 'LoginController'})
|
|
.when('/logout', {templateUrl: '/app/home/view.html', controller: 'LogoutController'})
|
|
.when('/albums', {
|
|
templateUrl: '/app/album/list.html',
|
|
controller: 'AlbumListController',
|
|
resolve: AlbumListCtrlResolve
|
|
})
|
|
.when('/album', {
|
|
templateUrl: '/app/album/view.html',
|
|
controller: 'AlbumController',
|
|
resolve: AlbumCtrlResolve
|
|
})
|
|
.when('/album/:id', {
|
|
templateUrl: '/app/album/view.html',
|
|
controller: 'AlbumController',
|
|
resolve: AlbumCtrlResolve
|
|
})
|
|
.when('/upload', {
|
|
templateUrl: '/app/picture/upload.html',
|
|
controller: 'UploadController',
|
|
resolve: UploadCtrlResolve
|
|
})
|
|
.when('/view/:id', {
|
|
templateUrl: '/app/album/pictures.html',
|
|
controller: 'AlbumPicturesController',
|
|
resolve: AlbumPicturesCtrlResolve
|
|
})
|
|
//.when('/picture', {
|
|
// templateUrl: '/app/picture/view.html',
|
|
// controller: 'PictureController',
|
|
// resolve: PictureCtrl.resolve,
|
|
// reloadOnSearch: false
|
|
//})
|
|
//.when('/picture/:id', {
|
|
// templateUrl: '/app/picture/view.html',
|
|
// controller: 'PictureController',
|
|
// resolve: PictureCtrl.resolve,
|
|
// reloadOnSearch: false
|
|
//})
|
|
.when('/users', {
|
|
templateUrl: '/app/user/list.html',
|
|
controller: 'UserListController',
|
|
resolve: UserListCtrlResolve
|
|
}).
|
|
when('/user', {
|
|
templateUrl: '/app/user/view.html',
|
|
controller: 'UserController',
|
|
resolve: UserCtrlResolve
|
|
}).
|
|
when('/user/:id', {
|
|
templateUrl: '/app/user/view.html',
|
|
controller: 'UserController',
|
|
resolve: UserCtrlResolve
|
|
}).
|
|
|
|
when('/roles', {
|
|
templateUrl: '/app/role/list.html',
|
|
controller: 'RoleListController',
|
|
resolve: RoleListCtrlResolve
|
|
}).
|
|
when('/role', {
|
|
templateUrl: '/app/role/view.html',
|
|
controller: 'RoleController',
|
|
resolve: RoleCtrlResolve
|
|
}).
|
|
when('/role/:id', {
|
|
templateUrl: '/app/role/view.html',
|
|
controller: 'RoleController',
|
|
resolve: RoleCtrlResolve
|
|
}).
|
|
|
|
//when('/settings', {templateUrl: '/partial/settings.html', controller: 'SettingsController', resolve: SettingsCtrl.resolve}).
|
|
|
|
otherwise({templateUrl: '/app/shared/404.html'});
|
|
$locationProvider.html5Mode(true).hashPrefix('!');
|
|
}])
|
|
.config(['$httpProvider', function ($httpProvider) {
|
|
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
|
}])
|
|
.config(['$httpProvider', function ($httpProvider) {
|
|
$httpProvider.interceptors.push('responseInterceptor');
|
|
}])
|
|
.factory('responseInterceptor', ['$q', '$rootScope', function ($q, $rootScope) {
|
|
return {
|
|
response: function (response) {
|
|
return response;
|
|
},
|
|
responseError: function (response) {
|
|
var headers = response.headers(),
|
|
isResourceResponse = headers['content-type'] === "application/json; charset=utf-8",
|
|
status = response.status;
|
|
if (status === 401 && !isResourceResponse) {
|
|
$rootScope.$broadcast('loginRequired');
|
|
}
|
|
// otherwise
|
|
return $q.reject(response);
|
|
}
|
|
};
|
|
}]);
|
|
|
|
angular.module('soter').controller('BaseCtrl', ['$rootScope', '$scope', 'AuthService', '$location', '$routeParams', function ($rootScope, $scope, AuthService, $location, $routeParams) {
|
|
$rootScope.$on('loginRequired', function () {
|
|
if (Session.loggedIn === true) {
|
|
$location.path('/');
|
|
} else {
|
|
var came_from = $routeParams.came_from;
|
|
if (angular.isUndefined(came_from) && $location.path() !== '/login') {
|
|
came_from = $location.url();
|
|
}
|
|
$location.path('/login').search({came_from: came_from});
|
|
}
|
|
});
|
|
$scope.toasts = [];
|
|
$scope.clearToast = function (item) {
|
|
var idx = $scope.toasts.indexOf(item);
|
|
if (idx !== -1) {
|
|
$scope.toasts.splice(idx, 1);
|
|
}
|
|
};
|
|
|
|
$rootScope.$on("$routeChangeStart", function () {
|
|
AuthService.profile().then(function (profile) {
|
|
$rootScope.auth = profile;
|
|
});
|
|
});
|
|
}]);
|
|
|
|
})();
|