mirror of
https://github.com/ansible/awx.git
synced 2026-03-01 08:48:46 -03:30
CTiT -> adhoc modules should allow the user to add new modules
the adhoc module field was not setup to allow users to input additional options.
This commit is contained in:
@@ -353,23 +353,26 @@ export default [
|
|||||||
clearApiErrors();
|
clearApiErrors();
|
||||||
_.each(keys, function(key) {
|
_.each(keys, function(key) {
|
||||||
if($scope.configDataResolve[key].type === 'choice' || multiselectDropdowns.indexOf(key) !== -1) {
|
if($scope.configDataResolve[key].type === 'choice' || multiselectDropdowns.indexOf(key) !== -1) {
|
||||||
|
|
||||||
|
// Handle AD_HOC_COMMANDS
|
||||||
|
if(multiselectDropdowns.indexOf(key) !== -1) {
|
||||||
|
let newModules = $("#configuration_jobs_template_AD_HOC_COMMANDS > option")
|
||||||
|
.filter("[data-select2-tag=true]")
|
||||||
|
.map((i, val) => ({value: $(val).text()}));
|
||||||
|
newModules.each(function(i, val) {
|
||||||
|
$scope[key].push(val);
|
||||||
|
});
|
||||||
|
|
||||||
|
payload[key] = ConfigurationUtils.listToArray(_.map($scope[key], 'value').join(','));
|
||||||
|
}
|
||||||
|
|
||||||
//Parse dropdowns and dropdowns labeled as lists
|
//Parse dropdowns and dropdowns labeled as lists
|
||||||
if($scope[key] === null) {
|
else if($scope[key] === null) {
|
||||||
payload[key] = null;
|
payload[key] = null;
|
||||||
} else if($scope[key][0] && $scope[key][0].value !== undefined) {
|
} else if($scope[key][0] && $scope[key][0].value !== undefined) {
|
||||||
if(multiselectDropdowns.indexOf(key) !== -1) {
|
payload[key] = _.map($scope[key], 'value').join(',');
|
||||||
// Handle AD_HOC_COMMANDS
|
|
||||||
payload[key] = ConfigurationUtils.listToArray(_.map($scope[key], 'value').join(','));
|
|
||||||
} else {
|
|
||||||
payload[key] = _.map($scope[key], 'value').join(',');
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if(multiselectDropdowns.indexOf(key) !== -1) {
|
payload[key] = $scope[key].value;
|
||||||
// Default AD_HOC_COMMANDS to an empty list
|
|
||||||
payload[key] = $scope[key].value || [];
|
|
||||||
} else {
|
|
||||||
payload[key] = $scope[key].value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if($scope.configDataResolve[key].type === 'list' && $scope[key] !== null) {
|
} else if($scope.configDataResolve[key].type === 'list' && $scope[key] !== null) {
|
||||||
// Parse lists
|
// Parse lists
|
||||||
|
|||||||
@@ -79,7 +79,18 @@ export default [
|
|||||||
function populateAdhocCommand(flag){
|
function populateAdhocCommand(flag){
|
||||||
$scope.$parent.AD_HOC_COMMANDS = $scope.$parent.AD_HOC_COMMANDS.toString();
|
$scope.$parent.AD_HOC_COMMANDS = $scope.$parent.AD_HOC_COMMANDS.toString();
|
||||||
var ad_hoc_commands = $scope.$parent.AD_HOC_COMMANDS.split(',');
|
var ad_hoc_commands = $scope.$parent.AD_HOC_COMMANDS.split(',');
|
||||||
$scope.$parent.AD_HOC_COMMANDS = _.map(ad_hoc_commands, (item) => _.find($scope.$parent.AD_HOC_COMMANDS_options, { value: item }));
|
$scope.$parent.AD_HOC_COMMANDS = _.map(ad_hoc_commands, function(item){
|
||||||
|
let option = _.find($scope.$parent.AD_HOC_COMMANDS_options, { value: item });
|
||||||
|
if(!option){
|
||||||
|
option = {
|
||||||
|
name: item,
|
||||||
|
value: item,
|
||||||
|
label: item
|
||||||
|
};
|
||||||
|
$scope.$parent.AD_HOC_COMMANDS_options.push(option);
|
||||||
|
}
|
||||||
|
return option;
|
||||||
|
});
|
||||||
|
|
||||||
if(flag !== undefined){
|
if(flag !== undefined){
|
||||||
dropdownRendered = flag;
|
dropdownRendered = flag;
|
||||||
@@ -90,6 +101,7 @@ export default [
|
|||||||
CreateSelect2({
|
CreateSelect2({
|
||||||
element: '#configuration_jobs_template_AD_HOC_COMMANDS',
|
element: '#configuration_jobs_template_AD_HOC_COMMANDS',
|
||||||
multiple: true,
|
multiple: true,
|
||||||
|
addNew: true,
|
||||||
placeholder: i18n._('Select commands')
|
placeholder: i18n._('Select commands')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user