mirror of
https://github.com/ansible/awx.git
synced 2026-05-13 20:37:39 -02:30
Merge pull request #5694 from jlmitch5/addOrgToPermModal
add org to user/team perm modal
This commit is contained in:
@@ -7,8 +7,10 @@
|
|||||||
/* jshint unused: vars */
|
/* jshint unused: vars */
|
||||||
export default ['$compile','templateUrl', 'i18n', 'generateList',
|
export default ['$compile','templateUrl', 'i18n', 'generateList',
|
||||||
'ProjectList', 'TemplateList', 'InventoryList', 'CredentialList',
|
'ProjectList', 'TemplateList', 'InventoryList', 'CredentialList',
|
||||||
|
'OrganizationList',
|
||||||
function($compile, templateUrl, i18n, generateList,
|
function($compile, templateUrl, i18n, generateList,
|
||||||
ProjectList, TemplateList, InventoryList, CredentialList) {
|
ProjectList, TemplateList, InventoryList, CredentialList,
|
||||||
|
OrganizationList) {
|
||||||
return {
|
return {
|
||||||
restrict: 'E',
|
restrict: 'E',
|
||||||
scope: {
|
scope: {
|
||||||
@@ -24,7 +26,8 @@ export default ['$compile','templateUrl', 'i18n', 'generateList',
|
|||||||
job_templates: TemplateList,
|
job_templates: TemplateList,
|
||||||
workflow_templates: TemplateList,
|
workflow_templates: TemplateList,
|
||||||
inventories: InventoryList,
|
inventories: InventoryList,
|
||||||
credentials: CredentialList
|
credentials: CredentialList,
|
||||||
|
organizations: OrganizationList
|
||||||
};
|
};
|
||||||
|
|
||||||
list = _.cloneDeep(listMap[scope.resourceType]);
|
list = _.cloneDeep(listMap[scope.resourceType]);
|
||||||
@@ -63,6 +66,9 @@ export default ['$compile','templateUrl', 'i18n', 'generateList',
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'job_templates':
|
case 'job_templates':
|
||||||
|
case 'workflow_templates':
|
||||||
|
case 'credentials':
|
||||||
|
case 'organizations':
|
||||||
list.name = 'job_templates';
|
list.name = 'job_templates';
|
||||||
list.iterator = 'job_template';
|
list.iterator = 'job_template';
|
||||||
list.fields = {
|
list.fields = {
|
||||||
@@ -72,25 +78,6 @@ export default ['$compile','templateUrl', 'i18n', 'generateList',
|
|||||||
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
|
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
|
||||||
list.fields.description.columnClass = 'col-md-5 col-sm-5 hidden-xs';
|
list.fields.description.columnClass = 'col-md-5 col-sm-5 hidden-xs';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'workflow_templates':
|
|
||||||
list.name = 'workflow_templates';
|
|
||||||
list.iterator = 'workflow_template';
|
|
||||||
list.basePath = 'workflow_job_templates';
|
|
||||||
list.fields = {
|
|
||||||
name: list.fields.name,
|
|
||||||
description: list.fields.description
|
|
||||||
};
|
|
||||||
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
|
|
||||||
list.fields.description.columnClass = 'col-md-5 col-sm-5 hidden-xs';
|
|
||||||
break;
|
|
||||||
case 'credentials':
|
|
||||||
list.fields = {
|
|
||||||
name: list.fields.name,
|
|
||||||
description: list.fields.description
|
|
||||||
};
|
|
||||||
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
|
|
||||||
list.fields.description.columnClass = 'col-md-5 col-sm-5 hidden-xs';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
list.fields = _.each(list.fields, (field) => field.nosort = true);
|
list.fields = _.each(list.fields, (field) => field.nosort = true);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ function(rootScope, scope, $state, i18n, CreateSelect2, GetBasePath, Rest, $q, W
|
|||||||
|
|
||||||
function init(){
|
function init(){
|
||||||
|
|
||||||
let resources = ['job_templates', 'workflow_templates', 'projects', 'inventories', 'credentials'];
|
let resources = ['job_templates', 'workflow_templates', 'projects', 'inventories', 'credentials', 'organizations'];
|
||||||
|
|
||||||
// data model:
|
// data model:
|
||||||
// selected - keyed by type of resource
|
// selected - keyed by type of resource
|
||||||
@@ -43,7 +43,8 @@ function(rootScope, scope, $state, i18n, CreateSelect2, GetBasePath, Rest, $q, W
|
|||||||
workflow_templates: false,
|
workflow_templates: false,
|
||||||
projects: false,
|
projects: false,
|
||||||
inventories: false,
|
inventories: false,
|
||||||
credentials: false
|
credentials: false,
|
||||||
|
organizations: false
|
||||||
};
|
};
|
||||||
|
|
||||||
// initializes select2 per select field
|
// initializes select2 per select field
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<div id="add-permissions-modal" class="AddPermissions modal fade">
|
<div id="add-permissions-modal" class="AddPermissions modal fade">
|
||||||
<div class="AddPermissions-backDrop is-loggedOut"></div>
|
<div class="AddPermissions-backDrop is-loggedOut"></div>
|
||||||
<div class="AddPermissions-dialog">
|
<div class="AddPermissions-dialog">
|
||||||
<div class="AddPermissions-content is-loggedOut">
|
<div class="AddPermissions-content AddPermissions-content--userTeam
|
||||||
|
is-loggedOut">
|
||||||
<!-- begin header -->
|
<!-- begin header -->
|
||||||
<div class="AddPermissions-header">
|
<div class="AddPermissions-header">
|
||||||
<div class="List-header">
|
<div class="List-header">
|
||||||
@@ -9,7 +10,7 @@
|
|||||||
<div class="List-titleText ng-binding">
|
<div class="List-titleText ng-binding">
|
||||||
{{ owner.name || owner.username }}
|
{{ owner.name || owner.username }}
|
||||||
<div class="List-titleLockup"></div>
|
<div class="List-titleLockup"></div>
|
||||||
{{ title }}
|
{{ title | uppercase }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="Form-exitHolder">
|
<div class="Form-exitHolder">
|
||||||
@@ -60,6 +61,12 @@
|
|||||||
translate>
|
translate>
|
||||||
Credentials
|
Credentials
|
||||||
</div>
|
</div>
|
||||||
|
<div class="Form-tab"
|
||||||
|
ng-click="selectTab('organizations')"
|
||||||
|
ng-class="{'is-selected': tab.organizations}"
|
||||||
|
translate>
|
||||||
|
Organizations
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="AddPermissions-jobTemplates" class="AddPermissions-list" ng-show="tab.job_templates">
|
<div id="AddPermissions-jobTemplates" class="AddPermissions-list" ng-show="tab.job_templates">
|
||||||
@@ -77,6 +84,9 @@
|
|||||||
<div id="AddPermissions-credentials" class="AddPermissions-list" ng-show="tab.credentials">
|
<div id="AddPermissions-credentials" class="AddPermissions-list" ng-show="tab.credentials">
|
||||||
<rbac-multiselect-list view="Credentials" all-selected="allSelected" dataset="resolve.credentialsDataset"></rbac-multiselect-list>
|
<rbac-multiselect-list view="Credentials" all-selected="allSelected" dataset="resolve.credentialsDataset"></rbac-multiselect-list>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="AddPermissions-organizations" class="AddPermissions-list" ng-show="tab.organizations">
|
||||||
|
<rbac-multiselect-list view="Organizations" all-selected="allSelected" dataset="resolve.organizationsDataset"></rbac-multiselect-list>
|
||||||
|
</div>
|
||||||
<!-- end section 1 -->
|
<!-- end section 1 -->
|
||||||
|
|
||||||
<!-- begin section 2 -->
|
<!-- begin section 2 -->
|
||||||
@@ -127,6 +137,13 @@
|
|||||||
translate>
|
translate>
|
||||||
Credentials
|
Credentials
|
||||||
</div>
|
</div>
|
||||||
|
<div class="Form-tab"
|
||||||
|
ng-click="selectTab('organizations')"
|
||||||
|
ng-class="{'is-selected': tab.organizations}"
|
||||||
|
ng-show="showSection2Tab('organizations')"
|
||||||
|
translate>
|
||||||
|
Organizations
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="AddPermissions-keyPane"
|
<div class="AddPermissions-keyPane"
|
||||||
ng-show="showKeyPane">
|
ng-show="showKeyPane">
|
||||||
@@ -142,7 +159,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- role drop-downs -->
|
<!-- role drop-downs -->
|
||||||
<div ng-repeat="(type, roleSet) in keys" ng-show="tab[type]">
|
<div ng-repeat="(type, roleSet) in keys"
|
||||||
|
ng-show="tab[type] && showSection2Tab(type)">
|
||||||
<select
|
<select
|
||||||
id="{{type}}-role-select" class="form-control"
|
id="{{type}}-role-select" class="form-control"
|
||||||
ng-model="roleSelection[type]"
|
ng-model="roleSelection[type]"
|
||||||
|
|||||||
@@ -32,6 +32,10 @@
|
|||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.AddPermissions-content--userTeam {
|
||||||
|
max-width: 820px;
|
||||||
|
}
|
||||||
|
|
||||||
.AddPermissions-header {
|
.AddPermissions-header {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
|
|||||||
@@ -7,8 +7,10 @@
|
|||||||
/* jshint unused: vars */
|
/* jshint unused: vars */
|
||||||
export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateList', 'ProjectList',
|
export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateList', 'ProjectList',
|
||||||
'InventoryList', 'CredentialList', '$compile', 'generateList', 'GetBasePath',
|
'InventoryList', 'CredentialList', '$compile', 'generateList', 'GetBasePath',
|
||||||
|
'OrganizationList',
|
||||||
function(addPermissionsTeamsList, addPermissionsUsersList, TemplateList, ProjectList,
|
function(addPermissionsTeamsList, addPermissionsUsersList, TemplateList, ProjectList,
|
||||||
InventoryList, CredentialList, $compile, generateList, GetBasePath) {
|
InventoryList, CredentialList, $compile, generateList, GetBasePath,
|
||||||
|
OrganizationList) {
|
||||||
return {
|
return {
|
||||||
restrict: 'E',
|
restrict: 'E',
|
||||||
scope: {
|
scope: {
|
||||||
@@ -27,7 +29,8 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
|
|||||||
JobTemplates: TemplateList,
|
JobTemplates: TemplateList,
|
||||||
WorkflowTemplates: TemplateList,
|
WorkflowTemplates: TemplateList,
|
||||||
Inventories: InventoryList,
|
Inventories: InventoryList,
|
||||||
Credentials: CredentialList
|
Credentials: CredentialList,
|
||||||
|
Organizations: OrganizationList
|
||||||
};
|
};
|
||||||
list = _.cloneDeep(listMap[scope.view]);
|
list = _.cloneDeep(listMap[scope.view]);
|
||||||
list.multiSelect = true;
|
list.multiSelect = true;
|
||||||
@@ -99,6 +102,14 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
|
|||||||
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
|
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
|
||||||
list.fields.organization.columnClass = 'col-md-5 col-sm-5 hidden-xs';
|
list.fields.organization.columnClass = 'col-md-5 col-sm-5 hidden-xs';
|
||||||
break;
|
break;
|
||||||
|
case 'Organizations':
|
||||||
|
list.fields = {
|
||||||
|
name: list.fields.name,
|
||||||
|
description: list.fields.description,
|
||||||
|
};
|
||||||
|
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
|
||||||
|
list.fields.description.columnClass = 'col-md-5 col-sm-5 hidden-xs';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
list.fields = {
|
list.fields = {
|
||||||
name: list.fields.name,
|
name: list.fields.name,
|
||||||
|
|||||||
@@ -270,6 +270,10 @@ export default ['$injector', '$stateExtender', '$log', 'i18n', function($injecto
|
|||||||
credential_search: {
|
credential_search: {
|
||||||
value: {order_by: 'name', page_size: '5', role_level: 'admin_role'},
|
value: {order_by: 'name', page_size: '5', role_level: 'admin_role'},
|
||||||
dynamic: true
|
dynamic: true
|
||||||
|
},
|
||||||
|
organization_search: {
|
||||||
|
value: {order_by: 'name', page_size: '5', role_level: 'admin_role'},
|
||||||
|
dynamic: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ncyBreadcrumb:{
|
ncyBreadcrumb:{
|
||||||
@@ -311,6 +315,12 @@ export default ['$injector', '$stateExtender', '$log', 'i18n', function($injecto
|
|||||||
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
organizationsDataset: ['OrganizationList', 'QuerySet', '$stateParams', 'GetBasePath',
|
||||||
|
function(list, qs, $stateParams, GetBasePath) {
|
||||||
|
let path = GetBasePath(list.basePath) || GetBasePath(list.name);
|
||||||
|
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
||||||
|
}
|
||||||
|
],
|
||||||
},
|
},
|
||||||
onExit: function($state) {
|
onExit: function($state) {
|
||||||
if ($state.transition) {
|
if ($state.transition) {
|
||||||
|
|||||||
Reference in New Issue
Block a user