Skip to content

Instantly share code, notes, and snippets.

@StasKoval
Created November 18, 2014 20:11
Show Gist options
  • Save StasKoval/716cc9380c7f7436c1a5 to your computer and use it in GitHub Desktop.
Save StasKoval/716cc9380c7f7436c1a5 to your computer and use it in GitHub Desktop.
angular.module('resumeo').config(['$stateProvider','$urlRouterProvider',
function($stateProvider, $urlRouterProvider){
$urlRouterProvider
.otherwise("/");
$stateProvider
.state("default", {
abstract: true,
views: {
"default": {
// controller: "ApplicationCtrl",
templateUrl: "/assets/layouts/default.html"
}
}
})
.state("index", {
// parent: "default",
url: "/",
authenticate: false,
views: {
/* "header":{
controller: "IndexCtrl",
templateUrl: "/assets/pages/header.html"
},*/
"index":{
controller: "IndexCtrl",
templateUrl: "/assets/pages/index.html"
}
}
})
.state("interviews",{
parent: "default",
url: "/account",
resolve: {
currentUser: ['Current', function (Current) {
return Current.getCurrentUser();
}]
},
views:{
"left_bar":{
templateUrl: "/assets/layouts/left_bar.html"
},
"account":{
templateUrl: "/assets/pages/interviews.html"
}
},
authenticate: true
})
.state("interviews.edit",{
parent: 'interviews',
url: "/interview-edit/:token",
authenticate: true,
resolve:{
Last: ['InterviewManager','$stateParams',function(InterviewManager,$stateParams){
return InterviewManager.getLast($stateParams.token);
}]
},
controller: "InterviewAddCtrl",
templateUrl: "/assets/pages/interviews.add.html"
})
.state("interviews.add",{
parent: 'interviews',
url: "/interview-add",
authenticate: true,
resolve:{
Last: ['InterviewManager',function(InterviewManager){
return InterviewManager.getNew();
}]
},
controller: "InterviewAddCtrl",
templateUrl: "/assets/pages/interviews.add.html"
})
.state("interviews.invite",{
parent: 'interviews',
url: "/interview-share/:token",
authenticate: true,
resolve:{
Last: ['InterviewManager','$stateParams',function(InterviewManager,$stateParams){
return InterviewManager.getLast($stateParams.token);
}]
},
controller: "InterviewShareCtrl",
templateUrl:"/assets/pages/interviews.share.html"
})
.state("interviews.list",{
parent: 'interviews',
url: "/interview-list",
resolve:{
Interviews: ['InterviewManager',function(InterviewManager){
return InterviewManager.getAll();
}]
},
authenticate: true,
controller: "InterviewListCtrl",
templateUrl:"/assets/pages/interviews.list.html"
})
.state("interviews.show_response",{
parent:'interviews',
url:'/show-response/:id',
authenticate: true,
resolve:{
Response: ['InterviewManager','$stateParams',function(InterviewManager,$stateParams){
return InterviewManager.getResponse($stateParams.id);
}],
Answers:['$log','$q','Response','QuestionManager','_',function($log,Response,QuestionManager,_){
var promise = $q.defer();
return QuestionManager.getAnswers(Response.questions,promise);
}]
},
controller: "InterviewShowResponseCtrl",
templateUrl:"/assets/pages/interviews.show_response.html"
})
.state("applicant",{
parent: 'default',
url: "/applicant/:token",
resolve:{
InterviewCurrent: ['InterviewManager','$stateParams',function(InterviewManager,$stateParams){
return InterviewManager.getByToken($stateParams.token);
}]
},
templateUrl:"/assets/pages/applicant/applicant.html"
})
.state("applicant.add_interview",{
parent: 'applicant',
url: "/interview",
controller: "ApplicantCtrl",
templateUrl:"/assets/pages/applicant/applicant.interview.html"
})
.state("applicant.record_video",{
parent:"applicant",
url:"/record_video/:applicant_id/:interview_response_id",
controller: "RecordVideoCtrl",
templateUrl:"/assets/pages/applicant/applicant.record_video.html"
})
.state("error",{
parent: 'default',
url: "/404",
views:{
"error":{
templateUrl: "/assets/pages/error.html",
controller: [function(){}]
}
}
})
}]);
angular.module('resumeo').run(['$rootScope', '$state', '$stateParams', '$log','$location','Current',
function ($rootScope, $state, $stateParams, $log,$location,Current) {
$rootScope._ = window._;
$rootScope.location = $location;
$rootScope.isIndex = $state.current.name == "index" ? true : false;
$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams){
$rootScope.isIndex = fromState.name == "index" ? true : false;
Current.getCurrentUser()
.finally(function(){
$log.debug("Current.isAuthenticated after", Current.isAuthenticated);
if (toState.authenticate && Current.isAuthenticated===false){
// User isn’t authenticated
$state.transitionTo("index");
event.preventDefault();
}
});
});
$rootScope.$on("$stateChangeError", function(event, toState, toParams, fromState, fromParams){
$rootScope.isIndex = fromState.name == "index" ? true : false;
$log.debug(" from state error", fromState);
$log.debug(" to state error", toState);
});
$rootScope.$on("$stateChangeSuccess", function(event, toState, toParams, fromState, fromParams){
$rootScope.isIndex = toState.name == "index" ? true : false;
})
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment