linagora-rse
Version:
87 lines (78 loc) • 2.54 kB
JavaScript
(function(angular) {
'use strict';
angular.module('linagora.esn.profile')
.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('/profile', '/profile/details/view');
$urlRouterProvider.when('/profile/:user_id', '/profile/:user_id/details/view');
$stateProvider
.state('profile', {
url: '/profile/:user_id?',
templateUrl: '/profile/app/app',
controller: 'profileController',
params: {user_id: {value: null, squash: true}},
resolve: {
user: function($stateParams, $location, userAPI, session) {
return session.ready.then(function(session) {
if ($stateParams.user_id && $stateParams.user_id !== session.user._id) {
return userAPI.user($stateParams.user_id).then(function(response) {
return response.data;
}, function() {
$location.path('/');
});
}
$stateParams.user_id = null;
return session.user;
});
}
}
})
.state('profile.details', {
url: '/details',
views: {
'root@profile': {
template: '<profile-show user="user", me="me", can-edit="canEdit" />'
}
}
})
.state('profile.details.edit', {
url: '/edit',
views: {
'root@profile': {
template: '<profile-edit user="user" />'
}
}
})
.state('profile.details.view', {
url: '/view',
views: {
'details@profile.details': {
template: '<profile-show-details user="user" />'
}
}
})
.state('profile.details.followers', {
url: '/followers',
views: {
'details@profile.details': {
template: '<follower-list></follower-list>'
}
}
})
.state('profile.details.followings', {
url: '/followings',
views: {
'details@profile.details': {
template: '<following-list></following-list>'
}
}
})
.state('profile.details.timeline', {
url: '/timeline',
views: {
'details@profile.details': {
template: '<esn-timeline-entries></esn-timeline-entries>'
}
}
});
});
})(angular);