mirror of
https://github.com/ansible/awx.git
synced 2026-05-17 14:27:42 -02:30
Fix for adding batch permissions to teams. Also added logic to properly enable/disable the save button on this modal.
This commit is contained in:
@@ -100,6 +100,21 @@ function(rootScope, scope, $state, i18n, CreateSelect2, GetBasePath, Rest, $q, W
|
|||||||
return Object.keys(scope.selected[tab]).length > 0;
|
return Object.keys(scope.selected[tab]).length > 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
scope.saveEnabled = function(){
|
||||||
|
let missingRole = false;
|
||||||
|
let resourceSelected = false;
|
||||||
|
_.forOwn(scope.selected, function(value, key) {
|
||||||
|
if(Object.keys(value).length > 0) {
|
||||||
|
// A resource from this tab has been selected
|
||||||
|
resourceSelected = true;
|
||||||
|
if(!scope.roleSelection[key]) {
|
||||||
|
missingRole = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return resourceSelected && !missingRole;
|
||||||
|
};
|
||||||
|
|
||||||
// handle form tab changes
|
// handle form tab changes
|
||||||
scope.selectTab = function(selected){
|
scope.selectTab = function(selected){
|
||||||
_.each(scope.tab, (value, key, collection) => {
|
_.each(scope.tab, (value, key, collection) => {
|
||||||
|
|||||||
@@ -176,7 +176,7 @@
|
|||||||
<button type="button"
|
<button type="button"
|
||||||
class="btn btn-sm Form-saveButton"
|
class="btn btn-sm Form-saveButton"
|
||||||
ng-click="saveForm()"
|
ng-click="saveForm()"
|
||||||
ng-disabled="!showSection2Container()">
|
ng-disabled="!saveEnabled()">
|
||||||
Save
|
Save
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export default
|
|||||||
},
|
},
|
||||||
|
|
||||||
related: {
|
related: {
|
||||||
permissions: {
|
users: {
|
||||||
dataPlacement: 'top',
|
dataPlacement: 'top',
|
||||||
awToolTip: i18n._('Please save before adding users'),
|
awToolTip: i18n._('Please save before adding users'),
|
||||||
basePath: 'api/v1/teams/{{$stateParams.team_id}}/access_list/',
|
basePath: 'api/v1/teams/{{$stateParams.team_id}}/access_list/',
|
||||||
@@ -73,15 +73,14 @@ export default
|
|||||||
},
|
},
|
||||||
type: 'collection',
|
type: 'collection',
|
||||||
title: i18n._('Users'),
|
title: i18n._('Users'),
|
||||||
iterator: 'permission',
|
iterator: 'user',
|
||||||
index: false,
|
index: false,
|
||||||
open: false,
|
open: false,
|
||||||
actions: {
|
actions: {
|
||||||
add: {
|
add: {
|
||||||
// @issue https://github.com/ansible/ansible-tower/issues/3487
|
ngClick: "$state.go('.add')",
|
||||||
//ngClick: "addPermissionWithoutTeamTab",
|
|
||||||
label: i18n._('Add'),
|
label: i18n._('Add'),
|
||||||
awToolTip: i18n._('Add user to team'),
|
awToolTip: i18n._('Add User'),
|
||||||
actionClass: 'btn List-buttonSubmit',
|
actionClass: 'btn List-buttonSubmit',
|
||||||
buttonContent: '+ ' + i18n._('ADD'),
|
buttonContent: '+ ' + i18n._('ADD'),
|
||||||
ngShow: '(team_obj.summary_fields.user_capabilities.edit || canAdd)'
|
ngShow: '(team_obj.summary_fields.user_capabilities.edit || canAdd)'
|
||||||
@@ -104,44 +103,44 @@ export default
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
roles: {
|
permissions: {
|
||||||
hideSearchAndActions: true,
|
|
||||||
dataPlacement: 'top',
|
|
||||||
awToolTip: i18n._('Please save before assigning permissions'),
|
|
||||||
basePath: 'api/v1/teams/{{$stateParams.team_id}}/roles/',
|
basePath: 'api/v1/teams/{{$stateParams.team_id}}/roles/',
|
||||||
search: {
|
search: {
|
||||||
page_size: '10',
|
page_size: '10',
|
||||||
// @todo ask about name field / serializer on this endpoint
|
// @todo ask about name field / serializer on this endpoint
|
||||||
order_by: 'id'
|
order_by: 'id'
|
||||||
},
|
},
|
||||||
|
awToolTip: i18n._('Please save before assigning permissions'),
|
||||||
|
dataPlacement: 'top',
|
||||||
|
hideSearchAndActions: true,
|
||||||
type: 'collection',
|
type: 'collection',
|
||||||
title: i18n._('Permissions'),
|
title: i18n._('Permissions'),
|
||||||
iterator: 'role',
|
iterator: 'permission',
|
||||||
open: false,
|
open: false,
|
||||||
index: false,
|
index: false,
|
||||||
emptyListText: i18n._('No permissions have been granted'),
|
emptyListText: i18n._('No permissions have been granted'),
|
||||||
fields: {
|
fields: {
|
||||||
name: {
|
name: {
|
||||||
label: i18n._('Name'),
|
label: i18n._('Name'),
|
||||||
ngBind: 'role.summary_fields.resource_name',
|
ngBind: 'permission.summary_fields.resource_name',
|
||||||
linkTo: '{{convertApiUrl(role.related[role.summary_fields.resource_type])}}',
|
linkTo: '{{convertApiUrl(permission.related[permission.summary_fields.resource_type])}}',
|
||||||
noSort: true
|
noSort: true
|
||||||
},
|
},
|
||||||
type: {
|
type: {
|
||||||
label: i18n._('Type'),
|
label: i18n._('Type'),
|
||||||
ngBind: 'role.summary_fields.resource_type_display_name',
|
ngBind: 'permission.summary_fields.resource_type_display_name',
|
||||||
noSort: true
|
noSort: true
|
||||||
},
|
},
|
||||||
role: {
|
role: {
|
||||||
label: i18n._('Role'),
|
label: i18n._('Role'),
|
||||||
ngBind: 'role.name',
|
ngBind: 'permission.name',
|
||||||
noSort: true
|
noSort: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fieldActions: {
|
fieldActions: {
|
||||||
"delete": {
|
"delete": {
|
||||||
label: i18n._('Remove'),
|
label: i18n._('Remove'),
|
||||||
ngClick: 'deletePermissionFromTeam(team_id, team_obj.name, role.name, role.summary_fields.resource_name, role.related.teams)',
|
ngClick: 'deletePermissionFromTeam(team_id, team_obj.name, permission.name, permission.summary_fields.resource_name, permission.related.teams)',
|
||||||
'class': "List-actionButton--delete",
|
'class': "List-actionButton--delete",
|
||||||
iconClass: 'fa fa-times',
|
iconClass: 'fa fa-times',
|
||||||
awToolTip: i18n._('Dissasociate permission from team'),
|
awToolTip: i18n._('Dissasociate permission from team'),
|
||||||
@@ -156,7 +155,7 @@ export default
|
|||||||
awToolTip: i18n._('Grant Permission'),
|
awToolTip: i18n._('Grant Permission'),
|
||||||
actionClass: 'btn List-buttonSubmit',
|
actionClass: 'btn List-buttonSubmit',
|
||||||
buttonContent: '+ ' + i18n._('ADD PERMISSIONS'),
|
buttonContent: '+ ' + i18n._('ADD PERMISSIONS'),
|
||||||
ngShow: '(puser_obj.summary_fields.user_capabilities.edit || canAdd)'
|
ngShow: '(team_obj.summary_fields.user_capabilities.edit || canAdd)'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ export default
|
|||||||
awToolTip: i18n._('Grant Permission'),
|
awToolTip: i18n._('Grant Permission'),
|
||||||
actionClass: 'btn List-buttonSubmit',
|
actionClass: 'btn List-buttonSubmit',
|
||||||
buttonContent: '+ ' + i18n._('ADD PERMISSIONS'),
|
buttonContent: '+ ' + i18n._('ADD PERMISSIONS'),
|
||||||
ngShow: '(puser_obj.summary_fields.user_capabilities.edit || canAdd)'
|
ngShow: '(user_obj.summary_fields.user_capabilities.edit || canAdd)'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fieldActions: {
|
fieldActions: {
|
||||||
|
|||||||
Reference in New Issue
Block a user