mirror of
https://github.com/ZwareBear/awx.git
synced 2026-04-15 20:41:49 -05:00
In order to add additional route flexibility for the users-tokens states Removes unnecessary ui-view from form-generator Adjust nested ui-view target found during PR feedback
115 lines
4.6 KiB
JavaScript
115 lines
4.6 KiB
JavaScript
/*************************************************
|
|
* Copyright (c) 2016 Ansible, Inc.
|
|
*
|
|
* All Rights Reserved
|
|
*************************************************/
|
|
|
|
import UsersList from './list/users-list.controller';
|
|
import UsersAdd from './add/users-add.controller';
|
|
import UsersEdit from './edit/users-edit.controller';
|
|
import UserForm from './users.form';
|
|
import UserList from './users.list';
|
|
|
|
import userListRoute from './users.route';
|
|
import UserTokensListRoute from '../../features/users/tokens/users-tokens-list.route';
|
|
import UserTokensAddRoute from '../../features/users/tokens/users-tokens-add.route';
|
|
import UserTokensAddApplicationRoute from '../../features/users/tokens/users-tokens-add-application.route';
|
|
|
|
export default
|
|
angular.module('Users', [])
|
|
.controller('UsersList', UsersList)
|
|
.controller('UsersAdd', UsersAdd)
|
|
.controller('UsersEdit', UsersEdit)
|
|
.factory('UserForm', UserForm)
|
|
.factory('UserList', UserList)
|
|
.config(['$stateProvider', 'stateDefinitionsProvider', '$stateExtenderProvider',
|
|
function($stateProvider, stateDefinitionsProvider, $stateExtenderProvider) {
|
|
let stateDefinitions = stateDefinitionsProvider.$get();
|
|
let stateExtender = $stateExtenderProvider.$get();
|
|
|
|
function generateStateTree() {
|
|
let userAdd = stateDefinitions.generateTree({
|
|
name: 'users.add',
|
|
url: '/add',
|
|
modes: ['add'],
|
|
form: 'UserForm',
|
|
controllers: {
|
|
add: 'UsersAdd'
|
|
},
|
|
resolve: {
|
|
add: {
|
|
canAdd: ['rbacUiControlService', '$state', function(rbacUiControlService, $state) {
|
|
return rbacUiControlService.canAdd('users')
|
|
.then(function(res) {
|
|
return res.canAdd;
|
|
})
|
|
.catch(function() {
|
|
$state.go('users');
|
|
});
|
|
}],
|
|
resolvedModels: ['MeModel', '$q', function(Me, $q) {
|
|
const promises= {
|
|
me: new Me('get').then((me) => me.extend('get', 'admin_of_organizations'))
|
|
};
|
|
|
|
return $q.all(promises);
|
|
}]
|
|
}
|
|
}
|
|
});
|
|
|
|
let userEdit = stateDefinitions.generateTree({
|
|
name: 'users.edit',
|
|
url: '/:user_id',
|
|
modes: ['edit'],
|
|
form: 'UserForm',
|
|
parent: 'users',
|
|
controllers: {
|
|
edit: 'UsersEdit'
|
|
},
|
|
data: {
|
|
activityStream: true,
|
|
activityStreamTarget: 'user'
|
|
},
|
|
breadcrumbs: {
|
|
edit: "{{breadcrumb.user_name}}"
|
|
},
|
|
resolve: {
|
|
edit: {
|
|
resolvedModels: ['MeModel', '$q', function(Me, $q) {
|
|
const promises= {
|
|
me: new Me('get').then((me) => me.extend('get', 'admin_of_organizations'))
|
|
};
|
|
|
|
return $q.all(promises);
|
|
}]
|
|
}
|
|
},
|
|
});
|
|
|
|
return Promise.all([
|
|
userAdd,
|
|
userEdit
|
|
]).then((generated) => {
|
|
return {
|
|
states: _.reduce(generated, (result, definition) => {
|
|
return result.concat(definition.states);
|
|
}, [
|
|
stateExtender.buildDefinition(userListRoute),
|
|
stateExtender.buildDefinition(UserTokensListRoute),
|
|
stateExtender.buildDefinition(UserTokensAddRoute),
|
|
stateExtender.buildDefinition(UserTokensAddApplicationRoute)
|
|
])
|
|
};
|
|
});
|
|
}
|
|
|
|
$stateProvider.state({
|
|
name: 'users.**',
|
|
url: '/users',
|
|
lazyLoad: () => generateStateTree()
|
|
});
|
|
|
|
}
|
|
]);
|