mirror of
https://github.com/ansible/awx.git
synced 2026-01-16 04:10:44 -03:30
Greg's Commit which fixed the issue with saving adhoc modules
This commit is contained in:
parent
634c7a8755
commit
155ef47b32
@ -86,7 +86,7 @@ export default [
|
||||
// does a string.split(', ') w/ an extra space
|
||||
// behind the comma.
|
||||
if(key === "AD_HOC_COMMANDS"){
|
||||
$scope[key] = data[key].toString();
|
||||
$scope[key] = data[key];
|
||||
} else if (key === "AUTH_LDAP_USER_SEARCH" || key === "AUTH_LDAP_GROUP_SEARCH") {
|
||||
$scope[key] = JSON.stringify(data[key]);
|
||||
} else {
|
||||
@ -382,7 +382,7 @@ export default [
|
||||
} else if($scope[key][0] && $scope[key][0].value !== undefined) {
|
||||
if(multiselectDropdowns.indexOf(key) !== -1) {
|
||||
// Handle AD_HOC_COMMANDS
|
||||
payload[key] = ConfigurationUtils.listToArray(_.map($scope[key], 'value').join(','));
|
||||
payload[key] = $scope[`${key}_values`];
|
||||
} else {
|
||||
payload[key] = _.map($scope[key], 'value').join(',');
|
||||
}
|
||||
|
||||
@ -79,9 +79,6 @@ export default [
|
||||
noPanel: true
|
||||
});
|
||||
|
||||
// Flag to avoid re-rendering and breaking Select2 dropdowns on tab switching
|
||||
var dropdownRendered = false;
|
||||
|
||||
function initializeCodeInput () {
|
||||
let name = 'AWX_TASK_ENV';
|
||||
|
||||
@ -95,35 +92,33 @@ export default [
|
||||
$scope.parseTypeChange('parseType', name);
|
||||
}
|
||||
|
||||
function populateAdhocCommand(flag){
|
||||
$scope.$parent.AD_HOC_COMMANDS = $scope.$parent.AD_HOC_COMMANDS.toString();
|
||||
var ad_hoc_commands = $scope.$parent.AD_HOC_COMMANDS.split(',');
|
||||
$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;
|
||||
function loadAdHocCommands () {
|
||||
$scope.$parent.AD_HOC_COMMANDS_values = $scope.$parent.AD_HOC_COMMANDS.map(value => value);
|
||||
$scope.$parent.AD_HOC_COMMANDS = $scope.$parent.AD_HOC_COMMANDS.map(value => ({
|
||||
value,
|
||||
name: value,
|
||||
label: value
|
||||
}));
|
||||
|
||||
$scope.$parent.AD_HOC_COMMANDS_options = $scope.$parent.AD_HOC_COMMANDS.map(tag => tag);
|
||||
|
||||
CreateSelect2({
|
||||
element: '#configuration_jobs_template_AD_HOC_COMMANDS',
|
||||
multiple: true,
|
||||
addNew: true,
|
||||
placeholder: i18n._('Select commands')
|
||||
});
|
||||
}
|
||||
|
||||
if(flag !== undefined){
|
||||
dropdownRendered = flag;
|
||||
}
|
||||
function revertAdHocCommands (defaults) {
|
||||
$scope.$parent.AD_HOC_COMMANDS = defaults.map(value => ({
|
||||
value,
|
||||
name: value,
|
||||
label: value
|
||||
}));
|
||||
|
||||
if(!dropdownRendered) {
|
||||
dropdownRendered = true;
|
||||
CreateSelect2({
|
||||
element: '#configuration_jobs_template_AD_HOC_COMMANDS',
|
||||
multiple: true,
|
||||
addNew: true,
|
||||
placeholder: i18n._('Select commands')
|
||||
});
|
||||
}
|
||||
$scope.$parent.AD_HOC_COMMANDS_options = $scope.$parent.AD_HOC_COMMANDS.map(tag => tag);
|
||||
$scope.$parent.AD_HOC_COMMANDS_values = $scope.$parent.AD_HOC_COMMANDS.map(tag => tag.value);
|
||||
}
|
||||
|
||||
// Fix for bug where adding selected opts causes form to be $dirty and triggering modal
|
||||
@ -132,10 +127,26 @@ export default [
|
||||
$scope.$parent.configuration_jobs_template_form.$setPristine();
|
||||
}, 1000);
|
||||
|
||||
$scope.$on('AD_HOC_COMMANDS_populated', function(e, data, flag) {
|
||||
populateAdhocCommand(flag);
|
||||
|
||||
// Managing the state of select2's tags since the behavior is unpredictable otherwise.
|
||||
let commandsElement = $('#configuration_jobs_template_AD_HOC_COMMANDS');
|
||||
|
||||
commandsElement.on('select2:select', event => {
|
||||
let command = event.params.data.text;
|
||||
let commands = $scope.$parent.AD_HOC_COMMANDS_values;
|
||||
|
||||
commands.push(command);
|
||||
});
|
||||
|
||||
commandsElement.on('select2:unselect', event => {
|
||||
let command = event.params.data.text;
|
||||
let commands = $scope.$parent.AD_HOC_COMMANDS_values;
|
||||
|
||||
$scope.$parent.AD_HOC_COMMANDS_values = commands.filter(value => value !== command);
|
||||
});
|
||||
|
||||
$scope.$on('AD_HOC_COMMANDS_reverted', (e, defaults) => revertAdHocCommands(defaults));
|
||||
|
||||
/*
|
||||
* Controllers for each tab are initialized when configuration is opened. A listener
|
||||
* on the URL itself is necessary to determine which tab is active. If a non-active
|
||||
@ -174,7 +185,7 @@ export default [
|
||||
codeInputInitialized = true;
|
||||
}
|
||||
|
||||
populateAdhocCommand(false);
|
||||
loadAdHocCommands();
|
||||
});
|
||||
}
|
||||
];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user