);
});
test('should render null if not visible', async () => {
diff --git a/awx/ui_next/src/components/TemplateList/TemplateListItem.jsx b/awx/ui_next/src/components/TemplateList/TemplateListItem.jsx
index dc53622737..5638b8d123 100644
--- a/awx/ui_next/src/components/TemplateList/TemplateListItem.jsx
+++ b/awx/ui_next/src/components/TemplateList/TemplateListItem.jsx
@@ -177,13 +177,13 @@ function TemplateListItem({
-
+
-
+
diff --git a/awx/ui_next/src/screens/Inventory/InventoryList/InventoryListItem.jsx b/awx/ui_next/src/screens/Inventory/InventoryList/InventoryListItem.jsx
index 099fd78767..2b2f660efd 100644
--- a/awx/ui_next/src/screens/Inventory/InventoryList/InventoryListItem.jsx
+++ b/awx/ui_next/src/screens/Inventory/InventoryList/InventoryListItem.jsx
@@ -28,7 +28,7 @@ function InventoryListItem({
isSelected: bool.isRequired,
onSelect: func.isRequired,
};
- const [isDisabled, setIsDisabled] = useState(false);
+ const [isCopying, setIsCopying] = useState(false);
const copyInventory = useCallback(async () => {
await InventoriesAPI.copy(inventory.id, {
@@ -38,11 +38,11 @@ function InventoryListItem({
}, [inventory.id, inventory.name, fetchInventories]);
const handleCopyStart = useCallback(() => {
- setIsDisabled(true);
+ setIsCopying(true);
}, []);
const handleCopyFinish = useCallback(() => {
- setIsDisabled(false);
+ setIsCopying(false);
}, []);
const labelId = `check-action-${inventory.id}`;
@@ -115,7 +115,7 @@ function InventoryListItem({
tooltip={i18n._(t`Edit Inventory`)}
>
-
+
diff --git a/awx_collection/plugins/modules/tower_settings.py b/awx_collection/plugins/modules/tower_settings.py
index c2e8ed1ae5..b0f39126c3 100644
--- a/awx_collection/plugins/modules/tower_settings.py
+++ b/awx_collection/plugins/modules/tower_settings.py
@@ -133,7 +133,7 @@ def main():
existing_settings = module.get_endpoint('settings/all')['json']
# Begin a json response
- json_response = {'changed': False, 'old_values': {}}
+ json_output = {'changed': False, 'old_values': {}, 'new_values': {}}
# Check any of the settings to see if anything needs to be updated
needs_update = False
@@ -141,18 +141,29 @@ def main():
if a_setting not in existing_settings or existing_settings[a_setting] != new_settings[a_setting]:
# At least one thing is different so we need to patch
needs_update = True
- json_response['old_values'][a_setting] = existing_settings[a_setting]
+ json_output['old_values'][a_setting] = existing_settings[a_setting]
+ json_output['new_values'][a_setting] = new_settings[a_setting]
+
+ if module._diff:
+ json_output['diff'] = {
+ 'before': json_output['old_values'],
+ 'after': json_output['new_values']
+ }
# If nothing needs an update we can simply exit with the response (as not changed)
if not needs_update:
- module.exit_json(**json_response)
+ module.exit_json(**json_output)
+
+ if module.check_mode and module._diff:
+ json_output['changed'] = True
+ module.exit_json(**json_output)
# Make the call to update the settings
response = module.patch_endpoint('settings/all', **{'data': new_settings})
if response['status_code'] == 200:
# Set the changed response to True
- json_response['changed'] = True
+ json_output['changed'] = True
# To deal with the old style values we need to return 'value' in the response
new_values = {}
@@ -161,11 +172,11 @@ def main():
# If we were using a name we will just add a value of a string, otherwise we will return an array in values
if name is not None:
- json_response['value'] = new_values[name]
+ json_output['value'] = new_values[name]
else:
- json_response['values'] = new_values
+ json_output['values'] = new_values
- module.exit_json(**json_response)
+ module.exit_json(**json_output)
elif 'json' in response and '__all__' in response['json']:
module.fail_json(msg=response['json']['__all__'])
else: