From 0be68fe84fba18b7ee0cf6488fcad0f7cb94c599 Mon Sep 17 00:00:00 2001 From: "Keith J. Grant" Date: Fri, 18 Jun 2021 10:11:40 -0700 Subject: [PATCH 01/43] reduce duplicate network request in JT form --- .../Lookup/ExecutionEnvironmentLookup.jsx | 20 ++++++++++++++++--- .../ExecutionEnvironmentLookup.test.jsx | 10 +++++----- .../JobTemplateAdd/JobTemplateAdd.test.jsx | 4 +++- .../JobTemplateEdit/JobTemplateEdit.jsx | 8 ++------ .../JobTemplateEdit/JobTemplateEdit.test.jsx | 5 +++-- .../Template/shared/JobTemplateForm.jsx | 7 +++++-- .../Template/shared/JobTemplateForm.test.jsx | 10 ++++++++-- awx/ui_next/src/util/useRequest.js | 2 +- 8 files changed, 44 insertions(+), 22 deletions(-) diff --git a/awx/ui_next/src/components/Lookup/ExecutionEnvironmentLookup.jsx b/awx/ui_next/src/components/Lookup/ExecutionEnvironmentLookup.jsx index 2ca14dae42..88af22c807 100644 --- a/awx/ui_next/src/components/Lookup/ExecutionEnvironmentLookup.jsx +++ b/awx/ui_next/src/components/Lookup/ExecutionEnvironmentLookup.jsx @@ -41,7 +41,7 @@ function ExecutionEnvironmentLookup({ const { request: fetchProject, error: fetchProjectError, - isLoading: fetchProjectLoading, + isLoading: isProjectLoading, result: project, } = useRequest( useCallback(async () => { @@ -53,6 +53,7 @@ function ExecutionEnvironmentLookup({ }, [projectId]), { project: null, + isLoading: true, } ); @@ -72,6 +73,12 @@ function ExecutionEnvironmentLookup({ isLoading, } = useRequest( useCallback(async () => { + if (isProjectLoading) { + return { + executionEnvironments: [], + count: 0, + }; + } const params = parseQueryString(QS_CONFIG, location.search); const globallyAvailableParams = globallyAvailable ? { or__organization__isnull: 'True' } @@ -105,7 +112,14 @@ function ExecutionEnvironmentLookup({ actionsResponse.data.actions?.GET || {} ).filter(key => actionsResponse.data.actions?.GET[key].filterable), }; - }, [location, globallyAvailable, organizationId, projectId, project]), + }, [ + location, + globallyAvailable, + organizationId, + projectId, + project, + isProjectLoading, + ]), { executionEnvironments: [], count: 0, @@ -149,7 +163,7 @@ function ExecutionEnvironmentLookup({ fieldName={fieldName} validate={validate} qsConfig={QS_CONFIG} - isLoading={isLoading || fetchProjectLoading} + isLoading={isLoading || isProjectLoading} isDisabled={isDisabled} renderOptionsList={({ state, dispatch, canDelete }) => ( { let wrapper; beforeEach(() => { - ExecutionEnvironmentsAPI.read.mockResolvedValue( - mockedExecutionEnvironments - ); + ExecutionEnvironmentsAPI.read.mockResolvedValue({ + data: mockedExecutionEnvironments, + }); ProjectsAPI.readDetail.mockResolvedValue({ data: { organization: 39 } }); }); @@ -63,7 +63,7 @@ describe('ExecutionEnvironmentLookup', () => { ); }); wrapper.update(); - expect(ExecutionEnvironmentsAPI.read).toHaveBeenCalledTimes(2); + expect(ExecutionEnvironmentsAPI.read).toHaveBeenCalledTimes(1); expect(wrapper.find('ExecutionEnvironmentLookup')).toHaveLength(1); expect( wrapper.find('FormGroup[label="Default Execution Environment"]').length @@ -84,7 +84,7 @@ describe('ExecutionEnvironmentLookup', () => { ); }); - expect(ExecutionEnvironmentsAPI.read).toHaveBeenCalledTimes(2); + expect(ExecutionEnvironmentsAPI.read).toHaveBeenCalledTimes(1); expect( wrapper.find('FormGroup[label="Default Execution Environment"]').length ).toBe(0); diff --git a/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx b/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx index 517194a8c3..81fd95a5ff 100644 --- a/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx +++ b/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx @@ -109,8 +109,10 @@ describe('', () => { let wrapper; await act(async () => { wrapper = mountWithContexts(); - await waitForElement(wrapper, 'EmptyStateBody', el => el.length === 0); + // await waitForElement(wrapper, 'EmptyStateBody', el => el.length === 0); }); + wrapper.update(); + expect(wrapper.find('input#template-description').text()).toBe( defaultProps.description ); diff --git a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx index 0882a1519d..d4e076fe87 100644 --- a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx +++ b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx @@ -18,11 +18,7 @@ function JobTemplateEdit({ template }) { const detailsUrl = `/templates/${template.type}/${template.id}/details`; - const { - request: fetchProject, - error: fetchProjectError, - isLoading: projectLoading, - } = useRequest( + const { request: fetchProject, error: fetchProjectError } = useRequest( useCallback(async () => { await ProjectsAPI.readDetail(template.project); }, [template.project]) @@ -130,7 +126,7 @@ function JobTemplateEdit({ template }) { if (!canEdit) { return ; } - if (isLoading || projectLoading) { + if (isLoading) { return ; } diff --git a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.test.jsx b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.test.jsx index 7eb653e225..fd7683d902 100644 --- a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.test.jsx +++ b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.test.jsx @@ -287,8 +287,8 @@ describe('', () => { wrapper = mountWithContexts( ); - await waitForElement(wrapper, 'EmptyStateBody', el => el.length === 0); }); + wrapper.update(); expect(wrapper.find('FormGroup[label="Host Config Key"]').length).toBe(1); expect( wrapper.find('FormGroup[label="Host Config Key"]').prop('isRequired') @@ -301,8 +301,9 @@ describe('', () => { wrapper = mountWithContexts( ); - await waitForElement(wrapper, 'EmptyStateBody', el => el.length === 0); }); + wrapper.update(); + const updatedTemplateData = { job_type: 'check', name: 'new name', diff --git a/awx/ui_next/src/screens/Template/shared/JobTemplateForm.jsx b/awx/ui_next/src/screens/Template/shared/JobTemplateForm.jsx index 856dc6516d..cdf92d0240 100644 --- a/awx/ui_next/src/screens/Template/shared/JobTemplateForm.jsx +++ b/awx/ui_next/src/screens/Template/shared/JobTemplateForm.jsx @@ -56,7 +56,7 @@ function JobTemplateForm({ setFieldTouched, submitError, validateField, - isOverrideDisabledLookup, + isOverrideDisabledLookup, // TODO: this is a confusing variable name }) { const [contentError, setContentError] = useState(false); const [allowCallbacks, setAllowCallbacks] = useState( @@ -123,7 +123,10 @@ function JobTemplateForm({ setFieldValue('instanceGroups', [...data.results]); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [setFieldValue, template]) + }, [setFieldValue, template]), + { + isLoading: true, + } ); useEffect(() => { diff --git a/awx/ui_next/src/screens/Template/shared/JobTemplateForm.test.jsx b/awx/ui_next/src/screens/Template/shared/JobTemplateForm.test.jsx index 81d80ddd1d..341c433b4f 100644 --- a/awx/ui_next/src/screens/Template/shared/JobTemplateForm.test.jsx +++ b/awx/ui_next/src/screens/Template/shared/JobTemplateForm.test.jsx @@ -185,7 +185,7 @@ describe('', () => { test('should update form values on input changes', async () => { let wrapper; - await act(async () => { + await act(() => { wrapper = mountWithContexts( ', () => { handleCancel={jest.fn()} /> ); - await waitForElement(wrapper, 'EmptyStateBody', el => el.length === 0); }); + wrapper.update(); + await act(async () => { wrapper.find('input#template-name').simulate('change', { target: { value: 'new foo', name: 'name' }, @@ -308,6 +309,8 @@ describe('', () => { } ); }); + wrapper.update(); + act(() => { wrapper.find('Checkbox[aria-label="Enable Webhook"]').invoke('onChange')( true, @@ -392,6 +395,8 @@ describe('', () => { } ); }); + wrapper.update(); + expect( wrapper.find('TextInputBase#template-webhook_key').prop('value') ).toBe('A NEW WEBHOOK KEY WILL BE GENERATED ON SAVE.'); @@ -399,6 +404,7 @@ describe('', () => { wrapper.find('Button[aria-label="Update webhook key"]').prop('isDisabled') ).toBe(true); }); + test('should call handleSubmit when Submit button is clicked', async () => { const handleSubmit = jest.fn(); let wrapper; diff --git a/awx/ui_next/src/util/useRequest.js b/awx/ui_next/src/util/useRequest.js index 54ffb9d6dd..22809f5b78 100644 --- a/awx/ui_next/src/util/useRequest.js +++ b/awx/ui_next/src/util/useRequest.js @@ -18,7 +18,7 @@ import useIsMounted from './useIsMounted'; export default function useRequest(makeRequest, initialValue) { const [result, setResult] = useState(initialValue); const [error, setError] = useState(null); - const [isLoading, setIsLoading] = useState(false); + const [isLoading, setIsLoading] = useState(initialValue?.isLoading || false); const isMounted = useIsMounted(); return { From 55b50609443d2ddf2134caaec85c1800164ef1c8 Mon Sep 17 00:00:00 2001 From: "Keith J. Grant" Date: Fri, 18 Jun 2021 13:03:55 -0700 Subject: [PATCH 02/43] remove duplicate JT credential fetch --- awx/ui_next/src/screens/Template/Template.jsx | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/awx/ui_next/src/screens/Template/Template.jsx b/awx/ui_next/src/screens/Template/Template.jsx index 277d8eb925..cff958ab30 100644 --- a/awx/ui_next/src/screens/Template/Template.jsx +++ b/awx/ui_next/src/screens/Template/Template.jsx @@ -72,16 +72,7 @@ function Template({ setBreadcrumb }) { surveyConfiguration = survey; } if (data.summary_fields.credentials) { - const params = { - page: 1, - page_size: 200, - order_by: 'name', - }; - const { - data: { results }, - } = await JobTemplatesAPI.readCredentials(data.id, params); - - data.summary_fields.credentials = results; + data.summary_fields.credentials = defaultCredentials; } if (actions.data.actions.PUT) { From 9316ace3f6ac7cd9e50d7943f5692e2562985893 Mon Sep 17 00:00:00 2001 From: "Keith J. Grant" Date: Fri, 18 Jun 2021 14:16:07 -0700 Subject: [PATCH 03/43] delete commented line --- .../src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx b/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx index 81fd95a5ff..b2011991b6 100644 --- a/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx +++ b/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.test.jsx @@ -109,7 +109,6 @@ describe('', () => { let wrapper; await act(async () => { wrapper = mountWithContexts(); - // await waitForElement(wrapper, 'EmptyStateBody', el => el.length === 0); }); wrapper.update(); From 88d492371b2e4157fe8a4f4363a673b83fca9389 Mon Sep 17 00:00:00 2001 From: mabashian Date: Mon, 21 Jun 2021 14:59:15 -0400 Subject: [PATCH 04/43] Link users to workflow approval details from workflow node --- .../screens/Job/WorkflowOutput/WorkflowOutputNode.jsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/awx/ui_next/src/screens/Job/WorkflowOutput/WorkflowOutputNode.jsx b/awx/ui_next/src/screens/Job/WorkflowOutput/WorkflowOutputNode.jsx index 24b4307ee6..91a208c1b9 100644 --- a/awx/ui_next/src/screens/Job/WorkflowOutput/WorkflowOutputNode.jsx +++ b/awx/ui_next/src/screens/Job/WorkflowOutput/WorkflowOutputNode.jsx @@ -11,10 +11,7 @@ import { secondsToHHMMSS } from '../../../util/dates'; import { constants as wfConstants } from '../../../components/Workflow/WorkflowUtils'; const NodeG = styled.g` - cursor: ${props => - props.job && props.job.type !== 'workflow_approval' - ? 'pointer' - : 'default'}; + cursor: ${props => (props.job ? 'pointer' : 'default')}; `; const JobTopLine = styled.div` @@ -90,8 +87,10 @@ function WorkflowOutputNode({ mouseEnter, mouseLeave, node }) { } const handleNodeClick = () => { - if (job && job.type !== 'workflow_aproval') { - history.push(`/jobs/${job.id}/details`); + if (job) { + const basePath = + job.type !== 'workflow_approval' ? 'jobs' : 'workflow_approvals'; + history.push(`/${basePath}/${job.id}/details`); } }; From cd83030668ad1cdcc5ad8d3bbeb09d2d67206ee2 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Mon, 21 Jun 2021 14:14:28 -0400 Subject: [PATCH 05/43] Rename sosreport plugin --- setup.py | 2 +- tools/sosreport/controller.py | 68 +++++++++++++++++++++++++++++++++++ tools/sosreport/tower.py | 67 ---------------------------------- 3 files changed, 69 insertions(+), 68 deletions(-) create mode 100644 tools/sosreport/controller.py delete mode 100644 tools/sosreport/tower.py diff --git a/setup.py b/setup.py index 8c28f28a43..9b6a43cbc5 100755 --- a/setup.py +++ b/setup.py @@ -154,7 +154,7 @@ setup( "tools/scripts/ansible-tower-setup", ], ), - ("%s" % sosconfig, ["tools/sosreport/tower.py"]), + ("%s" % sosconfig, ["tools/sosreport/controller.py"]), ] ), options={ diff --git a/tools/sosreport/controller.py b/tools/sosreport/controller.py new file mode 100644 index 0000000000..5827fc6c00 --- /dev/null +++ b/tools/sosreport/controller.py @@ -0,0 +1,68 @@ +# Copyright (c) 2016 Ansible, Inc. +# All Rights Reserved. + +try: + from sos.plugins import Plugin, RedHatPlugin +except ImportError: + from sos.report.plugins import Plugin, RedHatPlugin + +SOSREPORT_CONTROLLER_COMMANDS = [ + "awx-manage --version", # controller version + "awx-manage list_instances", # controller cluster configuration + "awx-manage run_dispatcher --status", # controller dispatch worker status + "awx-manage run_callback_receiver --status", # controller callback worker status + "awx-manage check_license --data", # controller license status + "awx-manage run_wsbroadcast --status", # controller broadcast websocket status + "supervisorctl status", # controller process status + "/var/lib/awx/venv/awx/bin/pip freeze", # pip package list + "/var/lib/awx/venv/awx/bin/pip freeze -l", # pip package list without globally-installed packages + "/var/lib/awx/venv/ansible/bin/pip freeze", # pip package list + "/var/lib/awx/venv/ansible/bin/pip freeze -l", # pip package list without globally-installed packages + "tree -d /var/lib/awx", # show me the dirs + "ls -ll /var/lib/awx", # check permissions + "ls -ll /var/lib/awx/venv", # list all venvs + "ls -ll /etc/tower", + "umask -p", # check current umask +] + +SOSREPORT_CONTROLLER_DIRS = [ + "/etc/tower/", + "/etc/supervisord.d/", + "/etc/nginx/", + "/var/log/tower", + "/var/log/nginx", + "/var/log/supervisor", + "/var/log/redis", + "/etc/opt/rh/rh-redis5/redis.conf", + "/etc/redis.conf", + "/var/opt/rh/rh-redis5/log/redis/redis.log", + "/var/log/dist-upgrade", + "/var/log/installer", + "/var/log/unattended-upgrades", + "/var/log/apport.log", +] + +SOSREPORT_FORBIDDEN_PATHS = [ + "/etc/tower/SECRET_KEY", + "/etc/tower/tower.key", + "/etc/tower/awx.key", + "/etc/tower/tower.cert", + "/etc/tower/awx.cert", + "/var/log/tower/profile", +] + + +class Controller(Plugin, RedHatPlugin): + '''Collect Ansible Automation Platform controller information''' + + plugin_name = "controller" + short_desc = "Ansible Automation Platform controller information" + + def setup(self): + + for path in SOSREPORT_CONTROLLER_DIRS: + self.add_copy_spec(path) + + self.add_forbidden_path(SOSREPORT_FORBIDDEN_PATHS) + + self.add_cmd_output(SOSREPORT_CONTROLLER_COMMANDS) diff --git a/tools/sosreport/tower.py b/tools/sosreport/tower.py deleted file mode 100644 index a8f29f3b45..0000000000 --- a/tools/sosreport/tower.py +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright (c) 2016 Ansible, Inc. -# All Rights Reserved. - -try: - from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin -except ImportError: - from sos.report.plugins import Plugin, RedHatPlugin, UbuntuPlugin - -SOSREPORT_TOWER_COMMANDS = [ - "awx-manage --version", # tower version - "awx-manage list_instances", # tower cluster configuration - "awx-manage run_dispatcher --status", # tower dispatch worker status - "awx-manage run_callback_receiver --status", # tower callback worker status - "awx-manage check_license --data", # tower license status - "awx-manage run_wsbroadcast --status", # tower broadcast websocket status - "supervisorctl status", # tower process status - "/var/lib/awx/venv/awx/bin/pip freeze", # pip package list - "/var/lib/awx/venv/awx/bin/pip freeze -l", # pip package list without globally-installed packages - "/var/lib/awx/venv/ansible/bin/pip freeze", # pip package list - "/var/lib/awx/venv/ansible/bin/pip freeze -l", # pip package list without globally-installed packages - "tree -d /var/lib/awx", # show me the dirs - "ls -ll /var/lib/awx", # check permissions - "ls -ll /var/lib/awx/venv", # list all venvs - "ls -ll /etc/tower", - "umask -p" # check current umask -] - -SOSREPORT_TOWER_DIRS = [ - "/etc/tower/", - "/etc/supervisord.d/", - "/etc/nginx/", - "/var/log/tower", - "/var/log/nginx", - "/var/log/supervisor", - "/var/log/redis", - "/etc/opt/rh/rh-redis5/redis.conf", - "/etc/redis.conf", - "/var/opt/rh/rh-redis5/log/redis/redis.log", - "/var/log/dist-upgrade", - "/var/log/installer", - "/var/log/unattended-upgrades", - "/var/log/apport.log" -] - -SOSREPORT_FORBIDDEN_PATHS = [ - "/etc/tower/SECRET_KEY", - "/etc/tower/tower.key", - "/etc/tower/awx.key", - "/etc/tower/tower.cert", - "/etc/tower/awx.cert", - "/var/log/tower/profile" -] - - -class Tower(Plugin, RedHatPlugin, UbuntuPlugin): - '''Collect Ansible Tower related information''' - plugin_name = "tower" - - def setup(self): - - for path in SOSREPORT_TOWER_DIRS: - self.add_copy_spec(path) - - self.add_forbidden_path(SOSREPORT_FORBIDDEN_PATHS) - - self.add_cmd_output(SOSREPORT_TOWER_COMMANDS) - From 8246d4a298b209a57378d124a721c06f230d406e Mon Sep 17 00:00:00 2001 From: mabashian Date: Mon, 21 Jun 2021 13:03:31 -0400 Subject: [PATCH 06/43] Remove smart inventories from host form inv lookup --- .../src/components/HostForm/HostForm.jsx | 1 + .../src/components/Lookup/InventoryLookup.jsx | 21 +++++++++-- .../Lookup/InventoryLookup.test.jsx | 36 +++++++++++++++++++ 3 files changed, 55 insertions(+), 3 deletions(-) diff --git a/awx/ui_next/src/components/HostForm/HostForm.jsx b/awx/ui_next/src/components/HostForm/HostForm.jsx index 6df19164d5..fb8f231262 100644 --- a/awx/ui_next/src/components/HostForm/HostForm.jsx +++ b/awx/ui_next/src/components/HostForm/HostForm.jsx @@ -39,6 +39,7 @@ const InventoryLookupField = ({ isDisabled }) => { error={inventoryMeta.error} validate={required(t`Select a value for this field`)} isDisabled={isDisabled} + hideSmartInventories /> ); diff --git a/awx/ui_next/src/components/Lookup/InventoryLookup.jsx b/awx/ui_next/src/components/Lookup/InventoryLookup.jsx index f4653321e9..29c667660d 100644 --- a/awx/ui_next/src/components/Lookup/InventoryLookup.jsx +++ b/awx/ui_next/src/components/Lookup/InventoryLookup.jsx @@ -7,7 +7,7 @@ import { Inventory } from '../../types'; import Lookup from './Lookup'; import OptionsList from '../OptionsList'; import useRequest from '../../util/useRequest'; -import { getQSConfig, parseQueryString } from '../../util/qs'; +import { getQSConfig, parseQueryString, mergeParams } from '../../util/qs'; import LookupErrorMessage from './shared/LookupErrorMessage'; import FieldWithPrompt from '../FieldWithPrompt'; @@ -32,6 +32,7 @@ function InventoryLookup({ validate, fieldName, isDisabled, + hideSmartInventories, }) { const { result: { @@ -47,8 +48,15 @@ function InventoryLookup({ } = useRequest( useCallback(async () => { const params = parseQueryString(QS_CONFIG, history.location.search); + const inventoryKindParams = hideSmartInventories + ? { not__kind: 'smart' } + : {}; const [{ data }, actionsResponse] = await Promise.all([ - InventoriesAPI.read(params), + InventoriesAPI.read( + mergeParams(params, { + ...inventoryKindParams, + }) + ), InventoriesAPI.readOptions(), ]); @@ -60,7 +68,12 @@ function InventoryLookup({ ).map(val => val.slice(0, -8)), searchableKeys: Object.keys( actionsResponse.data.actions?.GET || {} - ).filter(key => actionsResponse.data.actions?.GET[key].filterable), + ).filter(key => { + if (key === 'kind' && hideSmartInventories) { + return false; + } + return actionsResponse.data.actions?.GET[key].filterable; + }), canEdit: Boolean(actionsResponse.data.actions.POST) || isOverrideDisabled, }; @@ -230,6 +243,7 @@ InventoryLookup.propTypes = { validate: func, fieldName: string, isDisabled: bool, + hideSmartInventories: bool, }; InventoryLookup.defaultProps = { @@ -239,6 +253,7 @@ InventoryLookup.defaultProps = { validate: () => {}, fieldName: 'inventory', isDisabled: false, + hideSmartInventories: false, }; export default withRouter(InventoryLookup); diff --git a/awx/ui_next/src/components/Lookup/InventoryLookup.test.jsx b/awx/ui_next/src/components/Lookup/InventoryLookup.test.jsx index 019bf50616..ac0662ad30 100644 --- a/awx/ui_next/src/components/Lookup/InventoryLookup.test.jsx +++ b/awx/ui_next/src/components/Lookup/InventoryLookup.test.jsx @@ -48,6 +48,42 @@ describe('InventoryLookup', () => { }); wrapper.update(); expect(InventoriesAPI.read).toHaveBeenCalledTimes(1); + expect(InventoriesAPI.read).toHaveBeenCalledWith({ + order_by: 'name', + page: 1, + page_size: 5, + role_level: 'use_role', + }); + expect(wrapper.find('InventoryLookup')).toHaveLength(1); + expect(wrapper.find('Lookup').prop('isDisabled')).toBe(false); + }); + + test('should fetch only regular inventories when hideSmartInventories is true', async () => { + InventoriesAPI.readOptions.mockReturnValue({ + data: { + actions: { + GET: {}, + POST: {}, + }, + related_search_fields: [], + }, + }); + await act(async () => { + wrapper = mountWithContexts( + + {}} hideSmartInventories /> + + ); + }); + wrapper.update(); + expect(InventoriesAPI.read).toHaveBeenCalledTimes(1); + expect(InventoriesAPI.read).toHaveBeenCalledWith({ + not__kind: 'smart', + order_by: 'name', + page: 1, + page_size: 5, + role_level: 'use_role', + }); expect(wrapper.find('InventoryLookup')).toHaveLength(1); expect(wrapper.find('Lookup').prop('isDisabled')).toBe(false); }); From f0a6567cd8e276423468e65451d0e09bbc2fc5da Mon Sep 17 00:00:00 2001 From: mabashian Date: Tue, 22 Jun 2021 11:09:33 -0400 Subject: [PATCH 07/43] Hide host_filter search key when hiding smart inventories --- awx/ui_next/src/components/Lookup/InventoryLookup.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awx/ui_next/src/components/Lookup/InventoryLookup.jsx b/awx/ui_next/src/components/Lookup/InventoryLookup.jsx index 29c667660d..be18418972 100644 --- a/awx/ui_next/src/components/Lookup/InventoryLookup.jsx +++ b/awx/ui_next/src/components/Lookup/InventoryLookup.jsx @@ -69,7 +69,7 @@ function InventoryLookup({ searchableKeys: Object.keys( actionsResponse.data.actions?.GET || {} ).filter(key => { - if (key === 'kind' && hideSmartInventories) { + if (['kind', 'host_filter'].includes(key) && hideSmartInventories) { return false; } return actionsResponse.data.actions?.GET[key].filterable; From 487d78cc72aa9c2e37ab03384fca8c7f701b0fac Mon Sep 17 00:00:00 2001 From: "Keith J. Grant" Date: Mon, 21 Jun 2021 11:23:15 -0700 Subject: [PATCH 08/43] Don't reload template when navigating to edit form --- .../screens/Template/JobTemplateEdit/JobTemplateEdit.jsx | 3 ++- awx/ui_next/src/screens/Template/Template.jsx | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx index d4e076fe87..d85e07cfa0 100644 --- a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx +++ b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx @@ -10,7 +10,7 @@ import JobTemplateForm from '../shared/JobTemplateForm'; import ContentLoading from '../../../components/ContentLoading'; import { CardBody } from '../../../components/Card'; -function JobTemplateEdit({ template }) { +function JobTemplateEdit({ template, reloadTemplate }) { const history = useHistory(); const [formSubmitError, setFormSubmitError] = useState(null); const [isLoading, setIsLoading] = useState(false); @@ -64,6 +64,7 @@ function JobTemplateEdit({ template }) { submitInstanceGroups(instanceGroups, initialInstanceGroups), submitCredentials(credentials), ]); + reloadTemplate(); history.push(detailsUrl); } catch (error) { setFormSubmitError(error); diff --git a/awx/ui_next/src/screens/Template/Template.jsx b/awx/ui_next/src/screens/Template/Template.jsx index cff958ab30..bc9b990d5c 100644 --- a/awx/ui_next/src/screens/Template/Template.jsx +++ b/awx/ui_next/src/screens/Template/Template.jsx @@ -97,7 +97,7 @@ function Template({ setBreadcrumb }) { useEffect(() => { loadTemplateAndRoles(); - }, [loadTemplateAndRoles, location.pathname]); + }, [loadTemplateAndRoles]); useEffect(() => { if (template) { @@ -205,7 +205,10 @@ function Template({ setBreadcrumb }) { /> - + Date: Tue, 22 Jun 2021 11:45:21 -0400 Subject: [PATCH 09/43] Disable edit fields for managed EE, except pull Disable edit fields for managed EE, except pull options. See: https://github.com/ansible/tower/issues/5016 --- .../shared/ExecutionEnvironmentForm.jsx | 9 +++- .../shared/ExecutionEnvironmentForm.test.jsx | 42 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/awx/ui_next/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx b/awx/ui_next/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx index c2d24642b5..ed6a3f0c41 100644 --- a/awx/ui_next/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx +++ b/awx/ui_next/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx @@ -74,7 +74,10 @@ function ExecutionEnvironmentFormFields({ : null } autoPopulate={!me?.is_superuser ? !executionEnvironment?.id : null} - isDisabled={!!isOrgLookupDisabled && isGloballyAvailable.current} + isDisabled={ + (!!isOrgLookupDisabled && isGloballyAvailable.current) || + executionEnvironment?.managed + } validate={ !me?.is_superuser ? required(t`Select a value for this field`) @@ -93,6 +96,7 @@ function ExecutionEnvironmentFormFields({ type="text" validate={required(null)} isRequired + isDisabled={executionEnvironment?.managed || false} /> {t`The full image location, including the container registry, image name, and version tag.`} @@ -142,6 +147,7 @@ function ExecutionEnvironmentFormFields({ label={t`Description`} name="description" type="text" + isDisabled={executionEnvironment?.managed || false} /> {isOrgLookupDisabled && isGloballyAvailable.current ? ( ); diff --git a/awx/ui_next/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.test.jsx b/awx/ui_next/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.test.jsx index 57e9364f11..dadf06176a 100644 --- a/awx/ui_next/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.test.jsx +++ b/awx/ui_next/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.test.jsx @@ -271,4 +271,46 @@ describe('', () => { newWrapper.update(); expect(newWrapper.find('OrganizationLookup').prop('value')).toEqual(null); }); + + test('should disable edition for managed EEs, except pull option', async () => { + let newWrapper; + await act(async () => { + newWrapper = mountWithContexts( + + ); + }); + await waitForElement(newWrapper, 'ContentLoading', el => el.length === 0); + expect(newWrapper.find('OrganizationLookup').prop('isDisabled')).toEqual( + true + ); + expect(newWrapper.find('CredentialLookup').prop('isDisabled')).toEqual( + true + ); + expect( + newWrapper + .find('TextInputBase[id="execution-environment-name"]') + .prop('isDisabled') + ).toEqual(true); + expect( + newWrapper + .find('TextInputBase[id="execution-environment-description"]') + .prop('isDisabled') + ).toEqual(true); + expect( + newWrapper + .find('TextInputBase[id="execution-environment-image"]') + .prop('isDisabled') + ).toEqual(true); + expect( + newWrapper + .find('FormSelect[id="container-pull-options"]') + .prop('isDisabled') + ).toEqual(false); + }); }); From f08bf4766dbffb6a1bb8ec6268ae1850c711f24a Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Tue, 22 Jun 2021 11:13:20 -0400 Subject: [PATCH 10/43] Add read-only settings for IS_K8S --- awx/main/conf.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/awx/main/conf.py b/awx/main/conf.py index 7d2f6f979a..d8e8b97206 100644 --- a/awx/main/conf.py +++ b/awx/main/conf.py @@ -692,6 +692,15 @@ register( unit=_('seconds'), ) +register( + 'IS_K8S', + field_class=fields.BooleanField, + read_only=True, + category=_('System'), + category_slug='system', + help_text=_('Indicates whether the instance is part of a kubernetes-based deployment.'), +) + def logging_validate(serializer, attrs): if not serializer.instance or not hasattr(serializer.instance, 'LOG_AGGREGATOR_HOST') or not hasattr(serializer.instance, 'LOG_AGGREGATOR_TYPE'): From 4cc734ce6e87279d88d68dbbb7858d0e161fbdc4 Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Tue, 22 Jun 2021 11:15:02 -0400 Subject: [PATCH 11/43] Enable instance group creation for non-k8s deployments only --- .../InstanceGroupList/InstanceGroupList.jsx | 72 +++++++++++-------- .../screens/InstanceGroup/InstanceGroups.jsx | 39 ++++++++-- 2 files changed, 76 insertions(+), 35 deletions(-) diff --git a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx index 352a725c85..2106ca9999 100644 --- a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx @@ -11,6 +11,7 @@ import useSelected from '../../../util/useSelected'; import PaginatedTable, { HeaderRow, HeaderCell, + ToolbarAddButton, ToolbarDeleteButton, } from '../../../components/PaginatedTable'; import ErrorDetail from '../../../components/ErrorDetail'; @@ -43,7 +44,11 @@ function modifyInstanceGroups(items = []) { }); } -function InstanceGroupList() { +function InstanceGroupList({ + isKubernetes, + isSettingsRequestLoading, + settingsRequestError, +}) { const location = useLocation(); const match = useRouteMatch(); @@ -159,32 +164,39 @@ function InstanceGroupList() { const addContainerGroup = t`Add container group`; const addInstanceGroup = t`Add instance group`; - const addButton = ( - - {addContainerGroup} - , - - {addInstanceGroup} - , - ]} - /> - ); + const addButton = + !isSettingsRequestLoading && !isKubernetes ? ( + + {addContainerGroup} + , + + {addInstanceGroup} + , + ]} + /> + ) : ( + + ); const getDetailUrl = item => { return item.is_container_group @@ -199,8 +211,10 @@ function InstanceGroupList() { { + const { + data: { IS_K8S }, + } = await SettingsAPI.readCategory('all'); + return IS_K8S; + }, []), + { isLoading: true } + ); + useEffect(() => { + settingsRequest(); + }, [settingsRequest]); + const [breadcrumbConfig, setBreadcrumbConfig] = useState({ '/instance_groups': t`Instance Groups`, '/instance_groups/add': t`Create new instance group`, @@ -39,6 +59,7 @@ function InstanceGroups() { [`/instance_groups/container_group/${instanceGroups.id}`]: `${instanceGroups.name}`, }); }, []); + return ( <> - - - + {!isSettingsRequestLoading && !isKubernetes ? ( + + + + ) : null} - + From 4de477686e1ecef94825f44e873cb2f6759ea340 Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Tue, 22 Jun 2021 15:05:24 -0400 Subject: [PATCH 12/43] Update help text for hashivault credential plugin --- awx/main/credential_plugins/hashivault.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/awx/main/credential_plugins/hashivault.py b/awx/main/credential_plugins/hashivault.py index adc5be4342..c179fcd1e7 100644 --- a/awx/main/credential_plugins/hashivault.py +++ b/awx/main/credential_plugins/hashivault.py @@ -63,7 +63,15 @@ base_inputs = { 'id': 'secret_path', 'label': _('Path to Secret'), 'type': 'string', - 'help_text': _('The path to the secret stored in the secret backend e.g, /some/secret/'), + 'help_text': _( + ( + 'The path to the secret stored in the secret backend e.g, /some/secret/. It is recommended' + ' that you use the secret backend field to identify the storage backend and to use this field' + ' for locating a specific secret within that store. However, if you prefer to fully identify' + ' both the secret backend and one of its secrets using only this field, join their locations' + ' into a single path without any additional separators, e.g, /location/of/backend/some/secret.' + ) + ), }, { 'id': 'auth_path', From 673f722b718113b6d0aca9d7e92e7da4ab2f6049 Mon Sep 17 00:00:00 2001 From: nixocio Date: Tue, 22 Jun 2021 14:51:35 -0400 Subject: [PATCH 13/43] Update inventory list filters Update inventory list filters See: https://github.com/ansible/awx/issues/7675 --- .../Inventory/InventoryList/InventoryList.jsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/awx/ui_next/src/screens/Inventory/InventoryList/InventoryList.jsx b/awx/ui_next/src/screens/Inventory/InventoryList/InventoryList.jsx index b31f32e097..efc0133ce4 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryList/InventoryList.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryList/InventoryList.jsx @@ -168,6 +168,18 @@ function InventoryList() { key: 'name__icontains', isDefault: true, }, + { + name: t`Inventory Type`, + key: 'or__kind', + options: [ + ['', t`Inventory`], + ['smart', t`Smart Inventory`], + ], + }, + { + name: t`Organization`, + key: 'organization__name', + }, { name: t`Description`, key: 'description__icontains', From 9fddf7c5cf25992c2a830c5d03b05694bc676812 Mon Sep 17 00:00:00 2001 From: Marliana Lara Date: Tue, 22 Jun 2021 17:19:13 -0400 Subject: [PATCH 14/43] Add draggable selected list to galaxy credential lookup --- awx/ui_next/.eslintrc | 1 + .../components/AddRole/SelectResourceStep.jsx | 2 +- .../src/components/AddRole/SelectRoleStep.jsx | 2 +- .../components/Lookup/CredentialLookup.jsx | 31 ++-- awx/ui_next/src/components/Lookup/Lookup.jsx | 4 + .../components/OptionsList/OptionsList.jsx | 53 ++++--- .../SelectedList/DraggableSelectedList.jsx | 132 ++++++++++++++++++ .../DraggableSelectedList.test.jsx | 75 ++++++++++ .../src/components/SelectedList/index.js | 3 +- .../OrganizationAdd/OrganizationAdd.jsx | 20 ++- .../OrganizationEdit/OrganizationEdit.jsx | 61 ++++---- .../Organization/shared/OrganizationForm.jsx | 15 +- 12 files changed, 329 insertions(+), 70 deletions(-) create mode 100644 awx/ui_next/src/components/SelectedList/DraggableSelectedList.jsx create mode 100644 awx/ui_next/src/components/SelectedList/DraggableSelectedList.test.jsx diff --git a/awx/ui_next/.eslintrc b/awx/ui_next/.eslintrc index 8634750ebc..1f83a5dd44 100644 --- a/awx/ui_next/.eslintrc +++ b/awx/ui_next/.eslintrc @@ -63,6 +63,7 @@ "aria-labelledby", "aria-hidden", "aria-controls", + "aria-pressed", "sortKey", "ouiaId", "credentialTypeNamespace", diff --git a/awx/ui_next/src/components/AddRole/SelectResourceStep.jsx b/awx/ui_next/src/components/AddRole/SelectResourceStep.jsx index ee20c2d706..abf3b8d10f 100644 --- a/awx/ui_next/src/components/AddRole/SelectResourceStep.jsx +++ b/awx/ui_next/src/components/AddRole/SelectResourceStep.jsx @@ -6,7 +6,7 @@ import useRequest from '../../util/useRequest'; import { SearchColumns, SortColumns } from '../../types'; import DataListToolbar from '../DataListToolbar'; import CheckboxListItem from '../CheckboxListItem'; -import SelectedList from '../SelectedList'; +import { SelectedList } from '../SelectedList'; import { getQSConfig, parseQueryString } from '../../util/qs'; import PaginatedTable, { HeaderCell, HeaderRow } from '../PaginatedTable'; diff --git a/awx/ui_next/src/components/AddRole/SelectRoleStep.jsx b/awx/ui_next/src/components/AddRole/SelectRoleStep.jsx index 09fea55174..4723c49369 100644 --- a/awx/ui_next/src/components/AddRole/SelectRoleStep.jsx +++ b/awx/ui_next/src/components/AddRole/SelectRoleStep.jsx @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import { t } from '@lingui/macro'; import CheckboxCard from './CheckboxCard'; -import SelectedList from '../SelectedList'; +import { SelectedList } from '../SelectedList'; function RolesStep({ onRolesClick, diff --git a/awx/ui_next/src/components/Lookup/CredentialLookup.jsx b/awx/ui_next/src/components/Lookup/CredentialLookup.jsx index 6ff48d3e6e..bd22183782 100644 --- a/awx/ui_next/src/components/Lookup/CredentialLookup.jsx +++ b/awx/ui_next/src/components/Lookup/CredentialLookup.jsx @@ -29,22 +29,24 @@ const QS_CONFIG = getQSConfig('credentials', { }); function CredentialLookup({ - helperTextInvalid, - label, - isValid, - onBlur, - onChange, - required, + autoPopulate, credentialTypeId, credentialTypeKind, credentialTypeNamespace, - value, - tooltip, - isDisabled, - autoPopulate, - multiple, - validate, + draggable, fieldName, + helperTextInvalid, + isDisabled, + isValid, + label, + modalDescription, + multiple, + onBlur, + onChange, + required, + tooltip, + validate, + value, }) { const history = useHistory(); const autoPopulateLookup = useAutoPopulateLookup(onChange); @@ -174,6 +176,7 @@ function CredentialLookup({ qsConfig={QS_CONFIG} isDisabled={isDisabled} multiple={multiple} + modalDescription={modalDescription} renderOptionsList={({ state, dispatch, canDelete }) => ( dispatch({ type: 'SELECT_ITEM', item })} deselectItem={item => dispatch({ type: 'DESELECT_ITEM', item })} + sortSelectedItems={selectedItems => + dispatch({ type: 'SET_SELECTED_ITEMS', selectedItems }) + } multiple={multiple} + draggable={draggable} /> )} /> diff --git a/awx/ui_next/src/components/Lookup/Lookup.jsx b/awx/ui_next/src/components/Lookup/Lookup.jsx index 0be5b61b85..6a8a4130ed 100644 --- a/awx/ui_next/src/components/Lookup/Lookup.jsx +++ b/awx/ui_next/src/components/Lookup/Lookup.jsx @@ -49,6 +49,7 @@ function Lookup(props) { onDebounce, fieldName, validate, + modalDescription, } = props; const [typedText, setTypedText] = useState(''); const debounceRequest = useDebounce(onDebounce, 1000); @@ -166,6 +167,7 @@ function Lookup(props) { aria-label={t`Lookup modal`} isOpen={isModalOpen} onClose={closeModal} + description={state?.selectedItems?.length > 0 && modalDescription} actions={[ + + + + ); + })} + +
+ {liveText} +
+ + ); +} + +const ListItem = PropTypes.shape({ + id: PropTypes.number.isRequired, + name: PropTypes.string.isRequired, +}); +DraggableSelectedList.propTypes = { + onRemove: PropTypes.func, + onRowDrag: PropTypes.func, + selected: PropTypes.arrayOf(ListItem), +}; +DraggableSelectedList.defaultProps = { + onRemove: () => null, + onRowDrag: () => null, + selected: [], +}; + +export default DraggableSelectedList; diff --git a/awx/ui_next/src/components/SelectedList/DraggableSelectedList.test.jsx b/awx/ui_next/src/components/SelectedList/DraggableSelectedList.test.jsx new file mode 100644 index 0000000000..c0318069c7 --- /dev/null +++ b/awx/ui_next/src/components/SelectedList/DraggableSelectedList.test.jsx @@ -0,0 +1,75 @@ +import React from 'react'; +import { mountWithContexts } from '../../../testUtils/enzymeHelpers'; +import DraggableSelectedList from './DraggableSelectedList'; + +describe('', () => { + let wrapper; + afterEach(() => { + jest.clearAllMocks(); + wrapper.unmount(); + }); + test('should render expected rows', () => { + const mockSelected = [ + { + id: 1, + name: 'foo', + }, + { + id: 2, + name: 'bar', + }, + ]; + wrapper = mountWithContexts( + {}} + onRowDrag={() => {}} + /> + ); + expect(wrapper.find('DraggableSelectedList').length).toBe(1); + expect(wrapper.find('DataListItem').length).toBe(2); + expect( + wrapper + .find('DataListItem DataListCell') + .first() + .containsMatchingElement(1. foo) + ).toEqual(true); + expect( + wrapper + .find('DataListItem DataListCell') + .last() + .containsMatchingElement(2. bar) + ).toEqual(true); + }); + + test('should not render when selected list is empty', () => { + wrapper = mountWithContexts( + {}} + onRowDrag={() => {}} + /> + ); + expect(wrapper.find('DataList').length).toBe(0); + }); + + test('should call onRemove callback prop on remove button click', () => { + const onRemove = jest.fn(); + const mockSelected = [ + { + id: 1, + name: 'foo', + }, + ]; + wrapper = mountWithContexts( + + ); + wrapper + .find('DataListItem[id="foo"] Button[aria-label="Remove"]') + .simulate('click'); + expect(onRemove).toBeCalledWith({ + id: 1, + name: 'foo', + }); + }); +}); diff --git a/awx/ui_next/src/components/SelectedList/index.js b/awx/ui_next/src/components/SelectedList/index.js index 678bdcc62c..34e5e53912 100644 --- a/awx/ui_next/src/components/SelectedList/index.js +++ b/awx/ui_next/src/components/SelectedList/index.js @@ -1 +1,2 @@ -export { default } from './SelectedList'; +export { default as SelectedList } from './SelectedList'; +export { default as DraggableSelectedList } from './DraggableSelectedList'; diff --git a/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.jsx b/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.jsx index 6b821ac875..c65114c6c4 100644 --- a/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.jsx +++ b/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.jsx @@ -42,14 +42,20 @@ function OrganizationAdd() { default_environment: values.default_environment?.id, }); await Promise.all( - groupsToAssociate - .map(id => OrganizationsAPI.associateInstanceGroup(response.id, id)) - .concat( - values.galaxy_credentials.map(({ id: credId }) => - OrganizationsAPI.associateGalaxyCredential(response.id, credId) - ) - ) + groupsToAssociate.map(id => + OrganizationsAPI.associateInstanceGroup(response.id, id) + ) ); + /* eslint-disable no-await-in-loop, no-restricted-syntax */ + // Resolve Promises sequentially to maintain order and avoid race condition + for (const credential of values.galaxy_credentials) { + await OrganizationsAPI.associateGalaxyCredential( + response.id, + credential.id + ); + } + /* eslint-enable no-await-in-loop, no-restricted-syntax */ + history.push(`/organizations/${response.id}`); } catch (error) { setFormError(error); diff --git a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx index 76a548bcba..0fc7a243f9 100644 --- a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx +++ b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx @@ -3,9 +3,14 @@ import PropTypes from 'prop-types'; import { useHistory } from 'react-router-dom'; import { CardBody } from '../../../components/Card'; import { OrganizationsAPI } from '../../../api'; -import { getAddedAndRemoved } from '../../../util/lists'; import OrganizationForm from '../shared/OrganizationForm'; +const isEqual = (array1, array2) => + array1.length === array2.length && + array1.every((element, index) => { + return element.id === array2[index].id; + }); + function OrganizationEdit({ organization }) { const detailsUrl = `/organizations/${organization.id}/details`; const history = useHistory(); @@ -17,43 +22,39 @@ function OrganizationEdit({ organization }) { groupsToDisassociate ) => { try { - const { - added: addedCredentials, - removed: removedCredentials, - } = getAddedAndRemoved( - organization.galaxy_credentials, - values.galaxy_credentials - ); - - const addedCredentialIds = addedCredentials.map(({ id }) => id); - const removedCredentialIds = removedCredentials.map(({ id }) => id); - await OrganizationsAPI.update(organization.id, { ...values, default_environment: values.default_environment?.id || null, }); await Promise.all( - groupsToAssociate - .map(id => - OrganizationsAPI.associateInstanceGroup(organization.id, id) - ) - .concat( - addedCredentialIds.map(id => - OrganizationsAPI.associateGalaxyCredential(organization.id, id) - ) - ) + groupsToAssociate.map(id => + OrganizationsAPI.associateInstanceGroup(organization.id, id) + ) ); await Promise.all( - groupsToDisassociate - .map(id => - OrganizationsAPI.disassociateInstanceGroup(organization.id, id) - ) - .concat( - removedCredentialIds.map(id => - OrganizationsAPI.disassociateGalaxyCredential(organization.id, id) - ) - ) + groupsToDisassociate.map(id => + OrganizationsAPI.disassociateInstanceGroup(organization.id, id) + ) ); + /* eslint-disable no-await-in-loop, no-restricted-syntax */ + // Resolve Promises sequentially to avoid race condition + if ( + !isEqual(organization.galaxy_credentials, values.galaxy_credentials) + ) { + for (const credential of organization.galaxy_credentials) { + await OrganizationsAPI.disassociateGalaxyCredential( + organization.id, + credential.id + ); + } + for (const credential of values.galaxy_credentials) { + await OrganizationsAPI.associateGalaxyCredential( + organization.id, + credential.id + ); + } + } + /* eslint-enable no-await-in-loop, no-restricted-syntax */ history.push(detailsUrl); } catch (error) { setFormError(error); diff --git a/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx b/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx index 45c5c48a0a..6a05672d3f 100644 --- a/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx +++ b/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx @@ -2,7 +2,7 @@ import React, { useCallback, useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import { Formik, useField, useFormikContext } from 'formik'; -import { t } from '@lingui/macro'; +import { t, Trans } from '@lingui/macro'; import { Form } from '@patternfly/react-core'; import { OrganizationsAPI } from '../../../api'; @@ -106,7 +106,20 @@ function OrganizationFormFields({ onChange={handleCredentialUpdate} value={galaxyCredentialsField.value} multiple + draggable fieldName="galaxy_credentials" + modalDescription={ + <> + + Selected + +
+ + Note: The order of these credentials sets precedence for the sync + and lookup of the content. + + + } /> ); From f06490a5f8e3c81c29026dd7ecc17c5c9832b383 Mon Sep 17 00:00:00 2001 From: nixocio Date: Tue, 22 Jun 2021 17:36:57 -0400 Subject: [PATCH 15/43] Fix disparity of dev server and prod build Fix disparity of dev server and prod build See: https://github.com/ansible/awx/issues/9997 --- awx/ui_next/src/border.css | 7 +++++++ awx/ui_next/src/index.jsx | 1 + 2 files changed, 8 insertions(+) create mode 100644 awx/ui_next/src/border.css diff --git a/awx/ui_next/src/border.css b/awx/ui_next/src/border.css new file mode 100644 index 0000000000..78d5b4b585 --- /dev/null +++ b/awx/ui_next/src/border.css @@ -0,0 +1,7 @@ +.pf-c-select__toggle:before { + border-top: var(--pf-c-select__toggle--before--BorderTopWidth) solid var(--pf-c-select__toggle--before--BorderTopColor); + border-right: var(--pf-c-select__toggle--before--BorderRightWidth) solid var(--pf-c-select__toggle--before--BorderRightColor); + border-bottom: var(--pf-c-select__toggle--before--BorderBottomWidth) solid var(--pf-c-select__toggle--before--BorderBottomColor); + border-left: var(--pf-c-select__toggle--before--BorderLeftWidth) solid var(--pf-c-select__toggle--before--BorderLeftColor); +} +/* https://github.com/patternfly/patternfly-react/issues/5650 */ diff --git a/awx/ui_next/src/index.jsx b/awx/ui_next/src/index.jsx index fb7fe4450f..080a1313c2 100644 --- a/awx/ui_next/src/index.jsx +++ b/awx/ui_next/src/index.jsx @@ -2,6 +2,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import './setupCSP'; import '@patternfly/react-core/dist/styles/base.css'; +import './border.css'; import App from './App'; ReactDOM.render( From d3c53977214832544ed944641b485858429188c5 Mon Sep 17 00:00:00 2001 From: Kia Lam Date: Wed, 23 Jun 2021 00:23:10 -0400 Subject: [PATCH 16/43] Add link to project update job details on job details page. --- .../src/screens/Job/JobDetail/JobDetail.jsx | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/awx/ui_next/src/screens/Job/JobDetail/JobDetail.jsx b/awx/ui_next/src/screens/Job/JobDetail/JobDetail.jsx index 2b272dd13c..6bb79b52f7 100644 --- a/awx/ui_next/src/screens/Job/JobDetail/JobDetail.jsx +++ b/awx/ui_next/src/screens/Job/JobDetail/JobDetail.jsx @@ -67,6 +67,7 @@ function JobDetail({ job }) { workflow_job_template: workflowJobTemplate, labels, project, + project_update: projectUpdate, source_workflow_job, execution_environment: executionEnvironment, } = job.summary_fields; @@ -104,6 +105,25 @@ function JobDetail({ job }) { ); }; + const buildProjectDetailValue = () => { + if (projectUpdate) { + return ( + + + + + {project.name} + + ); + } + return ( + + + {project.name} + + ); + }; + return ( @@ -199,15 +219,7 @@ function JobDetail({ job }) { /> )} {project && ( - - {project.status && } - {project.name} - - } - /> + )} {scmBranch && ( Date: Wed, 23 Jun 2021 08:46:11 -0400 Subject: [PATCH 17/43] properly validates credential password fields --- .../components/FormField/PasswordInput.jsx | 12 ++++++-- .../CredentialFormFields/CredentialField.jsx | 17 +++++++++-- .../CredentialPluginField.jsx | 28 +++++++++++-------- 3 files changed, 41 insertions(+), 16 deletions(-) diff --git a/awx/ui_next/src/components/FormField/PasswordInput.jsx b/awx/ui_next/src/components/FormField/PasswordInput.jsx index 4747ef1319..0062ad4cb9 100644 --- a/awx/ui_next/src/components/FormField/PasswordInput.jsx +++ b/awx/ui_next/src/components/FormField/PasswordInput.jsx @@ -12,7 +12,15 @@ import { import { EyeIcon, EyeSlashIcon } from '@patternfly/react-icons'; function PasswordInput(props) { - const { autocomplete, id, name, validate, isRequired, isDisabled } = props; + const { + autocomplete, + id, + name, + validate, + isFieldGroupValid, + isRequired, + isDisabled, + } = props; const [inputType, setInputType] = useState('password'); const [field, meta] = useField({ name, validate }); @@ -44,7 +52,7 @@ function PasswordInput(props) { value={field.value === '$encrypted$' ? '' : field.value} isDisabled={isDisabled} isRequired={isRequired} - validated={isValid ? 'default' : 'error'} + validated={isValid || isFieldGroupValid ? 'default' : 'error'} type={inputType} onChange={(_, event) => { field.onChange(event); diff --git a/awx/ui_next/src/screens/Credential/shared/CredentialFormFields/CredentialField.jsx b/awx/ui_next/src/screens/Credential/shared/CredentialFormFields/CredentialField.jsx index d7c579e2f3..2633da056a 100644 --- a/awx/ui_next/src/screens/Credential/shared/CredentialFormFields/CredentialField.jsx +++ b/awx/ui_next/src/screens/Credential/shared/CredentialFormFields/CredentialField.jsx @@ -26,7 +26,12 @@ const FileUpload = styled(PFFileUpload)` flex-grow: 1; `; -function CredentialInput({ fieldOptions, credentialKind, ...rest }) { +function CredentialInput({ + fieldOptions, + isFieldGroupValid, + credentialKind, + ...rest +}) { const [fileName, setFileName] = useState(''); const [fileIsUploading, setFileIsUploading] = useState(false); const [subFormField, meta, helpers] = useField(`inputs.${fieldOptions.id}`); @@ -116,6 +121,7 @@ function CredentialInput({ fieldOptions, credentialKind, ...rest }) { <> {RevertReplaceButton} { @@ -235,7 +243,10 @@ function CredentialField({ credentialType, fieldOptions }) { isRequired={isRequired} validated={isValid ? 'default' : 'error'} > - + ); } diff --git a/awx/ui_next/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx b/awx/ui_next/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx index 952eeb214a..8b37f241d3 100644 --- a/awx/ui_next/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx +++ b/awx/ui_next/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx @@ -98,15 +98,23 @@ function CredentialPluginField(props) { const [, meta, helpers] = useField(`inputs.${fieldOptions.id}`); const [passwordPromptField] = useField(`passwordPrompts.${fieldOptions.id}`); - const invalidHelperTextToDisplay = meta.error && meta.touched && ( -
- {meta.error} -
- ); + let invalidHelperTextToDisplay; + + if (meta.error && meta.touched) { + invalidHelperTextToDisplay = ( +
+ {meta.error} +
+ ); + } + + if (fieldOptions.id === 'vault_password' && passwordPromptField.value) { + invalidHelperTextToDisplay = null; + } useEffect(() => { if (passwordPromptField.value) { @@ -119,8 +127,6 @@ function CredentialPluginField(props) { <> {fieldOptions.ask_at_runtime ? ( Date: Wed, 23 Jun 2021 10:53:07 -0400 Subject: [PATCH 18/43] Update minikube docs --- docs/development/minikube.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/development/minikube.md b/docs/development/minikube.md index 72ef63399b..ff5a931baa 100644 --- a/docs/development/minikube.md +++ b/docs/development/minikube.md @@ -66,10 +66,11 @@ In the root of awx-operator: ``` $ ansible-playbook ansible/instantiate-awx-deployment.yml \ -e development_mode=yes \ - -e tower_image=quay.io/awx/awx_kube_devel \ - -e tower_image_version=devel \ - -e tower_image_pull_policy=Always \ - -e tower_ingress_type=ingress + -e image=quay.io/awx/awx_kube_devel \ + -e image_version=devel \ + -e image_pull_policy=Always \ + -e service_type=nodeport \ + -e namespace=default ``` ### Custom AWX Development Image for Kubernetes From dc327ceaeb4742627b4f4ec5cf664eee32ef3707 Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Wed, 23 Jun 2021 11:30:03 -0400 Subject: [PATCH 19/43] Autofix problematic dependencies --- awx/ui_next/package-lock.json | 623 +++++++++++++++------------------- 1 file changed, 270 insertions(+), 353 deletions(-) diff --git a/awx/ui_next/package-lock.json b/awx/ui_next/package-lock.json index 4e359bed4a..ee328c3c76 100644 --- a/awx/ui_next/package-lock.json +++ b/awx/ui_next/package-lock.json @@ -3604,12 +3604,6 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3652,9 +3646,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5498,9 +5492,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5541,9 +5535,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5579,9 +5573,9 @@ "dev": true }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5638,9 +5632,9 @@ "dev": true }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5684,9 +5678,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5745,9 +5739,9 @@ } }, "css-what": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.0.tgz", - "integrity": "sha512-qxyKHQvgKwzwDWC/rGbT821eJalfupxYW2qbSJSAtdSTimsr/MlaGONoNLllaUPZWf8QnbcKM/kPVYUQuEKAFA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", + "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", "dev": true }, "cssdb": { @@ -5807,9 +5801,9 @@ } }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5873,9 +5867,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5916,9 +5910,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -6638,9 +6632,9 @@ "dev": true }, "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "requires": { "ip": "^1.1.0", @@ -9593,9 +9587,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14044,9 +14038,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14075,9 +14069,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14108,9 +14102,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14146,9 +14140,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14179,9 +14173,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14211,9 +14205,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14244,9 +14238,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14276,9 +14270,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14311,9 +14305,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14343,9 +14337,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14374,9 +14368,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14406,9 +14400,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14444,9 +14438,9 @@ "dev": true }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14493,9 +14487,9 @@ "dev": true }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14535,9 +14529,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14566,9 +14560,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14597,9 +14591,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14628,9 +14622,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14660,9 +14654,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14692,9 +14686,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14723,9 +14717,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14754,9 +14748,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14785,9 +14779,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14816,9 +14810,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14847,9 +14841,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14879,9 +14873,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14910,9 +14904,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14943,9 +14937,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15047,9 +15041,9 @@ } }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15089,9 +15083,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15120,9 +15114,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15154,9 +15148,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15190,9 +15184,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15233,9 +15227,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15267,9 +15261,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15303,9 +15297,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15337,9 +15331,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15379,9 +15373,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15413,9 +15407,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15451,9 +15445,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15483,9 +15477,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15514,9 +15508,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15549,9 +15543,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15580,9 +15574,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15613,9 +15607,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15647,9 +15641,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15681,9 +15675,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15714,9 +15708,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15747,9 +15741,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15780,9 +15774,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15820,9 +15814,9 @@ "dev": true }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15852,9 +15846,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15885,9 +15879,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15916,9 +15910,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15947,9 +15941,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15979,9 +15973,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16046,9 +16040,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16084,9 +16078,9 @@ "dev": true }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16129,9 +16123,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16163,9 +16157,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16194,9 +16188,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16235,9 +16229,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16267,9 +16261,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16310,9 +16304,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16343,9 +16337,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -17353,16 +17347,16 @@ "dev": true }, "renderkid": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", - "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", "dev": true, "requires": { - "css-select": "^2.0.2", - "dom-converter": "^0.2", - "htmlparser2": "^3.10.1", - "lodash": "^4.17.20", - "strip-ansi": "^3.0.0" + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { @@ -17372,101 +17366,16 @@ "dev": true }, "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", "dev": true, "requires": { "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - } - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" } }, "strip-ansi": { @@ -17643,9 +17552,9 @@ "dev": true }, "resolve-url-loader": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.3.tgz", - "integrity": "sha512-WbDSNFiKPPLem1ln+EVTE+bFUBdTTytfQZWbmghroaFNFaAVmGq0Saqw6F/306CwgPXsGwXVxbODE+3xAo/YbA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz", + "integrity": "sha512-D3sQ04o0eeQEySLrcz4DsX3saHfsr8/N6tfhblxgZKXxMT2Louargg12oGNfoTRLV09GXhVUe5/qgA5vdgNigg==", "dev": true, "requires": { "adjust-sourcemap-loader": "3.0.0", @@ -17654,7 +17563,7 @@ "convert-source-map": "1.7.0", "es6-iterator": "2.0.3", "loader-utils": "1.2.3", - "postcss": "7.0.21", + "postcss": "7.0.36", "rework": "1.0.1", "rework-visit": "1.0.0", "source-map": "0.6.1" @@ -17687,9 +17596,9 @@ } }, "postcss": { - "version": "7.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", - "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -19220,9 +19129,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -21554,12 +21463,20 @@ } }, "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, "requires": { "async-limiter": "~1.0.0" + }, + "dependencies": { + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + } } }, "yargs": { @@ -22046,9 +21963,9 @@ } }, "ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", + "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", "dev": true }, "xml-name-validator": { From 1211faf8df60ad34404b397c52d027d92835a98c Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Tue, 22 Jun 2021 18:14:54 -0400 Subject: [PATCH 20/43] Only derive row count from max counter when job is running. --- .../src/screens/Job/JobOutput/JobOutput.jsx | 48 +++++++++------ .../screens/Job/JobOutput/JobOutput.test.jsx | 60 +++++++++---------- 2 files changed, 61 insertions(+), 47 deletions(-) diff --git a/awx/ui_next/src/screens/Job/JobOutput/JobOutput.jsx b/awx/ui_next/src/screens/Job/JobOutput/JobOutput.jsx index 44f2900f5e..ede75f9963 100644 --- a/awx/ui_next/src/screens/Job/JobOutput/JobOutput.jsx +++ b/awx/ui_next/src/screens/Job/JobOutput/JobOutput.jsx @@ -434,28 +434,42 @@ function JobOutput({ job, eventRelatedSearchableKeys, eventSearchableKeys }) { ); } + const eventPromise = getJobModel(job.type).readEvents(job.id, { + ...params, + ...parseQueryString(QS_CONFIG, location.search), + }); + + let countRequest; + if (isJobRunning(job?.status)) { + // If the job is running, it means we're using limit-offset pagination. Requests + // with limit-offset pagination won't return a total event count for performance + // reasons. In this situation, we derive the remote row count by using the highest + // counter available in the database. + countRequest = async () => { + const { + data: { results: lastEvents = [] }, + } = await getJobModel(job.type).readEvents(job.id, { + order_by: '-counter', + limit: 1, + }); + return lastEvents.length >= 1 ? lastEvents[0].counter : 0; + }; + } else { + countRequest = async () => { + const { + data: { count: eventCount }, + } = await eventPromise; + return eventCount; + }; + } + try { const [ { data: { results: fetchedEvents = [] }, }, - { - data: { results: lastEvents = [] }, - }, - ] = await Promise.all([ - getJobModel(job.type).readEvents(job.id, { - ...params, - ...parseQueryString(QS_CONFIG, location.search), - }), - getJobModel(job.type).readEvents(job.id, { - order_by: '-counter', - limit: 1, - }), - ]); - let count = 0; - if (lastEvents.length >= 1 && lastEvents[0]?.counter) { - count = lastEvents[0]?.counter; - } + count, + ] = await Promise.all([eventPromise, countRequest()]); if (isMounted.current) { let countOffset = 0; diff --git a/awx/ui_next/src/screens/Job/JobOutput/JobOutput.test.jsx b/awx/ui_next/src/screens/Job/JobOutput/JobOutput.test.jsx index 5b9928b4e3..76f419a16b 100644 --- a/awx/ui_next/src/screens/Job/JobOutput/JobOutput.test.jsx +++ b/awx/ui_next/src/screens/Job/JobOutput/JobOutput.test.jsx @@ -13,6 +13,22 @@ import mockFilteredJobEventsData from './data.filtered_job_events.json'; jest.mock('../../../api'); +const applyJobEventMock = mockJobEvents => { + const mockReadEvents = async (jobId, params) => { + const [...results] = mockJobEvents.results; + if (params.order_by && params.order_by.includes('-')) { + results.reverse(); + } + return { + data: { + results, + count: mockJobEvents.count, + }, + }; + }; + JobsAPI.readEvents = jest.fn().mockImplementation(mockReadEvents); +}; + const generateChattyRows = () => { const rows = [ '', @@ -82,24 +98,13 @@ const originalOffsetWidth = Object.getOwnPropertyDescriptor( describe('', () => { let wrapper; const mockJob = mockJobData; - const mockJobEvents = mockJobEventsData; + beforeEach(() => { - JobsAPI.readEvents = (jobId, params) => { - const [...results] = mockJobEvents.results; - if (params.order_by && params.order_by.includes('-')) { - results.reverse(); - } - return { - data: { - results, - }, - }; - }; + applyJobEventMock(mockJobEventsData); }); afterEach(() => { jest.clearAllMocks(); - wrapper.unmount(); }); test('initially renders successfully', async () => { @@ -141,7 +146,7 @@ describe('', () => { }); wrapper.update(); jobEvents = wrapper.find('JobEvent'); - expect(jobEvents.at(jobEvents.length - 1).prop('stdout')).toBe( + expect(jobEvents.at(jobEvents.length - 2).prop('stdout')).toBe( '\r\nPLAY RECAP *********************************************************************\r\n\u001b[0;32mlocalhost\u001b[0m : \u001b[0;32mok=1 \u001b[0m changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \r\n' ); await act(async () => { @@ -149,10 +154,10 @@ describe('', () => { }); wrapper.update(); jobEvents = wrapper.find('JobEvent'); - expect(jobEvents.at(1).prop('stdout')).toBe( + expect(jobEvents.at(0).prop('stdout')).toBe( '\u001b[0;32mok: [localhost] => (item=76) => {\u001b[0m\r\n\u001b[0;32m "msg": "This is a debug message: 76"\u001b[0m\r\n\u001b[0;32m}\u001b[0m' ); - expect(jobEvents.at(2).prop('stdout')).toBe( + expect(jobEvents.at(1).prop('stdout')).toBe( '\u001b[0;32mok: [localhost] => (item=77) => {\u001b[0m\r\n\u001b[0;32m "msg": "This is a debug message: 77"\u001b[0m\r\n\u001b[0;32m}\u001b[0m' ); await act(async () => { @@ -169,7 +174,7 @@ describe('', () => { }); wrapper.update(); jobEvents = wrapper.find('JobEvent'); - expect(jobEvents.at(jobEvents.length - 1).prop('stdout')).toBe( + expect(jobEvents.at(jobEvents.length - 2).prop('stdout')).toBe( '\r\nPLAY RECAP *********************************************************************\r\n\u001b[0;32mlocalhost\u001b[0m : \u001b[0;32mok=1 \u001b[0m changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 \r\n' ); Object.defineProperty( @@ -266,11 +271,7 @@ describe('', () => { wrapper = mountWithContexts(); }); await waitForElement(wrapper, 'JobEvent', el => el.length > 0); - JobsAPI.readEvents = jest.fn(); - JobsAPI.readEvents.mockClear(); - JobsAPI.readEvents.mockResolvedValueOnce({ - data: mockFilteredJobEventsData, - }); + applyJobEventMock(mockFilteredJobEventsData); await act(async () => { wrapper.find(searchTextInput).instance().value = '99'; wrapper.find(searchTextInput).simulate('change'); @@ -281,14 +282,13 @@ describe('', () => { }); wrapper.update(); expect(JobsAPI.readEvents).toHaveBeenCalled(); - // TODO: Fix these assertions - // const jobEvents = wrapper.find('JobEvent'); - // expect(jobEvents.at(0).prop('stdout')).toBe( - // '\u001b[0;32mok: [localhost] => (item=99) => {\u001b[0m\r\n\u001b[0;32m "msg": "This is a debug message: 99"\u001b[0m\r\n\u001b[0;32m}\u001b[0m' - // ); - // expect(jobEvents.at(1).prop('stdout')).toBe( - // '\u001b[0;32mok: [localhost] => (item=199) => {\u001b[0m\r\n\u001b[0;32m "msg": "This is a debug message: 199"\u001b[0m\r\n\u001b[0;32m}\u001b[0m' - // ); + const jobEvents = wrapper.find('JobEvent'); + expect(jobEvents.at(0).prop('stdout')).toBe( + '\u001b[0;32mok: [localhost] => (item=99) => {\u001b[0m\r\n\u001b[0;32m "msg": "This is a debug message: 99"\u001b[0m\r\n\u001b[0;32m}\u001b[0m' + ); + expect(jobEvents.at(1).prop('stdout')).toBe( + '\u001b[0;32mok: [localhost] => (item=199) => {\u001b[0m\r\n\u001b[0;32m "msg": "This is a debug message: 199"\u001b[0m\r\n\u001b[0;32m}\u001b[0m' + ); }); test('should throw error', async () => { From 0d7ef709bfbbb99601f501bc7167e20f16f64602 Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Wed, 23 Jun 2021 12:10:52 -0400 Subject: [PATCH 21/43] Prevent jobs from trying to run on controlplane in k8s --- awx/main/models/unified_jobs.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index fbbede899d..01c5467768 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -1437,7 +1437,12 @@ class UnifiedJob( def global_instance_groups(self): from awx.main.models.ha import InstanceGroup - default_instance_groups = InstanceGroup.objects.filter(name__in=[settings.DEFAULT_EXECUTION_QUEUE_NAME, settings.DEFAULT_CONTROL_PLANE_QUEUE_NAME]) + default_instance_group_names = [settings.DEFAULT_EXECUTION_QUEUE_NAME] + + if not settings.IS_K8S: + default_instance_group_names.append(settings.DEFAULT_CONTROL_PLANE_QUEUE_NAME) + + default_instance_groups = InstanceGroup.objects.filter(name__in=default_instance_group_names) return list(default_instance_groups) From b98544264b9b50b05fd7cddfd6721f9a28b1c09c Mon Sep 17 00:00:00 2001 From: Marliana Lara Date: Wed, 23 Jun 2021 13:13:27 -0400 Subject: [PATCH 22/43] Rename draggable prop and fix typos --- awx/ui_next/src/components/Lookup/CredentialLookup.jsx | 4 ++-- awx/ui_next/src/components/OptionsList/OptionsList.jsx | 8 ++++---- .../src/components/SelectedList/DraggableSelectedList.jsx | 4 ++-- .../src/screens/Organization/shared/OrganizationForm.jsx | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/awx/ui_next/src/components/Lookup/CredentialLookup.jsx b/awx/ui_next/src/components/Lookup/CredentialLookup.jsx index bd22183782..97edad1d97 100644 --- a/awx/ui_next/src/components/Lookup/CredentialLookup.jsx +++ b/awx/ui_next/src/components/Lookup/CredentialLookup.jsx @@ -33,10 +33,10 @@ function CredentialLookup({ credentialTypeId, credentialTypeKind, credentialTypeNamespace, - draggable, fieldName, helperTextInvalid, isDisabled, + isSelectedDraggable, isValid, label, modalDescription, @@ -215,7 +215,7 @@ function CredentialLookup({ dispatch({ type: 'SET_SELECTED_ITEMS', selectedItems }) } multiple={multiple} - draggable={draggable} + isSelectedDraggable={isSelectedDraggable} /> )} /> diff --git a/awx/ui_next/src/components/OptionsList/OptionsList.jsx b/awx/ui_next/src/components/OptionsList/OptionsList.jsx index 9180e0e11d..f271c7cb74 100644 --- a/awx/ui_next/src/components/OptionsList/OptionsList.jsx +++ b/awx/ui_next/src/components/OptionsList/OptionsList.jsx @@ -26,9 +26,9 @@ function OptionsList({ contentError, deselectItem, displayKey, - draggable, header, isLoading, + isSelectedDraggable, multiple, name, optionCount, @@ -46,7 +46,7 @@ function OptionsList({ }) { let selectionPreview = null; if (value.length > 0) { - if (draggable) { + if (isSelectedDraggable) { selectionPreview = ( { setId(newId); - setLiveText(t`Dragging tarted for item id: ${newId}.`); + setLiveText(t`Dragging started for item id: ${newId}.`); }; const onDragMove = (oldIndex, newIndex) => { diff --git a/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx b/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx index 6a05672d3f..f5d37b56dc 100644 --- a/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx +++ b/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx @@ -106,7 +106,7 @@ function OrganizationFormFields({ onChange={handleCredentialUpdate} value={galaxyCredentialsField.value} multiple - draggable + isSelectedDraggable fieldName="galaxy_credentials" modalDescription={ <> From 5ffffebe34633ea377123530d44a8cb8fea891b4 Mon Sep 17 00:00:00 2001 From: "Christian M. Adams" Date: Wed, 23 Jun 2021 09:22:32 -0400 Subject: [PATCH 23/43] Attempt to check/wait for migrations 30x (~12 min) - the task container needs to wait longer for migrations to complete for fresh installs before starting services - otherwise, services start prematurely and clutter the logs with errors because migrations are mid-flight --- tools/ansible/roles/dockerfile/files/wait-for-migrations | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ansible/roles/dockerfile/files/wait-for-migrations b/tools/ansible/roles/dockerfile/files/wait-for-migrations index 3c92f2630c..aec55fbf46 100755 --- a/tools/ansible/roles/dockerfile/files/wait-for-migrations +++ b/tools/ansible/roles/dockerfile/files/wait-for-migrations @@ -7,7 +7,7 @@ readonly CMDNAME=$(basename "$0") readonly MIN_SLEEP=0.5 readonly MAX_SLEEP=30 -readonly ATTEMPTS=10 +readonly ATTEMPTS=30 readonly TIMEOUT=60 log_message() { echo "[${CMDNAME}]" "$@" >&2; } From d0b7d970c49e0428aa270ec8cf11ee70ce776380 Mon Sep 17 00:00:00 2001 From: Alan Rominger Date: Wed, 23 Jun 2021 13:46:38 -0400 Subject: [PATCH 24/43] Create partition for 2 job types that bypass TM (#5138) * Create partition for 2 job types that bypass TM * Mock create_partition in unit tests --- awx/main/tasks.py | 5 ++++- awx/main/tests/functional/test_tasks.py | 22 ++++++++++++---------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index ba8a61e9dd..ba509563f2 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -87,7 +87,7 @@ from awx.main.exceptions import AwxTaskError, PostRunError from awx.main.queue import CallbackQueueDispatcher from awx.main.dispatch.publish import task from awx.main.dispatch import get_local_queuename, reaper -from awx.main.utils import ( +from awx.main.utils.common import ( update_scm_url, ignore_inventory_computed_fields, ignore_inventory_group_removal, @@ -97,6 +97,7 @@ from awx.main.utils import ( deepmerge, parse_yaml_or_json, cleanup_new_process, + create_partition, ) from awx.main.utils.execution_environments import get_default_pod_spec, CONTAINER_ROOT, to_container_path from awx.main.utils.ansible import read_ansible_config @@ -1791,6 +1792,7 @@ class RunJob(BaseTask): if 'update_' not in sync_metafields['job_tags']: sync_metafields['scm_revision'] = job_revision local_project_sync = job.project.create_project_update(_eager_fields=sync_metafields) + create_partition(local_project_sync.event_class._meta.db_table, start=local_project_sync.created) # save the associated job before calling run() so that a # cancel() call on the job can cancel the project update job = self.update_model(job.pk, project_update=local_project_sync) @@ -2081,6 +2083,7 @@ class RunProjectUpdate(BaseTask): ) ) try: + create_partition(local_inv_update.event_class._meta.db_table, start=local_inv_update.created) inv_update_class().run(local_inv_update.id) except Exception: logger.exception('{} Unhandled exception updating dependent SCM inventory sources.'.format(project_update.log_format)) diff --git a/awx/main/tests/functional/test_tasks.py b/awx/main/tests/functional/test_tasks.py index 70223a09b7..00b31596c0 100644 --- a/awx/main/tests/functional/test_tasks.py +++ b/awx/main/tests/functional/test_tasks.py @@ -40,11 +40,12 @@ class TestDependentInventoryUpdate: scm_inventory_source.scm_last_revision = '' proj_update = ProjectUpdate.objects.create(project=scm_inventory_source.source_project) with mock.patch.object(RunInventoryUpdate, 'run') as iu_run_mock: - task._update_dependent_inventories(proj_update, [scm_inventory_source]) - assert InventoryUpdate.objects.count() == 1 - inv_update = InventoryUpdate.objects.first() - iu_run_mock.assert_called_once_with(inv_update.id) - assert inv_update.source_project_update_id == proj_update.pk + with mock.patch('awx.main.tasks.create_partition'): + task._update_dependent_inventories(proj_update, [scm_inventory_source]) + assert InventoryUpdate.objects.count() == 1 + inv_update = InventoryUpdate.objects.first() + iu_run_mock.assert_called_once_with(inv_update.id) + assert inv_update.source_project_update_id == proj_update.pk def test_dependent_inventory_project_cancel(self, project, inventory): """ @@ -63,8 +64,9 @@ class TestDependentInventoryUpdate: ProjectUpdate.objects.all().update(cancel_flag=True) with mock.patch.object(RunInventoryUpdate, 'run') as iu_run_mock: - iu_run_mock.side_effect = user_cancels_project - task._update_dependent_inventories(proj_update, [is1, is2]) - # Verify that it bails after 1st update, detecting a cancel - assert is2.inventory_updates.count() == 0 - iu_run_mock.assert_called_once() + with mock.patch('awx.main.tasks.create_partition'): + iu_run_mock.side_effect = user_cancels_project + task._update_dependent_inventories(proj_update, [is1, is2]) + # Verify that it bails after 1st update, detecting a cancel + assert is2.inventory_updates.count() == 0 + iu_run_mock.assert_called_once() From 057bd6e625ade284b813e301bbfc31903697c59e Mon Sep 17 00:00:00 2001 From: nixocio Date: Wed, 23 Jun 2021 13:27:06 -0400 Subject: [PATCH 25/43] Remove plus button job output Remove plus button job output since this feature was not implemented yet. And it will be evaluated for a future release. See: https://github.com/ansible/awx/issues/6613 --- awx/ui_next/src/screens/Job/JobOutput/PageControls.jsx | 10 +--------- .../src/screens/Job/JobOutput/PageControls.test.jsx | 3 --- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/awx/ui_next/src/screens/Job/JobOutput/PageControls.jsx b/awx/ui_next/src/screens/Job/JobOutput/PageControls.jsx index 9749e83748..70d6ab07a2 100644 --- a/awx/ui_next/src/screens/Job/JobOutput/PageControls.jsx +++ b/awx/ui_next/src/screens/Job/JobOutput/PageControls.jsx @@ -4,7 +4,6 @@ import React from 'react'; import { t } from '@lingui/macro'; import { Button as PFButton } from '@patternfly/react-core'; import { - PlusIcon, AngleDoubleUpIcon, AngleDoubleDownIcon, AngleUpIcon, @@ -17,6 +16,7 @@ const Wrapper = styled.div` height: 35px; outline: 1px solid #d7d7d7; width: 100%; + justify-content: flex-end; `; const Button = styled(PFButton)` @@ -31,14 +31,6 @@ const PageControls = ({ onScrollPrevious, }) => ( - From 69388edaf9983770b01c2516361dfa406d347fb5 Mon Sep 17 00:00:00 2001 From: Tiago Date: Wed, 23 Jun 2021 17:53:12 -0300 Subject: [PATCH 29/43] fix lint --- .../src/components/SelectedList/DraggableSelectedList.jsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/awx/ui_next/src/components/SelectedList/DraggableSelectedList.jsx b/awx/ui_next/src/components/SelectedList/DraggableSelectedList.jsx index b60c8b139d..8e1231fd4c 100644 --- a/awx/ui_next/src/components/SelectedList/DraggableSelectedList.jsx +++ b/awx/ui_next/src/components/SelectedList/DraggableSelectedList.jsx @@ -88,9 +88,7 @@ function DraggableSelectedList({ selected, onRemove, onRowDrag }) { - - {`${rowPosition}. ${label}`} - + {`${rowPosition}. ${label}`} , ]} /> From 03fb12d4c281f6d1da2bd640d0b3c0e62d848cf4 Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Thu, 24 Jun 2021 10:05:24 -0400 Subject: [PATCH 30/43] Force system jobs to always run on control plane --- awx/main/models/jobs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index c313ab2000..34c3610220 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -1246,7 +1246,7 @@ class SystemJob(UnifiedJob, SystemJobOptions, JobNotificationMixin): @property def preferred_instance_groups(self): - return self.global_instance_groups + return self.control_plane_instance_group ''' JobNotificationMixin From 3be29d54ad4cc97e180a96b571029338f8f90ed6 Mon Sep 17 00:00:00 2001 From: Jeff Bradberry Date: Thu, 24 Jun 2021 09:55:51 -0400 Subject: [PATCH 31/43] Bump ansible-runner to 2.0.0.0rc2 and receptorctl to 1.0.0.0rc1 --- requirements/requirements.in | 4 +-- requirements/requirements.txt | 62 +++++++++++++++++------------------ 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/requirements/requirements.in b/requirements/requirements.in index 9eb1957a36..9aebd41631 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -1,5 +1,5 @@ aiohttp -ansible-runner==2.0.0.0b1 +ansible-runner==2.0.0.0rc2 ansiconv==1.0.0 # UPGRADE BLOCKER: from 2013, consider replacing instead of upgrading asciichartpy autobahn>=20.12.3 # CVE-2020-35678 @@ -45,7 +45,7 @@ python3-saml python-dsv-sdk python-ldap>=3.3.1 # https://github.com/python-ldap/python-ldap/issues/270 pyyaml>=5.4.1 # minimum to fix https://github.com/yaml/pyyaml/issues/478 -receptorctl +receptorctl==1.0.0.0rc1 schedule==0.6.0 social-auth-core==3.3.1 # see UPGRADE BLOCKERs social-auth-app-django==3.1.0 # see UPGRADE BLOCKERs diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 68bc58e16b..7c175e4ebd 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -4,7 +4,7 @@ aiohttp==3.6.2 # via -r /awx_devel/requirements/requirements.in aioredis==1.3.1 # via channels-redis -ansible-runner==2.0.0.0b1 +ansible-runner==2.0.0.0rc2 # via -r /awx_devel/requirements/requirements.in ansiconv==1.0.0 # via -r /awx_devel/requirements/requirements.in @@ -47,12 +47,12 @@ cachetools==4.0.0 # requests cffi==1.14.0 # via cryptography -channels-redis==3.1.0 - # via -r /awx_devel/requirements/requirements.in channels==2.4.0 # via # -r /awx_devel/requirements/requirements.in # channels-redis +channels-redis==3.1.0 + # via -r /awx_devel/requirements/requirements.in chardet==3.0.4 # via # aiohttp @@ -85,6 +85,19 @@ dictdiffer==0.8.1 # via openshift distro==1.5.0 # via -r /awx_devel/requirements/requirements.in +django==2.2.16 + # via + # -r /awx_devel/requirements/requirements.in + # channels + # django-auth-ldap + # django-cors-headers + # django-crum + # django-guid + # django-jsonfield + # django-oauth-toolkit + # django-polymorphic + # django-taggit + # djangorestframework django-auth-ldap==2.1.0 # via -r /awx_devel/requirements/requirements.in django-cors-headers==3.7.0 @@ -115,23 +128,10 @@ django-split-settings==1.0.0 # via -r /awx_devel/requirements/requirements.in django-taggit==1.2.0 # via -r /awx_devel/requirements/requirements.in -django==2.2.16 - # via - # -r /awx_devel/requirements/requirements.in - # channels - # django-auth-ldap - # django-cors-headers - # django-crum - # django-guid - # django-jsonfield - # django-oauth-toolkit - # django-polymorphic - # django-taggit - # djangorestframework -djangorestframework-yaml==1.0.3 - # via -r /awx_devel/requirements/requirements.in djangorestframework==3.12.1 # via -r /awx_devel/requirements/requirements.in +djangorestframework-yaml==1.0.3 + # via -r /awx_devel/requirements/requirements.in docutils==0.16 # via python-daemon future==0.16.0 @@ -237,17 +237,17 @@ psycopg2==2.8.4 # via -r /awx_devel/requirements/requirements.in ptyprocess==0.6.0 # via pexpect -pyasn1-modules==0.2.8 - # via - # google-auth - # python-ldap - # service-identity pyasn1==0.4.8 # via # pyasn1-modules # python-ldap # rsa # service-identity +pyasn1-modules==0.2.8 + # via + # google-auth + # python-ldap + # service-identity pycparser==2.20 # via cffi pygerduty==0.38.2 @@ -299,17 +299,12 @@ pyyaml==5.4.1 # djangorestframework-yaml # kubernetes # receptorctl -receptorctl==1.0.0.0a2 +receptorctl==1.0.0.0rc1 # via -r /awx_devel/requirements/requirements.in redis==3.4.1 # via # -r /awx_devel/requirements/requirements.in # django-redis -requests-oauthlib==1.3.0 - # via - # kubernetes - # msrest - # social-auth-core requests==2.23.0 # via # -r /awx_devel/requirements/requirements.in @@ -323,12 +318,17 @@ requests==2.23.0 # slackclient # social-auth-core # twilio +requests-oauthlib==1.3.0 + # via + # kubernetes + # msrest + # social-auth-core rsa==4.0 # via google-auth -ruamel.yaml.clib==0.2.0 - # via ruamel.yaml ruamel.yaml==0.16.10 # via openshift +ruamel.yaml.clib==0.2.0 + # via ruamel.yaml schedule==0.6.0 # via -r /awx_devel/requirements/requirements.in service-identity==18.1.0 From 397908543dfeba064d9d20223a434550b48f582d Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Thu, 24 Jun 2021 12:39:08 -0400 Subject: [PATCH 32/43] Disable activity stream for updates in status handler --- awx/main/tasks.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 4c70130c28..8b2dea2014 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -1268,11 +1268,17 @@ class BaseTask(object): for k, v in self.safe_env.items(): if k in job_env: job_env[k] = v - self.instance = self.update_model(self.instance.pk, job_args=json.dumps(runner_config.command), job_cwd=runner_config.cwd, job_env=job_env) + from awx.main.signals import disable_activity_stream # Circular import + + with disable_activity_stream(): + self.instance = self.update_model(self.instance.pk, job_args=json.dumps(runner_config.command), job_cwd=runner_config.cwd, job_env=job_env) elif status_data['status'] == 'error': result_traceback = status_data.get('result_traceback', None) if result_traceback: - self.instance = self.update_model(self.instance.pk, result_traceback=result_traceback) + from awx.main.signals import disable_activity_stream # Circular import + + with disable_activity_stream(): + self.instance = self.update_model(self.instance.pk, result_traceback=result_traceback) @with_path_cleanup def run(self, pk, **kwargs): From 8dc788dbcbe4e447945f7436c22ef75b9699745f Mon Sep 17 00:00:00 2001 From: "Keith J. Grant" Date: Thu, 24 Jun 2021 10:01:34 -0700 Subject: [PATCH 33/43] clean up responsive behavior of advanced search --- .../DataListToolbar/DataListToolbar.jsx | 16 +++++++++++++++- .../src/components/Search/AdvancedSearch.jsx | 4 ++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/awx/ui_next/src/components/DataListToolbar/DataListToolbar.jsx b/awx/ui_next/src/components/DataListToolbar/DataListToolbar.jsx index cd1abc224c..268fd3d3e9 100644 --- a/awx/ui_next/src/components/DataListToolbar/DataListToolbar.jsx +++ b/awx/ui_next/src/components/DataListToolbar/DataListToolbar.jsx @@ -1,15 +1,17 @@ import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; +import styled from 'styled-components'; import { t } from '@lingui/macro'; import { Checkbox, Toolbar, - ToolbarContent, + ToolbarContent as PFToolbarContent, ToolbarGroup, ToolbarItem, ToolbarToggleGroup, Dropdown, + DropdownPosition, KebabToggle, } from '@patternfly/react-core'; import { SearchIcon } from '@patternfly/react-icons'; @@ -19,6 +21,12 @@ import Sort from '../Sort'; import { SearchColumns, SortColumns, QSConfig } from '../../types'; import { KebabifiedProvider } from '../../contexts/Kebabified'; +const ToolbarContent = styled(PFToolbarContent)` + & > .pf-c-toolbar__content-section { + flex-wrap: nowrap; + } +`; + function DataListToolbar({ itemCount, clearAllFilters, @@ -47,6 +55,11 @@ function DataListToolbar({ const [isKebabModalOpen, setIsKebabModalOpen] = useState(false); const [isAdvancedSearchShown, setIsAdvancedSearchShown] = useState(false); + const viewportWidth = + window.innerWidth || document.documentElement.clientWidth; + const dropdownPosition = + viewportWidth >= 992 ? DropdownPosition.right : DropdownPosition.left; + const onShowAdvancedSearch = shown => { setIsAdvancedSearchShown(shown); setIsKebabOpen(false); @@ -135,6 +148,7 @@ function DataListToolbar({ /> } isOpen={isKebabOpen} + position={dropdownPosition} isPlain dropdownItems={additionalControls} /> diff --git a/awx/ui_next/src/components/Search/AdvancedSearch.jsx b/awx/ui_next/src/components/Search/AdvancedSearch.jsx index cf74873254..7bf97e0bd7 100644 --- a/awx/ui_next/src/components/Search/AdvancedSearch.jsx +++ b/awx/ui_next/src/components/Search/AdvancedSearch.jsx @@ -24,6 +24,10 @@ const AdvancedGroup = styled.div` display: grid; grid-gap: var(--pf-c-toolbar__expandable-content--m-expanded--GridRowGap); } + + & .pf-c-select { + min-width: 150px; + } `; function AdvancedSearch({ From 390e1f9a0a9dd089576ec11d82f4f8e4ed5c30cf Mon Sep 17 00:00:00 2001 From: Alan Rominger Date: Thu, 24 Jun 2021 14:00:53 -0400 Subject: [PATCH 34/43] Fix obvious logical bug with project folder pre-creation (#5155) --- awx/main/tasks.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 8b2dea2014..b5d1ae397f 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -2178,8 +2178,6 @@ class RunProjectUpdate(BaseTask): if not os.path.exists(settings.PROJECTS_ROOT): os.mkdir(settings.PROJECTS_ROOT) project_path = instance.project.get_project_path(check_if_exists=False) - if not os.path.exists(project_path): - os.makedirs(project_path) # used as container mount self.acquire_lock(instance) @@ -2192,6 +2190,9 @@ class RunProjectUpdate(BaseTask): else: self.original_branch = git_repo.active_branch + if not os.path.exists(project_path): + os.makedirs(project_path) # used as container mount + stage_path = os.path.join(instance.get_cache_path(), 'stage') if os.path.exists(stage_path): logger.warning('{0} unexpectedly existed before update'.format(stage_path)) From f1273d581062bd7308699383cd151e1f116253b5 Mon Sep 17 00:00:00 2001 From: Alan Rominger Date: Thu, 24 Jun 2021 14:06:49 -0400 Subject: [PATCH 35/43] Show tracebacks from dependency failures (#5154) --- awxkit/awxkit/api/mixins/has_status.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/awxkit/awxkit/api/mixins/has_status.py b/awxkit/awxkit/api/mixins/has_status.py index 057b349672..d4453d302a 100644 --- a/awxkit/awxkit/api/mixins/has_status.py +++ b/awxkit/awxkit/api/mixins/has_status.py @@ -47,11 +47,16 @@ class HasStatus(object): return self.wait_until_status(self.started_statuses, interval=interval, timeout=timeout) def failure_output_details(self): + msg = '' if getattr(self, 'result_stdout', ''): output = bytes_to_str(self.result_stdout) if output: - return '\nstdout:\n{}'.format(output) - return '' + msg = '\nstdout:\n{}'.format(output) + if getattr(self, 'job_explanation', ''): + msg += '\njob_explanation: {}'.format(bytes_to_str(self.job_explanation)) + if getattr(self, 'result_traceback', ''): + msg += '\nresult_traceback:\n{}'.format(bytes_to_str(self.result_traceback)) + return msg def assert_status(self, status_list, msg=None): if isinstance(status_list, str): @@ -65,8 +70,6 @@ class HasStatus(object): else: msg += '\n' msg += '{0}-{1} has status of {2}, which is not in {3}.'.format(self.type.title(), self.id, self.status, status_list) - if getattr(self, 'job_explanation', ''): - msg += '\njob_explanation: {}'.format(bytes_to_str(self.job_explanation)) if getattr(self, 'execution_environment', ''): msg += '\nexecution_environment: {}'.format(bytes_to_str(self.execution_environment)) if getattr(self, 'related', False): @@ -75,19 +78,17 @@ class HasStatus(object): msg += f'\nee_credential: {ee.credential}' msg += f'\nee_pull_option: {ee.pull}' msg += f'\nee_summary_fields: {ee.summary_fields}' - if getattr(self, 'result_traceback', ''): - msg += '\nresult_traceback:\n{}'.format(bytes_to_str(self.result_traceback)) msg += self.failure_output_details() if getattr(self, 'job_explanation', '').startswith('Previous Task Failed'): try: data = json.loads(self.job_explanation.replace('Previous Task Failed: ', '')) - dep_output = self.connection.get( - '{0}/api/v2/{1}s/{2}/stdout/'.format(self.endpoint.split('/api')[0], data['job_type'], data['job_id']), - query_parameters=dict(format='txt_download'), - ).content - msg += '\nDependency output:\n{}'.format(bytes_to_str(dep_output)) + dependency = self.walk('/api/v2/{0}s/{1}/'.format(data['job_type'], data['job_id'])) + if hasattr(dependency, 'failure_output_details'): + msg += '\nDependency output:\n{}'.format(dependency.failure_output_details()) + else: + msg += '\nDependency info:\n{}'.format(dependency) except Exception as e: msg += '\nFailed to obtain dependency stdout: {}'.format(e) From 162ea776fd20a1d1912c8877c3235abef9c46168 Mon Sep 17 00:00:00 2001 From: Marliana Lara Date: Thu, 24 Jun 2021 14:16:02 -0400 Subject: [PATCH 36/43] Add order selected list to instance group lookups --- .../src/api/mixins/InstanceGroups.mixin.js | 22 ++++++++++++++ .../Lookup/InstanceGroupsLookup.jsx | 18 ++++++++++- .../Inventory/InventoryAdd/InventoryAdd.jsx | 9 +++--- .../Inventory/InventoryEdit/InventoryEdit.jsx | 19 ++++-------- .../InventoryEdit/InventoryEdit.test.jsx | 15 +++------- .../SmartInventoryAdd/SmartInventoryAdd.jsx | 10 +++---- .../SmartInventoryEdit/SmartInventoryEdit.jsx | 29 +++++------------- .../SmartInventoryEdit.test.jsx | 3 +- .../OrganizationAdd/OrganizationAdd.jsx | 8 ++--- .../OrganizationAdd/OrganizationAdd.test.jsx | 11 ++++++- .../OrganizationEdit/OrganizationEdit.jsx | 14 ++++----- .../OrganizationEdit.test.jsx | 30 ++++++++++++++----- .../Organization/shared/OrganizationForm.jsx | 9 +----- .../shared/OrganizationForm.test.jsx | 13 ++++++-- .../JobTemplateAdd/JobTemplateAdd.jsx | 11 +++---- .../JobTemplateEdit/JobTemplateEdit.jsx | 17 ++++------- 16 files changed, 129 insertions(+), 109 deletions(-) diff --git a/awx/ui_next/src/api/mixins/InstanceGroups.mixin.js b/awx/ui_next/src/api/mixins/InstanceGroups.mixin.js index e6745ac522..c82909df47 100644 --- a/awx/ui_next/src/api/mixins/InstanceGroups.mixin.js +++ b/awx/ui_next/src/api/mixins/InstanceGroups.mixin.js @@ -1,3 +1,12 @@ +function isEqual(array1, array2) { + return ( + array1.length === array2.length && + array1.every((element, index) => { + return element.id === array2[index].id; + }) + ); +} + const InstanceGroupsMixin = parent => class extends parent { readInstanceGroups(resourceId, params) { @@ -18,6 +27,19 @@ const InstanceGroupsMixin = parent => disassociate: true, }); } + + async orderInstanceGroups(resourceId, current, original) { + /* eslint-disable no-await-in-loop, no-restricted-syntax */ + if (!isEqual(current, original)) { + for (const group of original) { + await this.disassociateInstanceGroup(resourceId, group.id); + } + for (const group of current) { + await this.associateInstanceGroup(resourceId, group.id); + } + } + } + /* eslint-enable no-await-in-loop, no-restricted-syntax */ }; export default InstanceGroupsMixin; diff --git a/awx/ui_next/src/components/Lookup/InstanceGroupsLookup.jsx b/awx/ui_next/src/components/Lookup/InstanceGroupsLookup.jsx index a6da540a70..12f2ceb3d6 100644 --- a/awx/ui_next/src/components/Lookup/InstanceGroupsLookup.jsx +++ b/awx/ui_next/src/components/Lookup/InstanceGroupsLookup.jsx @@ -2,7 +2,7 @@ import React, { useCallback, useEffect } from 'react'; import { arrayOf, string, func, bool } from 'prop-types'; import { withRouter } from 'react-router-dom'; -import { t } from '@lingui/macro'; +import { t, Trans } from '@lingui/macro'; import { FormGroup } from '@patternfly/react-core'; import { InstanceGroupsAPI } from '../../api'; import { InstanceGroup } from '../../types'; @@ -82,6 +82,18 @@ function InstanceGroupsLookup({ multiple required={required} isLoading={isLoading} + modalDescription={ + <> + + Selected + +
+ + Note: The order in which these are selected sets the execution + precedence. + + + } renderOptionsList={({ state, dispatch, canDelete }) => ( dispatch({ type: 'SELECT_ITEM', item })} deselectItem={item => dispatch({ type: 'DESELECT_ITEM', item })} + sortSelectedItems={selectedItems => + dispatch({ type: 'SET_SELECTED_ITEMS', selectedItems }) + } + isSelectedDraggable /> )} /> diff --git a/awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx b/awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx index cad2449b3a..703ab9a946 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx @@ -23,12 +23,11 @@ function InventoryAdd() { organization: organization.id, ...remainingValues, }); - if (instanceGroups) { - const associatePromises = instanceGroups.map(async ig => - InventoriesAPI.associateInstanceGroup(inventoryId, ig.id) - ); - await Promise.all(associatePromises); + /* eslint-disable no-await-in-loop, no-restricted-syntax */ + for (const group of instanceGroups) { + await InventoriesAPI.associateInstanceGroup(inventoryId, group.id); } + /* eslint-enable no-await-in-loop, no-restricted-syntax */ const url = history.location.pathname.startsWith( '/inventories/smart_inventory' ) diff --git a/awx/ui_next/src/screens/Inventory/InventoryEdit/InventoryEdit.jsx b/awx/ui_next/src/screens/Inventory/InventoryEdit/InventoryEdit.jsx index 535656bfab..bb7ea5eef5 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryEdit/InventoryEdit.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryEdit/InventoryEdit.jsx @@ -6,7 +6,6 @@ import { CardBody } from '../../../components/Card'; import { InventoriesAPI } from '../../../api'; import ContentLoading from '../../../components/ContentLoading'; import InventoryForm from '../shared/InventoryForm'; -import { getAddedAndRemoved } from '../../../util/lists'; import useIsMounted from '../../../util/useIsMounted'; function InventoryEdit({ inventory }) { @@ -54,20 +53,12 @@ function InventoryEdit({ inventory }) { organization: organization.id, ...remainingValues, }); - if (instanceGroups) { - const { added, removed } = getAddedAndRemoved( - associatedInstanceGroups, - instanceGroups - ); + await InventoriesAPI.orderInstanceGroups( + inventory.id, + instanceGroups, + associatedInstanceGroups + ); - const associatePromises = added.map(async ig => - InventoriesAPI.associateInstanceGroup(inventory.id, ig.id) - ); - const disassociatePromises = removed.map(async ig => - InventoriesAPI.disassociateInstanceGroup(inventory.id, ig.id) - ); - await Promise.all([...associatePromises, ...disassociatePromises]); - } const url = history.location.pathname.search('smart') > -1 ? `/inventories/smart_inventory/${inventory.id}/details` diff --git a/awx/ui_next/src/screens/Inventory/InventoryEdit/InventoryEdit.test.jsx b/awx/ui_next/src/screens/Inventory/InventoryEdit/InventoryEdit.test.jsx index 441050104c..5b5e21017e 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryEdit/InventoryEdit.test.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryEdit/InventoryEdit.test.jsx @@ -106,17 +106,10 @@ describe('', () => { }); }); await sleep(0); - instanceGroups.map(IG => - expect(InventoriesAPI.associateInstanceGroup).toHaveBeenCalledWith( - 1, - IG.id - ) - ); - associatedInstanceGroups.map(async aIG => - expect(InventoriesAPI.disassociateInstanceGroup).toHaveBeenCalledWith( - 1, - aIG.id - ) + expect(InventoriesAPI.orderInstanceGroups).toHaveBeenCalledWith( + mockInventory.id, + instanceGroups, + associatedInstanceGroups ); }); }); diff --git a/awx/ui_next/src/screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx b/awx/ui_next/src/screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx index 3accf3d0c5..91ec24df6d 100644 --- a/awx/ui_next/src/screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx +++ b/awx/ui_next/src/screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx @@ -19,11 +19,11 @@ function SmartInventoryAdd() { data: { id: invId }, } = await InventoriesAPI.create(values); - await Promise.all( - groupsToAssociate.map(({ id }) => - InventoriesAPI.associateInstanceGroup(invId, id) - ) - ); + /* eslint-disable no-await-in-loop, no-restricted-syntax */ + for (const group of groupsToAssociate) { + await InventoriesAPI.associateInstanceGroup(invId, group.id); + } + /* eslint-enable no-await-in-loop, no-restricted-syntax */ return invId; }, []) ); diff --git a/awx/ui_next/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.jsx b/awx/ui_next/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.jsx index b499efd3f7..8516ae4e76 100644 --- a/awx/ui_next/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.jsx +++ b/awx/ui_next/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.jsx @@ -1,7 +1,6 @@ import React, { useCallback, useEffect } from 'react'; import { useHistory } from 'react-router-dom'; import { Inventory } from '../../../types'; -import { getAddedAndRemoved } from '../../../util/lists'; import useRequest from '../../../util/useRequest'; import { InventoriesAPI } from '../../../api'; import { CardBody } from '../../../components/Card'; @@ -17,7 +16,7 @@ function SmartInventoryEdit({ inventory }) { error: contentError, isLoading: hasContentLoading, request: fetchInstanceGroups, - result: instanceGroups, + result: initialInstanceGroups, } = useRequest( useCallback(async () => { const { @@ -40,15 +39,10 @@ function SmartInventoryEdit({ inventory }) { useCallback( async (values, groupsToAssociate, groupsToDisassociate) => { const { data } = await InventoriesAPI.update(inventory.id, values); - await Promise.all( - groupsToAssociate.map(id => - InventoriesAPI.associateInstanceGroup(inventory.id, id) - ) - ); - await Promise.all( - groupsToDisassociate.map(id => - InventoriesAPI.disassociateInstanceGroup(inventory.id, id) - ) + await InventoriesAPI.orderInstanceGroups( + inventory.id, + groupsToAssociate, + groupsToDisassociate ); return data; }, @@ -68,20 +62,13 @@ function SmartInventoryEdit({ inventory }) { const handleSubmit = async form => { const { instance_groups, organization, ...remainingForm } = form; - const { added, removed } = getAddedAndRemoved( - instanceGroups, - instance_groups - ); - const addedIds = added.map(({ id }) => id); - const removedIds = removed.map(({ id }) => id); - await submitRequest( { organization: organization?.id, ...remainingForm, }, - addedIds, - removedIds + instance_groups, + initialInstanceGroups ); }; @@ -104,7 +91,7 @@ function SmartInventoryEdit({ inventory }) { ', () => { }); }); expect(InventoriesAPI.update).toHaveBeenCalledTimes(1); - expect(InventoriesAPI.associateInstanceGroup).toHaveBeenCalledTimes(1); - expect(InventoriesAPI.disassociateInstanceGroup).toHaveBeenCalledTimes(1); + expect(InventoriesAPI.orderInstanceGroups).toHaveBeenCalledTimes(1); }); test('successful form submission should trigger redirect to details', async () => { diff --git a/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.jsx b/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.jsx index c65114c6c4..0b4e38df91 100644 --- a/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.jsx +++ b/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.jsx @@ -41,13 +41,11 @@ function OrganizationAdd() { ...values, default_environment: values.default_environment?.id, }); - await Promise.all( - groupsToAssociate.map(id => - OrganizationsAPI.associateInstanceGroup(response.id, id) - ) - ); /* eslint-disable no-await-in-loop, no-restricted-syntax */ // Resolve Promises sequentially to maintain order and avoid race condition + for (const group of groupsToAssociate) { + await OrganizationsAPI.associateInstanceGroup(response.id, group.id); + } for (const credential of values.galaxy_credentials) { await OrganizationsAPI.associateGalaxyCredential( response.id, diff --git a/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.test.jsx b/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.test.jsx index 5fced4aa9d..36c973f350 100644 --- a/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.test.jsx +++ b/awx/ui_next/src/screens/Organization/OrganizationAdd/OrganizationAdd.test.jsx @@ -95,6 +95,12 @@ describe('', () => { description: 'new description', galaxy_credentials: [], }; + const mockInstanceGroups = [ + { + name: 'mock ig', + id: 3, + }, + ]; OrganizationsAPI.create.mockResolvedValueOnce({ data: { id: 5, @@ -109,7 +115,10 @@ describe('', () => { wrapper = mountWithContexts(); }); await waitForElement(wrapper, 'button[aria-label="Save"]'); - await wrapper.find('OrganizationForm').prop('onSubmit')(orgData, [3]); + await wrapper.find('OrganizationForm').prop('onSubmit')( + orgData, + mockInstanceGroups + ); expect(OrganizationsAPI.associateInstanceGroup).toHaveBeenCalledWith(5, 3); }); diff --git a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx index 0fc7a243f9..38ff6641ba 100644 --- a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx +++ b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx @@ -26,16 +26,12 @@ function OrganizationEdit({ organization }) { ...values, default_environment: values.default_environment?.id || null, }); - await Promise.all( - groupsToAssociate.map(id => - OrganizationsAPI.associateInstanceGroup(organization.id, id) - ) - ); - await Promise.all( - groupsToDisassociate.map(id => - OrganizationsAPI.disassociateInstanceGroup(organization.id, id) - ) + await OrganizationsAPI.orderInstanceGroups( + organization.id, + groupsToAssociate, + groupsToDisassociate ); + /* eslint-disable no-await-in-loop, no-restricted-syntax */ // Resolve Promises sequentially to avoid race condition if ( diff --git a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.test.jsx b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.test.jsx index a6324eb702..a1fbdb0831 100644 --- a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.test.jsx +++ b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.test.jsx @@ -54,18 +54,34 @@ describe('', () => { name: 'new name', description: 'new description', }; + const newInstanceGroups = [ + { + name: 'mock three', + id: 3, + }, + { + name: 'mock four', + id: 4, + }, + ]; + const oldInstanceGroups = [ + { + name: 'mock two', + id: 2, + }, + ]; + await act(async () => { wrapper.find('OrganizationForm').invoke('onSubmit')( updatedOrgData, - [3, 4], - [2] + newInstanceGroups, + oldInstanceGroups ); }); - expect(OrganizationsAPI.associateInstanceGroup).toHaveBeenCalledWith(1, 3); - expect(OrganizationsAPI.associateInstanceGroup).toHaveBeenCalledWith(1, 4); - expect(OrganizationsAPI.disassociateInstanceGroup).toHaveBeenCalledWith( - 1, - 2 + expect(OrganizationsAPI.orderInstanceGroups).toHaveBeenCalledWith( + mockData.id, + newInstanceGroups, + oldInstanceGroups ); }); diff --git a/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx b/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx index f5d37b56dc..355db7b531 100644 --- a/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx +++ b/awx/ui_next/src/screens/Organization/shared/OrganizationForm.jsx @@ -15,7 +15,6 @@ import { InstanceGroupsLookup, ExecutionEnvironmentLookup, } from '../../../components/Lookup'; -import { getAddedAndRemoved } from '../../../util/lists'; import { required, minMaxValue } from '../../../util/validators'; import { FormColumnLayout } from '../../../components/FormLayout'; import CredentialLookup from '../../../components/Lookup/CredentialLookup'; @@ -143,19 +142,13 @@ function OrganizationForm({ }; const handleSubmit = values => { - const { added, removed } = getAddedAndRemoved( - initialInstanceGroups, - instanceGroups - ); - const addedIds = added.map(({ id }) => id); - const removedIds = removed.map(({ id }) => id); if ( typeof values.max_hosts !== 'number' || values.max_hosts === 'undefined' ) { values.max_hosts = 0; } - onSubmit(values, addedIds, removedIds); + onSubmit(values, instanceGroups, initialInstanceGroups); }; useEffect(() => { diff --git a/awx/ui_next/src/screens/Organization/shared/OrganizationForm.test.jsx b/awx/ui_next/src/screens/Organization/shared/OrganizationForm.test.jsx index 38d8b5d578..11b2c58449 100644 --- a/awx/ui_next/src/screens/Organization/shared/OrganizationForm.test.jsx +++ b/awx/ui_next/src/screens/Organization/shared/OrganizationForm.test.jsx @@ -258,7 +258,14 @@ describe('', () => { await act(async () => { wrapper.find('button[aria-label="Save"]').simulate('click'); }); - expect(onSubmit).toHaveBeenCalledWith(mockDataForm, [3], [2]); + expect(onSubmit).toHaveBeenCalledWith( + mockDataForm, + [ + { name: 'One', id: 1 }, + { name: 'Three', id: 3 }, + ], + mockInstanceGroups + ); }); test('onSubmit does not get called if max_hosts value is out of range', async () => { @@ -332,8 +339,8 @@ describe('', () => { max_hosts: 0, default_environment: null, }, - [], - [] + mockInstanceGroups, + mockInstanceGroups ); }); diff --git a/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx b/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx index 1461cd1fca..89a387cb33 100644 --- a/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx +++ b/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx @@ -63,11 +63,12 @@ function JobTemplateAdd() { return Promise.all([...associationPromises]); } - function submitInstanceGroups(templateId, addedGroups = []) { - const associatePromises = addedGroups.map(group => - JobTemplatesAPI.associateInstanceGroup(templateId, group.id) - ); - return Promise.all(associatePromises); + async function submitInstanceGroups(templateId, addedGroups = []) { + /* eslint-disable no-await-in-loop, no-restricted-syntax */ + for (const group of addedGroups) { + await JobTemplatesAPI.associateInstanceGroup(templateId, group.id); + } + /* eslint-enable no-await-in-loop, no-restricted-syntax */ } function submitCredentials(templateId, credentials = []) { diff --git a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx index d85e07cfa0..ccd3aef20a 100644 --- a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx +++ b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.jsx @@ -61,8 +61,12 @@ function JobTemplateEdit({ template, reloadTemplate }) { await JobTemplatesAPI.update(template.id, remainingValues); await Promise.all([ submitLabels(labels, template?.organization), - submitInstanceGroups(instanceGroups, initialInstanceGroups), submitCredentials(credentials), + JobTemplatesAPI.orderInstanceGroups( + template.id, + instanceGroups, + initialInstanceGroups + ), ]); reloadTemplate(); history.push(detailsUrl); @@ -93,17 +97,6 @@ function JobTemplateEdit({ template, reloadTemplate }) { return results; }; - const submitInstanceGroups = async (groups, initialGroups) => { - const { added, removed } = getAddedAndRemoved(initialGroups, groups); - const disassociatePromises = await removed.map(group => - JobTemplatesAPI.disassociateInstanceGroup(template.id, group.id) - ); - const associatePromises = await added.map(group => - JobTemplatesAPI.associateInstanceGroup(template.id, group.id) - ); - return Promise.all([...disassociatePromises, ...associatePromises]); - }; - const submitCredentials = async newCredentials => { const { added, removed } = getAddedAndRemoved( template.summary_fields.credentials, From f541fe9904238bb81e8a471c88f6656ecb53e2b0 Mon Sep 17 00:00:00 2001 From: Marliana Lara Date: Thu, 24 Jun 2021 15:32:33 -0400 Subject: [PATCH 37/43] Add comment to explain why we resolve the promises sequentially --- awx/ui_next/src/api/mixins/InstanceGroups.mixin.js | 1 + awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx | 1 + .../screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx | 1 + .../src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx | 1 + 4 files changed, 4 insertions(+) diff --git a/awx/ui_next/src/api/mixins/InstanceGroups.mixin.js b/awx/ui_next/src/api/mixins/InstanceGroups.mixin.js index c82909df47..0030588c25 100644 --- a/awx/ui_next/src/api/mixins/InstanceGroups.mixin.js +++ b/awx/ui_next/src/api/mixins/InstanceGroups.mixin.js @@ -30,6 +30,7 @@ const InstanceGroupsMixin = parent => async orderInstanceGroups(resourceId, current, original) { /* eslint-disable no-await-in-loop, no-restricted-syntax */ + // Resolve Promises sequentially to maintain order and avoid race condition if (!isEqual(current, original)) { for (const group of original) { await this.disassociateInstanceGroup(resourceId, group.id); diff --git a/awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx b/awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx index 703ab9a946..79d756aecd 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryAdd/InventoryAdd.jsx @@ -24,6 +24,7 @@ function InventoryAdd() { ...remainingValues, }); /* eslint-disable no-await-in-loop, no-restricted-syntax */ + // Resolve Promises sequentially to maintain order and avoid race condition for (const group of instanceGroups) { await InventoriesAPI.associateInstanceGroup(inventoryId, group.id); } diff --git a/awx/ui_next/src/screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx b/awx/ui_next/src/screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx index 91ec24df6d..5eed709d41 100644 --- a/awx/ui_next/src/screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx +++ b/awx/ui_next/src/screens/Inventory/SmartInventoryAdd/SmartInventoryAdd.jsx @@ -20,6 +20,7 @@ function SmartInventoryAdd() { } = await InventoriesAPI.create(values); /* eslint-disable no-await-in-loop, no-restricted-syntax */ + // Resolve Promises sequentially to maintain order and avoid race condition for (const group of groupsToAssociate) { await InventoriesAPI.associateInstanceGroup(invId, group.id); } diff --git a/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx b/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx index 89a387cb33..de5ff19d6d 100644 --- a/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx +++ b/awx/ui_next/src/screens/Template/JobTemplateAdd/JobTemplateAdd.jsx @@ -65,6 +65,7 @@ function JobTemplateAdd() { async function submitInstanceGroups(templateId, addedGroups = []) { /* eslint-disable no-await-in-loop, no-restricted-syntax */ + // Resolve Promises sequentially to maintain order and avoid race condition for (const group of addedGroups) { await JobTemplatesAPI.associateInstanceGroup(templateId, group.id); } From 04839a037aa7fdeb675572b4528e59025fd544e3 Mon Sep 17 00:00:00 2001 From: Alex Corey Date: Thu, 10 Jun 2021 10:06:08 -0400 Subject: [PATCH 38/43] prevent delete of instance groups list item controlplan and default --- awx/ui_next/src/api/models/Settings.js | 4 ++ .../screens/InstanceGroup/InstanceGroup.jsx | 32 ++++++++-- .../InstanceGroupEdit/InstanceGroupEdit.jsx | 8 ++- .../InstanceGroupEdit.test.jsx | 36 +++++++++-- .../InstanceGroupList/InstanceGroupList.jsx | 63 ++++++++++++------- .../InstanceGroupList.test.jsx | 27 ++++++-- .../shared/InstanceGroupForm.jsx | 9 ++- 7 files changed, 138 insertions(+), 41 deletions(-) diff --git a/awx/ui_next/src/api/models/Settings.js b/awx/ui_next/src/api/models/Settings.js index b5d0679e9c..440013037a 100644 --- a/awx/ui_next/src/api/models/Settings.js +++ b/awx/ui_next/src/api/models/Settings.js @@ -14,6 +14,10 @@ class Settings extends Base { return this.http.patch(`${this.baseUrl}all/`, data); } + readAll() { + return this.http.get(`${this.baseUrl}all/`); + } + updateCategory(category, data) { return this.http.patch(`${this.baseUrl}${category}/`, data); } diff --git a/awx/ui_next/src/screens/InstanceGroup/InstanceGroup.jsx b/awx/ui_next/src/screens/InstanceGroup/InstanceGroup.jsx index 5d13650c3f..187109d8c6 100644 --- a/awx/ui_next/src/screens/InstanceGroup/InstanceGroup.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/InstanceGroup.jsx @@ -13,7 +13,7 @@ import { CaretLeftIcon } from '@patternfly/react-icons'; import { Card, PageSection } from '@patternfly/react-core'; import useRequest from '../../util/useRequest'; -import { InstanceGroupsAPI } from '../../api'; +import { InstanceGroupsAPI, SettingsAPI } from '../../api'; import RoutedTabs from '../../components/RoutedTabs'; import ContentError from '../../components/ContentError'; import ContentLoading from '../../components/ContentLoading'; @@ -31,12 +31,28 @@ function InstanceGroup({ setBreadcrumb }) { isLoading, error: contentError, request: fetchInstanceGroups, - result: instanceGroup, + result: { instanceGroup, defaultControlPlane, defaultExecution }, } = useRequest( useCallback(async () => { - const { data } = await InstanceGroupsAPI.readDetail(id); - return data; - }, [id]) + const [ + { data }, + { + data: { + DEFAULT_CONTROL_PLANE_QUEUE_NAME, + DEFAULT_EXECUTION_QUEUE_NAME, + }, + }, + ] = await Promise.all([ + InstanceGroupsAPI.readDetail(id), + SettingsAPI.readAll(), + ]); + return { + instanceGroup: data, + defaultControlPlane: DEFAULT_CONTROL_PLANE_QUEUE_NAME, + defaultExecution: DEFAULT_EXECUTION_QUEUE_NAME, + }; + }, [id]), + { instanceGroup: {}, defaultControlPlane: '', defaultExecution: '' } ); useEffect(() => { @@ -115,7 +131,11 @@ function InstanceGroup({ setBreadcrumb }) { {instanceGroup && ( <> - + diff --git a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupEdit/InstanceGroupEdit.jsx b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupEdit/InstanceGroupEdit.jsx index b2f9bbaa9a..166d8753f1 100644 --- a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupEdit/InstanceGroupEdit.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupEdit/InstanceGroupEdit.jsx @@ -5,7 +5,11 @@ import { CardBody } from '../../../components/Card'; import { InstanceGroupsAPI } from '../../../api'; import InstanceGroupForm from '../shared/InstanceGroupForm'; -function InstanceGroupEdit({ instanceGroup }) { +function InstanceGroupEdit({ + instanceGroup, + defaultExecution, + defaultControlPlane, +}) { const history = useHistory(); const [submitError, setSubmitError] = useState(null); const detailsUrl = `/instance_groups/${instanceGroup.id}/details`; @@ -27,6 +31,8 @@ function InstanceGroupEdit({ instanceGroup }) { ', () => { history = createMemoryHistory(); await act(async () => { wrapper = mountWithContexts( - , + , { context: { router: { history } }, } @@ -68,12 +72,14 @@ describe('', () => { wrapper.unmount(); }); - test('tower instance group name can not be updated', async () => { + test('controlplane instance group name can not be updated', async () => { let towerWrapper; await act(async () => { towerWrapper = mountWithContexts( , { context: { router: { history } }, @@ -85,7 +91,29 @@ describe('', () => { ).toBeTruthy(); expect( towerWrapper.find('input#instance-group-name').prop('value') - ).toEqual('tower'); + ).toEqual('controlplane'); + }); + + test('default instance group name can not be updated', async () => { + let towerWrapper; + await act(async () => { + towerWrapper = mountWithContexts( + , + { + context: { router: { history } }, + } + ); + }); + expect( + towerWrapper.find('input#instance-group-name').prop('disabled') + ).toBeTruthy(); + expect( + towerWrapper.find('input#instance-group-name').prop('value') + ).toEqual('default'); }); test('handleSubmit should call the api and redirect to details page', async () => { diff --git a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx index 2106ca9999..c6de8a9f3e 100644 --- a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx @@ -4,7 +4,7 @@ import { useLocation, useRouteMatch, Link } from 'react-router-dom'; import { t, Plural } from '@lingui/macro'; import { Card, PageSection, DropdownItem } from '@patternfly/react-core'; -import { InstanceGroupsAPI } from '../../../api'; +import { InstanceGroupsAPI, SettingsAPI } from '../../../api'; import { getQSConfig, parseQueryString } from '../../../util/qs'; import useRequest, { useDeleteItems } from '../../../util/useRequest'; import useSelected from '../../../util/useSelected'; @@ -26,7 +26,11 @@ const QS_CONFIG = getQSConfig('instance-group', { page_size: 20, }); -function modifyInstanceGroups(items = []) { +function modifyInstanceGroups( + items = [], + defaultControlPlane, + defaultExecution +) { return items.map(item => { const clonedItem = { ...item, @@ -37,7 +41,7 @@ function modifyInstanceGroups(items = []) { }, }, }; - if (clonedItem.name === 'tower') { + if (clonedItem.name === (defaultControlPlane || defaultExecution)) { clonedItem.summary_fields.user_capabilities.delete = false; } return clonedItem; @@ -62,18 +66,32 @@ function InstanceGroupList({ actions, relatedSearchableKeys, searchableKeys, + defaultControlPlane, + defaultExecution, }, } = useRequest( useCallback(async () => { const params = parseQueryString(QS_CONFIG, location.search); - const [response, responseActions] = await Promise.all([ + const [ + response, + responseActions, + { + data: { + DEFAULT_CONTROL_PLANE_QUEUE_NAME, + DEFAULT_EXECUTION_QUEUE_NAME, + }, + }, + ] = await Promise.all([ InstanceGroupsAPI.read(params), InstanceGroupsAPI.readOptions(), + SettingsAPI.readAll(), ]); return { instanceGroups: response.data.results, + defaultControlPlane: DEFAULT_CONTROL_PLANE_QUEUE_NAME, + defaultExecution: DEFAULT_EXECUTION_QUEUE_NAME, instanceGroupsCount: response.data.count, actions: responseActions.data.actions, relatedSearchableKeys: ( @@ -105,7 +123,11 @@ function InstanceGroupList({ selectAll, } = useSelected(instanceGroups); - const modifiedSelected = modifyInstanceGroups(selected); + const modifiedSelected = modifyInstanceGroups( + selected, + defaultControlPlane, + defaultExecution + ); const { isLoading: deleteLoading, @@ -133,31 +155,25 @@ function InstanceGroupList({ const canAdd = actions && actions.POST; function cannotDelete(item) { - return !item.summary_fields.user_capabilities.delete; + return ( + !item.summary_fields.user_capabilities.delete || + item.name === defaultExecution || + item.name === defaultControlPlane + ); } const pluralizedItemName = t`Instance Groups`; let errorMessageDelete = ''; - if (modifiedSelected.some(item => item.name === 'tower')) { - const itemsUnableToDelete = modifiedSelected - .filter(cannotDelete) - .filter(item => item.name !== 'tower') - .map(item => item.name) - .join(', '); - - if (itemsUnableToDelete) { - if (modifiedSelected.some(cannotDelete)) { - errorMessageDelete = t`You do not have permission to delete ${pluralizedItemName}: ${itemsUnableToDelete}. `; - } - } - - if (errorMessageDelete.length > 0) { - errorMessageDelete = errorMessageDelete.concat('\n'); - } + if ( + modifiedSelected.some( + item => + item.name === defaultControlPlane || item.name === defaultExecution + ) + ) { errorMessageDelete = errorMessageDelete.concat( - t`The tower instance group cannot be deleted.` + t`The following Instance Group cannot be deleted` ); } @@ -234,6 +250,7 @@ function InstanceGroupList({ ', () => { let wrapper; @@ -62,6 +78,7 @@ describe('', () => { UnifiedJobTemplatesAPI.read.mockResolvedValue({ data: { count: 0 } }); InstanceGroupsAPI.read.mockResolvedValue(instanceGroups); InstanceGroupsAPI.readOptions.mockResolvedValue(options); + SettingsAPI.readAll.mockResolvedValue(settings); }); test('should have data fetched and render 3 rows', async () => { @@ -69,7 +86,7 @@ describe('', () => { wrapper = mountWithContexts(); }); await waitForElement(wrapper, 'InstanceGroupList', el => el.length > 0); - expect(wrapper.find('InstanceGroupListItem').length).toBe(3); + expect(wrapper.find('InstanceGroupListItem').length).toBe(4); expect(InstanceGroupsAPI.read).toBeCalled(); expect(InstanceGroupsAPI.readOptions).toBeCalled(); }); @@ -109,13 +126,13 @@ describe('', () => { ); }); - test('should not be able to delete tower instance group', async () => { + test('should not be able to delete controlplan or default instance group', async () => { await act(async () => { wrapper = mountWithContexts(); }); await waitForElement(wrapper, 'InstanceGroupList', el => el.length > 0); - const instanceGroupIndex = [0, 1, 2]; + const instanceGroupIndex = [0, 1, 2, 3]; instanceGroupIndex.forEach(element => { wrapper diff --git a/awx/ui_next/src/screens/InstanceGroup/shared/InstanceGroupForm.jsx b/awx/ui_next/src/screens/InstanceGroup/shared/InstanceGroupForm.jsx index 50f75e1831..a9a268af20 100644 --- a/awx/ui_next/src/screens/InstanceGroup/shared/InstanceGroupForm.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/shared/InstanceGroupForm.jsx @@ -10,8 +10,9 @@ import FormActionGroup from '../../../components/FormActionGroup'; import { required, minMaxValue } from '../../../util/validators'; import { FormColumnLayout } from '../../../components/FormLayout'; -function InstanceGroupFormFields() { +function InstanceGroupFormFields({ defaultExecution, defaultControlPlane }) { const [instanceGroupNameField, ,] = useField('name'); + return ( <> Date: Fri, 11 Jun 2021 10:41:07 -0400 Subject: [PATCH 39/43] resolves crashing details view --- awx/ui_next/src/locales/en/messages.po | 347 +++++++++--------- awx/ui_next/src/locales/es/messages.po | 347 +++++++++--------- awx/ui_next/src/locales/fr/messages.po | 347 +++++++++--------- awx/ui_next/src/locales/ja/messages.po | 347 +++++++++--------- awx/ui_next/src/locales/nl/messages.po | 347 +++++++++--------- awx/ui_next/src/locales/zh/messages.po | 347 +++++++++--------- awx/ui_next/src/locales/zu/messages.po | 347 +++++++++--------- .../screens/InstanceGroup/ContainerGroup.jsx | 32 +- .../ContainerGroupDetails.jsx | 10 +- .../screens/InstanceGroup/InstanceGroup.jsx | 16 +- .../InstanceGroupDetails.jsx | 9 +- .../InstanceGroupEdit/InstanceGroupEdit.jsx | 7 +- .../InstanceGroupEdit.test.jsx | 24 -- .../InstanceGroupList/InstanceGroupList.jsx | 67 ++-- .../shared/ContainerGroupForm.jsx | 3 + .../shared/InstanceGroupForm.jsx | 7 +- 16 files changed, 1339 insertions(+), 1265 deletions(-) diff --git a/awx/ui_next/src/locales/en/messages.po b/awx/ui_next/src/locales/en/messages.po index 93b80d9ffc..5b3b4555c6 100644 --- a/awx/ui_next/src/locales/en/messages.po +++ b/awx/ui_next/src/locales/en/messages.po @@ -50,7 +50,7 @@ msgstr "/ (project root)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:46 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:75 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:106 -#: screens/Template/shared/JobTemplateForm.jsx:211 +#: screens/Template/shared/JobTemplateForm.jsx:214 msgid "0 (Normal)" msgstr "0 (Normal)" @@ -71,7 +71,7 @@ msgstr "1 (Info)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:47 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:76 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:107 -#: screens/Template/shared/JobTemplateForm.jsx:212 +#: screens/Template/shared/JobTemplateForm.jsx:215 msgid "1 (Verbose)" msgstr "1 (Verbose)" @@ -87,7 +87,7 @@ msgstr "2 (Debug)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:48 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:77 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:108 -#: screens/Template/shared/JobTemplateForm.jsx:213 +#: screens/Template/shared/JobTemplateForm.jsx:216 msgid "2 (More Verbose)" msgstr "2 (More Verbose)" @@ -98,7 +98,7 @@ msgstr "2 (More Verbose)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:49 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:78 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:109 -#: screens/Template/shared/JobTemplateForm.jsx:214 +#: screens/Template/shared/JobTemplateForm.jsx:217 msgid "3 (Debug)" msgstr "3 (Debug)" @@ -109,7 +109,7 @@ msgstr "3 (Debug)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:50 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:79 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:215 +#: screens/Template/shared/JobTemplateForm.jsx:218 msgid "4 (Connection Debug)" msgstr "4 (Connection Debug)" @@ -185,7 +185,7 @@ msgstr "" #: screens/Project/Projects.jsx:29 #: screens/Team/Team.jsx:56 #: screens/Team/Teams.jsx:30 -#: screens/Template/Template.jsx:145 +#: screens/Template/Template.jsx:136 #: screens/Template/Templates.jsx:44 #: screens/Template/WorkflowJobTemplate.jsx:122 msgid "Access" @@ -228,7 +228,7 @@ msgstr "Action" #: screens/Host/HostGroups/HostGroupsList.jsx:182 #: screens/Host/HostList/HostList.jsx:168 #: screens/Host/HostList/HostListItem.jsx:42 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:246 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:275 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:77 #: screens/InstanceGroup/Instances/InstanceList.jsx:217 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:153 @@ -334,7 +334,7 @@ msgstr "Add a new node" msgid "Add a new node between these two nodes" msgstr "Add a new node between these two nodes" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:159 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:187 msgid "Add container group" msgstr "Add container group" @@ -346,7 +346,7 @@ msgstr "Add existing group" msgid "Add existing host" msgstr "Add existing host" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:160 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:188 msgid "Add instance group" msgstr "Add instance group" @@ -731,9 +731,9 @@ msgstr "Azure AD" msgid "Azure AD settings" msgstr "Azure AD settings" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:125 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:148 #: components/AddRole/AddResourceRole.jsx:286 -#: components/LaunchPrompt/LaunchPrompt.jsx:134 +#: components/LaunchPrompt/LaunchPrompt.jsx:128 #: components/Schedule/shared/SchedulePromptableFields.jsx:136 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:90 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:70 @@ -810,7 +810,7 @@ msgstr "Back to Sources" msgid "Back to Teams" msgstr "Back to Teams" -#: screens/Template/Template.jsx:138 +#: screens/Template/Template.jsx:129 #: screens/Template/WorkflowJobTemplate.jsx:115 msgid "Back to Templates" msgstr "Back to Templates" @@ -839,8 +839,8 @@ msgstr "Back to credential types" msgid "Back to execution environments" msgstr "Back to execution environments" -#: screens/InstanceGroup/ContainerGroup.jsx:56 -#: screens/InstanceGroup/InstanceGroup.jsx:57 +#: screens/InstanceGroup/ContainerGroup.jsx:68 +#: screens/InstanceGroup/InstanceGroup.jsx:69 msgid "Back to instance groups" msgstr "Back to instance groups" @@ -919,7 +919,7 @@ msgstr "Cache timeout" msgid "Cache timeout (seconds)" msgstr "Cache timeout (seconds)" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:126 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:149 #: components/AddRole/AddResourceRole.jsx:287 #: components/AssociateModal/AssociateModal.jsx:116 #: components/AssociateModal/AssociateModal.jsx:121 @@ -929,7 +929,7 @@ msgstr "Cache timeout (seconds)" #: components/DisassociateButton/DisassociateButton.jsx:125 #: components/FormActionGroup/FormActionGroup.jsx:24 #: components/FormActionGroup/FormActionGroup.jsx:29 -#: components/LaunchPrompt/LaunchPrompt.jsx:135 +#: components/LaunchPrompt/LaunchPrompt.jsx:129 #: components/Lookup/HostFilterLookup.jsx:350 #: components/Lookup/Lookup.jsx:186 #: components/PaginatedTable/ToolbarDeleteButton.jsx:281 @@ -1072,7 +1072,7 @@ msgstr "" #~ msgid "Cannot find route {0}." #~ msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:245 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:274 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:76 msgid "Capacity" msgstr "Capacity" @@ -1128,7 +1128,7 @@ msgid "Channel" msgstr "Channel" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:102 -#: screens/Template/shared/JobTemplateForm.jsx:206 +#: screens/Template/shared/JobTemplateForm.jsx:209 msgid "Check" msgstr "Check" @@ -1161,7 +1161,7 @@ msgid "Choose a Webhook Service" msgstr "Choose a Webhook Service" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:95 -#: screens/Template/shared/JobTemplateForm.jsx:199 +#: screens/Template/shared/JobTemplateForm.jsx:202 msgid "Choose a job type" msgstr "Choose a job type" @@ -1297,6 +1297,7 @@ msgstr "Cloud" msgid "Collapse" msgstr "" +#: components/AdHocCommands/AdHocPreviewStep.jsx:8 #: components/JobList/JobList.jsx:186 #: components/JobList/JobListItem.jsx:37 #: screens/Job/JobDetail/JobDetail.jsx:81 @@ -1328,7 +1329,7 @@ msgstr "Compliant" #: components/PromptDetail/PromptWFJobTemplateDetail.jsx:36 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:138 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:61 -#: screens/Template/shared/JobTemplateForm.jsx:602 +#: screens/Template/shared/JobTemplateForm.jsx:605 msgid "Concurrent Jobs" msgstr "Concurrent Jobs" @@ -1396,11 +1397,11 @@ msgstr "Container Group" msgid "Container group" msgstr "Container group" -#: screens/InstanceGroup/ContainerGroup.jsx:81 +#: screens/InstanceGroup/ContainerGroup.jsx:93 msgid "Container group not found." msgstr "Container group not found." -#: components/LaunchPrompt/LaunchPrompt.jsx:129 +#: components/LaunchPrompt/LaunchPrompt.jsx:123 #: components/Schedule/shared/SchedulePromptableFields.jsx:131 msgid "Content Loading" msgstr "Content Loading" @@ -1429,7 +1430,7 @@ msgstr "" "Control the level of output ansible\n" "will produce as the playbook executes." -#: screens/Template/shared/JobTemplateForm.jsx:465 +#: screens/Template/shared/JobTemplateForm.jsx:468 msgid "" "Control the level of output ansible will\n" "produce as the playbook executes." @@ -1505,7 +1506,7 @@ msgstr "Copyright" #~ msgid "Copyright 2019 Red Hat, Inc." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:406 +#: screens/Template/shared/JobTemplateForm.jsx:409 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:209 msgid "Create" msgstr "Create" @@ -1718,7 +1719,7 @@ msgstr "Created by (username)" #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:40 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:94 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:56 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:51 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:54 #: screens/Inventory/InventorySourceDetail/InventorySourceDetail.jsx:198 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:42 #: screens/Inventory/shared/InventorySourceSubForms/EC2SubForm.jsx:41 @@ -1769,11 +1770,11 @@ msgstr "Credential passwords" #~ msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token”." #~ msgstr "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token”." -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:58 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:61 msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\". If left blank, the underlying Pod's service account will be used." msgstr "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\". If left blank, the underlying Pod's service account will be used." -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:164 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:170 msgid "Credential to authenticate with a protected container registry." msgstr "Credential to authenticate with a protected container registry." @@ -1783,7 +1784,7 @@ msgstr "Credential type not found." #: components/JobList/JobListItem.jsx:215 #: components/LaunchPrompt/steps/CredentialsStep.jsx:193 -#: components/LaunchPrompt/steps/useCredentialsStep.jsx:64 +#: components/LaunchPrompt/steps/useCredentialsStep.jsx:62 #: components/Lookup/MultiCredentialsLookup.jsx:139 #: components/Lookup/MultiCredentialsLookup.jsx:211 #: components/PromptDetail/PromptDetail.jsx:158 @@ -1798,12 +1799,12 @@ msgstr "Credential type not found." #: screens/Credential/Credentials.jsx:23 #: screens/Job/JobDetail/JobDetail.jsx:266 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:286 -#: screens/Template/shared/JobTemplateForm.jsx:374 +#: screens/Template/shared/JobTemplateForm.jsx:377 #: util/getRelatedResourceDeleteDetails.js:90 msgid "Credentials" msgstr "" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:54 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:53 msgid "Credentials that require passwords on launch are not permitted. Please remove or replace the following credentials with a credential of the same type in order to proceed: {0}" msgstr "Credentials that require passwords on launch are not permitted. Please remove or replace the following credentials with a credential of the same type in order to proceed: {0}" @@ -1811,7 +1812,7 @@ msgstr "Credentials that require passwords on launch are not permitted. Please msgid "Current page" msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:83 msgid "Custom pod spec" msgstr "Custom pod spec" @@ -1838,8 +1839,8 @@ msgstr "Custom virtual environment {virtualEnvironment} must be replaced by an e msgid "Customize messages…" msgstr "Customize messages…" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:66 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:67 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:69 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:70 msgid "Customize pod specification" msgstr "Customize pod specification" @@ -1890,7 +1891,7 @@ msgid "Default" msgstr "Default" #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:39 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:195 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:209 msgid "Default Execution Environment" msgstr "Default Execution Environment" @@ -1924,7 +1925,7 @@ msgstr "Define system-level features and functions" #: screens/Credential/CredentialDetail/CredentialDetail.jsx:299 #: screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx:126 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:137 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:116 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:117 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:125 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:138 #: screens/Inventory/InventoryGroups/InventoryGroupsList.jsx:100 @@ -2051,7 +2052,7 @@ msgstr "Delete credential type" msgid "Delete error" msgstr "Delete error" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:110 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:111 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:119 msgid "Delete instance group" msgstr "Delete instance group" @@ -2125,7 +2126,7 @@ msgstr "Deletion Error" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:207 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:220 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:265 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:294 msgid "Deletion error" msgstr "Deletion error" @@ -2175,7 +2176,7 @@ msgstr "Deprecated" #: screens/CredentialType/shared/CredentialTypeForm.jsx:32 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:62 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:152 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:142 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:147 #: screens/Host/HostDetail/HostDetail.jsx:81 #: screens/Host/HostList/HostList.jsx:150 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:78 @@ -2209,7 +2210,7 @@ msgstr "Deprecated" #: screens/Template/Survey/SurveyQuestionForm.jsx:166 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:116 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:166 -#: screens/Template/shared/JobTemplateForm.jsx:246 +#: screens/Template/shared/JobTemplateForm.jsx:249 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:115 #: screens/User/UserOrganizations/UserOrganizationList.jsx:65 #: screens/User/UserOrganizations/UserOrganizationListItem.jsx:15 @@ -2251,8 +2252,8 @@ msgstr "Destination channels or users" #~ msgid "Detail coming soon :)" #~ msgstr "Detail coming soon :)" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:61 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:71 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:62 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:72 #: components/ErrorDetail/ErrorDetail.jsx:73 #: components/Schedule/Schedule.jsx:66 #: screens/Application/Application/Application.jsx:77 @@ -2265,8 +2266,8 @@ msgstr "Destination channels or users" #: screens/ExecutionEnvironment/ExecutionEnvironments.jsx:26 #: screens/Host/Host.jsx:52 #: screens/Host/Hosts.jsx:28 -#: screens/InstanceGroup/ContainerGroup.jsx:63 -#: screens/InstanceGroup/InstanceGroup.jsx:64 +#: screens/InstanceGroup/ContainerGroup.jsx:75 +#: screens/InstanceGroup/InstanceGroup.jsx:76 #: screens/InstanceGroup/InstanceGroups.jsx:30 #: screens/InstanceGroup/InstanceGroups.jsx:36 #: screens/Inventory/Inventories.jsx:60 @@ -2323,7 +2324,7 @@ msgstr "Destination channels or users" #: screens/Setting/UI/UIDetail/UIDetail.jsx:61 #: screens/Team/Team.jsx:55 #: screens/Team/Teams.jsx:28 -#: screens/Template/Template.jsx:144 +#: screens/Template/Template.jsx:135 #: screens/Template/Templates.jsx:42 #: screens/Template/WorkflowJobTemplate.jsx:121 #: screens/User/User.jsx:63 @@ -2404,7 +2405,7 @@ msgstr "Disassociate?" msgid "Discard local changes before syncing" msgstr "Discard local changes before syncing" -#: screens/Template/shared/JobTemplateForm.jsx:480 +#: screens/Template/shared/JobTemplateForm.jsx:483 msgid "" "Divide the work done by this job template\n" "into the specified number of job slices, each running the\n" @@ -2740,7 +2741,7 @@ msgstr "Email Options" msgid "Enable Concurrent Jobs" msgstr "Enable Concurrent Jobs" -#: screens/Template/shared/JobTemplateForm.jsx:609 +#: screens/Template/shared/JobTemplateForm.jsx:612 msgid "Enable Fact Storage" msgstr "Enable Fact Storage" @@ -2753,8 +2754,8 @@ msgstr "Enable HTTPS certificate verification" #~ msgid "Enable Privilege Escalation" #~ msgstr "Enable Privilege Escalation" -#: screens/Template/shared/JobTemplateForm.jsx:583 #: screens/Template/shared/JobTemplateForm.jsx:586 +#: screens/Template/shared/JobTemplateForm.jsx:589 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:225 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:228 msgid "Enable Webhook" @@ -2789,7 +2790,7 @@ msgstr "Enable simplified login for your {0} applications" #~ msgid "Enable simplified login for your {brandName} applications" #~ msgstr "Enable simplified login for your {brandName} applications" -#: screens/Template/shared/JobTemplateForm.jsx:589 +#: screens/Template/shared/JobTemplateForm.jsx:592 msgid "Enable webhook for this template." msgstr "Enable webhook for this template." @@ -2832,7 +2833,7 @@ msgstr "Enabled Variable" #~ "and request a configuration update using this job\n" #~ "template." -#: screens/Template/shared/JobTemplateForm.jsx:569 +#: screens/Template/shared/JobTemplateForm.jsx:572 msgid "" "Enables creation of a provisioning\n" "callback URL. Using the URL a host can contact {0}\n" @@ -3070,9 +3071,9 @@ msgstr "Enter variables using either JSON or YAML syntax. Use the radio button t #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:210 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:146 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:223 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:124 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:125 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:133 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:268 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:297 #: screens/Job/JobOutput/JobOutput.jsx:761 msgid "Error" msgstr "Error" @@ -3103,8 +3104,8 @@ msgstr "Error saving the workflow!" #: components/InstanceToggle/InstanceToggle.jsx:61 #: components/JobList/JobList.jsx:280 #: components/JobList/JobList.jsx:291 -#: components/LaunchButton/LaunchButton.jsx:173 -#: components/LaunchPrompt/LaunchPrompt.jsx:72 +#: components/LaunchButton/LaunchButton.jsx:161 +#: components/LaunchPrompt/LaunchPrompt.jsx:66 #: components/NotificationList/NotificationList.jsx:246 #: components/PaginatedTable/ToolbarDeleteButton.jsx:205 #: components/ResourceAccessList/ResourceAccessList.jsx:234 @@ -3231,7 +3232,7 @@ msgstr "Example URLs for Subversion Source Control include:" msgid "Examples include:" msgstr "Examples include:" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:109 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:114 msgid "Examples:" msgstr "Examples:" @@ -3247,11 +3248,11 @@ msgstr "Execute when the parent node results in a failure state." msgid "Execute when the parent node results in a successful state." msgstr "Execute when the parent node results in a successful state." -#: components/AdHocCommands/AdHocCommandsWizard.jsx:85 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:86 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:40 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:103 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:197 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:189 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:211 msgid "Execution Environment" msgstr "Execution Environment" @@ -3263,7 +3264,7 @@ msgstr "Execution Environment Missing" #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:91 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:92 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:104 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:144 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:158 #: routeConfig.jsx:140 #: screens/ActivityStream/ActivityStream.jsx:208 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:122 @@ -3541,7 +3542,7 @@ msgstr "Failed to delete one or more groups." msgid "Failed to delete one or more hosts." msgstr "Failed to delete one or more hosts." -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:300 msgid "Failed to delete one or more instance groups." msgstr "Failed to delete one or more instance groups." @@ -3682,7 +3683,7 @@ msgid "Failed to fetch the updated project data." msgstr "Failed to fetch the updated project data." #: components/AdHocCommands/AdHocCommands.jsx:113 -#: components/LaunchButton/LaunchButton.jsx:176 +#: components/LaunchButton/LaunchButton.jsx:164 #: screens/ManagementJob/ManagementJobList/ManagementJobList.jsx:130 msgid "Failed to launch job." msgstr "Failed to launch job." @@ -3770,7 +3771,7 @@ msgstr "Field contains value." msgid "Field ends with value." msgstr "Field ends with value." -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:77 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 msgid "Field for passing a custom Kubernetes or OpenShift Pod specification." msgstr "Field for passing a custom Kubernetes or OpenShift Pod specification." @@ -3849,7 +3850,7 @@ msgstr "Float" msgid "Follow" msgstr "Follow" -#: screens/Template/shared/JobTemplateForm.jsx:254 +#: screens/Template/shared/JobTemplateForm.jsx:257 msgid "" "For job templates, select run to execute\n" "the playbook. Select check to only check playbook syntax,\n" @@ -3884,7 +3885,7 @@ msgstr "For more information, refer to the" #: components/AdHocCommands/AdHocDetailsStep.jsx:180 #: components/PromptDetail/PromptJobTemplateDetail.jsx:154 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:230 -#: screens/Template/shared/JobTemplateForm.jsx:425 +#: screens/Template/shared/JobTemplateForm.jsx:428 msgid "Forks" msgstr "Forks" @@ -3991,7 +3992,7 @@ msgstr "GitHub settings" msgid "GitLab" msgstr "GitLab" -#: components/Lookup/ExecutionEnvironmentLookup.jsx:192 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:206 msgid "Global Default Execution Environment" msgstr "Global Default Execution Environment" @@ -4000,7 +4001,7 @@ msgstr "Global Default Execution Environment" msgid "Globally Available" msgstr "Globally Available" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:148 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:154 msgid "Globally available execution environment can not be reassigned to a specific Organization" msgstr "Globally available execution environment can not be reassigned to a specific Organization" @@ -4098,7 +4099,7 @@ msgstr "" msgid "Hide" msgstr "Hide" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Hide description" msgstr "Hide description" @@ -4123,7 +4124,7 @@ msgstr "Host Async OK" #: components/PromptDetail/PromptJobTemplateDetail.jsx:161 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:238 -#: screens/Template/shared/JobTemplateForm.jsx:642 +#: screens/Template/shared/JobTemplateForm.jsx:645 msgid "Host Config Key" msgstr "Host Config Key" @@ -4363,7 +4364,7 @@ msgstr "" #~ msgid "If checked, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the \"all\" default group for the inventory." #~ msgstr "If checked, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the \"all\" default group for the inventory." -#: screens/Template/shared/JobTemplateForm.jsx:559 +#: screens/Template/shared/JobTemplateForm.jsx:562 msgid "" "If enabled, run this playbook as an\n" "administrator." @@ -4385,7 +4386,7 @@ msgstr "" "by Ansible tasks, where supported. This is equivalent to Ansible’s\n" "--diff mode." -#: screens/Template/shared/JobTemplateForm.jsx:499 +#: screens/Template/shared/JobTemplateForm.jsx:502 msgid "" "If enabled, show the changes made by\n" "Ansible tasks, where supported. This is equivalent\n" @@ -4403,7 +4404,7 @@ msgstr "" msgid "If enabled, show the changes made by Ansible tasks, where supported. This is equivalent to Ansible’s --diff mode." msgstr "If enabled, show the changes made by Ansible tasks, where supported. This is equivalent to Ansible’s --diff mode." -#: screens/Template/shared/JobTemplateForm.jsx:603 +#: screens/Template/shared/JobTemplateForm.jsx:606 msgid "" "If enabled, simultaneous runs of this job\n" "template will be allowed." @@ -4419,7 +4420,7 @@ msgstr "" msgid "If enabled, simultaneous runs of this workflow job template will be allowed." msgstr "If enabled, simultaneous runs of this workflow job template will be allowed." -#: screens/Template/shared/JobTemplateForm.jsx:610 +#: screens/Template/shared/JobTemplateForm.jsx:613 msgid "" "If enabled, this will store gathered facts so they can\n" "be viewed at the host level. Facts are persisted and\n" @@ -4467,7 +4468,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:140 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:159 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.jsx:62 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:99 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:103 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:91 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:110 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.jsx:16 @@ -4580,8 +4581,8 @@ msgstr "Instance Group" #: components/PromptDetail/PromptJobTemplateDetail.jsx:227 #: routeConfig.jsx:130 #: screens/ActivityStream/ActivityStream.jsx:196 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:134 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:224 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:170 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:253 #: screens/InstanceGroup/InstanceGroups.jsx:16 #: screens/InstanceGroup/InstanceGroups.jsx:26 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:91 @@ -4599,7 +4600,7 @@ msgstr "Instance ID" msgid "Instance group" msgstr "Instance group" -#: screens/InstanceGroup/InstanceGroup.jsx:87 +#: screens/InstanceGroup/InstanceGroup.jsx:99 msgid "Instance group not found." msgstr "Instance group not found." @@ -4611,8 +4612,8 @@ msgstr "Instance group used capacity" msgid "Instance groups" msgstr "Instance groups" -#: screens/InstanceGroup/InstanceGroup.jsx:69 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:244 +#: screens/InstanceGroup/InstanceGroup.jsx:81 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:273 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:75 #: screens/InstanceGroup/InstanceGroups.jsx:31 #: screens/InstanceGroup/Instances/InstanceList.jsx:156 @@ -4845,7 +4846,7 @@ msgstr "Job Slice" #: components/PromptDetail/PromptJobTemplateDetail.jsx:160 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:235 -#: screens/Template/shared/JobTemplateForm.jsx:479 +#: screens/Template/shared/JobTemplateForm.jsx:482 msgid "Job Slicing" msgstr "Job Slicing" @@ -4860,7 +4861,7 @@ msgstr "Job Status" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:334 #: screens/Job/JobDetail/JobDetail.jsx:294 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:337 -#: screens/Template/shared/JobTemplateForm.jsx:520 +#: screens/Template/shared/JobTemplateForm.jsx:523 msgid "Job Tags" msgstr "Job Tags" @@ -4875,7 +4876,7 @@ msgstr "Job Tags" msgid "Job Template" msgstr "Job Template" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:40 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:39 msgid "Job Template default credentials must be replaced with one of the same type. Please select a credential for the following types in order to proceed: {0}" msgstr "Job Template default credentials must be replaced with one of the same type. Please select a credential for the following types in order to proceed: {0}" @@ -4903,7 +4904,7 @@ msgstr "Job Templates with credentials that prompt for passwords cannot be selec #: screens/Job/JobDetail/JobDetail.jsx:156 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:183 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:142 -#: screens/Template/shared/JobTemplateForm.jsx:251 +#: screens/Template/shared/JobTemplateForm.jsx:254 msgid "Job Type" msgstr "Job Type" @@ -4928,8 +4929,8 @@ msgstr "Job templates" #: screens/Dashboard/shared/LineChart.jsx:69 #: screens/Host/Host.jsx:67 #: screens/Host/Hosts.jsx:31 -#: screens/InstanceGroup/ContainerGroup.jsx:68 -#: screens/InstanceGroup/InstanceGroup.jsx:74 +#: screens/InstanceGroup/ContainerGroup.jsx:80 +#: screens/InstanceGroup/InstanceGroup.jsx:86 #: screens/InstanceGroup/InstanceGroups.jsx:32 #: screens/InstanceGroup/InstanceGroups.jsx:37 #: screens/Inventory/Inventories.jsx:59 @@ -4941,7 +4942,7 @@ msgstr "Job templates" #: screens/Job/Jobs.jsx:25 #: screens/Setting/SettingList.jsx:85 #: screens/Setting/Settings.jsx:71 -#: screens/Template/Template.jsx:164 +#: screens/Template/Template.jsx:155 #: screens/Template/Templates.jsx:46 #: screens/Template/WorkflowJobTemplate.jsx:145 msgid "Jobs" @@ -5043,7 +5044,7 @@ msgstr "Label Name" #: screens/Job/JobDetail/JobDetail.jsx:279 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:304 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:193 -#: screens/Template/shared/JobTemplateForm.jsx:392 +#: screens/Template/shared/JobTemplateForm.jsx:395 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:195 msgid "Labels" msgstr "Labels" @@ -5131,7 +5132,7 @@ msgstr "Last name" msgid "Last used" msgstr "Last used" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:106 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:130 #: components/LaunchPrompt/steps/usePreviewStep.jsx:35 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:54 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:57 @@ -5169,7 +5170,7 @@ msgstr "Launch template" msgid "Launch workflow" msgstr "Launch workflow" -#: components/LaunchPrompt/LaunchPrompt.jsx:106 +#: components/LaunchPrompt/LaunchPrompt.jsx:100 msgid "Launch | {0}" msgstr "Launch | {0}" @@ -5230,7 +5231,7 @@ msgstr "Less than or equal to comparison." #: screens/Job/JobDetail/JobDetail.jsx:221 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:231 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:152 -#: screens/Template/shared/JobTemplateForm.jsx:441 +#: screens/Template/shared/JobTemplateForm.jsx:444 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:156 msgid "Limit" msgstr "Limit" @@ -5307,7 +5308,8 @@ msgstr "MOST RECENT SYNC" msgid "Machine Credential" msgstr "Machine Credential" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:98 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:102 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:112 msgid "Machine credential" msgstr "Machine credential" @@ -5420,7 +5422,7 @@ msgstr "Minimum" msgid "Minimum length" msgstr "Minimum length" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:33 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:34 msgid "" "Minimum number of instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5432,7 +5434,7 @@ msgstr "" #~ msgid "Minimum number of instances that will be automatically assigned to this group when new instances come online." #~ msgstr "Minimum number of instances that will be automatically assigned to this group when new instances come online." -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:43 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:44 msgid "" "Minimum percentage of all instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5602,8 +5604,8 @@ msgstr "Multiple Choice Options" #: components/Lookup/ApplicationLookup.jsx:111 #: components/Lookup/CredentialLookup.jsx:186 #: components/Lookup/CredentialLookup.jsx:201 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:161 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:168 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:182 #: components/Lookup/HostFilterLookup.jsx:79 #: components/Lookup/HostFilterLookup.jsx:364 #: components/Lookup/HostListItem.jsx:8 @@ -5676,7 +5678,7 @@ msgstr "Multiple Choice Options" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:91 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:117 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:9 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:91 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:94 #: screens/Host/HostDetail/HostDetail.jsx:74 #: screens/Host/HostGroups/HostGroupItem.jsx:28 #: screens/Host/HostGroups/HostGroupsList.jsx:164 @@ -5686,14 +5688,14 @@ msgstr "Multiple Choice Options" #: screens/Host/HostList/HostListItem.jsx:28 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:45 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:50 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:240 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:269 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:63 #: screens/InstanceGroup/Instances/InstanceList.jsx:163 #: screens/InstanceGroup/Instances/InstanceList.jsx:170 #: screens/InstanceGroup/Instances/InstanceList.jsx:211 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:117 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:45 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:20 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:47 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:21 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:74 #: screens/Inventory/InventoryGroupDetail/InventoryGroupDetail.jsx:35 #: screens/Inventory/InventoryGroupHosts/InventoryGroupHostList.jsx:190 @@ -5772,7 +5774,7 @@ msgstr "Multiple Choice Options" #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:76 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:96 -#: screens/Template/shared/JobTemplateForm.jsx:238 +#: screens/Template/shared/JobTemplateForm.jsx:241 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:107 #: screens/User/UserOrganizations/UserOrganizationList.jsx:60 #: screens/User/UserOrganizations/UserOrganizationList.jsx:64 @@ -5815,11 +5817,12 @@ msgstr "Never expires" msgid "New" msgstr "New" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:80 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:92 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:81 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:93 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:116 #: components/AddRole/AddResourceRole.jsx:215 #: components/AddRole/AddResourceRole.jsx:250 -#: components/LaunchPrompt/LaunchPrompt.jsx:136 +#: components/LaunchPrompt/LaunchPrompt.jsx:130 #: components/Schedule/shared/SchedulePromptableFields.jsx:138 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:66 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:59 @@ -6062,7 +6065,7 @@ msgstr "Notification type" #: screens/Organization/Organizations.jsx:33 #: screens/Project/Project.jsx:111 #: screens/Project/Projects.jsx:30 -#: screens/Template/Template.jsx:150 +#: screens/Template/Template.jsx:141 #: screens/Template/Templates.jsx:45 #: screens/Template/WorkflowJobTemplate.jsx:127 msgid "Notifications" @@ -6101,7 +6104,7 @@ msgstr "October" #: screens/Setting/shared/SharedFields.jsx:144 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:53 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "Off" msgstr "Off" @@ -6119,7 +6122,7 @@ msgstr "Off" #: screens/Setting/shared/SharedFields.jsx:143 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:52 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "On" msgstr "On" @@ -6157,7 +6160,7 @@ msgstr "OpenStack" msgid "Option Details" msgstr "Option Details" -#: screens/Template/shared/JobTemplateForm.jsx:395 +#: screens/Template/shared/JobTemplateForm.jsx:398 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:198 msgid "" "Optional labels that describe this job template,\n" @@ -6180,9 +6183,9 @@ msgstr "Optionally select the credential to use to send status updates back to t #: components/NotificationList/NotificationList.jsx:220 #: components/NotificationList/NotificationListItem.jsx:31 #: screens/Credential/shared/TypeInputsSubForm.jsx:47 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:62 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:65 #: screens/Project/shared/ProjectSubForms/SharedFields.jsx:67 -#: screens/Template/shared/JobTemplateForm.jsx:552 +#: screens/Template/shared/JobTemplateForm.jsx:555 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:222 msgid "Options" msgstr "Options" @@ -6372,7 +6375,7 @@ msgstr "Pass extra command line changes. There are two ansible command line para #~ "Provide key/value pairs using either YAML or JSON. Refer to the\n" #~ "Ansible Tower documentation for example syntax." -#: screens/Template/shared/JobTemplateForm.jsx:414 +#: screens/Template/shared/JobTemplateForm.jsx:417 msgid "" "Pass extra command line variables to the playbook. This is the\n" "-e or --extra-vars command line parameter for ansible-playbook.\n" @@ -6457,7 +6460,7 @@ msgstr "Play Started" #: components/PromptDetail/PromptJobTemplateDetail.jsx:153 #: screens/Job/JobDetail/JobDetail.jsx:220 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:229 -#: screens/Template/shared/JobTemplateForm.jsx:355 +#: screens/Template/shared/JobTemplateForm.jsx:358 msgid "Playbook" msgstr "Playbook" @@ -6543,7 +6546,7 @@ msgstr "Please log in" msgid "Please select a day number between 1 and 31." msgstr "Please select a day number between 1 and 31." -#: screens/Template/shared/JobTemplateForm.jsx:170 +#: screens/Template/shared/JobTemplateForm.jsx:173 msgid "Please select an Inventory or check the Prompt on Launch option" msgstr "Please select an Inventory or check the Prompt on Launch option" @@ -6564,17 +6567,17 @@ msgid "Pod spec override" msgstr "Pod spec override" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:64 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:28 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:29 msgid "Policy instance minimum" msgstr "Policy instance minimum" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:69 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:38 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:39 msgid "Policy instance percentage" msgstr "Policy instance percentage" -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:56 -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:62 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:63 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:69 msgid "Populate field from an external secret management system" msgstr "Populate field from an external secret management system" @@ -6649,6 +6652,7 @@ msgstr "" msgid "Press Enter to edit. Press ESC to stop editing." msgstr "Press Enter to edit. Press ESC to stop editing." +#: components/AdHocCommands/AdHocCommandsWizard.jsx:121 #: components/LaunchPrompt/steps/usePreviewStep.jsx:23 #: screens/Template/Survey/SurveyList.jsx:162 #: screens/Template/Survey/SurveyList.jsx:164 @@ -6669,7 +6673,7 @@ msgstr "Private key passphrase" #: components/PromptDetail/PromptJobTemplateDetail.jsx:65 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:128 -#: screens/Template/shared/JobTemplateForm.jsx:558 +#: screens/Template/shared/JobTemplateForm.jsx:561 msgid "Privilege Escalation" msgstr "Privilege Escalation" @@ -6768,7 +6772,7 @@ msgstr "Prompted Values" #~ msgid "Prompts" #~ msgstr "Prompts" -#: screens/Template/shared/JobTemplateForm.jsx:444 +#: screens/Template/shared/JobTemplateForm.jsx:447 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:159 msgid "" "Provide a host pattern to further constrain\n" @@ -6841,23 +6845,23 @@ msgstr "Provide your Red Hat or Red Hat Satellite credentials to enable Insights #: components/PromptDetail/PromptJobTemplateDetail.jsx:164 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:240 -#: screens/Template/shared/JobTemplateForm.jsx:629 +#: screens/Template/shared/JobTemplateForm.jsx:632 msgid "Provisioning Callback URL" msgstr "Provisioning Callback URL" -#: screens/Template/shared/JobTemplateForm.jsx:624 +#: screens/Template/shared/JobTemplateForm.jsx:627 msgid "Provisioning Callback details" msgstr "Provisioning Callback details" #: components/PromptDetail/PromptJobTemplateDetail.jsx:70 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:133 -#: screens/Template/shared/JobTemplateForm.jsx:563 #: screens/Template/shared/JobTemplateForm.jsx:566 +#: screens/Template/shared/JobTemplateForm.jsx:569 msgid "Provisioning Callbacks" msgstr "Provisioning Callbacks" #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:88 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:129 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:134 msgid "Pull" msgstr "Pull" @@ -6956,7 +6960,7 @@ msgstr "Redirecting to subscription detail" msgid "Refer to the" msgstr "Refer to the" -#: screens/Template/shared/JobTemplateForm.jsx:434 +#: screens/Template/shared/JobTemplateForm.jsx:437 msgid "" "Refer to the Ansible documentation for details\n" "about the configuration file." @@ -6988,7 +6992,7 @@ msgstr "Refresh project revision" msgid "Regions" msgstr "Regions" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:157 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:163 msgid "Registry credential" msgstr "Registry credential" @@ -7247,7 +7251,7 @@ msgstr "Roles" #: screens/Credential/shared/ExternalTestModal.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.jsx:49 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/RunStep.jsx:24 -#: screens/Template/shared/JobTemplateForm.jsx:202 +#: screens/Template/shared/JobTemplateForm.jsx:205 msgid "Run" msgstr "Run" @@ -7258,7 +7262,7 @@ msgstr "Run" msgid "Run Command" msgstr "Run Command" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:123 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:146 msgid "Run command" msgstr "Run command" @@ -7288,7 +7292,7 @@ msgstr "Running" msgid "Running Handlers" msgstr "Running Handlers" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:242 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 #: screens/InstanceGroup/Instances/InstanceList.jsx:213 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:123 msgid "Running Jobs" @@ -7412,7 +7416,7 @@ msgstr "Schedule is missing rrule" #: screens/Project/Project.jsx:123 #: screens/Project/Projects.jsx:33 #: screens/Schedule/AllSchedules.jsx:25 -#: screens/Template/Template.jsx:157 +#: screens/Template/Template.jsx:148 #: screens/Template/Templates.jsx:50 #: screens/Template/WorkflowJobTemplate.jsx:134 msgid "Schedules" @@ -7542,7 +7546,7 @@ msgstr "Select a Node Type" msgid "Select a Resource Type" msgstr "Select a Resource Type" -#: screens/Template/shared/JobTemplateForm.jsx:335 +#: screens/Template/shared/JobTemplateForm.jsx:338 msgid "" "Select a branch for the job template. This branch is applied to\n" "all job template nodes that prompt for a branch." @@ -7587,7 +7591,7 @@ msgstr "Select a module" msgid "Select a playbook" msgstr "Select a playbook" -#: screens/Template/shared/JobTemplateForm.jsx:323 +#: screens/Template/shared/JobTemplateForm.jsx:326 msgid "Select a project before editing the execution environment." msgstr "Select a project before editing the execution environment." @@ -7624,7 +7628,7 @@ msgstr "Select a subscription" #: components/Schedule/shared/ScheduleForm.jsx:85 #: components/Schedule/shared/ScheduleForm.jsx:89 #: screens/Credential/shared/CredentialForm.jsx:47 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:80 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:83 #: screens/Inventory/shared/InventoryForm.jsx:59 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:50 #: screens/Inventory/shared/InventorySourceSubForms/GCESubForm.jsx:50 @@ -7679,7 +7683,7 @@ msgstr "Select an option" msgid "Select an organization before editing the default execution environment." msgstr "Select an organization before editing the default execution environment." -#: screens/Template/shared/JobTemplateForm.jsx:377 +#: screens/Template/shared/JobTemplateForm.jsx:380 msgid "" "Select credentials for accessing the nodes this job will be ran\n" "against. You can only select one credential of each type. For machine credentials (SSH),\n" @@ -7771,7 +7775,7 @@ msgstr "Select the Execution Environment you want this command to run inside." msgid "Select the Instance Groups for this Inventory to run on." msgstr "Select the Instance Groups for this Inventory to run on." -#: screens/Template/shared/JobTemplateForm.jsx:514 +#: screens/Template/shared/JobTemplateForm.jsx:517 msgid "" "Select the Instance Groups for this Organization\n" "to run on." @@ -7807,12 +7811,12 @@ msgstr "Select the credential you want to use when accessing the remote hosts to #~ msgid "Select the default execution environment for this project." #~ msgstr "Select the default execution environment for this project." -#: screens/Template/shared/JobTemplateForm.jsx:322 +#: screens/Template/shared/JobTemplateForm.jsx:325 msgid "Select the execution environment for this job template." msgstr "Select the execution environment for this job template." #: components/Lookup/InventoryLookup.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:286 +#: screens/Template/shared/JobTemplateForm.jsx:289 msgid "" "Select the inventory containing the hosts\n" "you want this job to manage." @@ -7844,11 +7848,11 @@ msgstr "" msgid "Select the inventory that this host will belong to." msgstr "Select the inventory that this host will belong to." -#: screens/Template/shared/JobTemplateForm.jsx:358 +#: screens/Template/shared/JobTemplateForm.jsx:361 msgid "Select the playbook to be executed by this job." msgstr "Select the playbook to be executed by this job." -#: screens/Template/shared/JobTemplateForm.jsx:301 +#: screens/Template/shared/JobTemplateForm.jsx:304 msgid "" "Select the project containing the playbook\n" "you want this job to execute." @@ -8004,7 +8008,7 @@ msgstr "Show" #: components/PromptDetail/PromptJobTemplateDetail.jsx:158 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:314 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 -#: screens/Template/shared/JobTemplateForm.jsx:496 +#: screens/Template/shared/JobTemplateForm.jsx:499 msgid "Show Changes" msgstr "Show Changes" @@ -8017,7 +8021,7 @@ msgstr "Show all groups" msgid "Show changes" msgstr "Show changes" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Show description" msgstr "Show description" @@ -8082,7 +8086,7 @@ msgstr "Simple key select" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:352 #: screens/Job/JobDetail/JobDetail.jsx:312 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:352 -#: screens/Template/shared/JobTemplateForm.jsx:536 +#: screens/Template/shared/JobTemplateForm.jsx:539 msgid "Skip Tags" msgstr "Skip Tags" @@ -8100,7 +8104,7 @@ msgstr "Skip Tags" #~ "to Ansible Tower documentation for details on the usage\n" #~ "of tags." -#: screens/Template/shared/JobTemplateForm.jsx:539 +#: screens/Template/shared/JobTemplateForm.jsx:542 msgid "" "Skip tags are useful when you have a\n" "large playbook, and you want to skip specific parts of a\n" @@ -8202,7 +8206,7 @@ msgstr "Source" #: screens/Project/ProjectDetail/ProjectDetail.jsx:203 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:228 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:138 -#: screens/Template/shared/JobTemplateForm.jsx:332 +#: screens/Template/shared/JobTemplateForm.jsx:335 msgid "Source Control Branch" msgstr "Source Control Branch" @@ -8517,7 +8521,7 @@ msgid "Sunday" msgstr "Sunday" #: components/LaunchPrompt/steps/useSurveyStep.jsx:26 -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/Templates.jsx:47 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "Survey" @@ -8637,7 +8641,7 @@ msgstr "Tabs" #~ "Refer to Ansible Tower documentation for details on\n" #~ "the usage of tags." -#: screens/Template/shared/JobTemplateForm.jsx:523 +#: screens/Template/shared/JobTemplateForm.jsx:526 msgid "" "Tags are useful when you have a large\n" "playbook, and you want to run a specific part of a\n" @@ -8735,7 +8739,7 @@ msgstr "Team not found." msgid "Teams" msgstr "" -#: screens/Template/Template.jsx:184 +#: screens/Template/Template.jsx:175 #: screens/Template/WorkflowJobTemplate.jsx:179 msgid "Template not found." msgstr "Template not found." @@ -8825,7 +8829,7 @@ msgstr "" #~ msgid "The amount of time (in seconds) before the email notification stops trying to reach the host and times out. Ranges from 1 to 120 seconds." #~ msgstr "The amount of time (in seconds) before the email notification stops trying to reach the host and times out. Ranges from 1 to 120 seconds." -#: screens/Template/shared/JobTemplateForm.jsx:490 +#: screens/Template/shared/JobTemplateForm.jsx:493 msgid "" "The amount of time (in seconds) to run\n" "before the job is canceled. Defaults to 0 for no job\n" @@ -8885,7 +8889,7 @@ msgstr "" #~ msgid "The first fetches all references. The second fetches the Github pull request number 62, in this example the branch needs to be \"pull/62/head\"." #~ msgstr "The first fetches all references. The second fetches the Github pull request number 62, in this example the branch needs to be \"pull/62/head\"." -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:106 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:111 msgid "The full image location, including the container registry, image name, and version tag." msgstr "The full image location, including the container registry, image name, and version tag." @@ -8903,7 +8907,7 @@ msgstr "" #~ msgid "The maximum number of hosts allowed to be managed by this organization. Value defaults to 0 which means no limit. Refer to the Ansible documentation for more details." #~ msgstr "The maximum number of hosts allowed to be managed by this organization. Value defaults to 0 which means no limit. Refer to the Ansible documentation for more details." -#: screens/Template/shared/JobTemplateForm.jsx:428 +#: screens/Template/shared/JobTemplateForm.jsx:431 msgid "" "The number of parallel or simultaneous\n" "processes to use while executing the playbook. An empty value,\n" @@ -8971,8 +8975,8 @@ msgstr "" #~ msgstr "The suggested format for variable names is lowercase and underscore-separated (for example, foo_bar, user_id, host_name, etc.). Variable names with spaces are not allowed." #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:155 -msgid "The tower instance group cannot be deleted." -msgstr "The tower instance group cannot be deleted." +#~ msgid "The tower instance group cannot be deleted." +#~ msgstr "The tower instance group cannot be deleted." #: screens/Project/shared/ProjectSubForms/ManualSubForm.jsx:47 msgid "" @@ -9066,7 +9070,7 @@ msgstr "These arguments are used with the specified module. You can find informa msgid "Third" msgstr "Third" -#: screens/Template/shared/JobTemplateForm.jsx:153 +#: screens/Template/shared/JobTemplateForm.jsx:156 msgid "This Project needs to be updated" msgstr "This Project needs to be updated" @@ -9088,7 +9092,7 @@ msgstr "This action will disassociate the following role from {0}:" msgid "This action will disassociate the following:" msgstr "This action will disassociate the following:" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:114 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:115 msgid "This container group is currently being by other resources. Are you sure you want to delete it?" msgstr "This container group is currently being by other resources. Are you sure you want to delete it?" @@ -9206,7 +9210,7 @@ msgid "This field must be greater than 0" msgstr "This field must be greater than 0" #: components/LaunchPrompt/steps/useSurveyStep.jsx:111 -#: screens/Template/shared/JobTemplateForm.jsx:150 +#: screens/Template/shared/JobTemplateForm.jsx:153 #: screens/User/shared/UserForm.jsx:81 #: screens/User/shared/UserForm.jsx:92 #: util/validators.jsx:5 @@ -9282,7 +9286,8 @@ msgstr "This schedule is missing an Inventory" msgid "This schedule is missing required survey values" msgstr "This schedule is missing required survey values" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:64 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:65 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:105 #: components/LaunchPrompt/steps/StepName.jsx:27 msgid "This step contains errors" msgstr "This step contains errors" @@ -9374,7 +9379,7 @@ msgstr "Timed out" #: screens/NotificationTemplate/shared/TypeInputsSubForm.jsx:112 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:233 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:169 -#: screens/Template/shared/JobTemplateForm.jsx:489 +#: screens/Template/shared/JobTemplateForm.jsx:492 msgid "Timeout" msgstr "Timeout" @@ -9477,7 +9482,7 @@ msgstr "Tools" msgid "Top Pagination" msgstr "Top Pagination" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:243 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:272 #: screens/InstanceGroup/Instances/InstanceList.jsx:214 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:124 msgid "Total Jobs" @@ -9552,7 +9557,7 @@ msgstr "Twilio" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:12 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:50 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:55 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:241 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:270 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:68 #: screens/InstanceGroup/Instances/InstanceList.jsx:212 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:120 @@ -9863,7 +9868,7 @@ msgstr "VMware vCenter" #: screens/Job/JobDetail/JobDetail.jsx:341 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:367 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:209 -#: screens/Template/shared/JobTemplateForm.jsx:412 +#: screens/Template/shared/JobTemplateForm.jsx:415 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:217 msgid "Variables" msgstr "Variables" @@ -9894,7 +9899,7 @@ msgstr "Verbose" #: screens/Inventory/shared/InventorySourceSubForms/SharedFields.jsx:90 #: screens/Job/JobDetail/JobDetail.jsx:222 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:232 -#: screens/Template/shared/JobTemplateForm.jsx:462 +#: screens/Template/shared/JobTemplateForm.jsx:465 msgid "Verbosity" msgstr "Verbosity" @@ -9997,7 +10002,7 @@ msgstr "View Schedules" msgid "View Settings" msgstr "View Settings" -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "View Survey" msgstr "View Survey" @@ -10010,7 +10015,7 @@ msgstr "View TACACS+ settings" msgid "View Team Details" msgstr "View Team Details" -#: screens/Template/Template.jsx:265 +#: screens/Template/Template.jsx:259 #: screens/Template/WorkflowJobTemplate.jsx:279 msgid "View Template Details" msgstr "View Template Details" @@ -10082,7 +10087,7 @@ msgstr "View all Projects." msgid "View all Teams." msgstr "View all Teams." -#: screens/Template/Template.jsx:185 +#: screens/Template/Template.jsx:176 #: screens/Template/WorkflowJobTemplate.jsx:180 msgid "View all Templates." msgstr "View all Templates." @@ -10107,8 +10112,8 @@ msgstr "View all credential types" msgid "View all execution environments" msgstr "View all execution environments" -#: screens/InstanceGroup/ContainerGroup.jsx:83 -#: screens/InstanceGroup/InstanceGroup.jsx:89 +#: screens/InstanceGroup/ContainerGroup.jsx:95 +#: screens/InstanceGroup/InstanceGroup.jsx:101 msgid "View all instance groups" msgstr "View all instance groups" @@ -10232,7 +10237,7 @@ msgstr "Webhook Service" msgid "Webhook URL" msgstr "Webhook URL" -#: screens/Template/shared/JobTemplateForm.jsx:655 +#: screens/Template/shared/JobTemplateForm.jsx:658 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:253 msgid "Webhook details" msgstr "Webhook details" @@ -10479,8 +10484,8 @@ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableTo msgstr "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:147 -msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." -msgstr "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." +#~ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." +#~ msgstr "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." #: components/DisassociateButton/DisassociateButton.jsx:50 msgid "You do not have permission to disassociate the following: {itemsUnableToDisassociate}" @@ -10522,12 +10527,12 @@ msgstr "Zoom In" msgid "Zoom Out" msgstr "Zoom Out" -#: screens/Template/shared/JobTemplateForm.jsx:753 +#: screens/Template/shared/JobTemplateForm.jsx:756 #: screens/Template/shared/WebhookSubForm.jsx:152 msgid "a new webhook key will be generated on save." msgstr "a new webhook key will be generated on save." -#: screens/Template/shared/JobTemplateForm.jsx:750 +#: screens/Template/shared/JobTemplateForm.jsx:753 #: screens/Template/shared/WebhookSubForm.jsx:142 msgid "a new webhook url will be generated on save." msgstr "a new webhook url will be generated on save." @@ -10818,7 +10823,7 @@ msgstr "select verbosity" msgid "social login" msgstr "social login" -#: screens/Template/shared/JobTemplateForm.jsx:344 +#: screens/Template/shared/JobTemplateForm.jsx:347 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:189 msgid "source control branch" msgstr "source control branch" @@ -10863,6 +10868,10 @@ msgstr "{0, plural, one {Are you sure you want delete the group below?} other {A msgid "{0, plural, one {Delete Group?} other {Delete Groups?}}" msgstr "{0, plural, one {Delete Group?} other {Delete Groups?}}" +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:179 +msgid "{0, plural, one {The following Instance Group cannot be deleted} other {The following Instance Groups cannot be deleted}}" +msgstr "{0, plural, one {The following Instance Group cannot be deleted} other {The following Instance Groups cannot be deleted}}" + #: screens/Inventory/InventoryList/InventoryList.jsx:225 msgid "{0, plural, one {The inventory will be in a pending status until the final delete is processed.} other {The inventories will be in a pending status until the final delete is processed.}}" msgstr "{0, plural, one {The inventory will be in a pending status until the final delete is processed.} other {The inventories will be in a pending status until the final delete is processed.}}" @@ -10891,7 +10900,7 @@ msgstr "{0, plural, one {This credential type is currently being used by some cr msgid "{0, plural, one {This execution environment is currently being used by other resources. Are you sure you want to delete it?} other {These execution environments could be in use by other resources that rely on them. Are you sure you want to delete them anyway?}}" msgstr "{0, plural, one {This execution environment is currently being used by other resources. Are you sure you want to delete it?} other {These execution environments could be in use by other resources that rely on them. Are you sure you want to delete them anyway?}}" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:228 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:257 msgid "{0, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}" msgstr "{0, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}" diff --git a/awx/ui_next/src/locales/es/messages.po b/awx/ui_next/src/locales/es/messages.po index d828ca12a6..72d5e2f924 100644 --- a/awx/ui_next/src/locales/es/messages.po +++ b/awx/ui_next/src/locales/es/messages.po @@ -46,7 +46,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:46 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:75 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:106 -#: screens/Template/shared/JobTemplateForm.jsx:211 +#: screens/Template/shared/JobTemplateForm.jsx:214 msgid "0 (Normal)" msgstr "" @@ -67,7 +67,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:47 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:76 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:107 -#: screens/Template/shared/JobTemplateForm.jsx:212 +#: screens/Template/shared/JobTemplateForm.jsx:215 msgid "1 (Verbose)" msgstr "" @@ -83,7 +83,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:48 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:77 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:108 -#: screens/Template/shared/JobTemplateForm.jsx:213 +#: screens/Template/shared/JobTemplateForm.jsx:216 msgid "2 (More Verbose)" msgstr "" @@ -94,7 +94,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:49 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:78 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:109 -#: screens/Template/shared/JobTemplateForm.jsx:214 +#: screens/Template/shared/JobTemplateForm.jsx:217 msgid "3 (Debug)" msgstr "" @@ -105,7 +105,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:50 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:79 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:215 +#: screens/Template/shared/JobTemplateForm.jsx:218 msgid "4 (Connection Debug)" msgstr "" @@ -162,7 +162,7 @@ msgstr "" #: screens/Project/Projects.jsx:29 #: screens/Team/Team.jsx:56 #: screens/Team/Teams.jsx:30 -#: screens/Template/Template.jsx:145 +#: screens/Template/Template.jsx:136 #: screens/Template/Templates.jsx:44 #: screens/Template/WorkflowJobTemplate.jsx:122 msgid "Access" @@ -205,7 +205,7 @@ msgstr "" #: screens/Host/HostGroups/HostGroupsList.jsx:182 #: screens/Host/HostList/HostList.jsx:168 #: screens/Host/HostList/HostListItem.jsx:42 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:246 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:275 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:77 #: screens/InstanceGroup/Instances/InstanceList.jsx:217 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:153 @@ -311,7 +311,7 @@ msgstr "" msgid "Add a new node between these two nodes" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:159 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:187 msgid "Add container group" msgstr "" @@ -323,7 +323,7 @@ msgstr "" msgid "Add existing host" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:160 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:188 msgid "Add instance group" msgstr "" @@ -690,9 +690,9 @@ msgstr "" msgid "Azure AD settings" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:125 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:148 #: components/AddRole/AddResourceRole.jsx:286 -#: components/LaunchPrompt/LaunchPrompt.jsx:134 +#: components/LaunchPrompt/LaunchPrompt.jsx:128 #: components/Schedule/shared/SchedulePromptableFields.jsx:136 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:90 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:70 @@ -769,7 +769,7 @@ msgstr "" msgid "Back to Teams" msgstr "" -#: screens/Template/Template.jsx:138 +#: screens/Template/Template.jsx:129 #: screens/Template/WorkflowJobTemplate.jsx:115 msgid "Back to Templates" msgstr "" @@ -798,8 +798,8 @@ msgstr "" msgid "Back to execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:56 -#: screens/InstanceGroup/InstanceGroup.jsx:57 +#: screens/InstanceGroup/ContainerGroup.jsx:68 +#: screens/InstanceGroup/InstanceGroup.jsx:69 msgid "Back to instance groups" msgstr "" @@ -870,7 +870,7 @@ msgstr "" msgid "Cache timeout (seconds)" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:126 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:149 #: components/AddRole/AddResourceRole.jsx:287 #: components/AssociateModal/AssociateModal.jsx:116 #: components/AssociateModal/AssociateModal.jsx:121 @@ -880,7 +880,7 @@ msgstr "" #: components/DisassociateButton/DisassociateButton.jsx:125 #: components/FormActionGroup/FormActionGroup.jsx:24 #: components/FormActionGroup/FormActionGroup.jsx:29 -#: components/LaunchPrompt/LaunchPrompt.jsx:135 +#: components/LaunchPrompt/LaunchPrompt.jsx:129 #: components/Lookup/HostFilterLookup.jsx:350 #: components/Lookup/Lookup.jsx:186 #: components/PaginatedTable/ToolbarDeleteButton.jsx:281 @@ -1009,7 +1009,7 @@ msgstr "" #~ msgid "Cannot enable log aggregator without providing logging aggregator host and logging aggregator type." #~ msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:245 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:274 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:76 msgid "Capacity" msgstr "" @@ -1063,7 +1063,7 @@ msgid "Channel" msgstr "" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:102 -#: screens/Template/shared/JobTemplateForm.jsx:206 +#: screens/Template/shared/JobTemplateForm.jsx:209 msgid "Check" msgstr "" @@ -1096,7 +1096,7 @@ msgid "Choose a Webhook Service" msgstr "" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:95 -#: screens/Template/shared/JobTemplateForm.jsx:199 +#: screens/Template/shared/JobTemplateForm.jsx:202 msgid "Choose a job type" msgstr "" @@ -1226,6 +1226,7 @@ msgstr "" msgid "Collapse" msgstr "" +#: components/AdHocCommands/AdHocPreviewStep.jsx:8 #: components/JobList/JobList.jsx:186 #: components/JobList/JobListItem.jsx:37 #: screens/Job/JobDetail/JobDetail.jsx:81 @@ -1257,7 +1258,7 @@ msgstr "" #: components/PromptDetail/PromptWFJobTemplateDetail.jsx:36 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:138 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:61 -#: screens/Template/shared/JobTemplateForm.jsx:602 +#: screens/Template/shared/JobTemplateForm.jsx:605 msgid "Concurrent Jobs" msgstr "" @@ -1325,11 +1326,11 @@ msgstr "" msgid "Container group" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:81 +#: screens/InstanceGroup/ContainerGroup.jsx:93 msgid "Container group not found." msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:129 +#: components/LaunchPrompt/LaunchPrompt.jsx:123 #: components/Schedule/shared/SchedulePromptableFields.jsx:131 msgid "Content Loading" msgstr "" @@ -1354,7 +1355,7 @@ msgid "" "will produce as the playbook executes." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:465 +#: screens/Template/shared/JobTemplateForm.jsx:468 msgid "" "Control the level of output ansible will\n" "produce as the playbook executes." @@ -1424,7 +1425,7 @@ msgstr "" #~ msgid "Copyright 2019 Red Hat, Inc." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:406 +#: screens/Template/shared/JobTemplateForm.jsx:409 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:209 msgid "Create" msgstr "" @@ -1637,7 +1638,7 @@ msgstr "" #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:40 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:94 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:56 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:51 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:54 #: screens/Inventory/InventorySourceDetail/InventorySourceDetail.jsx:198 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:42 #: screens/Inventory/shared/InventorySourceSubForms/EC2SubForm.jsx:41 @@ -1688,11 +1689,11 @@ msgstr "" #~ msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token”." #~ msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:58 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:61 msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\". If left blank, the underlying Pod's service account will be used." msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:164 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:170 msgid "Credential to authenticate with a protected container registry." msgstr "" @@ -1702,7 +1703,7 @@ msgstr "" #: components/JobList/JobListItem.jsx:215 #: components/LaunchPrompt/steps/CredentialsStep.jsx:193 -#: components/LaunchPrompt/steps/useCredentialsStep.jsx:64 +#: components/LaunchPrompt/steps/useCredentialsStep.jsx:62 #: components/Lookup/MultiCredentialsLookup.jsx:139 #: components/Lookup/MultiCredentialsLookup.jsx:211 #: components/PromptDetail/PromptDetail.jsx:158 @@ -1717,12 +1718,12 @@ msgstr "" #: screens/Credential/Credentials.jsx:23 #: screens/Job/JobDetail/JobDetail.jsx:266 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:286 -#: screens/Template/shared/JobTemplateForm.jsx:374 +#: screens/Template/shared/JobTemplateForm.jsx:377 #: util/getRelatedResourceDeleteDetails.js:90 msgid "Credentials" msgstr "" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:54 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:53 msgid "Credentials that require passwords on launch are not permitted. Please remove or replace the following credentials with a credential of the same type in order to proceed: {0}" msgstr "" @@ -1730,7 +1731,7 @@ msgstr "" msgid "Current page" msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:83 msgid "Custom pod spec" msgstr "" @@ -1757,8 +1758,8 @@ msgstr "" msgid "Customize messages…" msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:66 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:67 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:69 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:70 msgid "Customize pod specification" msgstr "" @@ -1809,7 +1810,7 @@ msgid "Default" msgstr "" #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:39 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:195 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:209 msgid "Default Execution Environment" msgstr "" @@ -1843,7 +1844,7 @@ msgstr "" #: screens/Credential/CredentialDetail/CredentialDetail.jsx:299 #: screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx:126 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:137 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:116 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:117 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:125 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:138 #: screens/Inventory/InventoryGroups/InventoryGroupsList.jsx:100 @@ -1970,7 +1971,7 @@ msgstr "" msgid "Delete error" msgstr "" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:110 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:111 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:119 msgid "Delete instance group" msgstr "" @@ -2032,7 +2033,7 @@ msgstr "" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:207 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:220 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:265 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:294 msgid "Deletion error" msgstr "" @@ -2082,7 +2083,7 @@ msgstr "" #: screens/CredentialType/shared/CredentialTypeForm.jsx:32 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:62 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:152 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:142 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:147 #: screens/Host/HostDetail/HostDetail.jsx:81 #: screens/Host/HostList/HostList.jsx:150 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:78 @@ -2116,7 +2117,7 @@ msgstr "" #: screens/Template/Survey/SurveyQuestionForm.jsx:166 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:116 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:166 -#: screens/Template/shared/JobTemplateForm.jsx:246 +#: screens/Template/shared/JobTemplateForm.jsx:249 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:115 #: screens/User/UserOrganizations/UserOrganizationList.jsx:65 #: screens/User/UserOrganizations/UserOrganizationListItem.jsx:15 @@ -2158,8 +2159,8 @@ msgstr "" #~ msgid "Detail coming soon :)" #~ msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:61 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:71 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:62 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:72 #: components/ErrorDetail/ErrorDetail.jsx:73 #: components/Schedule/Schedule.jsx:66 #: screens/Application/Application/Application.jsx:77 @@ -2172,8 +2173,8 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironments.jsx:26 #: screens/Host/Host.jsx:52 #: screens/Host/Hosts.jsx:28 -#: screens/InstanceGroup/ContainerGroup.jsx:63 -#: screens/InstanceGroup/InstanceGroup.jsx:64 +#: screens/InstanceGroup/ContainerGroup.jsx:75 +#: screens/InstanceGroup/InstanceGroup.jsx:76 #: screens/InstanceGroup/InstanceGroups.jsx:30 #: screens/InstanceGroup/InstanceGroups.jsx:36 #: screens/Inventory/Inventories.jsx:60 @@ -2230,7 +2231,7 @@ msgstr "" #: screens/Setting/UI/UIDetail/UIDetail.jsx:61 #: screens/Team/Team.jsx:55 #: screens/Team/Teams.jsx:28 -#: screens/Template/Template.jsx:144 +#: screens/Template/Template.jsx:135 #: screens/Template/Templates.jsx:42 #: screens/Template/WorkflowJobTemplate.jsx:121 #: screens/User/User.jsx:63 @@ -2311,7 +2312,7 @@ msgstr "" msgid "Discard local changes before syncing" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:480 +#: screens/Template/shared/JobTemplateForm.jsx:483 msgid "" "Divide the work done by this job template\n" "into the specified number of job slices, each running the\n" @@ -2639,7 +2640,7 @@ msgstr "" msgid "Enable Concurrent Jobs" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:609 +#: screens/Template/shared/JobTemplateForm.jsx:612 msgid "Enable Fact Storage" msgstr "" @@ -2652,8 +2653,8 @@ msgstr "" #~ msgid "Enable Privilege Escalation" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:583 #: screens/Template/shared/JobTemplateForm.jsx:586 +#: screens/Template/shared/JobTemplateForm.jsx:589 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:225 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:228 msgid "Enable Webhook" @@ -2688,7 +2689,7 @@ msgstr "" #~ msgid "Enable simplified login for your {brandName} applications" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:589 +#: screens/Template/shared/JobTemplateForm.jsx:592 msgid "Enable webhook for this template." msgstr "" @@ -2727,7 +2728,7 @@ msgstr "" #~ "template." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:569 +#: screens/Template/shared/JobTemplateForm.jsx:572 msgid "" "Enables creation of a provisioning\n" "callback URL. Using the URL a host can contact {0}\n" @@ -2936,9 +2937,9 @@ msgstr "" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:210 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:146 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:223 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:124 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:125 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:133 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:268 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:297 #: screens/Job/JobOutput/JobOutput.jsx:761 msgid "Error" msgstr "" @@ -2969,8 +2970,8 @@ msgstr "" #: components/InstanceToggle/InstanceToggle.jsx:61 #: components/JobList/JobList.jsx:280 #: components/JobList/JobList.jsx:291 -#: components/LaunchButton/LaunchButton.jsx:173 -#: components/LaunchPrompt/LaunchPrompt.jsx:72 +#: components/LaunchButton/LaunchButton.jsx:161 +#: components/LaunchPrompt/LaunchPrompt.jsx:66 #: components/NotificationList/NotificationList.jsx:246 #: components/PaginatedTable/ToolbarDeleteButton.jsx:205 #: components/ResourceAccessList/ResourceAccessList.jsx:234 @@ -3097,7 +3098,7 @@ msgstr "" msgid "Examples include:" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:109 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:114 msgid "Examples:" msgstr "" @@ -3113,11 +3114,11 @@ msgstr "" msgid "Execute when the parent node results in a successful state." msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:85 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:86 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:40 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:103 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:197 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:189 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:211 msgid "Execution Environment" msgstr "" @@ -3129,7 +3130,7 @@ msgstr "" #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:91 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:92 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:104 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:144 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:158 #: routeConfig.jsx:140 #: screens/ActivityStream/ActivityStream.jsx:208 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:122 @@ -3407,7 +3408,7 @@ msgstr "" msgid "Failed to delete one or more hosts." msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:300 msgid "Failed to delete one or more instance groups." msgstr "" @@ -3548,7 +3549,7 @@ msgid "Failed to fetch the updated project data." msgstr "" #: components/AdHocCommands/AdHocCommands.jsx:113 -#: components/LaunchButton/LaunchButton.jsx:176 +#: components/LaunchButton/LaunchButton.jsx:164 #: screens/ManagementJob/ManagementJobList/ManagementJobList.jsx:130 msgid "Failed to launch job." msgstr "" @@ -3636,7 +3637,7 @@ msgstr "" msgid "Field ends with value." msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:77 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 msgid "Field for passing a custom Kubernetes or OpenShift Pod specification." msgstr "" @@ -3715,7 +3716,7 @@ msgstr "" msgid "Follow" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:254 +#: screens/Template/shared/JobTemplateForm.jsx:257 msgid "" "For job templates, select run to execute\n" "the playbook. Select check to only check playbook syntax,\n" @@ -3743,7 +3744,7 @@ msgstr "" #: components/AdHocCommands/AdHocDetailsStep.jsx:180 #: components/PromptDetail/PromptJobTemplateDetail.jsx:154 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:230 -#: screens/Template/shared/JobTemplateForm.jsx:425 +#: screens/Template/shared/JobTemplateForm.jsx:428 msgid "Forks" msgstr "" @@ -3850,7 +3851,7 @@ msgstr "" msgid "GitLab" msgstr "" -#: components/Lookup/ExecutionEnvironmentLookup.jsx:192 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:206 msgid "Global Default Execution Environment" msgstr "" @@ -3859,7 +3860,7 @@ msgstr "" msgid "Globally Available" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:148 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:154 msgid "Globally available execution environment can not be reassigned to a specific Organization" msgstr "" @@ -3957,7 +3958,7 @@ msgstr "" msgid "Hide" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Hide description" msgstr "" @@ -3982,7 +3983,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:161 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:238 -#: screens/Template/shared/JobTemplateForm.jsx:642 +#: screens/Template/shared/JobTemplateForm.jsx:645 msgid "Host Config Key" msgstr "" @@ -4205,7 +4206,7 @@ msgstr "" #~ msgid "If checked, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the \"all\" default group for the inventory." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:559 +#: screens/Template/shared/JobTemplateForm.jsx:562 msgid "" "If enabled, run this playbook as an\n" "administrator." @@ -4222,7 +4223,7 @@ msgid "" "--diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:499 +#: screens/Template/shared/JobTemplateForm.jsx:502 msgid "" "If enabled, show the changes made by\n" "Ansible tasks, where supported. This is equivalent\n" @@ -4237,7 +4238,7 @@ msgstr "" msgid "If enabled, show the changes made by Ansible tasks, where supported. This is equivalent to Ansible’s --diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:603 +#: screens/Template/shared/JobTemplateForm.jsx:606 msgid "" "If enabled, simultaneous runs of this job\n" "template will be allowed." @@ -4251,7 +4252,7 @@ msgstr "" msgid "If enabled, simultaneous runs of this workflow job template will be allowed." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:610 +#: screens/Template/shared/JobTemplateForm.jsx:613 msgid "" "If enabled, this will store gathered facts so they can\n" "be viewed at the host level. Facts are persisted and\n" @@ -4288,7 +4289,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:140 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:159 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.jsx:62 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:99 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:103 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:91 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:110 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.jsx:16 @@ -4398,8 +4399,8 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:227 #: routeConfig.jsx:130 #: screens/ActivityStream/ActivityStream.jsx:196 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:134 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:224 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:170 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:253 #: screens/InstanceGroup/InstanceGroups.jsx:16 #: screens/InstanceGroup/InstanceGroups.jsx:26 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:91 @@ -4417,7 +4418,7 @@ msgstr "" msgid "Instance group" msgstr "" -#: screens/InstanceGroup/InstanceGroup.jsx:87 +#: screens/InstanceGroup/InstanceGroup.jsx:99 msgid "Instance group not found." msgstr "" @@ -4429,8 +4430,8 @@ msgstr "" msgid "Instance groups" msgstr "" -#: screens/InstanceGroup/InstanceGroup.jsx:69 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:244 +#: screens/InstanceGroup/InstanceGroup.jsx:81 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:273 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:75 #: screens/InstanceGroup/InstanceGroups.jsx:31 #: screens/InstanceGroup/Instances/InstanceList.jsx:156 @@ -4646,7 +4647,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:160 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:235 -#: screens/Template/shared/JobTemplateForm.jsx:479 +#: screens/Template/shared/JobTemplateForm.jsx:482 msgid "Job Slicing" msgstr "" @@ -4661,7 +4662,7 @@ msgstr "" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:334 #: screens/Job/JobDetail/JobDetail.jsx:294 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:337 -#: screens/Template/shared/JobTemplateForm.jsx:520 +#: screens/Template/shared/JobTemplateForm.jsx:523 msgid "Job Tags" msgstr "" @@ -4676,7 +4677,7 @@ msgstr "" msgid "Job Template" msgstr "" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:40 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:39 msgid "Job Template default credentials must be replaced with one of the same type. Please select a credential for the following types in order to proceed: {0}" msgstr "" @@ -4704,7 +4705,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:156 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:183 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:142 -#: screens/Template/shared/JobTemplateForm.jsx:251 +#: screens/Template/shared/JobTemplateForm.jsx:254 msgid "Job Type" msgstr "" @@ -4729,8 +4730,8 @@ msgstr "" #: screens/Dashboard/shared/LineChart.jsx:69 #: screens/Host/Host.jsx:67 #: screens/Host/Hosts.jsx:31 -#: screens/InstanceGroup/ContainerGroup.jsx:68 -#: screens/InstanceGroup/InstanceGroup.jsx:74 +#: screens/InstanceGroup/ContainerGroup.jsx:80 +#: screens/InstanceGroup/InstanceGroup.jsx:86 #: screens/InstanceGroup/InstanceGroups.jsx:32 #: screens/InstanceGroup/InstanceGroups.jsx:37 #: screens/Inventory/Inventories.jsx:59 @@ -4742,7 +4743,7 @@ msgstr "" #: screens/Job/Jobs.jsx:25 #: screens/Setting/SettingList.jsx:85 #: screens/Setting/Settings.jsx:71 -#: screens/Template/Template.jsx:164 +#: screens/Template/Template.jsx:155 #: screens/Template/Templates.jsx:46 #: screens/Template/WorkflowJobTemplate.jsx:145 msgid "Jobs" @@ -4840,7 +4841,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:279 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:304 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:193 -#: screens/Template/shared/JobTemplateForm.jsx:392 +#: screens/Template/shared/JobTemplateForm.jsx:395 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:195 msgid "Labels" msgstr "" @@ -4928,7 +4929,7 @@ msgstr "" msgid "Last used" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:106 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:130 #: components/LaunchPrompt/steps/usePreviewStep.jsx:35 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:54 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:57 @@ -4966,7 +4967,7 @@ msgstr "" msgid "Launch workflow" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:106 +#: components/LaunchPrompt/LaunchPrompt.jsx:100 msgid "Launch | {0}" msgstr "" @@ -5027,7 +5028,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:221 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:231 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:152 -#: screens/Template/shared/JobTemplateForm.jsx:441 +#: screens/Template/shared/JobTemplateForm.jsx:444 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:156 msgid "Limit" msgstr "" @@ -5100,7 +5101,8 @@ msgstr "" msgid "Machine Credential" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:98 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:102 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:112 msgid "Machine credential" msgstr "" @@ -5213,7 +5215,7 @@ msgstr "" msgid "Minimum length" msgstr "" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:33 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:34 msgid "" "Minimum number of instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5223,7 +5225,7 @@ msgstr "" #~ msgid "Minimum number of instances that will be automatically assigned to this group when new instances come online." #~ msgstr "" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:43 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:44 msgid "" "Minimum percentage of all instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5386,8 +5388,8 @@ msgstr "" #: components/Lookup/ApplicationLookup.jsx:111 #: components/Lookup/CredentialLookup.jsx:186 #: components/Lookup/CredentialLookup.jsx:201 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:161 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:168 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:182 #: components/Lookup/HostFilterLookup.jsx:79 #: components/Lookup/HostFilterLookup.jsx:364 #: components/Lookup/HostListItem.jsx:8 @@ -5460,7 +5462,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:91 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:117 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:9 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:91 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:94 #: screens/Host/HostDetail/HostDetail.jsx:74 #: screens/Host/HostGroups/HostGroupItem.jsx:28 #: screens/Host/HostGroups/HostGroupsList.jsx:164 @@ -5470,14 +5472,14 @@ msgstr "" #: screens/Host/HostList/HostListItem.jsx:28 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:45 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:50 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:240 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:269 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:63 #: screens/InstanceGroup/Instances/InstanceList.jsx:163 #: screens/InstanceGroup/Instances/InstanceList.jsx:170 #: screens/InstanceGroup/Instances/InstanceList.jsx:211 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:117 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:45 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:20 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:47 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:21 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:74 #: screens/Inventory/InventoryGroupDetail/InventoryGroupDetail.jsx:35 #: screens/Inventory/InventoryGroupHosts/InventoryGroupHostList.jsx:190 @@ -5556,7 +5558,7 @@ msgstr "" #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:76 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:96 -#: screens/Template/shared/JobTemplateForm.jsx:238 +#: screens/Template/shared/JobTemplateForm.jsx:241 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:107 #: screens/User/UserOrganizations/UserOrganizationList.jsx:60 #: screens/User/UserOrganizations/UserOrganizationList.jsx:64 @@ -5599,11 +5601,12 @@ msgstr "" msgid "New" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:80 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:92 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:81 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:93 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:116 #: components/AddRole/AddResourceRole.jsx:215 #: components/AddRole/AddResourceRole.jsx:250 -#: components/LaunchPrompt/LaunchPrompt.jsx:136 +#: components/LaunchPrompt/LaunchPrompt.jsx:130 #: components/Schedule/shared/SchedulePromptableFields.jsx:138 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:66 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:59 @@ -5825,7 +5828,7 @@ msgstr "" #: screens/Organization/Organizations.jsx:33 #: screens/Project/Project.jsx:111 #: screens/Project/Projects.jsx:30 -#: screens/Template/Template.jsx:150 +#: screens/Template/Template.jsx:141 #: screens/Template/Templates.jsx:45 #: screens/Template/WorkflowJobTemplate.jsx:127 msgid "Notifications" @@ -5864,7 +5867,7 @@ msgstr "" #: screens/Setting/shared/SharedFields.jsx:144 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:53 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "Off" msgstr "" @@ -5882,7 +5885,7 @@ msgstr "" #: screens/Setting/shared/SharedFields.jsx:143 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:52 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "On" msgstr "" @@ -5920,7 +5923,7 @@ msgstr "" msgid "Option Details" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:395 +#: screens/Template/shared/JobTemplateForm.jsx:398 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:198 msgid "" "Optional labels that describe this job template,\n" @@ -5940,9 +5943,9 @@ msgstr "" #: components/NotificationList/NotificationList.jsx:220 #: components/NotificationList/NotificationListItem.jsx:31 #: screens/Credential/shared/TypeInputsSubForm.jsx:47 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:62 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:65 #: screens/Project/shared/ProjectSubForms/SharedFields.jsx:67 -#: screens/Template/shared/JobTemplateForm.jsx:552 +#: screens/Template/shared/JobTemplateForm.jsx:555 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:222 msgid "Options" msgstr "" @@ -6104,7 +6107,7 @@ msgstr "" #~ "Ansible Tower documentation for example syntax." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:414 +#: screens/Template/shared/JobTemplateForm.jsx:417 msgid "" "Pass extra command line variables to the playbook. This is the\n" "-e or --extra-vars command line parameter for ansible-playbook.\n" @@ -6181,7 +6184,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:153 #: screens/Job/JobDetail/JobDetail.jsx:220 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:229 -#: screens/Template/shared/JobTemplateForm.jsx:355 +#: screens/Template/shared/JobTemplateForm.jsx:358 msgid "Playbook" msgstr "" @@ -6258,7 +6261,7 @@ msgstr "" msgid "Please select a day number between 1 and 31." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:170 +#: screens/Template/shared/JobTemplateForm.jsx:173 msgid "Please select an Inventory or check the Prompt on Launch option" msgstr "" @@ -6279,17 +6282,17 @@ msgid "Pod spec override" msgstr "" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:64 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:28 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:29 msgid "Policy instance minimum" msgstr "" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:69 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:38 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:39 msgid "Policy instance percentage" msgstr "" -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:56 -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:62 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:63 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:69 msgid "Populate field from an external secret management system" msgstr "" @@ -6345,6 +6348,7 @@ msgstr "" msgid "Press Enter to edit. Press ESC to stop editing." msgstr "" +#: components/AdHocCommands/AdHocCommandsWizard.jsx:121 #: components/LaunchPrompt/steps/usePreviewStep.jsx:23 #: screens/Template/Survey/SurveyList.jsx:162 #: screens/Template/Survey/SurveyList.jsx:164 @@ -6357,7 +6361,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:65 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:128 -#: screens/Template/shared/JobTemplateForm.jsx:558 +#: screens/Template/shared/JobTemplateForm.jsx:561 msgid "Privilege Escalation" msgstr "" @@ -6456,7 +6460,7 @@ msgstr "" #~ msgid "Prompts" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:444 +#: screens/Template/shared/JobTemplateForm.jsx:447 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:159 msgid "" "Provide a host pattern to further constrain\n" @@ -6515,23 +6519,23 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:164 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:240 -#: screens/Template/shared/JobTemplateForm.jsx:629 +#: screens/Template/shared/JobTemplateForm.jsx:632 msgid "Provisioning Callback URL" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:624 +#: screens/Template/shared/JobTemplateForm.jsx:627 msgid "Provisioning Callback details" msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:70 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:133 -#: screens/Template/shared/JobTemplateForm.jsx:563 #: screens/Template/shared/JobTemplateForm.jsx:566 +#: screens/Template/shared/JobTemplateForm.jsx:569 msgid "Provisioning Callbacks" msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:88 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:129 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:134 msgid "Pull" msgstr "" @@ -6630,7 +6634,7 @@ msgstr "" msgid "Refer to the" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:434 +#: screens/Template/shared/JobTemplateForm.jsx:437 msgid "" "Refer to the Ansible documentation for details\n" "about the configuration file." @@ -6660,7 +6664,7 @@ msgstr "" msgid "Regions" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:157 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:163 msgid "Registry credential" msgstr "" @@ -6917,7 +6921,7 @@ msgstr "" #: screens/Credential/shared/ExternalTestModal.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.jsx:49 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/RunStep.jsx:24 -#: screens/Template/shared/JobTemplateForm.jsx:202 +#: screens/Template/shared/JobTemplateForm.jsx:205 msgid "Run" msgstr "" @@ -6928,7 +6932,7 @@ msgstr "" msgid "Run Command" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:123 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:146 msgid "Run command" msgstr "" @@ -6958,7 +6962,7 @@ msgstr "" msgid "Running Handlers" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:242 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 #: screens/InstanceGroup/Instances/InstanceList.jsx:213 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:123 msgid "Running Jobs" @@ -7082,7 +7086,7 @@ msgstr "" #: screens/Project/Project.jsx:123 #: screens/Project/Projects.jsx:33 #: screens/Schedule/AllSchedules.jsx:25 -#: screens/Template/Template.jsx:157 +#: screens/Template/Template.jsx:148 #: screens/Template/Templates.jsx:50 #: screens/Template/WorkflowJobTemplate.jsx:134 msgid "Schedules" @@ -7208,7 +7212,7 @@ msgstr "" msgid "Select a Resource Type" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:335 +#: screens/Template/shared/JobTemplateForm.jsx:338 msgid "" "Select a branch for the job template. This branch is applied to\n" "all job template nodes that prompt for a branch." @@ -7251,7 +7255,7 @@ msgstr "" msgid "Select a playbook" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:323 +#: screens/Template/shared/JobTemplateForm.jsx:326 msgid "Select a project before editing the execution environment." msgstr "" @@ -7288,7 +7292,7 @@ msgstr "" #: components/Schedule/shared/ScheduleForm.jsx:85 #: components/Schedule/shared/ScheduleForm.jsx:89 #: screens/Credential/shared/CredentialForm.jsx:47 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:80 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:83 #: screens/Inventory/shared/InventoryForm.jsx:59 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:50 #: screens/Inventory/shared/InventorySourceSubForms/GCESubForm.jsx:50 @@ -7343,7 +7347,7 @@ msgstr "" msgid "Select an organization before editing the default execution environment." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:377 +#: screens/Template/shared/JobTemplateForm.jsx:380 msgid "" "Select credentials for accessing the nodes this job will be ran\n" "against. You can only select one credential of each type. For machine credentials (SSH),\n" @@ -7422,7 +7426,7 @@ msgstr "" msgid "Select the Instance Groups for this Inventory to run on." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:514 +#: screens/Template/shared/JobTemplateForm.jsx:517 msgid "" "Select the Instance Groups for this Organization\n" "to run on." @@ -7456,12 +7460,12 @@ msgstr "" #~ msgid "Select the default execution environment for this project." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:322 +#: screens/Template/shared/JobTemplateForm.jsx:325 msgid "Select the execution environment for this job template." msgstr "" #: components/Lookup/InventoryLookup.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:286 +#: screens/Template/shared/JobTemplateForm.jsx:289 msgid "" "Select the inventory containing the hosts\n" "you want this job to manage." @@ -7488,11 +7492,11 @@ msgstr "" msgid "Select the inventory that this host will belong to." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:358 +#: screens/Template/shared/JobTemplateForm.jsx:361 msgid "Select the playbook to be executed by this job." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:301 +#: screens/Template/shared/JobTemplateForm.jsx:304 msgid "" "Select the project containing the playbook\n" "you want this job to execute." @@ -7642,7 +7646,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:158 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:314 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 -#: screens/Template/shared/JobTemplateForm.jsx:496 +#: screens/Template/shared/JobTemplateForm.jsx:499 msgid "Show Changes" msgstr "" @@ -7655,7 +7659,7 @@ msgstr "" msgid "Show changes" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Show description" msgstr "" @@ -7720,7 +7724,7 @@ msgstr "" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:352 #: screens/Job/JobDetail/JobDetail.jsx:312 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:352 -#: screens/Template/shared/JobTemplateForm.jsx:536 +#: screens/Template/shared/JobTemplateForm.jsx:539 msgid "Skip Tags" msgstr "" @@ -7733,7 +7737,7 @@ msgstr "" #~ "of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:539 +#: screens/Template/shared/JobTemplateForm.jsx:542 msgid "" "Skip tags are useful when you have a\n" "large playbook, and you want to skip specific parts of a\n" @@ -7826,7 +7830,7 @@ msgstr "" #: screens/Project/ProjectDetail/ProjectDetail.jsx:203 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:228 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:138 -#: screens/Template/shared/JobTemplateForm.jsx:332 +#: screens/Template/shared/JobTemplateForm.jsx:335 msgid "Source Control Branch" msgstr "" @@ -8129,7 +8133,7 @@ msgid "Sunday" msgstr "" #: components/LaunchPrompt/steps/useSurveyStep.jsx:26 -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/Templates.jsx:47 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "Survey" @@ -8240,7 +8244,7 @@ msgstr "" #~ "the usage of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:523 +#: screens/Template/shared/JobTemplateForm.jsx:526 msgid "" "Tags are useful when you have a large\n" "playbook, and you want to run a specific part of a\n" @@ -8329,7 +8333,7 @@ msgstr "" msgid "Teams" msgstr "" -#: screens/Template/Template.jsx:184 +#: screens/Template/Template.jsx:175 #: screens/Template/WorkflowJobTemplate.jsx:179 msgid "Template not found." msgstr "" @@ -8416,7 +8420,7 @@ msgstr "" #~ msgid "The amount of time (in seconds) before the email notification stops trying to reach the host and times out. Ranges from 1 to 120 seconds." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:490 +#: screens/Template/shared/JobTemplateForm.jsx:493 msgid "" "The amount of time (in seconds) to run\n" "before the job is canceled. Defaults to 0 for no job\n" @@ -8464,7 +8468,7 @@ msgstr "" #~ msgid "The first fetches all references. The second fetches the Github pull request number 62, in this example the branch needs to be \"pull/62/head\"." #~ msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:106 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:111 msgid "The full image location, including the container registry, image name, and version tag." msgstr "" @@ -8479,7 +8483,7 @@ msgstr "" #~ msgid "The maximum number of hosts allowed to be managed by this organization. Value defaults to 0 which means no limit. Refer to the Ansible documentation for more details." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:428 +#: screens/Template/shared/JobTemplateForm.jsx:431 msgid "" "The number of parallel or simultaneous\n" "processes to use while executing the playbook. An empty value,\n" @@ -8539,8 +8543,8 @@ msgstr "" #~ msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:155 -msgid "The tower instance group cannot be deleted." -msgstr "" +#~ msgid "The tower instance group cannot be deleted." +#~ msgstr "" #: screens/Project/shared/ProjectSubForms/ManualSubForm.jsx:47 msgid "" @@ -8622,7 +8626,7 @@ msgstr "" msgid "Third" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:153 +#: screens/Template/shared/JobTemplateForm.jsx:156 msgid "This Project needs to be updated" msgstr "" @@ -8644,7 +8648,7 @@ msgstr "" msgid "This action will disassociate the following:" msgstr "" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:114 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:115 msgid "This container group is currently being by other resources. Are you sure you want to delete it?" msgstr "" @@ -8744,7 +8748,7 @@ msgid "This field must be greater than 0" msgstr "" #: components/LaunchPrompt/steps/useSurveyStep.jsx:111 -#: screens/Template/shared/JobTemplateForm.jsx:150 +#: screens/Template/shared/JobTemplateForm.jsx:153 #: screens/User/shared/UserForm.jsx:81 #: screens/User/shared/UserForm.jsx:92 #: util/validators.jsx:5 @@ -8820,7 +8824,8 @@ msgstr "" msgid "This schedule is missing required survey values" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:64 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:65 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:105 #: components/LaunchPrompt/steps/StepName.jsx:27 msgid "This step contains errors" msgstr "" @@ -8899,7 +8904,7 @@ msgstr "" #: screens/NotificationTemplate/shared/TypeInputsSubForm.jsx:112 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:233 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:169 -#: screens/Template/shared/JobTemplateForm.jsx:489 +#: screens/Template/shared/JobTemplateForm.jsx:492 msgid "Timeout" msgstr "" @@ -9002,7 +9007,7 @@ msgstr "" msgid "Top Pagination" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:243 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:272 #: screens/InstanceGroup/Instances/InstanceList.jsx:214 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:124 msgid "Total Jobs" @@ -9077,7 +9082,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:12 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:50 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:55 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:241 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:270 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:68 #: screens/InstanceGroup/Instances/InstanceList.jsx:212 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:120 @@ -9375,7 +9380,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:341 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:367 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:209 -#: screens/Template/shared/JobTemplateForm.jsx:412 +#: screens/Template/shared/JobTemplateForm.jsx:415 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:217 msgid "Variables" msgstr "" @@ -9406,7 +9411,7 @@ msgstr "" #: screens/Inventory/shared/InventorySourceSubForms/SharedFields.jsx:90 #: screens/Job/JobDetail/JobDetail.jsx:222 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:232 -#: screens/Template/shared/JobTemplateForm.jsx:462 +#: screens/Template/shared/JobTemplateForm.jsx:465 msgid "Verbosity" msgstr "" @@ -9509,7 +9514,7 @@ msgstr "" msgid "View Settings" msgstr "" -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "View Survey" msgstr "" @@ -9522,7 +9527,7 @@ msgstr "" msgid "View Team Details" msgstr "" -#: screens/Template/Template.jsx:265 +#: screens/Template/Template.jsx:259 #: screens/Template/WorkflowJobTemplate.jsx:279 msgid "View Template Details" msgstr "" @@ -9594,7 +9599,7 @@ msgstr "" msgid "View all Teams." msgstr "" -#: screens/Template/Template.jsx:185 +#: screens/Template/Template.jsx:176 #: screens/Template/WorkflowJobTemplate.jsx:180 msgid "View all Templates." msgstr "" @@ -9619,8 +9624,8 @@ msgstr "" msgid "View all execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:83 -#: screens/InstanceGroup/InstanceGroup.jsx:89 +#: screens/InstanceGroup/ContainerGroup.jsx:95 +#: screens/InstanceGroup/InstanceGroup.jsx:101 msgid "View all instance groups" msgstr "" @@ -9744,7 +9749,7 @@ msgstr "" msgid "Webhook URL" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:655 +#: screens/Template/shared/JobTemplateForm.jsx:658 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:253 msgid "Webhook details" msgstr "" @@ -9979,8 +9984,8 @@ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableTo msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:147 -msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." -msgstr "" +#~ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." +#~ msgstr "" #: components/DisassociateButton/DisassociateButton.jsx:50 msgid "You do not have permission to disassociate the following: {itemsUnableToDisassociate}" @@ -10016,12 +10021,12 @@ msgstr "" msgid "Zoom Out" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:753 +#: screens/Template/shared/JobTemplateForm.jsx:756 #: screens/Template/shared/WebhookSubForm.jsx:152 msgid "a new webhook key will be generated on save." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:750 +#: screens/Template/shared/JobTemplateForm.jsx:753 #: screens/Template/shared/WebhookSubForm.jsx:142 msgid "a new webhook url will be generated on save." msgstr "" @@ -10272,7 +10277,7 @@ msgstr "" msgid "social login" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:344 +#: screens/Template/shared/JobTemplateForm.jsx:347 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:189 msgid "source control branch" msgstr "" @@ -10317,6 +10322,10 @@ msgstr "" msgid "{0, plural, one {Delete Group?} other {Delete Groups?}}" msgstr "" +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:179 +msgid "{0, plural, one {The following Instance Group cannot be deleted} other {The following Instance Groups cannot be deleted}}" +msgstr "" + #: screens/Inventory/InventoryList/InventoryList.jsx:225 msgid "{0, plural, one {The inventory will be in a pending status until the final delete is processed.} other {The inventories will be in a pending status until the final delete is processed.}}" msgstr "" @@ -10345,7 +10354,7 @@ msgstr "" msgid "{0, plural, one {This execution environment is currently being used by other resources. Are you sure you want to delete it?} other {These execution environments could be in use by other resources that rely on them. Are you sure you want to delete them anyway?}}" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:228 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:257 msgid "{0, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}" msgstr "" diff --git a/awx/ui_next/src/locales/fr/messages.po b/awx/ui_next/src/locales/fr/messages.po index c5a42430ba..1155736303 100644 --- a/awx/ui_next/src/locales/fr/messages.po +++ b/awx/ui_next/src/locales/fr/messages.po @@ -45,7 +45,7 @@ msgstr "/ (project root)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:46 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:75 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:106 -#: screens/Template/shared/JobTemplateForm.jsx:211 +#: screens/Template/shared/JobTemplateForm.jsx:214 msgid "0 (Normal)" msgstr "0 (Normal)" @@ -66,7 +66,7 @@ msgstr "1 (info)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:47 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:76 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:107 -#: screens/Template/shared/JobTemplateForm.jsx:212 +#: screens/Template/shared/JobTemplateForm.jsx:215 msgid "1 (Verbose)" msgstr "1 (Verbeux)" @@ -82,7 +82,7 @@ msgstr "2 (Déboguer)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:48 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:77 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:108 -#: screens/Template/shared/JobTemplateForm.jsx:213 +#: screens/Template/shared/JobTemplateForm.jsx:216 msgid "2 (More Verbose)" msgstr "2 (Verbeux +)" @@ -93,7 +93,7 @@ msgstr "2 (Verbeux +)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:49 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:78 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:109 -#: screens/Template/shared/JobTemplateForm.jsx:214 +#: screens/Template/shared/JobTemplateForm.jsx:217 msgid "3 (Debug)" msgstr "3 (Déboguer)" @@ -104,7 +104,7 @@ msgstr "3 (Déboguer)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:50 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:79 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:215 +#: screens/Template/shared/JobTemplateForm.jsx:218 msgid "4 (Connection Debug)" msgstr "4 (Débogage de la connexion)" @@ -161,7 +161,7 @@ msgstr "À propos de " #: screens/Project/Projects.jsx:29 #: screens/Team/Team.jsx:56 #: screens/Team/Teams.jsx:30 -#: screens/Template/Template.jsx:145 +#: screens/Template/Template.jsx:136 #: screens/Template/Templates.jsx:44 #: screens/Template/WorkflowJobTemplate.jsx:122 msgid "Access" @@ -204,7 +204,7 @@ msgstr "Action" #: screens/Host/HostGroups/HostGroupsList.jsx:182 #: screens/Host/HostList/HostList.jsx:168 #: screens/Host/HostList/HostListItem.jsx:42 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:246 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:275 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:77 #: screens/InstanceGroup/Instances/InstanceList.jsx:217 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:153 @@ -310,7 +310,7 @@ msgstr "Ajouter un nouveau noeud" msgid "Add a new node between these two nodes" msgstr "Ajouter un nouveau nœud entre ces deux nœuds" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:159 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:187 msgid "Add container group" msgstr "Ajouter un groupe de conteneurs" @@ -322,7 +322,7 @@ msgstr "Ajouter un groupe existant" msgid "Add existing host" msgstr "Ajouter une hôte existant" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:160 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:188 msgid "Add instance group" msgstr "Ajouter un groupe d'instances" @@ -689,9 +689,9 @@ msgstr "Azure AD" msgid "Azure AD settings" msgstr "Paramètres AD Azure" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:125 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:148 #: components/AddRole/AddResourceRole.jsx:286 -#: components/LaunchPrompt/LaunchPrompt.jsx:134 +#: components/LaunchPrompt/LaunchPrompt.jsx:128 #: components/Schedule/shared/SchedulePromptableFields.jsx:136 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:90 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:70 @@ -768,7 +768,7 @@ msgstr "Retour aux sources" msgid "Back to Teams" msgstr "Retour Haut de page" -#: screens/Template/Template.jsx:138 +#: screens/Template/Template.jsx:129 #: screens/Template/WorkflowJobTemplate.jsx:115 msgid "Back to Templates" msgstr "Retour aux modèles" @@ -797,8 +797,8 @@ msgstr "Retour aux types d'informations d'identification" msgid "Back to execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:56 -#: screens/InstanceGroup/InstanceGroup.jsx:57 +#: screens/InstanceGroup/ContainerGroup.jsx:68 +#: screens/InstanceGroup/InstanceGroup.jsx:69 msgid "Back to instance groups" msgstr "Retour aux groupes d'instances" @@ -869,7 +869,7 @@ msgstr "Expiration du délai d’attente du cache" msgid "Cache timeout (seconds)" msgstr "Expiration du délai d’attente du cache (secondes)" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:126 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:149 #: components/AddRole/AddResourceRole.jsx:287 #: components/AssociateModal/AssociateModal.jsx:116 #: components/AssociateModal/AssociateModal.jsx:121 @@ -879,7 +879,7 @@ msgstr "Expiration du délai d’attente du cache (secondes)" #: components/DisassociateButton/DisassociateButton.jsx:125 #: components/FormActionGroup/FormActionGroup.jsx:24 #: components/FormActionGroup/FormActionGroup.jsx:29 -#: components/LaunchPrompt/LaunchPrompt.jsx:135 +#: components/LaunchPrompt/LaunchPrompt.jsx:129 #: components/Lookup/HostFilterLookup.jsx:350 #: components/Lookup/Lookup.jsx:186 #: components/PaginatedTable/ToolbarDeleteButton.jsx:281 @@ -1008,7 +1008,7 @@ msgstr "" #~ msgid "Cannot enable log aggregator without providing logging aggregator host and logging aggregator type." #~ msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:245 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:274 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:76 msgid "Capacity" msgstr "Capacité" @@ -1062,7 +1062,7 @@ msgid "Channel" msgstr "Canal" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:102 -#: screens/Template/shared/JobTemplateForm.jsx:206 +#: screens/Template/shared/JobTemplateForm.jsx:209 msgid "Check" msgstr "Vérifier" @@ -1095,7 +1095,7 @@ msgid "Choose a Webhook Service" msgstr "Choisir un service de webhook" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:95 -#: screens/Template/shared/JobTemplateForm.jsx:199 +#: screens/Template/shared/JobTemplateForm.jsx:202 msgid "Choose a job type" msgstr "Choisir un type de job" @@ -1225,6 +1225,7 @@ msgstr "Cloud" msgid "Collapse" msgstr "Effondrement" +#: components/AdHocCommands/AdHocPreviewStep.jsx:8 #: components/JobList/JobList.jsx:186 #: components/JobList/JobListItem.jsx:37 #: screens/Job/JobDetail/JobDetail.jsx:81 @@ -1256,7 +1257,7 @@ msgstr "" #: components/PromptDetail/PromptWFJobTemplateDetail.jsx:36 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:138 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:61 -#: screens/Template/shared/JobTemplateForm.jsx:602 +#: screens/Template/shared/JobTemplateForm.jsx:605 msgid "Concurrent Jobs" msgstr "Jobs parallèles" @@ -1324,11 +1325,11 @@ msgstr "Groupe de conteneurs" msgid "Container group" msgstr "Groupe de conteneurs" -#: screens/InstanceGroup/ContainerGroup.jsx:81 +#: screens/InstanceGroup/ContainerGroup.jsx:93 msgid "Container group not found." msgstr "Groupe de conteneurs non trouvé." -#: components/LaunchPrompt/LaunchPrompt.jsx:129 +#: components/LaunchPrompt/LaunchPrompt.jsx:123 #: components/Schedule/shared/SchedulePromptableFields.jsx:131 msgid "Content Loading" msgstr "Chargement du contenu" @@ -1353,7 +1354,7 @@ msgid "" "will produce as the playbook executes." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:465 +#: screens/Template/shared/JobTemplateForm.jsx:468 msgid "" "Control the level of output ansible will\n" "produce as the playbook executes." @@ -1423,7 +1424,7 @@ msgstr "" #~ msgid "Copyright 2019 Red Hat, Inc." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:406 +#: screens/Template/shared/JobTemplateForm.jsx:409 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:209 msgid "Create" msgstr "Créer" @@ -1636,7 +1637,7 @@ msgstr "Créé par (nom d'utilisateur)" #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:40 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:94 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:56 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:51 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:54 #: screens/Inventory/InventorySourceDetail/InventorySourceDetail.jsx:198 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:42 #: screens/Inventory/shared/InventorySourceSubForms/EC2SubForm.jsx:41 @@ -1687,11 +1688,11 @@ msgstr "Mots de passes d’identification" #~ msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token”." #~ msgstr "Informations d’identification pour s'authentifier auprès de Kubernetes ou OpenShift. Doit être de type \"Kubernetes/OpenShift API Bearer Token\"." -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:58 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:61 msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\". If left blank, the underlying Pod's service account will be used." msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:164 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:170 msgid "Credential to authenticate with a protected container registry." msgstr "" @@ -1701,7 +1702,7 @@ msgstr "Type d'informations d’identification non trouvé." #: components/JobList/JobListItem.jsx:215 #: components/LaunchPrompt/steps/CredentialsStep.jsx:193 -#: components/LaunchPrompt/steps/useCredentialsStep.jsx:64 +#: components/LaunchPrompt/steps/useCredentialsStep.jsx:62 #: components/Lookup/MultiCredentialsLookup.jsx:139 #: components/Lookup/MultiCredentialsLookup.jsx:211 #: components/PromptDetail/PromptDetail.jsx:158 @@ -1716,12 +1717,12 @@ msgstr "Type d'informations d’identification non trouvé." #: screens/Credential/Credentials.jsx:23 #: screens/Job/JobDetail/JobDetail.jsx:266 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:286 -#: screens/Template/shared/JobTemplateForm.jsx:374 +#: screens/Template/shared/JobTemplateForm.jsx:377 #: util/getRelatedResourceDeleteDetails.js:90 msgid "Credentials" msgstr "Informations d’identification" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:54 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:53 msgid "Credentials that require passwords on launch are not permitted. Please remove or replace the following credentials with a credential of the same type in order to proceed: {0}" msgstr "" @@ -1729,7 +1730,7 @@ msgstr "" msgid "Current page" msgstr "Page actuelle" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:83 msgid "Custom pod spec" msgstr "Spécifications des pods personnalisés" @@ -1756,8 +1757,8 @@ msgstr "" msgid "Customize messages…" msgstr "Personnaliser les messages..." -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:66 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:67 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:69 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:70 msgid "Customize pod specification" msgstr "Personnaliser les spécifications du pod" @@ -1808,7 +1809,7 @@ msgid "Default" msgstr "Par défaut" #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:39 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:195 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:209 msgid "Default Execution Environment" msgstr "" @@ -1842,7 +1843,7 @@ msgstr "Définir les fonctions et fonctionnalités niveau système" #: screens/Credential/CredentialDetail/CredentialDetail.jsx:299 #: screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx:126 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:137 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:116 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:117 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:125 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:138 #: screens/Inventory/InventoryGroups/InventoryGroupsList.jsx:100 @@ -1969,7 +1970,7 @@ msgstr "Supprimer le type d'informations d’identification" msgid "Delete error" msgstr "Supprimer l'erreur" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:110 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:111 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:119 msgid "Delete instance group" msgstr "Supprimer un groupe d'instances" @@ -2031,7 +2032,7 @@ msgstr "Erreur de suppression" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:207 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:220 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:265 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:294 msgid "Deletion error" msgstr "Erreur de suppression" @@ -2081,7 +2082,7 @@ msgstr "" #: screens/CredentialType/shared/CredentialTypeForm.jsx:32 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:62 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:152 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:142 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:147 #: screens/Host/HostDetail/HostDetail.jsx:81 #: screens/Host/HostList/HostList.jsx:150 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:78 @@ -2115,7 +2116,7 @@ msgstr "" #: screens/Template/Survey/SurveyQuestionForm.jsx:166 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:116 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:166 -#: screens/Template/shared/JobTemplateForm.jsx:246 +#: screens/Template/shared/JobTemplateForm.jsx:249 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:115 #: screens/User/UserOrganizations/UserOrganizationList.jsx:65 #: screens/User/UserOrganizations/UserOrganizationListItem.jsx:15 @@ -2157,8 +2158,8 @@ msgstr "Canaux ou utilisateurs de destination" #~ msgid "Detail coming soon :)" #~ msgstr "Détail à venir :)" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:61 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:71 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:62 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:72 #: components/ErrorDetail/ErrorDetail.jsx:73 #: components/Schedule/Schedule.jsx:66 #: screens/Application/Application/Application.jsx:77 @@ -2171,8 +2172,8 @@ msgstr "Canaux ou utilisateurs de destination" #: screens/ExecutionEnvironment/ExecutionEnvironments.jsx:26 #: screens/Host/Host.jsx:52 #: screens/Host/Hosts.jsx:28 -#: screens/InstanceGroup/ContainerGroup.jsx:63 -#: screens/InstanceGroup/InstanceGroup.jsx:64 +#: screens/InstanceGroup/ContainerGroup.jsx:75 +#: screens/InstanceGroup/InstanceGroup.jsx:76 #: screens/InstanceGroup/InstanceGroups.jsx:30 #: screens/InstanceGroup/InstanceGroups.jsx:36 #: screens/Inventory/Inventories.jsx:60 @@ -2229,7 +2230,7 @@ msgstr "Canaux ou utilisateurs de destination" #: screens/Setting/UI/UIDetail/UIDetail.jsx:61 #: screens/Team/Team.jsx:55 #: screens/Team/Teams.jsx:28 -#: screens/Template/Template.jsx:144 +#: screens/Template/Template.jsx:135 #: screens/Template/Templates.jsx:42 #: screens/Template/WorkflowJobTemplate.jsx:121 #: screens/User/User.jsx:63 @@ -2310,7 +2311,7 @@ msgstr "Dissocier ?" msgid "Discard local changes before syncing" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:480 +#: screens/Template/shared/JobTemplateForm.jsx:483 msgid "" "Divide the work done by this job template\n" "into the specified number of job slices, each running the\n" @@ -2638,7 +2639,7 @@ msgstr "Options d'email" msgid "Enable Concurrent Jobs" msgstr "Activer les tâches parallèles" -#: screens/Template/shared/JobTemplateForm.jsx:609 +#: screens/Template/shared/JobTemplateForm.jsx:612 msgid "Enable Fact Storage" msgstr "Utiliser le cache des faits" @@ -2651,8 +2652,8 @@ msgstr "Activer/désactiver la vérification de certificat HTTPS" #~ msgid "Enable Privilege Escalation" #~ msgstr "Activer l’élévation des privilèges" -#: screens/Template/shared/JobTemplateForm.jsx:583 #: screens/Template/shared/JobTemplateForm.jsx:586 +#: screens/Template/shared/JobTemplateForm.jsx:589 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:225 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:228 msgid "Enable Webhook" @@ -2687,7 +2688,7 @@ msgstr "" #~ msgid "Enable simplified login for your {brandName} applications" #~ msgstr "Activer la connexion simplifiée pour vos applications Tower" -#: screens/Template/shared/JobTemplateForm.jsx:589 +#: screens/Template/shared/JobTemplateForm.jsx:592 msgid "Enable webhook for this template." msgstr "Activez le webhook pour ce modèle de tâche." @@ -2718,7 +2719,7 @@ msgstr "Valeur activée" msgid "Enabled Variable" msgstr "Variable activée" -#: screens/Template/shared/JobTemplateForm.jsx:569 +#: screens/Template/shared/JobTemplateForm.jsx:572 msgid "" "Enables creation of a provisioning\n" "callback URL. Using the URL a host can contact {0}\n" @@ -2931,9 +2932,9 @@ msgstr "Entrez les variables avec la syntaxe JSON ou YAML. Utilisez le bouton ra #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:210 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:146 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:223 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:124 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:125 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:133 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:268 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:297 #: screens/Job/JobOutput/JobOutput.jsx:761 msgid "Error" msgstr "Erreur" @@ -2964,8 +2965,8 @@ msgstr "" #: components/InstanceToggle/InstanceToggle.jsx:61 #: components/JobList/JobList.jsx:280 #: components/JobList/JobList.jsx:291 -#: components/LaunchButton/LaunchButton.jsx:173 -#: components/LaunchPrompt/LaunchPrompt.jsx:72 +#: components/LaunchButton/LaunchButton.jsx:161 +#: components/LaunchPrompt/LaunchPrompt.jsx:66 #: components/NotificationList/NotificationList.jsx:246 #: components/PaginatedTable/ToolbarDeleteButton.jsx:205 #: components/ResourceAccessList/ResourceAccessList.jsx:234 @@ -3092,7 +3093,7 @@ msgstr "Exemples d’URL pour le SCM Subversion :" msgid "Examples include:" msgstr "Voici quelques exemples :" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:109 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:114 msgid "Examples:" msgstr "" @@ -3108,11 +3109,11 @@ msgstr "Exécuter lorsque le nœud parent se trouve dans un état de défaillanc msgid "Execute when the parent node results in a successful state." msgstr "Exécuter lorsque le nœud parent se trouve dans un état de réussite." -#: components/AdHocCommands/AdHocCommandsWizard.jsx:85 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:86 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:40 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:103 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:197 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:189 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:211 msgid "Execution Environment" msgstr "" @@ -3124,7 +3125,7 @@ msgstr "" #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:91 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:92 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:104 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:144 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:158 #: routeConfig.jsx:140 #: screens/ActivityStream/ActivityStream.jsx:208 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:122 @@ -3402,7 +3403,7 @@ msgstr "N'a pas réussi à supprimer un ou plusieurs groupes." msgid "Failed to delete one or more hosts." msgstr "N'a pas réussi à supprimer un ou plusieurs hôtes." -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:300 msgid "Failed to delete one or more instance groups." msgstr "N'a pas réussi à supprimer un ou plusieurs groupes d'instances." @@ -3543,7 +3544,7 @@ msgid "Failed to fetch the updated project data." msgstr "" #: components/AdHocCommands/AdHocCommands.jsx:113 -#: components/LaunchButton/LaunchButton.jsx:176 +#: components/LaunchButton/LaunchButton.jsx:164 #: screens/ManagementJob/ManagementJobList/ManagementJobList.jsx:130 msgid "Failed to launch job." msgstr "Echec du lancement du Job." @@ -3631,7 +3632,7 @@ msgstr "Le champ contient une valeur." msgid "Field ends with value." msgstr "Le champ se termine par une valeur." -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:77 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 msgid "Field for passing a custom Kubernetes or OpenShift Pod specification." msgstr "Champ permettant de passer une spécification de pod Kubernetes ou OpenShift personnalisée." @@ -3710,7 +3711,7 @@ msgstr "Flottement" msgid "Follow" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:254 +#: screens/Template/shared/JobTemplateForm.jsx:257 msgid "" "For job templates, select run to execute\n" "the playbook. Select check to only check playbook syntax,\n" @@ -3738,7 +3739,7 @@ msgstr "Pour plus d'informations, reportez-vous à" #: components/AdHocCommands/AdHocDetailsStep.jsx:180 #: components/PromptDetail/PromptJobTemplateDetail.jsx:154 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:230 -#: screens/Template/shared/JobTemplateForm.jsx:425 +#: screens/Template/shared/JobTemplateForm.jsx:428 msgid "Forks" msgstr "Forks" @@ -3845,7 +3846,7 @@ msgstr "Paramètres de GitHub" msgid "GitLab" msgstr "GitLab" -#: components/Lookup/ExecutionEnvironmentLookup.jsx:192 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:206 msgid "Global Default Execution Environment" msgstr "" @@ -3854,7 +3855,7 @@ msgstr "" msgid "Globally Available" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:148 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:154 msgid "Globally available execution environment can not be reassigned to a specific Organization" msgstr "" @@ -3952,7 +3953,7 @@ msgstr "Aide" msgid "Hide" msgstr "Masquer" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Hide description" msgstr "" @@ -3977,7 +3978,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:161 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:238 -#: screens/Template/shared/JobTemplateForm.jsx:642 +#: screens/Template/shared/JobTemplateForm.jsx:645 msgid "Host Config Key" msgstr "Clé de configuration de l’hôte" @@ -4200,7 +4201,7 @@ msgstr "" #~ msgid "If checked, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the \"all\" default group for the inventory." #~ msgstr "Si cochés, tous les hôtes et groupes qui étaient présent auparavant sur la source externe, mais qui sont maintenant supprimés, seront supprimés de l'inventaire de Tower. Les hôtes et les groupes qui n'étaient pas gérés par la source de l'inventaire seront promus au prochain groupe créé manuellement ou s'il n'y a pas de groupe créé manuellement dans lequel les promouvoir, ils devront rester dans le groupe \"all\" par défaut de cet inventaire." -#: screens/Template/shared/JobTemplateForm.jsx:559 +#: screens/Template/shared/JobTemplateForm.jsx:562 msgid "" "If enabled, run this playbook as an\n" "administrator." @@ -4217,7 +4218,7 @@ msgid "" "--diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:499 +#: screens/Template/shared/JobTemplateForm.jsx:502 msgid "" "If enabled, show the changes made by\n" "Ansible tasks, where supported. This is equivalent\n" @@ -4232,7 +4233,7 @@ msgstr "" msgid "If enabled, show the changes made by Ansible tasks, where supported. This is equivalent to Ansible’s --diff mode." msgstr "Si activé, afficher les changements faits par les tâches Ansible, si supporté. C'est équivalent au mode --diff d’Ansible." -#: screens/Template/shared/JobTemplateForm.jsx:603 +#: screens/Template/shared/JobTemplateForm.jsx:606 msgid "" "If enabled, simultaneous runs of this job\n" "template will be allowed." @@ -4246,7 +4247,7 @@ msgstr "" msgid "If enabled, simultaneous runs of this workflow job template will be allowed." msgstr "Si activé, il sera possible d’avoir des exécutions de ce modèle de job de flux de travail en simultané." -#: screens/Template/shared/JobTemplateForm.jsx:610 +#: screens/Template/shared/JobTemplateForm.jsx:613 msgid "" "If enabled, this will store gathered facts so they can\n" "be viewed at the host level. Facts are persisted and\n" @@ -4283,7 +4284,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:140 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:159 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.jsx:62 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:99 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:103 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:91 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:110 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.jsx:16 @@ -4393,8 +4394,8 @@ msgstr "Groupe d'instance" #: components/PromptDetail/PromptJobTemplateDetail.jsx:227 #: routeConfig.jsx:130 #: screens/ActivityStream/ActivityStream.jsx:196 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:134 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:224 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:170 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:253 #: screens/InstanceGroup/InstanceGroups.jsx:16 #: screens/InstanceGroup/InstanceGroups.jsx:26 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:91 @@ -4412,7 +4413,7 @@ msgstr "ID d'instance" msgid "Instance group" msgstr "Groupe d'instance" -#: screens/InstanceGroup/InstanceGroup.jsx:87 +#: screens/InstanceGroup/InstanceGroup.jsx:99 msgid "Instance group not found." msgstr "Groupe d'instance non trouvé." @@ -4424,8 +4425,8 @@ msgstr "" msgid "Instance groups" msgstr "Groupes d'instances" -#: screens/InstanceGroup/InstanceGroup.jsx:69 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:244 +#: screens/InstanceGroup/InstanceGroup.jsx:81 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:273 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:75 #: screens/InstanceGroup/InstanceGroups.jsx:31 #: screens/InstanceGroup/Instances/InstanceList.jsx:156 @@ -4641,7 +4642,7 @@ msgstr "Découpage de job" #: components/PromptDetail/PromptJobTemplateDetail.jsx:160 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:235 -#: screens/Template/shared/JobTemplateForm.jsx:479 +#: screens/Template/shared/JobTemplateForm.jsx:482 msgid "Job Slicing" msgstr "Découpage de job" @@ -4656,7 +4657,7 @@ msgstr "Statut Job" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:334 #: screens/Job/JobDetail/JobDetail.jsx:294 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:337 -#: screens/Template/shared/JobTemplateForm.jsx:520 +#: screens/Template/shared/JobTemplateForm.jsx:523 msgid "Job Tags" msgstr "Balises Job" @@ -4671,7 +4672,7 @@ msgstr "Balises Job" msgid "Job Template" msgstr "Modèle de Job" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:40 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:39 msgid "Job Template default credentials must be replaced with one of the same type. Please select a credential for the following types in order to proceed: {0}" msgstr "" @@ -4699,7 +4700,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:156 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:183 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:142 -#: screens/Template/shared/JobTemplateForm.jsx:251 +#: screens/Template/shared/JobTemplateForm.jsx:254 msgid "Job Type" msgstr "Type de Job" @@ -4724,8 +4725,8 @@ msgstr "Modèles de Jobs" #: screens/Dashboard/shared/LineChart.jsx:69 #: screens/Host/Host.jsx:67 #: screens/Host/Hosts.jsx:31 -#: screens/InstanceGroup/ContainerGroup.jsx:68 -#: screens/InstanceGroup/InstanceGroup.jsx:74 +#: screens/InstanceGroup/ContainerGroup.jsx:80 +#: screens/InstanceGroup/InstanceGroup.jsx:86 #: screens/InstanceGroup/InstanceGroups.jsx:32 #: screens/InstanceGroup/InstanceGroups.jsx:37 #: screens/Inventory/Inventories.jsx:59 @@ -4737,7 +4738,7 @@ msgstr "Modèles de Jobs" #: screens/Job/Jobs.jsx:25 #: screens/Setting/SettingList.jsx:85 #: screens/Setting/Settings.jsx:71 -#: screens/Template/Template.jsx:164 +#: screens/Template/Template.jsx:155 #: screens/Template/Templates.jsx:46 #: screens/Template/WorkflowJobTemplate.jsx:145 msgid "Jobs" @@ -4835,7 +4836,7 @@ msgstr "Nom du label" #: screens/Job/JobDetail/JobDetail.jsx:279 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:304 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:193 -#: screens/Template/shared/JobTemplateForm.jsx:392 +#: screens/Template/shared/JobTemplateForm.jsx:395 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:195 msgid "Labels" msgstr "Libellés" @@ -4923,7 +4924,7 @@ msgstr "" msgid "Last used" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:106 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:130 #: components/LaunchPrompt/steps/usePreviewStep.jsx:35 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:54 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:57 @@ -4961,7 +4962,7 @@ msgstr "Lancer le modèle" msgid "Launch workflow" msgstr "Lancer le flux de travail" -#: components/LaunchPrompt/LaunchPrompt.jsx:106 +#: components/LaunchPrompt/LaunchPrompt.jsx:100 msgid "Launch | {0}" msgstr "" @@ -5022,7 +5023,7 @@ msgstr "Moins ou égal à la comparaison." #: screens/Job/JobDetail/JobDetail.jsx:221 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:231 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:152 -#: screens/Template/shared/JobTemplateForm.jsx:441 +#: screens/Template/shared/JobTemplateForm.jsx:444 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:156 msgid "Limit" msgstr "Limite" @@ -5095,7 +5096,8 @@ msgstr "DERNIÈRE SYNCHRONISATION" msgid "Machine Credential" msgstr "Informations d’identification de la machine" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:98 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:102 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:112 msgid "Machine credential" msgstr "Informations d’identification de la machine" @@ -5208,7 +5210,7 @@ msgstr "Minimum" msgid "Minimum length" msgstr "Longueur minimale" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:33 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:34 msgid "" "Minimum number of instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5218,7 +5220,7 @@ msgstr "" #~ msgid "Minimum number of instances that will be automatically assigned to this group when new instances come online." #~ msgstr "Nombre minimum statique d'instances qui seront automatiquement assignées à ce groupe lors de la mise en ligne de nouvelles instances." -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:43 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:44 msgid "" "Minimum percentage of all instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5381,8 +5383,8 @@ msgstr "Options à choix multiples." #: components/Lookup/ApplicationLookup.jsx:111 #: components/Lookup/CredentialLookup.jsx:186 #: components/Lookup/CredentialLookup.jsx:201 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:161 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:168 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:182 #: components/Lookup/HostFilterLookup.jsx:79 #: components/Lookup/HostFilterLookup.jsx:364 #: components/Lookup/HostListItem.jsx:8 @@ -5455,7 +5457,7 @@ msgstr "Options à choix multiples." #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:91 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:117 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:9 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:91 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:94 #: screens/Host/HostDetail/HostDetail.jsx:74 #: screens/Host/HostGroups/HostGroupItem.jsx:28 #: screens/Host/HostGroups/HostGroupsList.jsx:164 @@ -5465,14 +5467,14 @@ msgstr "Options à choix multiples." #: screens/Host/HostList/HostListItem.jsx:28 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:45 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:50 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:240 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:269 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:63 #: screens/InstanceGroup/Instances/InstanceList.jsx:163 #: screens/InstanceGroup/Instances/InstanceList.jsx:170 #: screens/InstanceGroup/Instances/InstanceList.jsx:211 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:117 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:45 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:20 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:47 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:21 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:74 #: screens/Inventory/InventoryGroupDetail/InventoryGroupDetail.jsx:35 #: screens/Inventory/InventoryGroupHosts/InventoryGroupHostList.jsx:190 @@ -5551,7 +5553,7 @@ msgstr "Options à choix multiples." #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:76 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:96 -#: screens/Template/shared/JobTemplateForm.jsx:238 +#: screens/Template/shared/JobTemplateForm.jsx:241 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:107 #: screens/User/UserOrganizations/UserOrganizationList.jsx:60 #: screens/User/UserOrganizations/UserOrganizationList.jsx:64 @@ -5594,11 +5596,12 @@ msgstr "N'expire jamais" msgid "New" msgstr "Nouveau" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:80 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:92 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:81 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:93 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:116 #: components/AddRole/AddResourceRole.jsx:215 #: components/AddRole/AddResourceRole.jsx:250 -#: components/LaunchPrompt/LaunchPrompt.jsx:136 +#: components/LaunchPrompt/LaunchPrompt.jsx:130 #: components/Schedule/shared/SchedulePromptableFields.jsx:138 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:66 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:59 @@ -5820,7 +5823,7 @@ msgstr "Type de notification" #: screens/Organization/Organizations.jsx:33 #: screens/Project/Project.jsx:111 #: screens/Project/Projects.jsx:30 -#: screens/Template/Template.jsx:150 +#: screens/Template/Template.jsx:141 #: screens/Template/Templates.jsx:45 #: screens/Template/WorkflowJobTemplate.jsx:127 msgid "Notifications" @@ -5859,7 +5862,7 @@ msgstr "Octobre" #: screens/Setting/shared/SharedFields.jsx:144 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:53 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "Off" msgstr "Désactivé" @@ -5877,7 +5880,7 @@ msgstr "Désactivé" #: screens/Setting/shared/SharedFields.jsx:143 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:52 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "On" msgstr "Le" @@ -5915,7 +5918,7 @@ msgstr "OpenStack" msgid "Option Details" msgstr "Détails de l'option" -#: screens/Template/shared/JobTemplateForm.jsx:395 +#: screens/Template/shared/JobTemplateForm.jsx:398 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:198 msgid "" "Optional labels that describe this job template,\n" @@ -5935,9 +5938,9 @@ msgstr "En option, sélectionnez les informations d'identification à utiliser p #: components/NotificationList/NotificationList.jsx:220 #: components/NotificationList/NotificationListItem.jsx:31 #: screens/Credential/shared/TypeInputsSubForm.jsx:47 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:62 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:65 #: screens/Project/shared/ProjectSubForms/SharedFields.jsx:67 -#: screens/Template/shared/JobTemplateForm.jsx:552 +#: screens/Template/shared/JobTemplateForm.jsx:555 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:222 msgid "Options" msgstr "Options" @@ -6099,7 +6102,7 @@ msgstr "Passez des changements supplémentaires en ligne de commande. Il y a deu #~ "Ansible Tower documentation for example syntax." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:414 +#: screens/Template/shared/JobTemplateForm.jsx:417 msgid "" "Pass extra command line variables to the playbook. This is the\n" "-e or --extra-vars command line parameter for ansible-playbook.\n" @@ -6176,7 +6179,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:153 #: screens/Job/JobDetail/JobDetail.jsx:220 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:229 -#: screens/Template/shared/JobTemplateForm.jsx:355 +#: screens/Template/shared/JobTemplateForm.jsx:358 msgid "Playbook" msgstr "Playbook" @@ -6253,7 +6256,7 @@ msgstr "" msgid "Please select a day number between 1 and 31." msgstr "Veuillez choisir un numéro de jour entre 1 et 31." -#: screens/Template/shared/JobTemplateForm.jsx:170 +#: screens/Template/shared/JobTemplateForm.jsx:173 msgid "Please select an Inventory or check the Prompt on Launch option" msgstr "" @@ -6274,17 +6277,17 @@ msgid "Pod spec override" msgstr "Remplacement des spécifications du pod" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:64 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:28 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:29 msgid "Policy instance minimum" msgstr "Instances de stratégies minimum" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:69 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:38 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:39 msgid "Policy instance percentage" msgstr "Pourcentage d'instances de stratégie" -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:56 -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:62 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:63 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:69 msgid "Populate field from an external secret management system" msgstr "Remplir le champ à partir d'un système de gestion des secrets externes" @@ -6340,6 +6343,7 @@ msgstr "" msgid "Press Enter to edit. Press ESC to stop editing." msgstr "" +#: components/AdHocCommands/AdHocCommandsWizard.jsx:121 #: components/LaunchPrompt/steps/usePreviewStep.jsx:23 #: screens/Template/Survey/SurveyList.jsx:162 #: screens/Template/Survey/SurveyList.jsx:164 @@ -6352,7 +6356,7 @@ msgstr "Phrase de passe pour la clé privée" #: components/PromptDetail/PromptJobTemplateDetail.jsx:65 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:128 -#: screens/Template/shared/JobTemplateForm.jsx:558 +#: screens/Template/shared/JobTemplateForm.jsx:561 msgid "Privilege Escalation" msgstr "Élévation des privilèges" @@ -6451,7 +6455,7 @@ msgstr "Valeurs incitatrices" #~ msgid "Prompts" #~ msgstr "Invites" -#: screens/Template/shared/JobTemplateForm.jsx:444 +#: screens/Template/shared/JobTemplateForm.jsx:447 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:159 msgid "" "Provide a host pattern to further constrain\n" @@ -6510,23 +6514,23 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:164 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:240 -#: screens/Template/shared/JobTemplateForm.jsx:629 +#: screens/Template/shared/JobTemplateForm.jsx:632 msgid "Provisioning Callback URL" msgstr "URL de rappel d’exécution " -#: screens/Template/shared/JobTemplateForm.jsx:624 +#: screens/Template/shared/JobTemplateForm.jsx:627 msgid "Provisioning Callback details" msgstr "Détails de rappel d’exécution" #: components/PromptDetail/PromptJobTemplateDetail.jsx:70 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:133 -#: screens/Template/shared/JobTemplateForm.jsx:563 #: screens/Template/shared/JobTemplateForm.jsx:566 +#: screens/Template/shared/JobTemplateForm.jsx:569 msgid "Provisioning Callbacks" msgstr "Rappels d’exécution " #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:88 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:129 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:134 msgid "Pull" msgstr "" @@ -6625,7 +6629,7 @@ msgstr "" msgid "Refer to the" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:434 +#: screens/Template/shared/JobTemplateForm.jsx:437 msgid "" "Refer to the Ansible documentation for details\n" "about the configuration file." @@ -6655,7 +6659,7 @@ msgstr "" msgid "Regions" msgstr "Régions" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:157 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:163 msgid "Registry credential" msgstr "" @@ -6912,7 +6916,7 @@ msgstr "Rôles" #: screens/Credential/shared/ExternalTestModal.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.jsx:49 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/RunStep.jsx:24 -#: screens/Template/shared/JobTemplateForm.jsx:202 +#: screens/Template/shared/JobTemplateForm.jsx:205 msgid "Run" msgstr "Exécuter" @@ -6923,7 +6927,7 @@ msgstr "Exécuter" msgid "Run Command" msgstr "Éxecuter Commande" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:123 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:146 msgid "Run command" msgstr "Éxecuter Commande" @@ -6953,7 +6957,7 @@ msgstr "En cours d'exécution" msgid "Running Handlers" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:242 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 #: screens/InstanceGroup/Instances/InstanceList.jsx:213 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:123 msgid "Running Jobs" @@ -7077,7 +7081,7 @@ msgstr "La programmation manque de règles" #: screens/Project/Project.jsx:123 #: screens/Project/Projects.jsx:33 #: screens/Schedule/AllSchedules.jsx:25 -#: screens/Template/Template.jsx:157 +#: screens/Template/Template.jsx:148 #: screens/Template/Templates.jsx:50 #: screens/Template/WorkflowJobTemplate.jsx:134 msgid "Schedules" @@ -7203,7 +7207,7 @@ msgstr "Sélectionnez un type de nœud" msgid "Select a Resource Type" msgstr "Sélectionnez un type de ressource" -#: screens/Template/shared/JobTemplateForm.jsx:335 +#: screens/Template/shared/JobTemplateForm.jsx:338 msgid "" "Select a branch for the job template. This branch is applied to\n" "all job template nodes that prompt for a branch." @@ -7246,7 +7250,7 @@ msgstr "Sélectionnez un module" msgid "Select a playbook" msgstr "Choisir un playbook" -#: screens/Template/shared/JobTemplateForm.jsx:323 +#: screens/Template/shared/JobTemplateForm.jsx:326 msgid "Select a project before editing the execution environment." msgstr "" @@ -7283,7 +7287,7 @@ msgstr "" #: components/Schedule/shared/ScheduleForm.jsx:85 #: components/Schedule/shared/ScheduleForm.jsx:89 #: screens/Credential/shared/CredentialForm.jsx:47 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:80 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:83 #: screens/Inventory/shared/InventoryForm.jsx:59 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:50 #: screens/Inventory/shared/InventorySourceSubForms/GCESubForm.jsx:50 @@ -7338,7 +7342,7 @@ msgstr "" msgid "Select an organization before editing the default execution environment." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:377 +#: screens/Template/shared/JobTemplateForm.jsx:380 msgid "" "Select credentials for accessing the nodes this job will be ran\n" "against. You can only select one credential of each type. For machine credentials (SSH),\n" @@ -7417,7 +7421,7 @@ msgstr "" msgid "Select the Instance Groups for this Inventory to run on." msgstr "Sélectionnez les groupes d'instances sur lesquels exécuter cet inventaire." -#: screens/Template/shared/JobTemplateForm.jsx:514 +#: screens/Template/shared/JobTemplateForm.jsx:517 msgid "" "Select the Instance Groups for this Organization\n" "to run on." @@ -7451,12 +7455,12 @@ msgstr "Sélectionnez les informations d’identification qu’il vous faut util #~ msgid "Select the default execution environment for this project." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:322 +#: screens/Template/shared/JobTemplateForm.jsx:325 msgid "Select the execution environment for this job template." msgstr "" #: components/Lookup/InventoryLookup.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:286 +#: screens/Template/shared/JobTemplateForm.jsx:289 msgid "" "Select the inventory containing the hosts\n" "you want this job to manage." @@ -7483,11 +7487,11 @@ msgstr "" msgid "Select the inventory that this host will belong to." msgstr "Sélectionnez l'inventaire auquel cet hôte appartiendra." -#: screens/Template/shared/JobTemplateForm.jsx:358 +#: screens/Template/shared/JobTemplateForm.jsx:361 msgid "Select the playbook to be executed by this job." msgstr "Sélectionnez le playbook qui devra être exécuté par cette tâche." -#: screens/Template/shared/JobTemplateForm.jsx:301 +#: screens/Template/shared/JobTemplateForm.jsx:304 msgid "" "Select the project containing the playbook\n" "you want this job to execute." @@ -7637,7 +7641,7 @@ msgstr "Afficher" #: components/PromptDetail/PromptJobTemplateDetail.jsx:158 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:314 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 -#: screens/Template/shared/JobTemplateForm.jsx:496 +#: screens/Template/shared/JobTemplateForm.jsx:499 msgid "Show Changes" msgstr "Afficher les modifications" @@ -7650,7 +7654,7 @@ msgstr "Afficher tous les groupes" msgid "Show changes" msgstr "Afficher les modifications" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Show description" msgstr "" @@ -7715,7 +7719,7 @@ msgstr "Sélection par simple pression d'une touche" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:352 #: screens/Job/JobDetail/JobDetail.jsx:312 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:352 -#: screens/Template/shared/JobTemplateForm.jsx:536 +#: screens/Template/shared/JobTemplateForm.jsx:539 msgid "Skip Tags" msgstr "Balises de saut" @@ -7728,7 +7732,7 @@ msgstr "Balises de saut" #~ "of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:539 +#: screens/Template/shared/JobTemplateForm.jsx:542 msgid "" "Skip tags are useful when you have a\n" "large playbook, and you want to skip specific parts of a\n" @@ -7821,7 +7825,7 @@ msgstr "Source" #: screens/Project/ProjectDetail/ProjectDetail.jsx:203 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:228 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:138 -#: screens/Template/shared/JobTemplateForm.jsx:332 +#: screens/Template/shared/JobTemplateForm.jsx:335 msgid "Source Control Branch" msgstr "Branche Contrôle de la source" @@ -8124,7 +8128,7 @@ msgid "Sunday" msgstr "Dimanche" #: components/LaunchPrompt/steps/useSurveyStep.jsx:26 -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/Templates.jsx:47 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "Survey" @@ -8235,7 +8239,7 @@ msgstr "Onglets" #~ "the usage of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:523 +#: screens/Template/shared/JobTemplateForm.jsx:526 msgid "" "Tags are useful when you have a large\n" "playbook, and you want to run a specific part of a\n" @@ -8324,7 +8328,7 @@ msgstr "Équipe non trouvée." msgid "Teams" msgstr "Équipes" -#: screens/Template/Template.jsx:184 +#: screens/Template/Template.jsx:175 #: screens/Template/WorkflowJobTemplate.jsx:179 msgid "Template not found." msgstr "Mise à jour introuvable" @@ -8411,7 +8415,7 @@ msgstr "" #~ msgid "The amount of time (in seconds) before the email notification stops trying to reach the host and times out. Ranges from 1 to 120 seconds." #~ msgstr "Délai (en secondes) avant que la notification par e-mail cesse d'essayer de joindre l'hôte et expire. Compris entre 1 et 120 secondes." -#: screens/Template/shared/JobTemplateForm.jsx:490 +#: screens/Template/shared/JobTemplateForm.jsx:493 msgid "" "The amount of time (in seconds) to run\n" "before the job is canceled. Defaults to 0 for no job\n" @@ -8459,7 +8463,7 @@ msgstr "" #~ msgid "The first fetches all references. The second fetches the Github pull request number 62, in this example the branch needs to be \"pull/62/head\"." #~ msgstr "Le premier extrait toutes les références. Le second extrait la requête Github pull numéro 62, dans cet exemple la branche doit être `pull/62/head`." -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:106 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:111 msgid "The full image location, including the container registry, image name, and version tag." msgstr "" @@ -8474,7 +8478,7 @@ msgstr "" #~ msgid "The maximum number of hosts allowed to be managed by this organization. Value defaults to 0 which means no limit. Refer to the Ansible documentation for more details." #~ msgstr "Nombre maximal d'hôtes pouvant être gérés par cette organisation. La valeur par défaut est 0, ce qui signifie aucune limite. Reportez-vous à la documentation Ansible pour plus de détails." -#: screens/Template/shared/JobTemplateForm.jsx:428 +#: screens/Template/shared/JobTemplateForm.jsx:431 msgid "" "The number of parallel or simultaneous\n" "processes to use while executing the playbook. An empty value,\n" @@ -8534,8 +8538,8 @@ msgstr "" #~ msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:155 -msgid "The tower instance group cannot be deleted." -msgstr "Le groupe d'instances de Tower ne peut pas être supprimé." +#~ msgid "The tower instance group cannot be deleted." +#~ msgstr "Le groupe d'instances de Tower ne peut pas être supprimé." #: screens/Project/shared/ProjectSubForms/ManualSubForm.jsx:47 msgid "" @@ -8617,7 +8621,7 @@ msgstr "Ces arguments sont utilisés avec le module spécifié. Vous pouvez trou msgid "Third" msgstr "Troisième" -#: screens/Template/shared/JobTemplateForm.jsx:153 +#: screens/Template/shared/JobTemplateForm.jsx:156 msgid "This Project needs to be updated" msgstr "" @@ -8639,7 +8643,7 @@ msgstr "Cette action permettra de dissocier le rôle suivant de {brandName} :" msgid "This action will disassociate the following:" msgstr "Cette action dissociera les éléments suivants :" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:114 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:115 msgid "This container group is currently being by other resources. Are you sure you want to delete it?" msgstr "" @@ -8739,7 +8743,7 @@ msgid "This field must be greater than 0" msgstr "Ce champ doit être supérieur à 0" #: components/LaunchPrompt/steps/useSurveyStep.jsx:111 -#: screens/Template/shared/JobTemplateForm.jsx:150 +#: screens/Template/shared/JobTemplateForm.jsx:153 #: screens/User/shared/UserForm.jsx:81 #: screens/User/shared/UserForm.jsx:92 #: util/validators.jsx:5 @@ -8815,7 +8819,8 @@ msgstr "Il manque un inventaire dans ce calendrier" msgid "This schedule is missing required survey values" msgstr "Ce tableau ne contient pas les valeurs d'enquête requises" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:64 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:65 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:105 #: components/LaunchPrompt/steps/StepName.jsx:27 msgid "This step contains errors" msgstr "Cette étape contient des erreurs" @@ -8894,7 +8899,7 @@ msgstr "Expiré" #: screens/NotificationTemplate/shared/TypeInputsSubForm.jsx:112 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:233 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:169 -#: screens/Template/shared/JobTemplateForm.jsx:489 +#: screens/Template/shared/JobTemplateForm.jsx:492 msgid "Timeout" msgstr "Délai d'attente" @@ -8997,7 +9002,7 @@ msgstr "Outils" msgid "Top Pagination" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:243 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:272 #: screens/InstanceGroup/Instances/InstanceList.jsx:214 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:124 msgid "Total Jobs" @@ -9072,7 +9077,7 @@ msgstr "Twilio" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:12 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:50 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:55 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:241 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:270 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:68 #: screens/InstanceGroup/Instances/InstanceList.jsx:212 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:120 @@ -9370,7 +9375,7 @@ msgstr "VMware vCenter" #: screens/Job/JobDetail/JobDetail.jsx:341 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:367 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:209 -#: screens/Template/shared/JobTemplateForm.jsx:412 +#: screens/Template/shared/JobTemplateForm.jsx:415 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:217 msgid "Variables" msgstr "Variables" @@ -9401,7 +9406,7 @@ msgstr "" #: screens/Inventory/shared/InventorySourceSubForms/SharedFields.jsx:90 #: screens/Job/JobDetail/JobDetail.jsx:222 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:232 -#: screens/Template/shared/JobTemplateForm.jsx:462 +#: screens/Template/shared/JobTemplateForm.jsx:465 msgid "Verbosity" msgstr "Verbosité" @@ -9504,7 +9509,7 @@ msgstr "Afficher les programmations" msgid "View Settings" msgstr "" -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "View Survey" msgstr "Afficher le questionnaire" @@ -9517,7 +9522,7 @@ msgstr "Voir les paramètres TACACS+" msgid "View Team Details" msgstr "Voir les détails de l'équipe" -#: screens/Template/Template.jsx:265 +#: screens/Template/Template.jsx:259 #: screens/Template/WorkflowJobTemplate.jsx:279 msgid "View Template Details" msgstr "Voir les détails du modèle" @@ -9589,7 +9594,7 @@ msgstr "Voir tous les projets." msgid "View all Teams." msgstr "Voir toutes les équipes." -#: screens/Template/Template.jsx:185 +#: screens/Template/Template.jsx:176 #: screens/Template/WorkflowJobTemplate.jsx:180 msgid "View all Templates." msgstr "Voir tous les modèles." @@ -9614,8 +9619,8 @@ msgstr "Voir tous les types d'informations d'identification" msgid "View all execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:83 -#: screens/InstanceGroup/InstanceGroup.jsx:89 +#: screens/InstanceGroup/ContainerGroup.jsx:95 +#: screens/InstanceGroup/InstanceGroup.jsx:101 msgid "View all instance groups" msgstr "Voir tous les groupes d'instance" @@ -9739,7 +9744,7 @@ msgstr "Service webhook" msgid "Webhook URL" msgstr "URL du webhook" -#: screens/Template/shared/JobTemplateForm.jsx:655 +#: screens/Template/shared/JobTemplateForm.jsx:658 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:253 msgid "Webhook details" msgstr "Détails de webhook" @@ -9974,8 +9979,8 @@ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableTo msgstr "Vous n'avez pas l'autorisation de supprimer : {brandName}: {itemsUnableToDelete}" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:147 -msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." -msgstr "Vous n'avez pas l'autorisation de supprimer : {brandName}: {itemsUnableToDelete}" +#~ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." +#~ msgstr "Vous n'avez pas l'autorisation de supprimer : {brandName}: {itemsUnableToDelete}" #: components/DisassociateButton/DisassociateButton.jsx:50 msgid "You do not have permission to disassociate the following: {itemsUnableToDisassociate}" @@ -10011,12 +10016,12 @@ msgstr "Zoom avant" msgid "Zoom Out" msgstr "Zoom arrière" -#: screens/Template/shared/JobTemplateForm.jsx:753 +#: screens/Template/shared/JobTemplateForm.jsx:756 #: screens/Template/shared/WebhookSubForm.jsx:152 msgid "a new webhook key will be generated on save." msgstr "une nouvelle clé webhook sera générée lors de la sauvegarde." -#: screens/Template/shared/JobTemplateForm.jsx:750 +#: screens/Template/shared/JobTemplateForm.jsx:753 #: screens/Template/shared/WebhookSubForm.jsx:142 msgid "a new webhook url will be generated on save." msgstr "une nouvelle url de webhook sera générée lors de la sauvegarde." @@ -10259,7 +10264,7 @@ msgstr "choisir la verbosité" msgid "social login" msgstr "social login" -#: screens/Template/shared/JobTemplateForm.jsx:344 +#: screens/Template/shared/JobTemplateForm.jsx:347 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:189 msgid "source control branch" msgstr "" @@ -10304,6 +10309,10 @@ msgstr "" msgid "{0, plural, one {Delete Group?} other {Delete Groups?}}" msgstr "" +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:179 +msgid "{0, plural, one {The following Instance Group cannot be deleted} other {The following Instance Groups cannot be deleted}}" +msgstr "" + #: screens/Inventory/InventoryList/InventoryList.jsx:225 msgid "{0, plural, one {The inventory will be in a pending status until the final delete is processed.} other {The inventories will be in a pending status until the final delete is processed.}}" msgstr "" @@ -10332,7 +10341,7 @@ msgstr "" msgid "{0, plural, one {This execution environment is currently being used by other resources. Are you sure you want to delete it?} other {These execution environments could be in use by other resources that rely on them. Are you sure you want to delete them anyway?}}" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:228 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:257 msgid "{0, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}" msgstr "" diff --git a/awx/ui_next/src/locales/ja/messages.po b/awx/ui_next/src/locales/ja/messages.po index 08afa4c6d3..5bff8eec20 100644 --- a/awx/ui_next/src/locales/ja/messages.po +++ b/awx/ui_next/src/locales/ja/messages.po @@ -45,7 +45,7 @@ msgstr "/ (プロジェクト root)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:46 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:75 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:106 -#: screens/Template/shared/JobTemplateForm.jsx:211 +#: screens/Template/shared/JobTemplateForm.jsx:214 msgid "0 (Normal)" msgstr "0 (正常)" @@ -66,7 +66,7 @@ msgstr "1 (情報)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:47 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:76 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:107 -#: screens/Template/shared/JobTemplateForm.jsx:212 +#: screens/Template/shared/JobTemplateForm.jsx:215 msgid "1 (Verbose)" msgstr "1 (詳細)" @@ -82,7 +82,7 @@ msgstr "2 (デバッグ)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:48 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:77 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:108 -#: screens/Template/shared/JobTemplateForm.jsx:213 +#: screens/Template/shared/JobTemplateForm.jsx:216 msgid "2 (More Verbose)" msgstr "2 (より詳細)" @@ -93,7 +93,7 @@ msgstr "2 (より詳細)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:49 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:78 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:109 -#: screens/Template/shared/JobTemplateForm.jsx:214 +#: screens/Template/shared/JobTemplateForm.jsx:217 msgid "3 (Debug)" msgstr "3 (デバッグ)" @@ -104,7 +104,7 @@ msgstr "3 (デバッグ)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:50 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:79 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:215 +#: screens/Template/shared/JobTemplateForm.jsx:218 msgid "4 (Connection Debug)" msgstr "4 (接続デバッグ)" @@ -161,7 +161,7 @@ msgstr "情報" #: screens/Project/Projects.jsx:29 #: screens/Team/Team.jsx:56 #: screens/Team/Teams.jsx:30 -#: screens/Template/Template.jsx:145 +#: screens/Template/Template.jsx:136 #: screens/Template/Templates.jsx:44 #: screens/Template/WorkflowJobTemplate.jsx:122 msgid "Access" @@ -204,7 +204,7 @@ msgstr "アクション" #: screens/Host/HostGroups/HostGroupsList.jsx:182 #: screens/Host/HostList/HostList.jsx:168 #: screens/Host/HostList/HostListItem.jsx:42 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:246 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:275 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:77 #: screens/InstanceGroup/Instances/InstanceList.jsx:217 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:153 @@ -310,7 +310,7 @@ msgstr "新規ノードの追加" msgid "Add a new node between these two nodes" msgstr "これら 2 つのノードの間に新しいノードを追加します" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:159 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:187 msgid "Add container group" msgstr "コンテナーグループの追加" @@ -322,7 +322,7 @@ msgstr "既存グループの追加" msgid "Add existing host" msgstr "既存ホストの追加" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:160 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:188 msgid "Add instance group" msgstr "インスタンスグループの追加" @@ -689,9 +689,9 @@ msgstr "Azure AD" msgid "Azure AD settings" msgstr "Azure AD の設定" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:125 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:148 #: components/AddRole/AddResourceRole.jsx:286 -#: components/LaunchPrompt/LaunchPrompt.jsx:134 +#: components/LaunchPrompt/LaunchPrompt.jsx:128 #: components/Schedule/shared/SchedulePromptableFields.jsx:136 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:90 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:70 @@ -768,7 +768,7 @@ msgstr "ソースに戻る" msgid "Back to Teams" msgstr "チームに戻る" -#: screens/Template/Template.jsx:138 +#: screens/Template/Template.jsx:129 #: screens/Template/WorkflowJobTemplate.jsx:115 msgid "Back to Templates" msgstr "テンプレートに戻る" @@ -797,8 +797,8 @@ msgstr "認証情報タイプに戻る" msgid "Back to execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:56 -#: screens/InstanceGroup/InstanceGroup.jsx:57 +#: screens/InstanceGroup/ContainerGroup.jsx:68 +#: screens/InstanceGroup/InstanceGroup.jsx:69 msgid "Back to instance groups" msgstr "インスタンスグループに戻る" @@ -869,7 +869,7 @@ msgstr "キャッシュタイムアウト" msgid "Cache timeout (seconds)" msgstr "キャッシュのタイムアウト (秒)" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:126 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:149 #: components/AddRole/AddResourceRole.jsx:287 #: components/AssociateModal/AssociateModal.jsx:116 #: components/AssociateModal/AssociateModal.jsx:121 @@ -879,7 +879,7 @@ msgstr "キャッシュのタイムアウト (秒)" #: components/DisassociateButton/DisassociateButton.jsx:125 #: components/FormActionGroup/FormActionGroup.jsx:24 #: components/FormActionGroup/FormActionGroup.jsx:29 -#: components/LaunchPrompt/LaunchPrompt.jsx:135 +#: components/LaunchPrompt/LaunchPrompt.jsx:129 #: components/Lookup/HostFilterLookup.jsx:350 #: components/Lookup/Lookup.jsx:186 #: components/PaginatedTable/ToolbarDeleteButton.jsx:281 @@ -1008,7 +1008,7 @@ msgstr "" #~ msgid "Cannot enable log aggregator without providing logging aggregator host and logging aggregator type." #~ msgstr "ログアグリゲーターホストとログアグリゲータータイプを指定せずにログアグリゲーターを有効にすることはできません。" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:245 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:274 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:76 msgid "Capacity" msgstr "容量" @@ -1062,7 +1062,7 @@ msgid "Channel" msgstr "チャネル" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:102 -#: screens/Template/shared/JobTemplateForm.jsx:206 +#: screens/Template/shared/JobTemplateForm.jsx:209 msgid "Check" msgstr "チェック" @@ -1095,7 +1095,7 @@ msgid "Choose a Webhook Service" msgstr "Webhook サービスの選択" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:95 -#: screens/Template/shared/JobTemplateForm.jsx:199 +#: screens/Template/shared/JobTemplateForm.jsx:202 msgid "Choose a job type" msgstr "ジョブタイプの選択" @@ -1225,6 +1225,7 @@ msgstr "クラウド" msgid "Collapse" msgstr "折りたたむ" +#: components/AdHocCommands/AdHocPreviewStep.jsx:8 #: components/JobList/JobList.jsx:186 #: components/JobList/JobListItem.jsx:37 #: screens/Job/JobDetail/JobDetail.jsx:81 @@ -1256,7 +1257,7 @@ msgstr "" #: components/PromptDetail/PromptWFJobTemplateDetail.jsx:36 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:138 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:61 -#: screens/Template/shared/JobTemplateForm.jsx:602 +#: screens/Template/shared/JobTemplateForm.jsx:605 msgid "Concurrent Jobs" msgstr "同時実行ジョブ" @@ -1324,11 +1325,11 @@ msgstr "コンテナーグループ" msgid "Container group" msgstr "コンテナーグループ" -#: screens/InstanceGroup/ContainerGroup.jsx:81 +#: screens/InstanceGroup/ContainerGroup.jsx:93 msgid "Container group not found." msgstr "コンテナーグループが見つかりません。" -#: components/LaunchPrompt/LaunchPrompt.jsx:129 +#: components/LaunchPrompt/LaunchPrompt.jsx:123 #: components/Schedule/shared/SchedulePromptableFields.jsx:131 msgid "Content Loading" msgstr "コンテンツの読み込み" @@ -1353,7 +1354,7 @@ msgid "" "will produce as the playbook executes." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:465 +#: screens/Template/shared/JobTemplateForm.jsx:468 msgid "" "Control the level of output ansible will\n" "produce as the playbook executes." @@ -1423,7 +1424,7 @@ msgstr "" #~ msgid "Copyright 2019 Red Hat, Inc." #~ msgstr "Copyright 2019 Red Hat, Inc." -#: screens/Template/shared/JobTemplateForm.jsx:406 +#: screens/Template/shared/JobTemplateForm.jsx:409 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:209 msgid "Create" msgstr "作成" @@ -1636,7 +1637,7 @@ msgstr "作成者 (ユーザー名)" #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:40 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:94 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:56 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:51 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:54 #: screens/Inventory/InventorySourceDetail/InventorySourceDetail.jsx:198 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:42 #: screens/Inventory/shared/InventorySourceSubForms/EC2SubForm.jsx:41 @@ -1687,11 +1688,11 @@ msgstr "認証情報のパスワード" #~ msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token”." #~ msgstr "Kubernetes または OpenShift での認証に使用する認証情報。\"Kubernetes/OpenShift API ベアラートークン” のタイプでなければなりません。" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:58 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:61 msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\". If left blank, the underlying Pod's service account will be used." msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:164 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:170 msgid "Credential to authenticate with a protected container registry." msgstr "" @@ -1701,7 +1702,7 @@ msgstr "認証情報タイプが見つかりません。" #: components/JobList/JobListItem.jsx:215 #: components/LaunchPrompt/steps/CredentialsStep.jsx:193 -#: components/LaunchPrompt/steps/useCredentialsStep.jsx:64 +#: components/LaunchPrompt/steps/useCredentialsStep.jsx:62 #: components/Lookup/MultiCredentialsLookup.jsx:139 #: components/Lookup/MultiCredentialsLookup.jsx:211 #: components/PromptDetail/PromptDetail.jsx:158 @@ -1716,12 +1717,12 @@ msgstr "認証情報タイプが見つかりません。" #: screens/Credential/Credentials.jsx:23 #: screens/Job/JobDetail/JobDetail.jsx:266 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:286 -#: screens/Template/shared/JobTemplateForm.jsx:374 +#: screens/Template/shared/JobTemplateForm.jsx:377 #: util/getRelatedResourceDeleteDetails.js:90 msgid "Credentials" msgstr "認証情報" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:54 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:53 msgid "Credentials that require passwords on launch are not permitted. Please remove or replace the following credentials with a credential of the same type in order to proceed: {0}" msgstr "" @@ -1729,7 +1730,7 @@ msgstr "" msgid "Current page" msgstr "現在のページ" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:83 msgid "Custom pod spec" msgstr "カスタム Pod 仕様" @@ -1756,8 +1757,8 @@ msgstr "" msgid "Customize messages…" msgstr "メッセージのカスタマイズ…" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:66 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:67 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:69 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:70 msgid "Customize pod specification" msgstr "Pod 仕様のカスタマイズ" @@ -1808,7 +1809,7 @@ msgid "Default" msgstr "デフォルト" #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:39 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:195 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:209 msgid "Default Execution Environment" msgstr "" @@ -1842,7 +1843,7 @@ msgstr "システムレベルの機能および関数の定義" #: screens/Credential/CredentialDetail/CredentialDetail.jsx:299 #: screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx:126 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:137 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:116 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:117 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:125 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:138 #: screens/Inventory/InventoryGroups/InventoryGroupsList.jsx:100 @@ -1969,7 +1970,7 @@ msgstr "認証情報タイプの削除" msgid "Delete error" msgstr "エラーの削除" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:110 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:111 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:119 msgid "Delete instance group" msgstr "インスタンスグループの削除" @@ -2031,7 +2032,7 @@ msgstr "削除エラー" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:207 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:220 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:265 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:294 msgid "Deletion error" msgstr "削除エラー" @@ -2081,7 +2082,7 @@ msgstr "" #: screens/CredentialType/shared/CredentialTypeForm.jsx:32 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:62 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:152 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:142 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:147 #: screens/Host/HostDetail/HostDetail.jsx:81 #: screens/Host/HostList/HostList.jsx:150 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:78 @@ -2115,7 +2116,7 @@ msgstr "" #: screens/Template/Survey/SurveyQuestionForm.jsx:166 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:116 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:166 -#: screens/Template/shared/JobTemplateForm.jsx:246 +#: screens/Template/shared/JobTemplateForm.jsx:249 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:115 #: screens/User/UserOrganizations/UserOrganizationList.jsx:65 #: screens/User/UserOrganizations/UserOrganizationListItem.jsx:15 @@ -2157,8 +2158,8 @@ msgstr "送信先チャネルまたはユーザー" #~ msgid "Detail coming soon :)" #~ msgstr "詳細は後日 :)" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:61 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:71 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:62 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:72 #: components/ErrorDetail/ErrorDetail.jsx:73 #: components/Schedule/Schedule.jsx:66 #: screens/Application/Application/Application.jsx:77 @@ -2171,8 +2172,8 @@ msgstr "送信先チャネルまたはユーザー" #: screens/ExecutionEnvironment/ExecutionEnvironments.jsx:26 #: screens/Host/Host.jsx:52 #: screens/Host/Hosts.jsx:28 -#: screens/InstanceGroup/ContainerGroup.jsx:63 -#: screens/InstanceGroup/InstanceGroup.jsx:64 +#: screens/InstanceGroup/ContainerGroup.jsx:75 +#: screens/InstanceGroup/InstanceGroup.jsx:76 #: screens/InstanceGroup/InstanceGroups.jsx:30 #: screens/InstanceGroup/InstanceGroups.jsx:36 #: screens/Inventory/Inventories.jsx:60 @@ -2229,7 +2230,7 @@ msgstr "送信先チャネルまたはユーザー" #: screens/Setting/UI/UIDetail/UIDetail.jsx:61 #: screens/Team/Team.jsx:55 #: screens/Team/Teams.jsx:28 -#: screens/Template/Template.jsx:144 +#: screens/Template/Template.jsx:135 #: screens/Template/Templates.jsx:42 #: screens/Template/WorkflowJobTemplate.jsx:121 #: screens/User/User.jsx:63 @@ -2310,7 +2311,7 @@ msgstr "関連付けを解除しますか?" msgid "Discard local changes before syncing" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:480 +#: screens/Template/shared/JobTemplateForm.jsx:483 msgid "" "Divide the work done by this job template\n" "into the specified number of job slices, each running the\n" @@ -2638,7 +2639,7 @@ msgstr "メールオプション" msgid "Enable Concurrent Jobs" msgstr "同時実行ジョブの有効化" -#: screens/Template/shared/JobTemplateForm.jsx:609 +#: screens/Template/shared/JobTemplateForm.jsx:612 msgid "Enable Fact Storage" msgstr "ファクトストレージの有効化" @@ -2651,8 +2652,8 @@ msgstr "HTTPS 証明書の検証を有効化" #~ msgid "Enable Privilege Escalation" #~ msgstr "権限昇格の有効化" -#: screens/Template/shared/JobTemplateForm.jsx:583 #: screens/Template/shared/JobTemplateForm.jsx:586 +#: screens/Template/shared/JobTemplateForm.jsx:589 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:225 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:228 msgid "Enable Webhook" @@ -2687,7 +2688,7 @@ msgstr "" #~ msgid "Enable simplified login for your {brandName} applications" #~ msgstr "{brandName} アプリケーションのログインの簡素化の有効化" -#: screens/Template/shared/JobTemplateForm.jsx:589 +#: screens/Template/shared/JobTemplateForm.jsx:592 msgid "Enable webhook for this template." msgstr "このテンプレートの Webhook を有効にします。" @@ -2718,7 +2719,7 @@ msgstr "有効な値" msgid "Enabled Variable" msgstr "有効な変数" -#: screens/Template/shared/JobTemplateForm.jsx:569 +#: screens/Template/shared/JobTemplateForm.jsx:572 msgid "" "Enables creation of a provisioning\n" "callback URL. Using the URL a host can contact {0}\n" @@ -2927,9 +2928,9 @@ msgstr "JSON または YAML 構文のいずれかを使用して変数を入力 #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:210 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:146 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:223 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:124 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:125 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:133 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:268 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:297 #: screens/Job/JobOutput/JobOutput.jsx:761 msgid "Error" msgstr "エラー" @@ -2960,8 +2961,8 @@ msgstr "" #: components/InstanceToggle/InstanceToggle.jsx:61 #: components/JobList/JobList.jsx:280 #: components/JobList/JobList.jsx:291 -#: components/LaunchButton/LaunchButton.jsx:173 -#: components/LaunchPrompt/LaunchPrompt.jsx:72 +#: components/LaunchButton/LaunchButton.jsx:161 +#: components/LaunchPrompt/LaunchPrompt.jsx:66 #: components/NotificationList/NotificationList.jsx:246 #: components/PaginatedTable/ToolbarDeleteButton.jsx:205 #: components/ResourceAccessList/ResourceAccessList.jsx:234 @@ -3088,7 +3089,7 @@ msgstr "Subversion Source Control のサンプル URL には以下が含まれ msgid "Examples include:" msgstr "以下に例を示します。" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:109 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:114 msgid "Examples:" msgstr "" @@ -3104,11 +3105,11 @@ msgstr "親ノードが障害状態になったときに実行します。" msgid "Execute when the parent node results in a successful state." msgstr "親ノードが正常な状態になったときに実行します。" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:85 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:86 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:40 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:103 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:197 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:189 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:211 msgid "Execution Environment" msgstr "" @@ -3120,7 +3121,7 @@ msgstr "" #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:91 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:92 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:104 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:144 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:158 #: routeConfig.jsx:140 #: screens/ActivityStream/ActivityStream.jsx:208 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:122 @@ -3398,7 +3399,7 @@ msgstr "1 つ以上のグループを削除できませんでした。" msgid "Failed to delete one or more hosts." msgstr "1 つ以上のホストを削除できませんでした。" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:300 msgid "Failed to delete one or more instance groups." msgstr "1 つ以上のインスタンスグループを削除できませんでした。" @@ -3539,7 +3540,7 @@ msgid "Failed to fetch the updated project data." msgstr "" #: components/AdHocCommands/AdHocCommands.jsx:113 -#: components/LaunchButton/LaunchButton.jsx:176 +#: components/LaunchButton/LaunchButton.jsx:164 #: screens/ManagementJob/ManagementJobList/ManagementJobList.jsx:130 msgid "Failed to launch job." msgstr "ジョブを起動できませんでした。" @@ -3627,7 +3628,7 @@ msgstr "値を含むフィールド。" msgid "Field ends with value." msgstr "値で終了するフィールド。" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:77 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 msgid "Field for passing a custom Kubernetes or OpenShift Pod specification." msgstr "カスタムの Kubernetes または OpenShift Pod 仕様を渡すためのフィールド。" @@ -3706,7 +3707,7 @@ msgstr "浮動" msgid "Follow" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:254 +#: screens/Template/shared/JobTemplateForm.jsx:257 msgid "" "For job templates, select run to execute\n" "the playbook. Select check to only check playbook syntax,\n" @@ -3734,7 +3735,7 @@ msgstr "詳しい情報は以下の情報を参照してください:" #: components/AdHocCommands/AdHocDetailsStep.jsx:180 #: components/PromptDetail/PromptJobTemplateDetail.jsx:154 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:230 -#: screens/Template/shared/JobTemplateForm.jsx:425 +#: screens/Template/shared/JobTemplateForm.jsx:428 msgid "Forks" msgstr "フォーク" @@ -3841,7 +3842,7 @@ msgstr "GitHub 設定" msgid "GitLab" msgstr "GitLab" -#: components/Lookup/ExecutionEnvironmentLookup.jsx:192 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:206 msgid "Global Default Execution Environment" msgstr "" @@ -3850,7 +3851,7 @@ msgstr "" msgid "Globally Available" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:148 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:154 msgid "Globally available execution environment can not be reassigned to a specific Organization" msgstr "" @@ -3948,7 +3949,7 @@ msgstr "ヘルプ" msgid "Hide" msgstr "非表示" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Hide description" msgstr "" @@ -3973,7 +3974,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:161 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:238 -#: screens/Template/shared/JobTemplateForm.jsx:642 +#: screens/Template/shared/JobTemplateForm.jsx:645 msgid "Host Config Key" msgstr "ホスト設定キー" @@ -4196,7 +4197,7 @@ msgstr "" #~ msgid "If checked, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the \"all\" default group for the inventory." #~ msgstr "チェックを付けると、以前は外部ソースにあり、現在は削除されているホストおよびグループが Tower インベントリーから削除されます。インベントリーソースで管理されていなかったホストおよびグループは、次に手動で作成したグループにプロモートされます。プロモート先となる、手動で作成したグループがない場合、ホストおよびグループは、インベントリーの「すべて」のデフォルトグループに残ります。" -#: screens/Template/shared/JobTemplateForm.jsx:559 +#: screens/Template/shared/JobTemplateForm.jsx:562 msgid "" "If enabled, run this playbook as an\n" "administrator." @@ -4213,7 +4214,7 @@ msgid "" "--diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:499 +#: screens/Template/shared/JobTemplateForm.jsx:502 msgid "" "If enabled, show the changes made by\n" "Ansible tasks, where supported. This is equivalent\n" @@ -4228,7 +4229,7 @@ msgstr "" msgid "If enabled, show the changes made by Ansible tasks, where supported. This is equivalent to Ansible’s --diff mode." msgstr "有効で、サポートされている場合は、Ansible タスクで加えられた変更を表示します。これは Ansible の --diff モードに相当します。" -#: screens/Template/shared/JobTemplateForm.jsx:603 +#: screens/Template/shared/JobTemplateForm.jsx:606 msgid "" "If enabled, simultaneous runs of this job\n" "template will be allowed." @@ -4242,7 +4243,7 @@ msgstr "" msgid "If enabled, simultaneous runs of this workflow job template will be allowed." msgstr "有効な場合は、このワークフロージョブテンプレートの同時実行が許可されます。" -#: screens/Template/shared/JobTemplateForm.jsx:610 +#: screens/Template/shared/JobTemplateForm.jsx:613 msgid "" "If enabled, this will store gathered facts so they can\n" "be viewed at the host level. Facts are persisted and\n" @@ -4279,7 +4280,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:140 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:159 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.jsx:62 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:99 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:103 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:91 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:110 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.jsx:16 @@ -4389,8 +4390,8 @@ msgstr "インスタンスグループ" #: components/PromptDetail/PromptJobTemplateDetail.jsx:227 #: routeConfig.jsx:130 #: screens/ActivityStream/ActivityStream.jsx:196 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:134 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:224 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:170 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:253 #: screens/InstanceGroup/InstanceGroups.jsx:16 #: screens/InstanceGroup/InstanceGroups.jsx:26 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:91 @@ -4408,7 +4409,7 @@ msgstr "インスタンス ID" msgid "Instance group" msgstr "インスタンスグループ" -#: screens/InstanceGroup/InstanceGroup.jsx:87 +#: screens/InstanceGroup/InstanceGroup.jsx:99 msgid "Instance group not found." msgstr "インスタンスグループが見つかりません。" @@ -4420,8 +4421,8 @@ msgstr "" msgid "Instance groups" msgstr "インスタンスグループ" -#: screens/InstanceGroup/InstanceGroup.jsx:69 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:244 +#: screens/InstanceGroup/InstanceGroup.jsx:81 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:273 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:75 #: screens/InstanceGroup/InstanceGroups.jsx:31 #: screens/InstanceGroup/Instances/InstanceList.jsx:156 @@ -4637,7 +4638,7 @@ msgstr "ジョブスライス" #: components/PromptDetail/PromptJobTemplateDetail.jsx:160 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:235 -#: screens/Template/shared/JobTemplateForm.jsx:479 +#: screens/Template/shared/JobTemplateForm.jsx:482 msgid "Job Slicing" msgstr "ジョブスライス" @@ -4652,7 +4653,7 @@ msgstr "ジョブステータス" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:334 #: screens/Job/JobDetail/JobDetail.jsx:294 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:337 -#: screens/Template/shared/JobTemplateForm.jsx:520 +#: screens/Template/shared/JobTemplateForm.jsx:523 msgid "Job Tags" msgstr "ジョブタグ" @@ -4667,7 +4668,7 @@ msgstr "ジョブタグ" msgid "Job Template" msgstr "ジョブテンプレート" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:40 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:39 msgid "Job Template default credentials must be replaced with one of the same type. Please select a credential for the following types in order to proceed: {0}" msgstr "" @@ -4695,7 +4696,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:156 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:183 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:142 -#: screens/Template/shared/JobTemplateForm.jsx:251 +#: screens/Template/shared/JobTemplateForm.jsx:254 msgid "Job Type" msgstr "ジョブタイプ" @@ -4720,8 +4721,8 @@ msgstr "ジョブテンプレート" #: screens/Dashboard/shared/LineChart.jsx:69 #: screens/Host/Host.jsx:67 #: screens/Host/Hosts.jsx:31 -#: screens/InstanceGroup/ContainerGroup.jsx:68 -#: screens/InstanceGroup/InstanceGroup.jsx:74 +#: screens/InstanceGroup/ContainerGroup.jsx:80 +#: screens/InstanceGroup/InstanceGroup.jsx:86 #: screens/InstanceGroup/InstanceGroups.jsx:32 #: screens/InstanceGroup/InstanceGroups.jsx:37 #: screens/Inventory/Inventories.jsx:59 @@ -4733,7 +4734,7 @@ msgstr "ジョブテンプレート" #: screens/Job/Jobs.jsx:25 #: screens/Setting/SettingList.jsx:85 #: screens/Setting/Settings.jsx:71 -#: screens/Template/Template.jsx:164 +#: screens/Template/Template.jsx:155 #: screens/Template/Templates.jsx:46 #: screens/Template/WorkflowJobTemplate.jsx:145 msgid "Jobs" @@ -4831,7 +4832,7 @@ msgstr "ラベル名" #: screens/Job/JobDetail/JobDetail.jsx:279 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:304 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:193 -#: screens/Template/shared/JobTemplateForm.jsx:392 +#: screens/Template/shared/JobTemplateForm.jsx:395 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:195 msgid "Labels" msgstr "ラベル" @@ -4919,7 +4920,7 @@ msgstr "" msgid "Last used" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:106 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:130 #: components/LaunchPrompt/steps/usePreviewStep.jsx:35 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:54 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:57 @@ -4957,7 +4958,7 @@ msgstr "テンプレートの起動" msgid "Launch workflow" msgstr "ワークフローの起動" -#: components/LaunchPrompt/LaunchPrompt.jsx:106 +#: components/LaunchPrompt/LaunchPrompt.jsx:100 msgid "Launch | {0}" msgstr "" @@ -5018,7 +5019,7 @@ msgstr "Less than or equal to の比較条件" #: screens/Job/JobDetail/JobDetail.jsx:221 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:231 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:152 -#: screens/Template/shared/JobTemplateForm.jsx:441 +#: screens/Template/shared/JobTemplateForm.jsx:444 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:156 msgid "Limit" msgstr "制限" @@ -5091,7 +5092,8 @@ msgstr "直近の同期" msgid "Machine Credential" msgstr "マシンの認証情報" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:98 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:102 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:112 msgid "Machine credential" msgstr "マシンの認証情報" @@ -5204,7 +5206,7 @@ msgstr "最小" msgid "Minimum length" msgstr "最小長" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:33 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:34 msgid "" "Minimum number of instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5214,7 +5216,7 @@ msgstr "" #~ msgid "Minimum number of instances that will be automatically assigned to this group when new instances come online." #~ msgstr "新規インスタンスがオンラインになると、このグループに自動的に最小限割り当てられるインスタンス数" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:43 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:44 msgid "" "Minimum percentage of all instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5377,8 +5379,8 @@ msgstr "複数の選択オプション" #: components/Lookup/ApplicationLookup.jsx:111 #: components/Lookup/CredentialLookup.jsx:186 #: components/Lookup/CredentialLookup.jsx:201 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:161 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:168 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:182 #: components/Lookup/HostFilterLookup.jsx:79 #: components/Lookup/HostFilterLookup.jsx:364 #: components/Lookup/HostListItem.jsx:8 @@ -5451,7 +5453,7 @@ msgstr "複数の選択オプション" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:91 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:117 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:9 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:91 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:94 #: screens/Host/HostDetail/HostDetail.jsx:74 #: screens/Host/HostGroups/HostGroupItem.jsx:28 #: screens/Host/HostGroups/HostGroupsList.jsx:164 @@ -5461,14 +5463,14 @@ msgstr "複数の選択オプション" #: screens/Host/HostList/HostListItem.jsx:28 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:45 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:50 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:240 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:269 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:63 #: screens/InstanceGroup/Instances/InstanceList.jsx:163 #: screens/InstanceGroup/Instances/InstanceList.jsx:170 #: screens/InstanceGroup/Instances/InstanceList.jsx:211 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:117 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:45 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:20 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:47 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:21 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:74 #: screens/Inventory/InventoryGroupDetail/InventoryGroupDetail.jsx:35 #: screens/Inventory/InventoryGroupHosts/InventoryGroupHostList.jsx:190 @@ -5547,7 +5549,7 @@ msgstr "複数の選択オプション" #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:76 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:96 -#: screens/Template/shared/JobTemplateForm.jsx:238 +#: screens/Template/shared/JobTemplateForm.jsx:241 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:107 #: screens/User/UserOrganizations/UserOrganizationList.jsx:60 #: screens/User/UserOrganizations/UserOrganizationList.jsx:64 @@ -5590,11 +5592,12 @@ msgstr "期限切れなし" msgid "New" msgstr "新規" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:80 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:92 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:81 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:93 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:116 #: components/AddRole/AddResourceRole.jsx:215 #: components/AddRole/AddResourceRole.jsx:250 -#: components/LaunchPrompt/LaunchPrompt.jsx:136 +#: components/LaunchPrompt/LaunchPrompt.jsx:130 #: components/Schedule/shared/SchedulePromptableFields.jsx:138 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:66 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:59 @@ -5816,7 +5819,7 @@ msgstr "通知タイプ" #: screens/Organization/Organizations.jsx:33 #: screens/Project/Project.jsx:111 #: screens/Project/Projects.jsx:30 -#: screens/Template/Template.jsx:150 +#: screens/Template/Template.jsx:141 #: screens/Template/Templates.jsx:45 #: screens/Template/WorkflowJobTemplate.jsx:127 msgid "Notifications" @@ -5855,7 +5858,7 @@ msgstr "10 月" #: screens/Setting/shared/SharedFields.jsx:144 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:53 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "Off" msgstr "オフ" @@ -5873,7 +5876,7 @@ msgstr "オフ" #: screens/Setting/shared/SharedFields.jsx:143 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:52 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "On" msgstr "オン" @@ -5911,7 +5914,7 @@ msgstr "OpenStack" msgid "Option Details" msgstr "オプションの詳細" -#: screens/Template/shared/JobTemplateForm.jsx:395 +#: screens/Template/shared/JobTemplateForm.jsx:398 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:198 msgid "" "Optional labels that describe this job template,\n" @@ -5931,9 +5934,9 @@ msgstr "必要に応じて、ステータスの更新を Webhook サービスに #: components/NotificationList/NotificationList.jsx:220 #: components/NotificationList/NotificationListItem.jsx:31 #: screens/Credential/shared/TypeInputsSubForm.jsx:47 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:62 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:65 #: screens/Project/shared/ProjectSubForms/SharedFields.jsx:67 -#: screens/Template/shared/JobTemplateForm.jsx:552 +#: screens/Template/shared/JobTemplateForm.jsx:555 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:222 msgid "Options" msgstr "オプション" @@ -6095,7 +6098,7 @@ msgstr "追加のコマンドライン変更を渡します。2 つの Ansible #~ "Ansible Tower documentation for example syntax." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:414 +#: screens/Template/shared/JobTemplateForm.jsx:417 msgid "" "Pass extra command line variables to the playbook. This is the\n" "-e or --extra-vars command line parameter for ansible-playbook.\n" @@ -6172,7 +6175,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:153 #: screens/Job/JobDetail/JobDetail.jsx:220 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:229 -#: screens/Template/shared/JobTemplateForm.jsx:355 +#: screens/Template/shared/JobTemplateForm.jsx:358 msgid "Playbook" msgstr "Playbook" @@ -6249,7 +6252,7 @@ msgstr "" msgid "Please select a day number between 1 and 31." msgstr "1 から 31 までの日付を選択してください。" -#: screens/Template/shared/JobTemplateForm.jsx:170 +#: screens/Template/shared/JobTemplateForm.jsx:173 msgid "Please select an Inventory or check the Prompt on Launch option" msgstr "" @@ -6270,17 +6273,17 @@ msgid "Pod spec override" msgstr "Pod 仕様の上書き" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:64 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:28 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:29 msgid "Policy instance minimum" msgstr "ポリシーインスタンスの最小値" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:69 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:38 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:39 msgid "Policy instance percentage" msgstr "ポリシーインスタンスの割合" -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:56 -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:62 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:63 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:69 msgid "Populate field from an external secret management system" msgstr "外部のシークレット管理システムからフィールドにデータを入力します" @@ -6336,6 +6339,7 @@ msgstr "" msgid "Press Enter to edit. Press ESC to stop editing." msgstr "" +#: components/AdHocCommands/AdHocCommandsWizard.jsx:121 #: components/LaunchPrompt/steps/usePreviewStep.jsx:23 #: screens/Template/Survey/SurveyList.jsx:162 #: screens/Template/Survey/SurveyList.jsx:164 @@ -6348,7 +6352,7 @@ msgstr "秘密鍵のパスフレーズ" #: components/PromptDetail/PromptJobTemplateDetail.jsx:65 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:128 -#: screens/Template/shared/JobTemplateForm.jsx:558 +#: screens/Template/shared/JobTemplateForm.jsx:561 msgid "Privilege Escalation" msgstr "権限昇格" @@ -6447,7 +6451,7 @@ msgstr "プロンプト値" #~ msgid "Prompts" #~ msgstr "プロンプト" -#: screens/Template/shared/JobTemplateForm.jsx:444 +#: screens/Template/shared/JobTemplateForm.jsx:447 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:159 msgid "" "Provide a host pattern to further constrain\n" @@ -6506,23 +6510,23 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:164 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:240 -#: screens/Template/shared/JobTemplateForm.jsx:629 +#: screens/Template/shared/JobTemplateForm.jsx:632 msgid "Provisioning Callback URL" msgstr "プロビジョニングコールバック URL" -#: screens/Template/shared/JobTemplateForm.jsx:624 +#: screens/Template/shared/JobTemplateForm.jsx:627 msgid "Provisioning Callback details" msgstr "プロビジョニングコールバックの詳細" #: components/PromptDetail/PromptJobTemplateDetail.jsx:70 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:133 -#: screens/Template/shared/JobTemplateForm.jsx:563 #: screens/Template/shared/JobTemplateForm.jsx:566 +#: screens/Template/shared/JobTemplateForm.jsx:569 msgid "Provisioning Callbacks" msgstr "プロビジョニングコールバック" #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:88 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:129 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:134 msgid "Pull" msgstr "" @@ -6621,7 +6625,7 @@ msgstr "" msgid "Refer to the" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:434 +#: screens/Template/shared/JobTemplateForm.jsx:437 msgid "" "Refer to the Ansible documentation for details\n" "about the configuration file." @@ -6651,7 +6655,7 @@ msgstr "" msgid "Regions" msgstr "リージョン" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:157 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:163 msgid "Registry credential" msgstr "" @@ -6908,7 +6912,7 @@ msgstr "ロール" #: screens/Credential/shared/ExternalTestModal.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.jsx:49 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/RunStep.jsx:24 -#: screens/Template/shared/JobTemplateForm.jsx:202 +#: screens/Template/shared/JobTemplateForm.jsx:205 msgid "Run" msgstr "実行" @@ -6919,7 +6923,7 @@ msgstr "実行" msgid "Run Command" msgstr "コマンドの実行" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:123 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:146 msgid "Run command" msgstr "コマンドの実行" @@ -6949,7 +6953,7 @@ msgstr "実行中" msgid "Running Handlers" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:242 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 #: screens/InstanceGroup/Instances/InstanceList.jsx:213 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:123 msgid "Running Jobs" @@ -7073,7 +7077,7 @@ msgstr "スケジュールにルールがありません" #: screens/Project/Project.jsx:123 #: screens/Project/Projects.jsx:33 #: screens/Schedule/AllSchedules.jsx:25 -#: screens/Template/Template.jsx:157 +#: screens/Template/Template.jsx:148 #: screens/Template/Templates.jsx:50 #: screens/Template/WorkflowJobTemplate.jsx:134 msgid "Schedules" @@ -7199,7 +7203,7 @@ msgstr "ノードタイプの選択" msgid "Select a Resource Type" msgstr "リソースタイプの選択" -#: screens/Template/shared/JobTemplateForm.jsx:335 +#: screens/Template/shared/JobTemplateForm.jsx:338 msgid "" "Select a branch for the job template. This branch is applied to\n" "all job template nodes that prompt for a branch." @@ -7242,7 +7246,7 @@ msgstr "モジュールの選択" msgid "Select a playbook" msgstr "Playbook の選択" -#: screens/Template/shared/JobTemplateForm.jsx:323 +#: screens/Template/shared/JobTemplateForm.jsx:326 msgid "Select a project before editing the execution environment." msgstr "" @@ -7279,7 +7283,7 @@ msgstr "" #: components/Schedule/shared/ScheduleForm.jsx:85 #: components/Schedule/shared/ScheduleForm.jsx:89 #: screens/Credential/shared/CredentialForm.jsx:47 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:80 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:83 #: screens/Inventory/shared/InventoryForm.jsx:59 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:50 #: screens/Inventory/shared/InventorySourceSubForms/GCESubForm.jsx:50 @@ -7334,7 +7338,7 @@ msgstr "" msgid "Select an organization before editing the default execution environment." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:377 +#: screens/Template/shared/JobTemplateForm.jsx:380 msgid "" "Select credentials for accessing the nodes this job will be ran\n" "against. You can only select one credential of each type. For machine credentials (SSH),\n" @@ -7413,7 +7417,7 @@ msgstr "" msgid "Select the Instance Groups for this Inventory to run on." msgstr "このインベントリーが実行されるインスタンスグループを選択します。" -#: screens/Template/shared/JobTemplateForm.jsx:514 +#: screens/Template/shared/JobTemplateForm.jsx:517 msgid "" "Select the Instance Groups for this Organization\n" "to run on." @@ -7447,12 +7451,12 @@ msgstr "そのコマンドを実行するためにリモートホストへのア #~ msgid "Select the default execution environment for this project." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:322 +#: screens/Template/shared/JobTemplateForm.jsx:325 msgid "Select the execution environment for this job template." msgstr "" #: components/Lookup/InventoryLookup.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:286 +#: screens/Template/shared/JobTemplateForm.jsx:289 msgid "" "Select the inventory containing the hosts\n" "you want this job to manage." @@ -7479,11 +7483,11 @@ msgstr "" msgid "Select the inventory that this host will belong to." msgstr "このホストが属するインベントリーを選択します。" -#: screens/Template/shared/JobTemplateForm.jsx:358 +#: screens/Template/shared/JobTemplateForm.jsx:361 msgid "Select the playbook to be executed by this job." msgstr "このジョブで実行される Playbook を選択してください。" -#: screens/Template/shared/JobTemplateForm.jsx:301 +#: screens/Template/shared/JobTemplateForm.jsx:304 msgid "" "Select the project containing the playbook\n" "you want this job to execute." @@ -7633,7 +7637,7 @@ msgstr "表示" #: components/PromptDetail/PromptJobTemplateDetail.jsx:158 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:314 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 -#: screens/Template/shared/JobTemplateForm.jsx:496 +#: screens/Template/shared/JobTemplateForm.jsx:499 msgid "Show Changes" msgstr "変更の表示" @@ -7646,7 +7650,7 @@ msgstr "すべてのグループの表示" msgid "Show changes" msgstr "変更の表示" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Show description" msgstr "" @@ -7711,7 +7715,7 @@ msgstr "簡易キー選択" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:352 #: screens/Job/JobDetail/JobDetail.jsx:312 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:352 -#: screens/Template/shared/JobTemplateForm.jsx:536 +#: screens/Template/shared/JobTemplateForm.jsx:539 msgid "Skip Tags" msgstr "スキップタグ" @@ -7724,7 +7728,7 @@ msgstr "スキップタグ" #~ "of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:539 +#: screens/Template/shared/JobTemplateForm.jsx:542 msgid "" "Skip tags are useful when you have a\n" "large playbook, and you want to skip specific parts of a\n" @@ -7817,7 +7821,7 @@ msgstr "ソース" #: screens/Project/ProjectDetail/ProjectDetail.jsx:203 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:228 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:138 -#: screens/Template/shared/JobTemplateForm.jsx:332 +#: screens/Template/shared/JobTemplateForm.jsx:335 msgid "Source Control Branch" msgstr "ソースコントロールブランチ" @@ -8120,7 +8124,7 @@ msgid "Sunday" msgstr "日曜" #: components/LaunchPrompt/steps/useSurveyStep.jsx:26 -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/Templates.jsx:47 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "Survey" @@ -8231,7 +8235,7 @@ msgstr "タブ" #~ "the usage of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:523 +#: screens/Template/shared/JobTemplateForm.jsx:526 msgid "" "Tags are useful when you have a large\n" "playbook, and you want to run a specific part of a\n" @@ -8320,7 +8324,7 @@ msgstr "チームが見つかりません。" msgid "Teams" msgstr "チーム" -#: screens/Template/Template.jsx:184 +#: screens/Template/Template.jsx:175 #: screens/Template/WorkflowJobTemplate.jsx:179 msgid "Template not found." msgstr "更新が見つかりません。" @@ -8407,7 +8411,7 @@ msgstr "" #~ msgid "The amount of time (in seconds) before the email notification stops trying to reach the host and times out. Ranges from 1 to 120 seconds." #~ msgstr "メール通知が、ホストへの到達を試行するのをやめてタイムアウトするまでの時間 (秒単位)。範囲は 1 から 120 秒です。" -#: screens/Template/shared/JobTemplateForm.jsx:490 +#: screens/Template/shared/JobTemplateForm.jsx:493 msgid "" "The amount of time (in seconds) to run\n" "before the job is canceled. Defaults to 0 for no job\n" @@ -8455,7 +8459,7 @@ msgstr "" #~ msgid "The first fetches all references. The second fetches the Github pull request number 62, in this example the branch needs to be \"pull/62/head\"." #~ msgstr "最初は全参照を取得します。2 番目は Github の Pull 要求の 62 番を取得します。この例では、ブランチは \"pull/62/head\" である必要があります。" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:106 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:111 msgid "The full image location, including the container registry, image name, and version tag." msgstr "" @@ -8470,7 +8474,7 @@ msgstr "" #~ msgid "The maximum number of hosts allowed to be managed by this organization. Value defaults to 0 which means no limit. Refer to the Ansible documentation for more details." #~ msgstr "この組織で管理可能な最大ホスト数。デフォルト値は 0 で、管理可能な数に制限がありません。詳細は、Ansible ドキュメントを参照してください。" -#: screens/Template/shared/JobTemplateForm.jsx:428 +#: screens/Template/shared/JobTemplateForm.jsx:431 msgid "" "The number of parallel or simultaneous\n" "processes to use while executing the playbook. An empty value,\n" @@ -8530,8 +8534,8 @@ msgstr "" #~ msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:155 -msgid "The tower instance group cannot be deleted." -msgstr "Tower インスタンスグループは削除できません。" +#~ msgid "The tower instance group cannot be deleted." +#~ msgstr "Tower インスタンスグループは削除できません。" #: screens/Project/shared/ProjectSubForms/ManualSubForm.jsx:47 msgid "" @@ -8613,7 +8617,7 @@ msgstr "これらの引数は、指定されたモジュールで使用されま msgid "Third" msgstr "第 3" -#: screens/Template/shared/JobTemplateForm.jsx:153 +#: screens/Template/shared/JobTemplateForm.jsx:156 msgid "This Project needs to be updated" msgstr "" @@ -8635,7 +8639,7 @@ msgstr "このアクションにより、{0} から次のロールの関連付 msgid "This action will disassociate the following:" msgstr "このアクションにより、以下の関連付けが解除されます。" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:114 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:115 msgid "This container group is currently being by other resources. Are you sure you want to delete it?" msgstr "" @@ -8735,7 +8739,7 @@ msgid "This field must be greater than 0" msgstr "このフィールドは 0 より大きくなければなりません" #: components/LaunchPrompt/steps/useSurveyStep.jsx:111 -#: screens/Template/shared/JobTemplateForm.jsx:150 +#: screens/Template/shared/JobTemplateForm.jsx:153 #: screens/User/shared/UserForm.jsx:81 #: screens/User/shared/UserForm.jsx:92 #: util/validators.jsx:5 @@ -8811,7 +8815,8 @@ msgstr "このスケジュールにはインベントリーがありません" msgid "This schedule is missing required survey values" msgstr "このスケジュールには、必要な Survey 値がありません" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:64 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:65 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:105 #: components/LaunchPrompt/steps/StepName.jsx:27 msgid "This step contains errors" msgstr "このステップにはエラーが含まれています" @@ -8890,7 +8895,7 @@ msgstr "タイムアウト" #: screens/NotificationTemplate/shared/TypeInputsSubForm.jsx:112 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:233 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:169 -#: screens/Template/shared/JobTemplateForm.jsx:489 +#: screens/Template/shared/JobTemplateForm.jsx:492 msgid "Timeout" msgstr "タイムアウト" @@ -8993,7 +8998,7 @@ msgstr "ツール" msgid "Top Pagination" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:243 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:272 #: screens/InstanceGroup/Instances/InstanceList.jsx:214 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:124 msgid "Total Jobs" @@ -9068,7 +9073,7 @@ msgstr "Twilio" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:12 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:50 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:55 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:241 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:270 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:68 #: screens/InstanceGroup/Instances/InstanceList.jsx:212 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:120 @@ -9366,7 +9371,7 @@ msgstr "VMware vCenter" #: screens/Job/JobDetail/JobDetail.jsx:341 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:367 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:209 -#: screens/Template/shared/JobTemplateForm.jsx:412 +#: screens/Template/shared/JobTemplateForm.jsx:415 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:217 msgid "Variables" msgstr "変数" @@ -9397,7 +9402,7 @@ msgstr "" #: screens/Inventory/shared/InventorySourceSubForms/SharedFields.jsx:90 #: screens/Job/JobDetail/JobDetail.jsx:222 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:232 -#: screens/Template/shared/JobTemplateForm.jsx:462 +#: screens/Template/shared/JobTemplateForm.jsx:465 msgid "Verbosity" msgstr "詳細" @@ -9500,7 +9505,7 @@ msgstr "スケジュールの表示" msgid "View Settings" msgstr "" -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "View Survey" msgstr "Survey の表示" @@ -9513,7 +9518,7 @@ msgstr "TACACS+ 設定の表示" msgid "View Team Details" msgstr "チームの詳細の表示" -#: screens/Template/Template.jsx:265 +#: screens/Template/Template.jsx:259 #: screens/Template/WorkflowJobTemplate.jsx:279 msgid "View Template Details" msgstr "テンプレートの詳細の表示" @@ -9585,7 +9590,7 @@ msgstr "すべてのプロジェクトを表示します。" msgid "View all Teams." msgstr "すべてのチームを表示します。" -#: screens/Template/Template.jsx:185 +#: screens/Template/Template.jsx:176 #: screens/Template/WorkflowJobTemplate.jsx:180 msgid "View all Templates." msgstr "すべてのテンプレートを表示します。" @@ -9610,8 +9615,8 @@ msgstr "すべての認証情報タイプの表示" msgid "View all execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:83 -#: screens/InstanceGroup/InstanceGroup.jsx:89 +#: screens/InstanceGroup/ContainerGroup.jsx:95 +#: screens/InstanceGroup/InstanceGroup.jsx:101 msgid "View all instance groups" msgstr "すべてのインスタンスグループの表示" @@ -9735,7 +9740,7 @@ msgstr "Webhook サービス" msgid "Webhook URL" msgstr "Webhook URL" -#: screens/Template/shared/JobTemplateForm.jsx:655 +#: screens/Template/shared/JobTemplateForm.jsx:658 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:253 msgid "Webhook details" msgstr "Webhook の詳細" @@ -9970,8 +9975,8 @@ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableTo msgstr "{pluralizedItemName} を削除するパーミッションがありません: {itemsUnableToDelete}" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:147 -msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." -msgstr "{pluralizedItemName} を削除するパーミッションがありません: {itemsUnableToDelete}" +#~ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." +#~ msgstr "{pluralizedItemName} を削除するパーミッションがありません: {itemsUnableToDelete}" #: components/DisassociateButton/DisassociateButton.jsx:50 msgid "You do not have permission to disassociate the following: {itemsUnableToDisassociate}" @@ -10007,12 +10012,12 @@ msgstr "ズームイン" msgid "Zoom Out" msgstr "ズームアウト" -#: screens/Template/shared/JobTemplateForm.jsx:753 +#: screens/Template/shared/JobTemplateForm.jsx:756 #: screens/Template/shared/WebhookSubForm.jsx:152 msgid "a new webhook key will be generated on save." msgstr "新規 Webhook キーは保存時に生成されます。" -#: screens/Template/shared/JobTemplateForm.jsx:750 +#: screens/Template/shared/JobTemplateForm.jsx:753 #: screens/Template/shared/WebhookSubForm.jsx:142 msgid "a new webhook url will be generated on save." msgstr "新規 Webhook URL は保存時に生成されます。" @@ -10255,7 +10260,7 @@ msgstr "冗長性の選択" msgid "social login" msgstr "ソーシャルログイン" -#: screens/Template/shared/JobTemplateForm.jsx:344 +#: screens/Template/shared/JobTemplateForm.jsx:347 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:189 msgid "source control branch" msgstr "" @@ -10300,6 +10305,10 @@ msgstr "" msgid "{0, plural, one {Delete Group?} other {Delete Groups?}}" msgstr "" +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:179 +msgid "{0, plural, one {The following Instance Group cannot be deleted} other {The following Instance Groups cannot be deleted}}" +msgstr "" + #: screens/Inventory/InventoryList/InventoryList.jsx:225 msgid "{0, plural, one {The inventory will be in a pending status until the final delete is processed.} other {The inventories will be in a pending status until the final delete is processed.}}" msgstr "" @@ -10328,7 +10337,7 @@ msgstr "" msgid "{0, plural, one {This execution environment is currently being used by other resources. Are you sure you want to delete it?} other {These execution environments could be in use by other resources that rely on them. Are you sure you want to delete them anyway?}}" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:228 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:257 msgid "{0, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}" msgstr "" diff --git a/awx/ui_next/src/locales/nl/messages.po b/awx/ui_next/src/locales/nl/messages.po index c5b4953b7d..fd42dc5922 100644 --- a/awx/ui_next/src/locales/nl/messages.po +++ b/awx/ui_next/src/locales/nl/messages.po @@ -46,7 +46,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:46 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:75 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:106 -#: screens/Template/shared/JobTemplateForm.jsx:211 +#: screens/Template/shared/JobTemplateForm.jsx:214 msgid "0 (Normal)" msgstr "" @@ -67,7 +67,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:47 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:76 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:107 -#: screens/Template/shared/JobTemplateForm.jsx:212 +#: screens/Template/shared/JobTemplateForm.jsx:215 msgid "1 (Verbose)" msgstr "" @@ -83,7 +83,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:48 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:77 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:108 -#: screens/Template/shared/JobTemplateForm.jsx:213 +#: screens/Template/shared/JobTemplateForm.jsx:216 msgid "2 (More Verbose)" msgstr "" @@ -94,7 +94,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:49 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:78 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:109 -#: screens/Template/shared/JobTemplateForm.jsx:214 +#: screens/Template/shared/JobTemplateForm.jsx:217 msgid "3 (Debug)" msgstr "" @@ -105,7 +105,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:50 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:79 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:215 +#: screens/Template/shared/JobTemplateForm.jsx:218 msgid "4 (Connection Debug)" msgstr "" @@ -162,7 +162,7 @@ msgstr "" #: screens/Project/Projects.jsx:29 #: screens/Team/Team.jsx:56 #: screens/Team/Teams.jsx:30 -#: screens/Template/Template.jsx:145 +#: screens/Template/Template.jsx:136 #: screens/Template/Templates.jsx:44 #: screens/Template/WorkflowJobTemplate.jsx:122 msgid "Access" @@ -205,7 +205,7 @@ msgstr "" #: screens/Host/HostGroups/HostGroupsList.jsx:182 #: screens/Host/HostList/HostList.jsx:168 #: screens/Host/HostList/HostListItem.jsx:42 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:246 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:275 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:77 #: screens/InstanceGroup/Instances/InstanceList.jsx:217 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:153 @@ -311,7 +311,7 @@ msgstr "" msgid "Add a new node between these two nodes" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:159 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:187 msgid "Add container group" msgstr "" @@ -323,7 +323,7 @@ msgstr "" msgid "Add existing host" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:160 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:188 msgid "Add instance group" msgstr "" @@ -690,9 +690,9 @@ msgstr "" msgid "Azure AD settings" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:125 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:148 #: components/AddRole/AddResourceRole.jsx:286 -#: components/LaunchPrompt/LaunchPrompt.jsx:134 +#: components/LaunchPrompt/LaunchPrompt.jsx:128 #: components/Schedule/shared/SchedulePromptableFields.jsx:136 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:90 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:70 @@ -769,7 +769,7 @@ msgstr "" msgid "Back to Teams" msgstr "" -#: screens/Template/Template.jsx:138 +#: screens/Template/Template.jsx:129 #: screens/Template/WorkflowJobTemplate.jsx:115 msgid "Back to Templates" msgstr "" @@ -798,8 +798,8 @@ msgstr "" msgid "Back to execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:56 -#: screens/InstanceGroup/InstanceGroup.jsx:57 +#: screens/InstanceGroup/ContainerGroup.jsx:68 +#: screens/InstanceGroup/InstanceGroup.jsx:69 msgid "Back to instance groups" msgstr "" @@ -870,7 +870,7 @@ msgstr "" msgid "Cache timeout (seconds)" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:126 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:149 #: components/AddRole/AddResourceRole.jsx:287 #: components/AssociateModal/AssociateModal.jsx:116 #: components/AssociateModal/AssociateModal.jsx:121 @@ -880,7 +880,7 @@ msgstr "" #: components/DisassociateButton/DisassociateButton.jsx:125 #: components/FormActionGroup/FormActionGroup.jsx:24 #: components/FormActionGroup/FormActionGroup.jsx:29 -#: components/LaunchPrompt/LaunchPrompt.jsx:135 +#: components/LaunchPrompt/LaunchPrompt.jsx:129 #: components/Lookup/HostFilterLookup.jsx:350 #: components/Lookup/Lookup.jsx:186 #: components/PaginatedTable/ToolbarDeleteButton.jsx:281 @@ -1009,7 +1009,7 @@ msgstr "" #~ msgid "Cannot enable log aggregator without providing logging aggregator host and logging aggregator type." #~ msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:245 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:274 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:76 msgid "Capacity" msgstr "" @@ -1063,7 +1063,7 @@ msgid "Channel" msgstr "" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:102 -#: screens/Template/shared/JobTemplateForm.jsx:206 +#: screens/Template/shared/JobTemplateForm.jsx:209 msgid "Check" msgstr "" @@ -1096,7 +1096,7 @@ msgid "Choose a Webhook Service" msgstr "" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:95 -#: screens/Template/shared/JobTemplateForm.jsx:199 +#: screens/Template/shared/JobTemplateForm.jsx:202 msgid "Choose a job type" msgstr "" @@ -1226,6 +1226,7 @@ msgstr "" msgid "Collapse" msgstr "" +#: components/AdHocCommands/AdHocPreviewStep.jsx:8 #: components/JobList/JobList.jsx:186 #: components/JobList/JobListItem.jsx:37 #: screens/Job/JobDetail/JobDetail.jsx:81 @@ -1257,7 +1258,7 @@ msgstr "" #: components/PromptDetail/PromptWFJobTemplateDetail.jsx:36 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:138 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:61 -#: screens/Template/shared/JobTemplateForm.jsx:602 +#: screens/Template/shared/JobTemplateForm.jsx:605 msgid "Concurrent Jobs" msgstr "" @@ -1325,11 +1326,11 @@ msgstr "" msgid "Container group" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:81 +#: screens/InstanceGroup/ContainerGroup.jsx:93 msgid "Container group not found." msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:129 +#: components/LaunchPrompt/LaunchPrompt.jsx:123 #: components/Schedule/shared/SchedulePromptableFields.jsx:131 msgid "Content Loading" msgstr "" @@ -1354,7 +1355,7 @@ msgid "" "will produce as the playbook executes." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:465 +#: screens/Template/shared/JobTemplateForm.jsx:468 msgid "" "Control the level of output ansible will\n" "produce as the playbook executes." @@ -1424,7 +1425,7 @@ msgstr "" #~ msgid "Copyright 2019 Red Hat, Inc." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:406 +#: screens/Template/shared/JobTemplateForm.jsx:409 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:209 msgid "Create" msgstr "" @@ -1637,7 +1638,7 @@ msgstr "" #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:40 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:94 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:56 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:51 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:54 #: screens/Inventory/InventorySourceDetail/InventorySourceDetail.jsx:198 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:42 #: screens/Inventory/shared/InventorySourceSubForms/EC2SubForm.jsx:41 @@ -1688,11 +1689,11 @@ msgstr "" #~ msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token”." #~ msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:58 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:61 msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\". If left blank, the underlying Pod's service account will be used." msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:164 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:170 msgid "Credential to authenticate with a protected container registry." msgstr "" @@ -1702,7 +1703,7 @@ msgstr "" #: components/JobList/JobListItem.jsx:215 #: components/LaunchPrompt/steps/CredentialsStep.jsx:193 -#: components/LaunchPrompt/steps/useCredentialsStep.jsx:64 +#: components/LaunchPrompt/steps/useCredentialsStep.jsx:62 #: components/Lookup/MultiCredentialsLookup.jsx:139 #: components/Lookup/MultiCredentialsLookup.jsx:211 #: components/PromptDetail/PromptDetail.jsx:158 @@ -1717,12 +1718,12 @@ msgstr "" #: screens/Credential/Credentials.jsx:23 #: screens/Job/JobDetail/JobDetail.jsx:266 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:286 -#: screens/Template/shared/JobTemplateForm.jsx:374 +#: screens/Template/shared/JobTemplateForm.jsx:377 #: util/getRelatedResourceDeleteDetails.js:90 msgid "Credentials" msgstr "" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:54 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:53 msgid "Credentials that require passwords on launch are not permitted. Please remove or replace the following credentials with a credential of the same type in order to proceed: {0}" msgstr "" @@ -1730,7 +1731,7 @@ msgstr "" msgid "Current page" msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:83 msgid "Custom pod spec" msgstr "" @@ -1757,8 +1758,8 @@ msgstr "" msgid "Customize messages…" msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:66 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:67 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:69 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:70 msgid "Customize pod specification" msgstr "" @@ -1809,7 +1810,7 @@ msgid "Default" msgstr "" #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:39 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:195 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:209 msgid "Default Execution Environment" msgstr "" @@ -1843,7 +1844,7 @@ msgstr "" #: screens/Credential/CredentialDetail/CredentialDetail.jsx:299 #: screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx:126 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:137 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:116 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:117 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:125 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:138 #: screens/Inventory/InventoryGroups/InventoryGroupsList.jsx:100 @@ -1970,7 +1971,7 @@ msgstr "" msgid "Delete error" msgstr "" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:110 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:111 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:119 msgid "Delete instance group" msgstr "" @@ -2032,7 +2033,7 @@ msgstr "" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:207 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:220 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:265 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:294 msgid "Deletion error" msgstr "" @@ -2082,7 +2083,7 @@ msgstr "" #: screens/CredentialType/shared/CredentialTypeForm.jsx:32 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:62 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:152 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:142 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:147 #: screens/Host/HostDetail/HostDetail.jsx:81 #: screens/Host/HostList/HostList.jsx:150 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:78 @@ -2116,7 +2117,7 @@ msgstr "" #: screens/Template/Survey/SurveyQuestionForm.jsx:166 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:116 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:166 -#: screens/Template/shared/JobTemplateForm.jsx:246 +#: screens/Template/shared/JobTemplateForm.jsx:249 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:115 #: screens/User/UserOrganizations/UserOrganizationList.jsx:65 #: screens/User/UserOrganizations/UserOrganizationListItem.jsx:15 @@ -2158,8 +2159,8 @@ msgstr "" #~ msgid "Detail coming soon :)" #~ msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:61 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:71 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:62 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:72 #: components/ErrorDetail/ErrorDetail.jsx:73 #: components/Schedule/Schedule.jsx:66 #: screens/Application/Application/Application.jsx:77 @@ -2172,8 +2173,8 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironments.jsx:26 #: screens/Host/Host.jsx:52 #: screens/Host/Hosts.jsx:28 -#: screens/InstanceGroup/ContainerGroup.jsx:63 -#: screens/InstanceGroup/InstanceGroup.jsx:64 +#: screens/InstanceGroup/ContainerGroup.jsx:75 +#: screens/InstanceGroup/InstanceGroup.jsx:76 #: screens/InstanceGroup/InstanceGroups.jsx:30 #: screens/InstanceGroup/InstanceGroups.jsx:36 #: screens/Inventory/Inventories.jsx:60 @@ -2230,7 +2231,7 @@ msgstr "" #: screens/Setting/UI/UIDetail/UIDetail.jsx:61 #: screens/Team/Team.jsx:55 #: screens/Team/Teams.jsx:28 -#: screens/Template/Template.jsx:144 +#: screens/Template/Template.jsx:135 #: screens/Template/Templates.jsx:42 #: screens/Template/WorkflowJobTemplate.jsx:121 #: screens/User/User.jsx:63 @@ -2311,7 +2312,7 @@ msgstr "" msgid "Discard local changes before syncing" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:480 +#: screens/Template/shared/JobTemplateForm.jsx:483 msgid "" "Divide the work done by this job template\n" "into the specified number of job slices, each running the\n" @@ -2639,7 +2640,7 @@ msgstr "" msgid "Enable Concurrent Jobs" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:609 +#: screens/Template/shared/JobTemplateForm.jsx:612 msgid "Enable Fact Storage" msgstr "" @@ -2652,8 +2653,8 @@ msgstr "" #~ msgid "Enable Privilege Escalation" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:583 #: screens/Template/shared/JobTemplateForm.jsx:586 +#: screens/Template/shared/JobTemplateForm.jsx:589 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:225 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:228 msgid "Enable Webhook" @@ -2688,7 +2689,7 @@ msgstr "" #~ msgid "Enable simplified login for your {brandName} applications" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:589 +#: screens/Template/shared/JobTemplateForm.jsx:592 msgid "Enable webhook for this template." msgstr "" @@ -2727,7 +2728,7 @@ msgstr "" #~ "template." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:569 +#: screens/Template/shared/JobTemplateForm.jsx:572 msgid "" "Enables creation of a provisioning\n" "callback URL. Using the URL a host can contact {0}\n" @@ -2936,9 +2937,9 @@ msgstr "" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:210 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:146 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:223 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:124 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:125 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:133 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:268 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:297 #: screens/Job/JobOutput/JobOutput.jsx:761 msgid "Error" msgstr "" @@ -2969,8 +2970,8 @@ msgstr "" #: components/InstanceToggle/InstanceToggle.jsx:61 #: components/JobList/JobList.jsx:280 #: components/JobList/JobList.jsx:291 -#: components/LaunchButton/LaunchButton.jsx:173 -#: components/LaunchPrompt/LaunchPrompt.jsx:72 +#: components/LaunchButton/LaunchButton.jsx:161 +#: components/LaunchPrompt/LaunchPrompt.jsx:66 #: components/NotificationList/NotificationList.jsx:246 #: components/PaginatedTable/ToolbarDeleteButton.jsx:205 #: components/ResourceAccessList/ResourceAccessList.jsx:234 @@ -3097,7 +3098,7 @@ msgstr "" msgid "Examples include:" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:109 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:114 msgid "Examples:" msgstr "" @@ -3113,11 +3114,11 @@ msgstr "" msgid "Execute when the parent node results in a successful state." msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:85 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:86 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:40 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:103 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:197 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:189 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:211 msgid "Execution Environment" msgstr "" @@ -3129,7 +3130,7 @@ msgstr "" #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:91 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:92 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:104 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:144 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:158 #: routeConfig.jsx:140 #: screens/ActivityStream/ActivityStream.jsx:208 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:122 @@ -3407,7 +3408,7 @@ msgstr "" msgid "Failed to delete one or more hosts." msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:300 msgid "Failed to delete one or more instance groups." msgstr "" @@ -3548,7 +3549,7 @@ msgid "Failed to fetch the updated project data." msgstr "" #: components/AdHocCommands/AdHocCommands.jsx:113 -#: components/LaunchButton/LaunchButton.jsx:176 +#: components/LaunchButton/LaunchButton.jsx:164 #: screens/ManagementJob/ManagementJobList/ManagementJobList.jsx:130 msgid "Failed to launch job." msgstr "" @@ -3636,7 +3637,7 @@ msgstr "" msgid "Field ends with value." msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:77 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 msgid "Field for passing a custom Kubernetes or OpenShift Pod specification." msgstr "" @@ -3715,7 +3716,7 @@ msgstr "" msgid "Follow" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:254 +#: screens/Template/shared/JobTemplateForm.jsx:257 msgid "" "For job templates, select run to execute\n" "the playbook. Select check to only check playbook syntax,\n" @@ -3743,7 +3744,7 @@ msgstr "" #: components/AdHocCommands/AdHocDetailsStep.jsx:180 #: components/PromptDetail/PromptJobTemplateDetail.jsx:154 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:230 -#: screens/Template/shared/JobTemplateForm.jsx:425 +#: screens/Template/shared/JobTemplateForm.jsx:428 msgid "Forks" msgstr "" @@ -3850,7 +3851,7 @@ msgstr "" msgid "GitLab" msgstr "" -#: components/Lookup/ExecutionEnvironmentLookup.jsx:192 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:206 msgid "Global Default Execution Environment" msgstr "" @@ -3859,7 +3860,7 @@ msgstr "" msgid "Globally Available" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:148 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:154 msgid "Globally available execution environment can not be reassigned to a specific Organization" msgstr "" @@ -3957,7 +3958,7 @@ msgstr "" msgid "Hide" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Hide description" msgstr "" @@ -3982,7 +3983,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:161 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:238 -#: screens/Template/shared/JobTemplateForm.jsx:642 +#: screens/Template/shared/JobTemplateForm.jsx:645 msgid "Host Config Key" msgstr "" @@ -4205,7 +4206,7 @@ msgstr "" #~ msgid "If checked, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the \"all\" default group for the inventory." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:559 +#: screens/Template/shared/JobTemplateForm.jsx:562 msgid "" "If enabled, run this playbook as an\n" "administrator." @@ -4222,7 +4223,7 @@ msgid "" "--diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:499 +#: screens/Template/shared/JobTemplateForm.jsx:502 msgid "" "If enabled, show the changes made by\n" "Ansible tasks, where supported. This is equivalent\n" @@ -4237,7 +4238,7 @@ msgstr "" msgid "If enabled, show the changes made by Ansible tasks, where supported. This is equivalent to Ansible’s --diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:603 +#: screens/Template/shared/JobTemplateForm.jsx:606 msgid "" "If enabled, simultaneous runs of this job\n" "template will be allowed." @@ -4251,7 +4252,7 @@ msgstr "" msgid "If enabled, simultaneous runs of this workflow job template will be allowed." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:610 +#: screens/Template/shared/JobTemplateForm.jsx:613 msgid "" "If enabled, this will store gathered facts so they can\n" "be viewed at the host level. Facts are persisted and\n" @@ -4288,7 +4289,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:140 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:159 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.jsx:62 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:99 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:103 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:91 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:110 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.jsx:16 @@ -4398,8 +4399,8 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:227 #: routeConfig.jsx:130 #: screens/ActivityStream/ActivityStream.jsx:196 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:134 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:224 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:170 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:253 #: screens/InstanceGroup/InstanceGroups.jsx:16 #: screens/InstanceGroup/InstanceGroups.jsx:26 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:91 @@ -4417,7 +4418,7 @@ msgstr "" msgid "Instance group" msgstr "" -#: screens/InstanceGroup/InstanceGroup.jsx:87 +#: screens/InstanceGroup/InstanceGroup.jsx:99 msgid "Instance group not found." msgstr "" @@ -4429,8 +4430,8 @@ msgstr "" msgid "Instance groups" msgstr "" -#: screens/InstanceGroup/InstanceGroup.jsx:69 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:244 +#: screens/InstanceGroup/InstanceGroup.jsx:81 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:273 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:75 #: screens/InstanceGroup/InstanceGroups.jsx:31 #: screens/InstanceGroup/Instances/InstanceList.jsx:156 @@ -4646,7 +4647,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:160 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:235 -#: screens/Template/shared/JobTemplateForm.jsx:479 +#: screens/Template/shared/JobTemplateForm.jsx:482 msgid "Job Slicing" msgstr "" @@ -4661,7 +4662,7 @@ msgstr "" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:334 #: screens/Job/JobDetail/JobDetail.jsx:294 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:337 -#: screens/Template/shared/JobTemplateForm.jsx:520 +#: screens/Template/shared/JobTemplateForm.jsx:523 msgid "Job Tags" msgstr "" @@ -4676,7 +4677,7 @@ msgstr "" msgid "Job Template" msgstr "" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:40 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:39 msgid "Job Template default credentials must be replaced with one of the same type. Please select a credential for the following types in order to proceed: {0}" msgstr "" @@ -4704,7 +4705,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:156 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:183 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:142 -#: screens/Template/shared/JobTemplateForm.jsx:251 +#: screens/Template/shared/JobTemplateForm.jsx:254 msgid "Job Type" msgstr "" @@ -4729,8 +4730,8 @@ msgstr "" #: screens/Dashboard/shared/LineChart.jsx:69 #: screens/Host/Host.jsx:67 #: screens/Host/Hosts.jsx:31 -#: screens/InstanceGroup/ContainerGroup.jsx:68 -#: screens/InstanceGroup/InstanceGroup.jsx:74 +#: screens/InstanceGroup/ContainerGroup.jsx:80 +#: screens/InstanceGroup/InstanceGroup.jsx:86 #: screens/InstanceGroup/InstanceGroups.jsx:32 #: screens/InstanceGroup/InstanceGroups.jsx:37 #: screens/Inventory/Inventories.jsx:59 @@ -4742,7 +4743,7 @@ msgstr "" #: screens/Job/Jobs.jsx:25 #: screens/Setting/SettingList.jsx:85 #: screens/Setting/Settings.jsx:71 -#: screens/Template/Template.jsx:164 +#: screens/Template/Template.jsx:155 #: screens/Template/Templates.jsx:46 #: screens/Template/WorkflowJobTemplate.jsx:145 msgid "Jobs" @@ -4840,7 +4841,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:279 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:304 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:193 -#: screens/Template/shared/JobTemplateForm.jsx:392 +#: screens/Template/shared/JobTemplateForm.jsx:395 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:195 msgid "Labels" msgstr "" @@ -4928,7 +4929,7 @@ msgstr "" msgid "Last used" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:106 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:130 #: components/LaunchPrompt/steps/usePreviewStep.jsx:35 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:54 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:57 @@ -4966,7 +4967,7 @@ msgstr "" msgid "Launch workflow" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:106 +#: components/LaunchPrompt/LaunchPrompt.jsx:100 msgid "Launch | {0}" msgstr "" @@ -5027,7 +5028,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:221 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:231 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:152 -#: screens/Template/shared/JobTemplateForm.jsx:441 +#: screens/Template/shared/JobTemplateForm.jsx:444 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:156 msgid "Limit" msgstr "" @@ -5100,7 +5101,8 @@ msgstr "" msgid "Machine Credential" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:98 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:102 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:112 msgid "Machine credential" msgstr "" @@ -5213,7 +5215,7 @@ msgstr "" msgid "Minimum length" msgstr "" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:33 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:34 msgid "" "Minimum number of instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5223,7 +5225,7 @@ msgstr "" #~ msgid "Minimum number of instances that will be automatically assigned to this group when new instances come online." #~ msgstr "" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:43 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:44 msgid "" "Minimum percentage of all instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5386,8 +5388,8 @@ msgstr "" #: components/Lookup/ApplicationLookup.jsx:111 #: components/Lookup/CredentialLookup.jsx:186 #: components/Lookup/CredentialLookup.jsx:201 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:161 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:168 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:182 #: components/Lookup/HostFilterLookup.jsx:79 #: components/Lookup/HostFilterLookup.jsx:364 #: components/Lookup/HostListItem.jsx:8 @@ -5460,7 +5462,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:91 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:117 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:9 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:91 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:94 #: screens/Host/HostDetail/HostDetail.jsx:74 #: screens/Host/HostGroups/HostGroupItem.jsx:28 #: screens/Host/HostGroups/HostGroupsList.jsx:164 @@ -5470,14 +5472,14 @@ msgstr "" #: screens/Host/HostList/HostListItem.jsx:28 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:45 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:50 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:240 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:269 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:63 #: screens/InstanceGroup/Instances/InstanceList.jsx:163 #: screens/InstanceGroup/Instances/InstanceList.jsx:170 #: screens/InstanceGroup/Instances/InstanceList.jsx:211 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:117 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:45 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:20 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:47 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:21 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:74 #: screens/Inventory/InventoryGroupDetail/InventoryGroupDetail.jsx:35 #: screens/Inventory/InventoryGroupHosts/InventoryGroupHostList.jsx:190 @@ -5556,7 +5558,7 @@ msgstr "" #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:76 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:96 -#: screens/Template/shared/JobTemplateForm.jsx:238 +#: screens/Template/shared/JobTemplateForm.jsx:241 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:107 #: screens/User/UserOrganizations/UserOrganizationList.jsx:60 #: screens/User/UserOrganizations/UserOrganizationList.jsx:64 @@ -5599,11 +5601,12 @@ msgstr "" msgid "New" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:80 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:92 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:81 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:93 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:116 #: components/AddRole/AddResourceRole.jsx:215 #: components/AddRole/AddResourceRole.jsx:250 -#: components/LaunchPrompt/LaunchPrompt.jsx:136 +#: components/LaunchPrompt/LaunchPrompt.jsx:130 #: components/Schedule/shared/SchedulePromptableFields.jsx:138 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:66 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:59 @@ -5825,7 +5828,7 @@ msgstr "" #: screens/Organization/Organizations.jsx:33 #: screens/Project/Project.jsx:111 #: screens/Project/Projects.jsx:30 -#: screens/Template/Template.jsx:150 +#: screens/Template/Template.jsx:141 #: screens/Template/Templates.jsx:45 #: screens/Template/WorkflowJobTemplate.jsx:127 msgid "Notifications" @@ -5864,7 +5867,7 @@ msgstr "" #: screens/Setting/shared/SharedFields.jsx:144 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:53 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "Off" msgstr "" @@ -5882,7 +5885,7 @@ msgstr "" #: screens/Setting/shared/SharedFields.jsx:143 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:52 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "On" msgstr "" @@ -5920,7 +5923,7 @@ msgstr "" msgid "Option Details" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:395 +#: screens/Template/shared/JobTemplateForm.jsx:398 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:198 msgid "" "Optional labels that describe this job template,\n" @@ -5940,9 +5943,9 @@ msgstr "" #: components/NotificationList/NotificationList.jsx:220 #: components/NotificationList/NotificationListItem.jsx:31 #: screens/Credential/shared/TypeInputsSubForm.jsx:47 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:62 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:65 #: screens/Project/shared/ProjectSubForms/SharedFields.jsx:67 -#: screens/Template/shared/JobTemplateForm.jsx:552 +#: screens/Template/shared/JobTemplateForm.jsx:555 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:222 msgid "Options" msgstr "" @@ -6104,7 +6107,7 @@ msgstr "" #~ "Ansible Tower documentation for example syntax." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:414 +#: screens/Template/shared/JobTemplateForm.jsx:417 msgid "" "Pass extra command line variables to the playbook. This is the\n" "-e or --extra-vars command line parameter for ansible-playbook.\n" @@ -6181,7 +6184,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:153 #: screens/Job/JobDetail/JobDetail.jsx:220 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:229 -#: screens/Template/shared/JobTemplateForm.jsx:355 +#: screens/Template/shared/JobTemplateForm.jsx:358 msgid "Playbook" msgstr "" @@ -6258,7 +6261,7 @@ msgstr "" msgid "Please select a day number between 1 and 31." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:170 +#: screens/Template/shared/JobTemplateForm.jsx:173 msgid "Please select an Inventory or check the Prompt on Launch option" msgstr "" @@ -6279,17 +6282,17 @@ msgid "Pod spec override" msgstr "" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:64 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:28 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:29 msgid "Policy instance minimum" msgstr "" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:69 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:38 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:39 msgid "Policy instance percentage" msgstr "" -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:56 -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:62 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:63 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:69 msgid "Populate field from an external secret management system" msgstr "" @@ -6345,6 +6348,7 @@ msgstr "" msgid "Press Enter to edit. Press ESC to stop editing." msgstr "" +#: components/AdHocCommands/AdHocCommandsWizard.jsx:121 #: components/LaunchPrompt/steps/usePreviewStep.jsx:23 #: screens/Template/Survey/SurveyList.jsx:162 #: screens/Template/Survey/SurveyList.jsx:164 @@ -6357,7 +6361,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:65 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:128 -#: screens/Template/shared/JobTemplateForm.jsx:558 +#: screens/Template/shared/JobTemplateForm.jsx:561 msgid "Privilege Escalation" msgstr "" @@ -6456,7 +6460,7 @@ msgstr "" #~ msgid "Prompts" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:444 +#: screens/Template/shared/JobTemplateForm.jsx:447 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:159 msgid "" "Provide a host pattern to further constrain\n" @@ -6515,23 +6519,23 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:164 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:240 -#: screens/Template/shared/JobTemplateForm.jsx:629 +#: screens/Template/shared/JobTemplateForm.jsx:632 msgid "Provisioning Callback URL" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:624 +#: screens/Template/shared/JobTemplateForm.jsx:627 msgid "Provisioning Callback details" msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:70 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:133 -#: screens/Template/shared/JobTemplateForm.jsx:563 #: screens/Template/shared/JobTemplateForm.jsx:566 +#: screens/Template/shared/JobTemplateForm.jsx:569 msgid "Provisioning Callbacks" msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:88 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:129 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:134 msgid "Pull" msgstr "" @@ -6630,7 +6634,7 @@ msgstr "" msgid "Refer to the" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:434 +#: screens/Template/shared/JobTemplateForm.jsx:437 msgid "" "Refer to the Ansible documentation for details\n" "about the configuration file." @@ -6660,7 +6664,7 @@ msgstr "" msgid "Regions" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:157 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:163 msgid "Registry credential" msgstr "" @@ -6917,7 +6921,7 @@ msgstr "" #: screens/Credential/shared/ExternalTestModal.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.jsx:49 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/RunStep.jsx:24 -#: screens/Template/shared/JobTemplateForm.jsx:202 +#: screens/Template/shared/JobTemplateForm.jsx:205 msgid "Run" msgstr "" @@ -6928,7 +6932,7 @@ msgstr "" msgid "Run Command" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:123 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:146 msgid "Run command" msgstr "" @@ -6958,7 +6962,7 @@ msgstr "" msgid "Running Handlers" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:242 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 #: screens/InstanceGroup/Instances/InstanceList.jsx:213 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:123 msgid "Running Jobs" @@ -7082,7 +7086,7 @@ msgstr "" #: screens/Project/Project.jsx:123 #: screens/Project/Projects.jsx:33 #: screens/Schedule/AllSchedules.jsx:25 -#: screens/Template/Template.jsx:157 +#: screens/Template/Template.jsx:148 #: screens/Template/Templates.jsx:50 #: screens/Template/WorkflowJobTemplate.jsx:134 msgid "Schedules" @@ -7208,7 +7212,7 @@ msgstr "" msgid "Select a Resource Type" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:335 +#: screens/Template/shared/JobTemplateForm.jsx:338 msgid "" "Select a branch for the job template. This branch is applied to\n" "all job template nodes that prompt for a branch." @@ -7251,7 +7255,7 @@ msgstr "" msgid "Select a playbook" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:323 +#: screens/Template/shared/JobTemplateForm.jsx:326 msgid "Select a project before editing the execution environment." msgstr "" @@ -7288,7 +7292,7 @@ msgstr "" #: components/Schedule/shared/ScheduleForm.jsx:85 #: components/Schedule/shared/ScheduleForm.jsx:89 #: screens/Credential/shared/CredentialForm.jsx:47 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:80 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:83 #: screens/Inventory/shared/InventoryForm.jsx:59 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:50 #: screens/Inventory/shared/InventorySourceSubForms/GCESubForm.jsx:50 @@ -7343,7 +7347,7 @@ msgstr "" msgid "Select an organization before editing the default execution environment." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:377 +#: screens/Template/shared/JobTemplateForm.jsx:380 msgid "" "Select credentials for accessing the nodes this job will be ran\n" "against. You can only select one credential of each type. For machine credentials (SSH),\n" @@ -7422,7 +7426,7 @@ msgstr "" msgid "Select the Instance Groups for this Inventory to run on." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:514 +#: screens/Template/shared/JobTemplateForm.jsx:517 msgid "" "Select the Instance Groups for this Organization\n" "to run on." @@ -7456,12 +7460,12 @@ msgstr "" #~ msgid "Select the default execution environment for this project." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:322 +#: screens/Template/shared/JobTemplateForm.jsx:325 msgid "Select the execution environment for this job template." msgstr "" #: components/Lookup/InventoryLookup.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:286 +#: screens/Template/shared/JobTemplateForm.jsx:289 msgid "" "Select the inventory containing the hosts\n" "you want this job to manage." @@ -7488,11 +7492,11 @@ msgstr "" msgid "Select the inventory that this host will belong to." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:358 +#: screens/Template/shared/JobTemplateForm.jsx:361 msgid "Select the playbook to be executed by this job." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:301 +#: screens/Template/shared/JobTemplateForm.jsx:304 msgid "" "Select the project containing the playbook\n" "you want this job to execute." @@ -7642,7 +7646,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:158 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:314 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 -#: screens/Template/shared/JobTemplateForm.jsx:496 +#: screens/Template/shared/JobTemplateForm.jsx:499 msgid "Show Changes" msgstr "" @@ -7655,7 +7659,7 @@ msgstr "" msgid "Show changes" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Show description" msgstr "" @@ -7720,7 +7724,7 @@ msgstr "" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:352 #: screens/Job/JobDetail/JobDetail.jsx:312 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:352 -#: screens/Template/shared/JobTemplateForm.jsx:536 +#: screens/Template/shared/JobTemplateForm.jsx:539 msgid "Skip Tags" msgstr "" @@ -7733,7 +7737,7 @@ msgstr "" #~ "of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:539 +#: screens/Template/shared/JobTemplateForm.jsx:542 msgid "" "Skip tags are useful when you have a\n" "large playbook, and you want to skip specific parts of a\n" @@ -7826,7 +7830,7 @@ msgstr "" #: screens/Project/ProjectDetail/ProjectDetail.jsx:203 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:228 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:138 -#: screens/Template/shared/JobTemplateForm.jsx:332 +#: screens/Template/shared/JobTemplateForm.jsx:335 msgid "Source Control Branch" msgstr "" @@ -8129,7 +8133,7 @@ msgid "Sunday" msgstr "" #: components/LaunchPrompt/steps/useSurveyStep.jsx:26 -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/Templates.jsx:47 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "Survey" @@ -8240,7 +8244,7 @@ msgstr "" #~ "the usage of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:523 +#: screens/Template/shared/JobTemplateForm.jsx:526 msgid "" "Tags are useful when you have a large\n" "playbook, and you want to run a specific part of a\n" @@ -8329,7 +8333,7 @@ msgstr "" msgid "Teams" msgstr "" -#: screens/Template/Template.jsx:184 +#: screens/Template/Template.jsx:175 #: screens/Template/WorkflowJobTemplate.jsx:179 msgid "Template not found." msgstr "" @@ -8416,7 +8420,7 @@ msgstr "" #~ msgid "The amount of time (in seconds) before the email notification stops trying to reach the host and times out. Ranges from 1 to 120 seconds." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:490 +#: screens/Template/shared/JobTemplateForm.jsx:493 msgid "" "The amount of time (in seconds) to run\n" "before the job is canceled. Defaults to 0 for no job\n" @@ -8464,7 +8468,7 @@ msgstr "" #~ msgid "The first fetches all references. The second fetches the Github pull request number 62, in this example the branch needs to be \"pull/62/head\"." #~ msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:106 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:111 msgid "The full image location, including the container registry, image name, and version tag." msgstr "" @@ -8479,7 +8483,7 @@ msgstr "" #~ msgid "The maximum number of hosts allowed to be managed by this organization. Value defaults to 0 which means no limit. Refer to the Ansible documentation for more details." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:428 +#: screens/Template/shared/JobTemplateForm.jsx:431 msgid "" "The number of parallel or simultaneous\n" "processes to use while executing the playbook. An empty value,\n" @@ -8539,8 +8543,8 @@ msgstr "" #~ msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:155 -msgid "The tower instance group cannot be deleted." -msgstr "" +#~ msgid "The tower instance group cannot be deleted." +#~ msgstr "" #: screens/Project/shared/ProjectSubForms/ManualSubForm.jsx:47 msgid "" @@ -8622,7 +8626,7 @@ msgstr "" msgid "Third" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:153 +#: screens/Template/shared/JobTemplateForm.jsx:156 msgid "This Project needs to be updated" msgstr "" @@ -8644,7 +8648,7 @@ msgstr "" msgid "This action will disassociate the following:" msgstr "" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:114 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:115 msgid "This container group is currently being by other resources. Are you sure you want to delete it?" msgstr "" @@ -8744,7 +8748,7 @@ msgid "This field must be greater than 0" msgstr "" #: components/LaunchPrompt/steps/useSurveyStep.jsx:111 -#: screens/Template/shared/JobTemplateForm.jsx:150 +#: screens/Template/shared/JobTemplateForm.jsx:153 #: screens/User/shared/UserForm.jsx:81 #: screens/User/shared/UserForm.jsx:92 #: util/validators.jsx:5 @@ -8820,7 +8824,8 @@ msgstr "" msgid "This schedule is missing required survey values" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:64 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:65 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:105 #: components/LaunchPrompt/steps/StepName.jsx:27 msgid "This step contains errors" msgstr "" @@ -8899,7 +8904,7 @@ msgstr "" #: screens/NotificationTemplate/shared/TypeInputsSubForm.jsx:112 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:233 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:169 -#: screens/Template/shared/JobTemplateForm.jsx:489 +#: screens/Template/shared/JobTemplateForm.jsx:492 msgid "Timeout" msgstr "" @@ -9002,7 +9007,7 @@ msgstr "" msgid "Top Pagination" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:243 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:272 #: screens/InstanceGroup/Instances/InstanceList.jsx:214 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:124 msgid "Total Jobs" @@ -9077,7 +9082,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:12 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:50 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:55 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:241 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:270 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:68 #: screens/InstanceGroup/Instances/InstanceList.jsx:212 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:120 @@ -9375,7 +9380,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:341 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:367 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:209 -#: screens/Template/shared/JobTemplateForm.jsx:412 +#: screens/Template/shared/JobTemplateForm.jsx:415 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:217 msgid "Variables" msgstr "" @@ -9406,7 +9411,7 @@ msgstr "" #: screens/Inventory/shared/InventorySourceSubForms/SharedFields.jsx:90 #: screens/Job/JobDetail/JobDetail.jsx:222 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:232 -#: screens/Template/shared/JobTemplateForm.jsx:462 +#: screens/Template/shared/JobTemplateForm.jsx:465 msgid "Verbosity" msgstr "" @@ -9509,7 +9514,7 @@ msgstr "" msgid "View Settings" msgstr "" -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "View Survey" msgstr "" @@ -9522,7 +9527,7 @@ msgstr "" msgid "View Team Details" msgstr "" -#: screens/Template/Template.jsx:265 +#: screens/Template/Template.jsx:259 #: screens/Template/WorkflowJobTemplate.jsx:279 msgid "View Template Details" msgstr "" @@ -9594,7 +9599,7 @@ msgstr "" msgid "View all Teams." msgstr "" -#: screens/Template/Template.jsx:185 +#: screens/Template/Template.jsx:176 #: screens/Template/WorkflowJobTemplate.jsx:180 msgid "View all Templates." msgstr "" @@ -9619,8 +9624,8 @@ msgstr "" msgid "View all execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:83 -#: screens/InstanceGroup/InstanceGroup.jsx:89 +#: screens/InstanceGroup/ContainerGroup.jsx:95 +#: screens/InstanceGroup/InstanceGroup.jsx:101 msgid "View all instance groups" msgstr "" @@ -9744,7 +9749,7 @@ msgstr "" msgid "Webhook URL" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:655 +#: screens/Template/shared/JobTemplateForm.jsx:658 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:253 msgid "Webhook details" msgstr "" @@ -9979,8 +9984,8 @@ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableTo msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:147 -msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." -msgstr "" +#~ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." +#~ msgstr "" #: components/DisassociateButton/DisassociateButton.jsx:50 msgid "You do not have permission to disassociate the following: {itemsUnableToDisassociate}" @@ -10016,12 +10021,12 @@ msgstr "" msgid "Zoom Out" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:753 +#: screens/Template/shared/JobTemplateForm.jsx:756 #: screens/Template/shared/WebhookSubForm.jsx:152 msgid "a new webhook key will be generated on save." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:750 +#: screens/Template/shared/JobTemplateForm.jsx:753 #: screens/Template/shared/WebhookSubForm.jsx:142 msgid "a new webhook url will be generated on save." msgstr "" @@ -10272,7 +10277,7 @@ msgstr "" msgid "social login" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:344 +#: screens/Template/shared/JobTemplateForm.jsx:347 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:189 msgid "source control branch" msgstr "" @@ -10317,6 +10322,10 @@ msgstr "" msgid "{0, plural, one {Delete Group?} other {Delete Groups?}}" msgstr "" +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:179 +msgid "{0, plural, one {The following Instance Group cannot be deleted} other {The following Instance Groups cannot be deleted}}" +msgstr "" + #: screens/Inventory/InventoryList/InventoryList.jsx:225 msgid "{0, plural, one {The inventory will be in a pending status until the final delete is processed.} other {The inventories will be in a pending status until the final delete is processed.}}" msgstr "" @@ -10345,7 +10354,7 @@ msgstr "" msgid "{0, plural, one {This execution environment is currently being used by other resources. Are you sure you want to delete it?} other {These execution environments could be in use by other resources that rely on them. Are you sure you want to delete them anyway?}}" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:228 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:257 msgid "{0, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}" msgstr "" diff --git a/awx/ui_next/src/locales/zh/messages.po b/awx/ui_next/src/locales/zh/messages.po index ebd3b86386..3c6405f94d 100644 --- a/awx/ui_next/src/locales/zh/messages.po +++ b/awx/ui_next/src/locales/zh/messages.po @@ -45,7 +45,7 @@ msgstr "/ (project root)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:46 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:75 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:106 -#: screens/Template/shared/JobTemplateForm.jsx:211 +#: screens/Template/shared/JobTemplateForm.jsx:214 msgid "0 (Normal)" msgstr "0(普通)" @@ -66,7 +66,7 @@ msgstr "1(信息)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:47 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:76 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:107 -#: screens/Template/shared/JobTemplateForm.jsx:212 +#: screens/Template/shared/JobTemplateForm.jsx:215 msgid "1 (Verbose)" msgstr "1(详细)" @@ -82,7 +82,7 @@ msgstr "2(调试)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:48 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:77 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:108 -#: screens/Template/shared/JobTemplateForm.jsx:213 +#: screens/Template/shared/JobTemplateForm.jsx:216 msgid "2 (More Verbose)" msgstr "2(更多详细内容)" @@ -93,7 +93,7 @@ msgstr "2(更多详细内容)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:49 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:78 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:109 -#: screens/Template/shared/JobTemplateForm.jsx:214 +#: screens/Template/shared/JobTemplateForm.jsx:217 msgid "3 (Debug)" msgstr "3(调试)" @@ -104,7 +104,7 @@ msgstr "3(调试)" #: components/PromptDetail/PromptJobTemplateDetail.jsx:50 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:79 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:215 +#: screens/Template/shared/JobTemplateForm.jsx:218 msgid "4 (Connection Debug)" msgstr "4(连接调试)" @@ -161,7 +161,7 @@ msgstr "关于" #: screens/Project/Projects.jsx:29 #: screens/Team/Team.jsx:56 #: screens/Team/Teams.jsx:30 -#: screens/Template/Template.jsx:145 +#: screens/Template/Template.jsx:136 #: screens/Template/Templates.jsx:44 #: screens/Template/WorkflowJobTemplate.jsx:122 msgid "Access" @@ -204,7 +204,7 @@ msgstr "操作" #: screens/Host/HostGroups/HostGroupsList.jsx:182 #: screens/Host/HostList/HostList.jsx:168 #: screens/Host/HostList/HostListItem.jsx:42 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:246 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:275 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:77 #: screens/InstanceGroup/Instances/InstanceList.jsx:217 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:153 @@ -310,7 +310,7 @@ msgstr "添加新令牌" msgid "Add a new node between these two nodes" msgstr "在这两个节点间添加新节点" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:159 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:187 msgid "Add container group" msgstr "添加容器组" @@ -322,7 +322,7 @@ msgstr "添加现有组" msgid "Add existing host" msgstr "添加现有主机" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:160 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:188 msgid "Add instance group" msgstr "添加实例组" @@ -689,9 +689,9 @@ msgstr "Azure AD" msgid "Azure AD settings" msgstr "Azure AD 设置" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:125 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:148 #: components/AddRole/AddResourceRole.jsx:286 -#: components/LaunchPrompt/LaunchPrompt.jsx:134 +#: components/LaunchPrompt/LaunchPrompt.jsx:128 #: components/Schedule/shared/SchedulePromptableFields.jsx:136 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:90 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:70 @@ -768,7 +768,7 @@ msgstr "返回到源" msgid "Back to Teams" msgstr "返回到团队" -#: screens/Template/Template.jsx:138 +#: screens/Template/Template.jsx:129 #: screens/Template/WorkflowJobTemplate.jsx:115 msgid "Back to Templates" msgstr "返回到模板" @@ -797,8 +797,8 @@ msgstr "返回到凭证类型" msgid "Back to execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:56 -#: screens/InstanceGroup/InstanceGroup.jsx:57 +#: screens/InstanceGroup/ContainerGroup.jsx:68 +#: screens/InstanceGroup/InstanceGroup.jsx:69 msgid "Back to instance groups" msgstr "返回到实例组" @@ -869,7 +869,7 @@ msgstr "缓存超时" msgid "Cache timeout (seconds)" msgstr "缓存超时(秒)" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:126 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:149 #: components/AddRole/AddResourceRole.jsx:287 #: components/AssociateModal/AssociateModal.jsx:116 #: components/AssociateModal/AssociateModal.jsx:121 @@ -879,7 +879,7 @@ msgstr "缓存超时(秒)" #: components/DisassociateButton/DisassociateButton.jsx:125 #: components/FormActionGroup/FormActionGroup.jsx:24 #: components/FormActionGroup/FormActionGroup.jsx:29 -#: components/LaunchPrompt/LaunchPrompt.jsx:135 +#: components/LaunchPrompt/LaunchPrompt.jsx:129 #: components/Lookup/HostFilterLookup.jsx:350 #: components/Lookup/Lookup.jsx:186 #: components/PaginatedTable/ToolbarDeleteButton.jsx:281 @@ -1008,7 +1008,7 @@ msgstr "" #~ msgid "Cannot enable log aggregator without providing logging aggregator host and logging aggregator type." #~ msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:245 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:274 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:76 msgid "Capacity" msgstr "容量" @@ -1062,7 +1062,7 @@ msgid "Channel" msgstr "频道" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:102 -#: screens/Template/shared/JobTemplateForm.jsx:206 +#: screens/Template/shared/JobTemplateForm.jsx:209 msgid "Check" msgstr "检查" @@ -1095,7 +1095,7 @@ msgid "Choose a Webhook Service" msgstr "选择 Webhook 服务" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:95 -#: screens/Template/shared/JobTemplateForm.jsx:199 +#: screens/Template/shared/JobTemplateForm.jsx:202 msgid "Choose a job type" msgstr "选择作业类型" @@ -1225,6 +1225,7 @@ msgstr "云" msgid "Collapse" msgstr "折叠" +#: components/AdHocCommands/AdHocPreviewStep.jsx:8 #: components/JobList/JobList.jsx:186 #: components/JobList/JobListItem.jsx:37 #: screens/Job/JobDetail/JobDetail.jsx:81 @@ -1256,7 +1257,7 @@ msgstr "" #: components/PromptDetail/PromptWFJobTemplateDetail.jsx:36 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:138 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:61 -#: screens/Template/shared/JobTemplateForm.jsx:602 +#: screens/Template/shared/JobTemplateForm.jsx:605 msgid "Concurrent Jobs" msgstr "并发作业" @@ -1324,11 +1325,11 @@ msgstr "容器组" msgid "Container group" msgstr "容器组" -#: screens/InstanceGroup/ContainerGroup.jsx:81 +#: screens/InstanceGroup/ContainerGroup.jsx:93 msgid "Container group not found." msgstr "未找到容器组。" -#: components/LaunchPrompt/LaunchPrompt.jsx:129 +#: components/LaunchPrompt/LaunchPrompt.jsx:123 #: components/Schedule/shared/SchedulePromptableFields.jsx:131 msgid "Content Loading" msgstr "内容加载" @@ -1353,7 +1354,7 @@ msgid "" "will produce as the playbook executes." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:465 +#: screens/Template/shared/JobTemplateForm.jsx:468 msgid "" "Control the level of output ansible will\n" "produce as the playbook executes." @@ -1423,7 +1424,7 @@ msgstr "" #~ msgid "Copyright 2019 Red Hat, Inc." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:406 +#: screens/Template/shared/JobTemplateForm.jsx:409 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:209 msgid "Create" msgstr "创建" @@ -1636,7 +1637,7 @@ msgstr "创建者(用户名)" #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:40 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:94 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:56 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:51 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:54 #: screens/Inventory/InventorySourceDetail/InventorySourceDetail.jsx:198 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:42 #: screens/Inventory/shared/InventorySourceSubForms/EC2SubForm.jsx:41 @@ -1687,11 +1688,11 @@ msgstr "凭证密码" #~ msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token”." #~ msgstr "与 Kubernetes 或 OpenShift 进行身份验证的凭证。必须为“Kubernetes/OpenShift API Bearer Token”类型。" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:58 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:61 msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\". If left blank, the underlying Pod's service account will be used." msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:164 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:170 msgid "Credential to authenticate with a protected container registry." msgstr "" @@ -1701,7 +1702,7 @@ msgstr "未找到凭证类型。" #: components/JobList/JobListItem.jsx:215 #: components/LaunchPrompt/steps/CredentialsStep.jsx:193 -#: components/LaunchPrompt/steps/useCredentialsStep.jsx:64 +#: components/LaunchPrompt/steps/useCredentialsStep.jsx:62 #: components/Lookup/MultiCredentialsLookup.jsx:139 #: components/Lookup/MultiCredentialsLookup.jsx:211 #: components/PromptDetail/PromptDetail.jsx:158 @@ -1716,12 +1717,12 @@ msgstr "未找到凭证类型。" #: screens/Credential/Credentials.jsx:23 #: screens/Job/JobDetail/JobDetail.jsx:266 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:286 -#: screens/Template/shared/JobTemplateForm.jsx:374 +#: screens/Template/shared/JobTemplateForm.jsx:377 #: util/getRelatedResourceDeleteDetails.js:90 msgid "Credentials" msgstr "凭证" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:54 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:53 msgid "Credentials that require passwords on launch are not permitted. Please remove or replace the following credentials with a credential of the same type in order to proceed: {0}" msgstr "" @@ -1729,7 +1730,7 @@ msgstr "" msgid "Current page" msgstr "当前页" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:83 msgid "Custom pod spec" msgstr "自定义 pod 规格" @@ -1756,8 +1757,8 @@ msgstr "" msgid "Customize messages…" msgstr "自定义消息…" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:66 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:67 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:69 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:70 msgid "Customize pod specification" msgstr "自定义 Pod 规格" @@ -1808,7 +1809,7 @@ msgid "Default" msgstr "默认" #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:39 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:195 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:209 msgid "Default Execution Environment" msgstr "" @@ -1842,7 +1843,7 @@ msgstr "定义系统级的特性和功能" #: screens/Credential/CredentialDetail/CredentialDetail.jsx:299 #: screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx:126 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:137 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:116 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:117 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:125 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:138 #: screens/Inventory/InventoryGroups/InventoryGroupsList.jsx:100 @@ -1969,7 +1970,7 @@ msgstr "删除凭证类型" msgid "Delete error" msgstr "删除错误" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:110 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:111 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:119 msgid "Delete instance group" msgstr "删除实例组" @@ -2031,7 +2032,7 @@ msgstr "删除错误" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:207 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:220 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:265 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:294 msgid "Deletion error" msgstr "删除错误" @@ -2081,7 +2082,7 @@ msgstr "" #: screens/CredentialType/shared/CredentialTypeForm.jsx:32 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:62 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:152 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:142 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:147 #: screens/Host/HostDetail/HostDetail.jsx:81 #: screens/Host/HostList/HostList.jsx:150 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:78 @@ -2115,7 +2116,7 @@ msgstr "" #: screens/Template/Survey/SurveyQuestionForm.jsx:166 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:116 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:166 -#: screens/Template/shared/JobTemplateForm.jsx:246 +#: screens/Template/shared/JobTemplateForm.jsx:249 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:115 #: screens/User/UserOrganizations/UserOrganizationList.jsx:65 #: screens/User/UserOrganizations/UserOrganizationListItem.jsx:15 @@ -2157,8 +2158,8 @@ msgstr "目标频道或用户" #~ msgid "Detail coming soon :)" #~ msgstr "详情即将发布 :)" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:61 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:71 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:62 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:72 #: components/ErrorDetail/ErrorDetail.jsx:73 #: components/Schedule/Schedule.jsx:66 #: screens/Application/Application/Application.jsx:77 @@ -2171,8 +2172,8 @@ msgstr "目标频道或用户" #: screens/ExecutionEnvironment/ExecutionEnvironments.jsx:26 #: screens/Host/Host.jsx:52 #: screens/Host/Hosts.jsx:28 -#: screens/InstanceGroup/ContainerGroup.jsx:63 -#: screens/InstanceGroup/InstanceGroup.jsx:64 +#: screens/InstanceGroup/ContainerGroup.jsx:75 +#: screens/InstanceGroup/InstanceGroup.jsx:76 #: screens/InstanceGroup/InstanceGroups.jsx:30 #: screens/InstanceGroup/InstanceGroups.jsx:36 #: screens/Inventory/Inventories.jsx:60 @@ -2229,7 +2230,7 @@ msgstr "目标频道或用户" #: screens/Setting/UI/UIDetail/UIDetail.jsx:61 #: screens/Team/Team.jsx:55 #: screens/Team/Teams.jsx:28 -#: screens/Template/Template.jsx:144 +#: screens/Template/Template.jsx:135 #: screens/Template/Templates.jsx:42 #: screens/Template/WorkflowJobTemplate.jsx:121 #: screens/User/User.jsx:63 @@ -2310,7 +2311,7 @@ msgstr "解除关联?" msgid "Discard local changes before syncing" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:480 +#: screens/Template/shared/JobTemplateForm.jsx:483 msgid "" "Divide the work done by this job template\n" "into the specified number of job slices, each running the\n" @@ -2638,7 +2639,7 @@ msgstr "电子邮件选项" msgid "Enable Concurrent Jobs" msgstr "启用并发作业" -#: screens/Template/shared/JobTemplateForm.jsx:609 +#: screens/Template/shared/JobTemplateForm.jsx:612 msgid "Enable Fact Storage" msgstr "启用事实缓存" @@ -2651,8 +2652,8 @@ msgstr "启用 HTTPS 证书验证" #~ msgid "Enable Privilege Escalation" #~ msgstr "启用权限升级" -#: screens/Template/shared/JobTemplateForm.jsx:583 #: screens/Template/shared/JobTemplateForm.jsx:586 +#: screens/Template/shared/JobTemplateForm.jsx:589 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:225 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:228 msgid "Enable Webhook" @@ -2687,7 +2688,7 @@ msgstr "" #~ msgid "Enable simplified login for your {brandName} applications" #~ msgstr "为您的 {brandName} 应用启用简化的登录" -#: screens/Template/shared/JobTemplateForm.jsx:589 +#: screens/Template/shared/JobTemplateForm.jsx:592 msgid "Enable webhook for this template." msgstr "为此模板启用 Webhook。" @@ -2718,7 +2719,7 @@ msgstr "启用的值" msgid "Enabled Variable" msgstr "启用的变量" -#: screens/Template/shared/JobTemplateForm.jsx:569 +#: screens/Template/shared/JobTemplateForm.jsx:572 msgid "" "Enables creation of a provisioning\n" "callback URL. Using the URL a host can contact {0}\n" @@ -2927,9 +2928,9 @@ msgstr "使用 JSON 或 YAML 语法输入变量。使用单选按钮在两者之 #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:210 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:146 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:223 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:124 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:125 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:133 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:268 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:297 #: screens/Job/JobOutput/JobOutput.jsx:761 msgid "Error" msgstr "错误" @@ -2960,8 +2961,8 @@ msgstr "" #: components/InstanceToggle/InstanceToggle.jsx:61 #: components/JobList/JobList.jsx:280 #: components/JobList/JobList.jsx:291 -#: components/LaunchButton/LaunchButton.jsx:173 -#: components/LaunchPrompt/LaunchPrompt.jsx:72 +#: components/LaunchButton/LaunchButton.jsx:161 +#: components/LaunchPrompt/LaunchPrompt.jsx:66 #: components/NotificationList/NotificationList.jsx:246 #: components/PaginatedTable/ToolbarDeleteButton.jsx:205 #: components/ResourceAccessList/ResourceAccessList.jsx:234 @@ -3088,7 +3089,7 @@ msgstr "Subversion SCM 源控制 URL 示例包括:" msgid "Examples include:" msgstr "示例包括::" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:109 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:114 msgid "Examples:" msgstr "" @@ -3104,11 +3105,11 @@ msgstr "当父节点出现故障状态时执行。" msgid "Execute when the parent node results in a successful state." msgstr "当父节点具有成功状态时执行。" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:85 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:86 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:40 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:103 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:197 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:189 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:211 msgid "Execution Environment" msgstr "" @@ -3120,7 +3121,7 @@ msgstr "" #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:91 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:92 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:104 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:144 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:158 #: routeConfig.jsx:140 #: screens/ActivityStream/ActivityStream.jsx:208 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:122 @@ -3398,7 +3399,7 @@ msgstr "删除一个或多个组失败。" msgid "Failed to delete one or more hosts." msgstr "删除一个或多个主机失败。" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:300 msgid "Failed to delete one or more instance groups." msgstr "删除一个或多个实例组失败。" @@ -3539,7 +3540,7 @@ msgid "Failed to fetch the updated project data." msgstr "" #: components/AdHocCommands/AdHocCommands.jsx:113 -#: components/LaunchButton/LaunchButton.jsx:176 +#: components/LaunchButton/LaunchButton.jsx:164 #: screens/ManagementJob/ManagementJobList/ManagementJobList.jsx:130 msgid "Failed to launch job." msgstr "启动作业失败。" @@ -3627,7 +3628,7 @@ msgstr "字段包含值。" msgid "Field ends with value." msgstr "字段以值结尾。" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:77 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 msgid "Field for passing a custom Kubernetes or OpenShift Pod specification." msgstr "用于传递自定义 Kubernetes 或 OpenShift Pod 规格的字段。" @@ -3706,7 +3707,7 @@ msgstr "浮点值" msgid "Follow" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:254 +#: screens/Template/shared/JobTemplateForm.jsx:257 msgid "" "For job templates, select run to execute\n" "the playbook. Select check to only check playbook syntax,\n" @@ -3734,7 +3735,7 @@ msgstr "有关详情请参阅" #: components/AdHocCommands/AdHocDetailsStep.jsx:180 #: components/PromptDetail/PromptJobTemplateDetail.jsx:154 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:230 -#: screens/Template/shared/JobTemplateForm.jsx:425 +#: screens/Template/shared/JobTemplateForm.jsx:428 msgid "Forks" msgstr "分叉" @@ -3841,7 +3842,7 @@ msgstr "GitHub 设置" msgid "GitLab" msgstr "GitLab" -#: components/Lookup/ExecutionEnvironmentLookup.jsx:192 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:206 msgid "Global Default Execution Environment" msgstr "" @@ -3850,7 +3851,7 @@ msgstr "" msgid "Globally Available" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:148 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:154 msgid "Globally available execution environment can not be reassigned to a specific Organization" msgstr "" @@ -3948,7 +3949,7 @@ msgstr "帮助" msgid "Hide" msgstr "隐藏" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Hide description" msgstr "" @@ -3973,7 +3974,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:161 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:238 -#: screens/Template/shared/JobTemplateForm.jsx:642 +#: screens/Template/shared/JobTemplateForm.jsx:645 msgid "Host Config Key" msgstr "主机配置键" @@ -4196,7 +4197,7 @@ msgstr "" #~ msgid "If checked, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the \"all\" default group for the inventory." #~ msgstr "如果选中,以前存在于外部源上的但现已被删除的任何主机和组都将从 Tower 清单中删除。不由清单源管理的主机和组将提升到下一个手动创建的组,如果没有手动创建组来提升它们,则它们将保留在清单的“all”默认组中。" -#: screens/Template/shared/JobTemplateForm.jsx:559 +#: screens/Template/shared/JobTemplateForm.jsx:562 msgid "" "If enabled, run this playbook as an\n" "administrator." @@ -4213,7 +4214,7 @@ msgid "" "--diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:499 +#: screens/Template/shared/JobTemplateForm.jsx:502 msgid "" "If enabled, show the changes made by\n" "Ansible tasks, where supported. This is equivalent\n" @@ -4228,7 +4229,7 @@ msgstr "" msgid "If enabled, show the changes made by Ansible tasks, where supported. This is equivalent to Ansible’s --diff mode." msgstr "如果启用,显示 Ansible 任务所做的更改(在支持的情况下)。这等同于 Ansible 的 --diff 模式。" -#: screens/Template/shared/JobTemplateForm.jsx:603 +#: screens/Template/shared/JobTemplateForm.jsx:606 msgid "" "If enabled, simultaneous runs of this job\n" "template will be allowed." @@ -4242,7 +4243,7 @@ msgstr "" msgid "If enabled, simultaneous runs of this workflow job template will be allowed." msgstr "如果启用,将允许同时运行此工作流作业模板。" -#: screens/Template/shared/JobTemplateForm.jsx:610 +#: screens/Template/shared/JobTemplateForm.jsx:613 msgid "" "If enabled, this will store gathered facts so they can\n" "be viewed at the host level. Facts are persisted and\n" @@ -4279,7 +4280,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:140 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:159 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.jsx:62 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:99 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:103 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:91 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:110 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.jsx:16 @@ -4389,8 +4390,8 @@ msgstr "实例组" #: components/PromptDetail/PromptJobTemplateDetail.jsx:227 #: routeConfig.jsx:130 #: screens/ActivityStream/ActivityStream.jsx:196 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:134 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:224 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:170 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:253 #: screens/InstanceGroup/InstanceGroups.jsx:16 #: screens/InstanceGroup/InstanceGroups.jsx:26 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:91 @@ -4408,7 +4409,7 @@ msgstr "实例 ID" msgid "Instance group" msgstr "实例组" -#: screens/InstanceGroup/InstanceGroup.jsx:87 +#: screens/InstanceGroup/InstanceGroup.jsx:99 msgid "Instance group not found." msgstr "没有找到实例组" @@ -4420,8 +4421,8 @@ msgstr "" msgid "Instance groups" msgstr "实例组" -#: screens/InstanceGroup/InstanceGroup.jsx:69 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:244 +#: screens/InstanceGroup/InstanceGroup.jsx:81 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:273 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:75 #: screens/InstanceGroup/InstanceGroups.jsx:31 #: screens/InstanceGroup/Instances/InstanceList.jsx:156 @@ -4637,7 +4638,7 @@ msgstr "作业分片" #: components/PromptDetail/PromptJobTemplateDetail.jsx:160 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:235 -#: screens/Template/shared/JobTemplateForm.jsx:479 +#: screens/Template/shared/JobTemplateForm.jsx:482 msgid "Job Slicing" msgstr "作业分片" @@ -4652,7 +4653,7 @@ msgstr "作业状态" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:334 #: screens/Job/JobDetail/JobDetail.jsx:294 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:337 -#: screens/Template/shared/JobTemplateForm.jsx:520 +#: screens/Template/shared/JobTemplateForm.jsx:523 msgid "Job Tags" msgstr "作业标签" @@ -4667,7 +4668,7 @@ msgstr "作业标签" msgid "Job Template" msgstr "作业模板" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:40 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:39 msgid "Job Template default credentials must be replaced with one of the same type. Please select a credential for the following types in order to proceed: {0}" msgstr "" @@ -4695,7 +4696,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:156 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:183 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:142 -#: screens/Template/shared/JobTemplateForm.jsx:251 +#: screens/Template/shared/JobTemplateForm.jsx:254 msgid "Job Type" msgstr "作业类型" @@ -4720,8 +4721,8 @@ msgstr "作业模板" #: screens/Dashboard/shared/LineChart.jsx:69 #: screens/Host/Host.jsx:67 #: screens/Host/Hosts.jsx:31 -#: screens/InstanceGroup/ContainerGroup.jsx:68 -#: screens/InstanceGroup/InstanceGroup.jsx:74 +#: screens/InstanceGroup/ContainerGroup.jsx:80 +#: screens/InstanceGroup/InstanceGroup.jsx:86 #: screens/InstanceGroup/InstanceGroups.jsx:32 #: screens/InstanceGroup/InstanceGroups.jsx:37 #: screens/Inventory/Inventories.jsx:59 @@ -4733,7 +4734,7 @@ msgstr "作业模板" #: screens/Job/Jobs.jsx:25 #: screens/Setting/SettingList.jsx:85 #: screens/Setting/Settings.jsx:71 -#: screens/Template/Template.jsx:164 +#: screens/Template/Template.jsx:155 #: screens/Template/Templates.jsx:46 #: screens/Template/WorkflowJobTemplate.jsx:145 msgid "Jobs" @@ -4831,7 +4832,7 @@ msgstr "标签名称" #: screens/Job/JobDetail/JobDetail.jsx:279 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:304 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:193 -#: screens/Template/shared/JobTemplateForm.jsx:392 +#: screens/Template/shared/JobTemplateForm.jsx:395 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:195 msgid "Labels" msgstr "标签" @@ -4919,7 +4920,7 @@ msgstr "" msgid "Last used" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:106 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:130 #: components/LaunchPrompt/steps/usePreviewStep.jsx:35 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:54 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:57 @@ -4957,7 +4958,7 @@ msgstr "启动模板" msgid "Launch workflow" msgstr "启动工作流" -#: components/LaunchPrompt/LaunchPrompt.jsx:106 +#: components/LaunchPrompt/LaunchPrompt.jsx:100 msgid "Launch | {0}" msgstr "" @@ -5018,7 +5019,7 @@ msgstr "小于或等于比较。" #: screens/Job/JobDetail/JobDetail.jsx:221 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:231 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:152 -#: screens/Template/shared/JobTemplateForm.jsx:441 +#: screens/Template/shared/JobTemplateForm.jsx:444 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:156 msgid "Limit" msgstr "限制" @@ -5091,7 +5092,8 @@ msgstr "最新同步" msgid "Machine Credential" msgstr "机器凭证" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:98 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:102 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:112 msgid "Machine credential" msgstr "机器凭证" @@ -5204,7 +5206,7 @@ msgstr "最小值" msgid "Minimum length" msgstr "最小长度" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:33 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:34 msgid "" "Minimum number of instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5214,7 +5216,7 @@ msgstr "" #~ msgid "Minimum number of instances that will be automatically assigned to this group when new instances come online." #~ msgstr "新实例上线时自动分配给此组的最小实例数量。" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:43 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:44 msgid "" "Minimum percentage of all instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5377,8 +5379,8 @@ msgstr "多项选择选项" #: components/Lookup/ApplicationLookup.jsx:111 #: components/Lookup/CredentialLookup.jsx:186 #: components/Lookup/CredentialLookup.jsx:201 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:161 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:168 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:182 #: components/Lookup/HostFilterLookup.jsx:79 #: components/Lookup/HostFilterLookup.jsx:364 #: components/Lookup/HostListItem.jsx:8 @@ -5451,7 +5453,7 @@ msgstr "多项选择选项" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:91 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:117 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:9 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:91 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:94 #: screens/Host/HostDetail/HostDetail.jsx:74 #: screens/Host/HostGroups/HostGroupItem.jsx:28 #: screens/Host/HostGroups/HostGroupsList.jsx:164 @@ -5461,14 +5463,14 @@ msgstr "多项选择选项" #: screens/Host/HostList/HostListItem.jsx:28 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:45 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:50 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:240 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:269 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:63 #: screens/InstanceGroup/Instances/InstanceList.jsx:163 #: screens/InstanceGroup/Instances/InstanceList.jsx:170 #: screens/InstanceGroup/Instances/InstanceList.jsx:211 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:117 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:45 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:20 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:47 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:21 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:74 #: screens/Inventory/InventoryGroupDetail/InventoryGroupDetail.jsx:35 #: screens/Inventory/InventoryGroupHosts/InventoryGroupHostList.jsx:190 @@ -5547,7 +5549,7 @@ msgstr "多项选择选项" #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:76 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:96 -#: screens/Template/shared/JobTemplateForm.jsx:238 +#: screens/Template/shared/JobTemplateForm.jsx:241 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:107 #: screens/User/UserOrganizations/UserOrganizationList.jsx:60 #: screens/User/UserOrganizations/UserOrganizationList.jsx:64 @@ -5590,11 +5592,12 @@ msgstr "永不过期" msgid "New" msgstr "新" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:80 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:92 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:81 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:93 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:116 #: components/AddRole/AddResourceRole.jsx:215 #: components/AddRole/AddResourceRole.jsx:250 -#: components/LaunchPrompt/LaunchPrompt.jsx:136 +#: components/LaunchPrompt/LaunchPrompt.jsx:130 #: components/Schedule/shared/SchedulePromptableFields.jsx:138 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:66 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:59 @@ -5816,7 +5819,7 @@ msgstr "通知类型" #: screens/Organization/Organizations.jsx:33 #: screens/Project/Project.jsx:111 #: screens/Project/Projects.jsx:30 -#: screens/Template/Template.jsx:150 +#: screens/Template/Template.jsx:141 #: screens/Template/Templates.jsx:45 #: screens/Template/WorkflowJobTemplate.jsx:127 msgid "Notifications" @@ -5855,7 +5858,7 @@ msgstr "10 月" #: screens/Setting/shared/SharedFields.jsx:144 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:53 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "Off" msgstr "关" @@ -5873,7 +5876,7 @@ msgstr "关" #: screens/Setting/shared/SharedFields.jsx:143 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:52 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "On" msgstr "于" @@ -5911,7 +5914,7 @@ msgstr "OpenStack" msgid "Option Details" msgstr "选项详情" -#: screens/Template/shared/JobTemplateForm.jsx:395 +#: screens/Template/shared/JobTemplateForm.jsx:398 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:198 msgid "" "Optional labels that describe this job template,\n" @@ -5931,9 +5934,9 @@ msgstr "(可选)选择要用来向 Webhook 服务发回状态更新的凭证 #: components/NotificationList/NotificationList.jsx:220 #: components/NotificationList/NotificationListItem.jsx:31 #: screens/Credential/shared/TypeInputsSubForm.jsx:47 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:62 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:65 #: screens/Project/shared/ProjectSubForms/SharedFields.jsx:67 -#: screens/Template/shared/JobTemplateForm.jsx:552 +#: screens/Template/shared/JobTemplateForm.jsx:555 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:222 msgid "Options" msgstr "选项" @@ -6095,7 +6098,7 @@ msgstr "传递额外的命令行更改。有两个 ansible 命令行参数:" #~ "Ansible Tower documentation for example syntax." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:414 +#: screens/Template/shared/JobTemplateForm.jsx:417 msgid "" "Pass extra command line variables to the playbook. This is the\n" "-e or --extra-vars command line parameter for ansible-playbook.\n" @@ -6172,7 +6175,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:153 #: screens/Job/JobDetail/JobDetail.jsx:220 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:229 -#: screens/Template/shared/JobTemplateForm.jsx:355 +#: screens/Template/shared/JobTemplateForm.jsx:358 msgid "Playbook" msgstr "Playbook" @@ -6249,7 +6252,7 @@ msgstr "" msgid "Please select a day number between 1 and 31." msgstr "选择的日数字应介于 1 到 31 之间。" -#: screens/Template/shared/JobTemplateForm.jsx:170 +#: screens/Template/shared/JobTemplateForm.jsx:173 msgid "Please select an Inventory or check the Prompt on Launch option" msgstr "" @@ -6270,17 +6273,17 @@ msgid "Pod spec override" msgstr "Pod 规格覆写" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:64 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:28 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:29 msgid "Policy instance minimum" msgstr "策略实例最小值" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:69 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:38 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:39 msgid "Policy instance percentage" msgstr "策略实例百分比" -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:56 -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:62 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:63 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:69 msgid "Populate field from an external secret management system" msgstr "从外部 secret 管理系统填充字段" @@ -6336,6 +6339,7 @@ msgstr "" msgid "Press Enter to edit. Press ESC to stop editing." msgstr "" +#: components/AdHocCommands/AdHocCommandsWizard.jsx:121 #: components/LaunchPrompt/steps/usePreviewStep.jsx:23 #: screens/Template/Survey/SurveyList.jsx:162 #: screens/Template/Survey/SurveyList.jsx:164 @@ -6348,7 +6352,7 @@ msgstr "私钥密码" #: components/PromptDetail/PromptJobTemplateDetail.jsx:65 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:128 -#: screens/Template/shared/JobTemplateForm.jsx:558 +#: screens/Template/shared/JobTemplateForm.jsx:561 msgid "Privilege Escalation" msgstr "权限升级" @@ -6447,7 +6451,7 @@ msgstr "提示的值" #~ msgid "Prompts" #~ msgstr "提示" -#: screens/Template/shared/JobTemplateForm.jsx:444 +#: screens/Template/shared/JobTemplateForm.jsx:447 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:159 msgid "" "Provide a host pattern to further constrain\n" @@ -6506,23 +6510,23 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:164 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:240 -#: screens/Template/shared/JobTemplateForm.jsx:629 +#: screens/Template/shared/JobTemplateForm.jsx:632 msgid "Provisioning Callback URL" msgstr "部署回调 URL" -#: screens/Template/shared/JobTemplateForm.jsx:624 +#: screens/Template/shared/JobTemplateForm.jsx:627 msgid "Provisioning Callback details" msgstr "置备回调详情" #: components/PromptDetail/PromptJobTemplateDetail.jsx:70 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:133 -#: screens/Template/shared/JobTemplateForm.jsx:563 #: screens/Template/shared/JobTemplateForm.jsx:566 +#: screens/Template/shared/JobTemplateForm.jsx:569 msgid "Provisioning Callbacks" msgstr "置备回调" #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:88 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:129 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:134 msgid "Pull" msgstr "" @@ -6621,7 +6625,7 @@ msgstr "" msgid "Refer to the" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:434 +#: screens/Template/shared/JobTemplateForm.jsx:437 msgid "" "Refer to the Ansible documentation for details\n" "about the configuration file." @@ -6651,7 +6655,7 @@ msgstr "" msgid "Regions" msgstr "区域" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:157 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:163 msgid "Registry credential" msgstr "" @@ -6908,7 +6912,7 @@ msgstr "角色" #: screens/Credential/shared/ExternalTestModal.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.jsx:49 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/RunStep.jsx:24 -#: screens/Template/shared/JobTemplateForm.jsx:202 +#: screens/Template/shared/JobTemplateForm.jsx:205 msgid "Run" msgstr "运行" @@ -6919,7 +6923,7 @@ msgstr "运行" msgid "Run Command" msgstr "运行命令" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:123 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:146 msgid "Run command" msgstr "运行命令" @@ -6949,7 +6953,7 @@ msgstr "运行中" msgid "Running Handlers" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:242 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 #: screens/InstanceGroup/Instances/InstanceList.jsx:213 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:123 msgid "Running Jobs" @@ -7073,7 +7077,7 @@ msgstr "调度缺少规则" #: screens/Project/Project.jsx:123 #: screens/Project/Projects.jsx:33 #: screens/Schedule/AllSchedules.jsx:25 -#: screens/Template/Template.jsx:157 +#: screens/Template/Template.jsx:148 #: screens/Template/Templates.jsx:50 #: screens/Template/WorkflowJobTemplate.jsx:134 msgid "Schedules" @@ -7199,7 +7203,7 @@ msgstr "选择节点类型" msgid "Select a Resource Type" msgstr "选择资源类型" -#: screens/Template/shared/JobTemplateForm.jsx:335 +#: screens/Template/shared/JobTemplateForm.jsx:338 msgid "" "Select a branch for the job template. This branch is applied to\n" "all job template nodes that prompt for a branch." @@ -7242,7 +7246,7 @@ msgstr "选择一个模块" msgid "Select a playbook" msgstr "选择一个 playbook" -#: screens/Template/shared/JobTemplateForm.jsx:323 +#: screens/Template/shared/JobTemplateForm.jsx:326 msgid "Select a project before editing the execution environment." msgstr "" @@ -7279,7 +7283,7 @@ msgstr "" #: components/Schedule/shared/ScheduleForm.jsx:85 #: components/Schedule/shared/ScheduleForm.jsx:89 #: screens/Credential/shared/CredentialForm.jsx:47 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:80 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:83 #: screens/Inventory/shared/InventoryForm.jsx:59 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:50 #: screens/Inventory/shared/InventorySourceSubForms/GCESubForm.jsx:50 @@ -7334,7 +7338,7 @@ msgstr "" msgid "Select an organization before editing the default execution environment." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:377 +#: screens/Template/shared/JobTemplateForm.jsx:380 msgid "" "Select credentials for accessing the nodes this job will be ran\n" "against. You can only select one credential of each type. For machine credentials (SSH),\n" @@ -7413,7 +7417,7 @@ msgstr "" msgid "Select the Instance Groups for this Inventory to run on." msgstr "选择要运行此清单的实例组。" -#: screens/Template/shared/JobTemplateForm.jsx:514 +#: screens/Template/shared/JobTemplateForm.jsx:517 msgid "" "Select the Instance Groups for this Organization\n" "to run on." @@ -7447,12 +7451,12 @@ msgstr "选择要在访问远程主机时用来运行命令的凭证。选择包 #~ msgid "Select the default execution environment for this project." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:322 +#: screens/Template/shared/JobTemplateForm.jsx:325 msgid "Select the execution environment for this job template." msgstr "" #: components/Lookup/InventoryLookup.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:286 +#: screens/Template/shared/JobTemplateForm.jsx:289 msgid "" "Select the inventory containing the hosts\n" "you want this job to manage." @@ -7479,11 +7483,11 @@ msgstr "" msgid "Select the inventory that this host will belong to." msgstr "选择此主机要属于的清单。" -#: screens/Template/shared/JobTemplateForm.jsx:358 +#: screens/Template/shared/JobTemplateForm.jsx:361 msgid "Select the playbook to be executed by this job." msgstr "选择要由此作业执行的 playbook。" -#: screens/Template/shared/JobTemplateForm.jsx:301 +#: screens/Template/shared/JobTemplateForm.jsx:304 msgid "" "Select the project containing the playbook\n" "you want this job to execute." @@ -7633,7 +7637,7 @@ msgstr "显示" #: components/PromptDetail/PromptJobTemplateDetail.jsx:158 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:314 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 -#: screens/Template/shared/JobTemplateForm.jsx:496 +#: screens/Template/shared/JobTemplateForm.jsx:499 msgid "Show Changes" msgstr "显示更改" @@ -7646,7 +7650,7 @@ msgstr "显示所有组" msgid "Show changes" msgstr "显示更改" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Show description" msgstr "" @@ -7711,7 +7715,7 @@ msgstr "简单键选择" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:352 #: screens/Job/JobDetail/JobDetail.jsx:312 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:352 -#: screens/Template/shared/JobTemplateForm.jsx:536 +#: screens/Template/shared/JobTemplateForm.jsx:539 msgid "Skip Tags" msgstr "跳过标签" @@ -7724,7 +7728,7 @@ msgstr "跳过标签" #~ "of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:539 +#: screens/Template/shared/JobTemplateForm.jsx:542 msgid "" "Skip tags are useful when you have a\n" "large playbook, and you want to skip specific parts of a\n" @@ -7817,7 +7821,7 @@ msgstr "源" #: screens/Project/ProjectDetail/ProjectDetail.jsx:203 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:228 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:138 -#: screens/Template/shared/JobTemplateForm.jsx:332 +#: screens/Template/shared/JobTemplateForm.jsx:335 msgid "Source Control Branch" msgstr "源控制分支" @@ -8120,7 +8124,7 @@ msgid "Sunday" msgstr "周日" #: components/LaunchPrompt/steps/useSurveyStep.jsx:26 -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/Templates.jsx:47 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "Survey" @@ -8231,7 +8235,7 @@ msgstr "制表符" #~ "the usage of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:523 +#: screens/Template/shared/JobTemplateForm.jsx:526 msgid "" "Tags are useful when you have a large\n" "playbook, and you want to run a specific part of a\n" @@ -8320,7 +8324,7 @@ msgstr "未找到团队" msgid "Teams" msgstr "团队" -#: screens/Template/Template.jsx:184 +#: screens/Template/Template.jsx:175 #: screens/Template/WorkflowJobTemplate.jsx:179 msgid "Template not found." msgstr "未找到模板" @@ -8407,7 +8411,7 @@ msgstr "" #~ msgid "The amount of time (in seconds) before the email notification stops trying to reach the host and times out. Ranges from 1 to 120 seconds." #~ msgstr "电子邮件通知停止尝试到达主机并超时之前所经过的时间(以秒为单位)。范围为 1 秒到 120 秒。" -#: screens/Template/shared/JobTemplateForm.jsx:490 +#: screens/Template/shared/JobTemplateForm.jsx:493 msgid "" "The amount of time (in seconds) to run\n" "before the job is canceled. Defaults to 0 for no job\n" @@ -8455,7 +8459,7 @@ msgstr "" #~ msgid "The first fetches all references. The second fetches the Github pull request number 62, in this example the branch needs to be \"pull/62/head\"." #~ msgstr "第一个获取所有引用。第二个获取 Github 拉取请求号 62,在本示例中,分支需要为 \"pull/62/head\"。" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:106 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:111 msgid "The full image location, including the container registry, image name, and version tag." msgstr "" @@ -8470,7 +8474,7 @@ msgstr "" #~ msgid "The maximum number of hosts allowed to be managed by this organization. Value defaults to 0 which means no limit. Refer to the Ansible documentation for more details." #~ msgstr "允许由此机构管理的最大主机数。默认值为 0,表示无限制。请参阅 Ansible 文档以了解更多详情。" -#: screens/Template/shared/JobTemplateForm.jsx:428 +#: screens/Template/shared/JobTemplateForm.jsx:431 msgid "" "The number of parallel or simultaneous\n" "processes to use while executing the playbook. An empty value,\n" @@ -8530,8 +8534,8 @@ msgstr "" #~ msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:155 -msgid "The tower instance group cannot be deleted." -msgstr "tower 实例组不能被删除。" +#~ msgid "The tower instance group cannot be deleted." +#~ msgstr "tower 实例组不能被删除。" #: screens/Project/shared/ProjectSubForms/ManualSubForm.jsx:47 msgid "" @@ -8613,7 +8617,7 @@ msgstr "这些参数与指定的模块一起使用。点击可以找到有关 {0 msgid "Third" msgstr "第三" -#: screens/Template/shared/JobTemplateForm.jsx:153 +#: screens/Template/shared/JobTemplateForm.jsx:156 msgid "This Project needs to be updated" msgstr "" @@ -8635,7 +8639,7 @@ msgstr "此操作将从 {0} 中解除以下角色关联:" msgid "This action will disassociate the following:" msgstr "此操作将解除以下关联:" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:114 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:115 msgid "This container group is currently being by other resources. Are you sure you want to delete it?" msgstr "" @@ -8735,7 +8739,7 @@ msgid "This field must be greater than 0" msgstr "此字段必须大于 0" #: components/LaunchPrompt/steps/useSurveyStep.jsx:111 -#: screens/Template/shared/JobTemplateForm.jsx:150 +#: screens/Template/shared/JobTemplateForm.jsx:153 #: screens/User/shared/UserForm.jsx:81 #: screens/User/shared/UserForm.jsx:92 #: util/validators.jsx:5 @@ -8811,7 +8815,8 @@ msgstr "此调度缺少清单" msgid "This schedule is missing required survey values" msgstr "此调度缺少所需的调查值" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:64 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:65 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:105 #: components/LaunchPrompt/steps/StepName.jsx:27 msgid "This step contains errors" msgstr "这一步包含错误" @@ -8890,7 +8895,7 @@ msgstr "超时" #: screens/NotificationTemplate/shared/TypeInputsSubForm.jsx:112 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:233 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:169 -#: screens/Template/shared/JobTemplateForm.jsx:489 +#: screens/Template/shared/JobTemplateForm.jsx:492 msgid "Timeout" msgstr "超时" @@ -8993,7 +8998,7 @@ msgstr "工具" msgid "Top Pagination" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:243 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:272 #: screens/InstanceGroup/Instances/InstanceList.jsx:214 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:124 msgid "Total Jobs" @@ -9068,7 +9073,7 @@ msgstr "Twilio" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:12 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:50 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:55 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:241 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:270 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:68 #: screens/InstanceGroup/Instances/InstanceList.jsx:212 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:120 @@ -9366,7 +9371,7 @@ msgstr "VMware vCenter" #: screens/Job/JobDetail/JobDetail.jsx:341 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:367 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:209 -#: screens/Template/shared/JobTemplateForm.jsx:412 +#: screens/Template/shared/JobTemplateForm.jsx:415 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:217 msgid "Variables" msgstr "变量" @@ -9397,7 +9402,7 @@ msgstr "" #: screens/Inventory/shared/InventorySourceSubForms/SharedFields.jsx:90 #: screens/Job/JobDetail/JobDetail.jsx:222 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:232 -#: screens/Template/shared/JobTemplateForm.jsx:462 +#: screens/Template/shared/JobTemplateForm.jsx:465 msgid "Verbosity" msgstr "详细程度" @@ -9500,7 +9505,7 @@ msgstr "查看调度" msgid "View Settings" msgstr "" -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "View Survey" msgstr "查看问卷调查" @@ -9513,7 +9518,7 @@ msgstr "查看 TACACS+ 设置" msgid "View Team Details" msgstr "查看团队详情" -#: screens/Template/Template.jsx:265 +#: screens/Template/Template.jsx:259 #: screens/Template/WorkflowJobTemplate.jsx:279 msgid "View Template Details" msgstr "查看模板详情" @@ -9585,7 +9590,7 @@ msgstr "查看所有项目。" msgid "View all Teams." msgstr "查看所有团队。" -#: screens/Template/Template.jsx:185 +#: screens/Template/Template.jsx:176 #: screens/Template/WorkflowJobTemplate.jsx:180 msgid "View all Templates." msgstr "查看所有模板。" @@ -9610,8 +9615,8 @@ msgstr "查看所有凭证类型" msgid "View all execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:83 -#: screens/InstanceGroup/InstanceGroup.jsx:89 +#: screens/InstanceGroup/ContainerGroup.jsx:95 +#: screens/InstanceGroup/InstanceGroup.jsx:101 msgid "View all instance groups" msgstr "查看所有实例组" @@ -9735,7 +9740,7 @@ msgstr "Webhook 服务" msgid "Webhook URL" msgstr "Webhook URL" -#: screens/Template/shared/JobTemplateForm.jsx:655 +#: screens/Template/shared/JobTemplateForm.jsx:658 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:253 msgid "Webhook details" msgstr "Webhook 详情" @@ -9970,8 +9975,8 @@ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableTo msgstr "您没有权限删除 {pluralizedItemName}:{itemsUnableToDelete}" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:147 -msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." -msgstr "您没有权限删除 {pluralizedItemName}:{itemsUnableToDelete}" +#~ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." +#~ msgstr "您没有权限删除 {pluralizedItemName}:{itemsUnableToDelete}" #: components/DisassociateButton/DisassociateButton.jsx:50 msgid "You do not have permission to disassociate the following: {itemsUnableToDisassociate}" @@ -10007,12 +10012,12 @@ msgstr "放大" msgid "Zoom Out" msgstr "缩小" -#: screens/Template/shared/JobTemplateForm.jsx:753 +#: screens/Template/shared/JobTemplateForm.jsx:756 #: screens/Template/shared/WebhookSubForm.jsx:152 msgid "a new webhook key will be generated on save." msgstr "在保存时会生成一个新的 WEBHOOK 密钥" -#: screens/Template/shared/JobTemplateForm.jsx:750 +#: screens/Template/shared/JobTemplateForm.jsx:753 #: screens/Template/shared/WebhookSubForm.jsx:142 msgid "a new webhook url will be generated on save." msgstr "在保存时会生成一个新的 WEBHOOK url" @@ -10255,7 +10260,7 @@ msgstr "选择详细程度" msgid "social login" msgstr "社交登录" -#: screens/Template/shared/JobTemplateForm.jsx:344 +#: screens/Template/shared/JobTemplateForm.jsx:347 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:189 msgid "source control branch" msgstr "" @@ -10300,6 +10305,10 @@ msgstr "" msgid "{0, plural, one {Delete Group?} other {Delete Groups?}}" msgstr "" +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:179 +msgid "{0, plural, one {The following Instance Group cannot be deleted} other {The following Instance Groups cannot be deleted}}" +msgstr "" + #: screens/Inventory/InventoryList/InventoryList.jsx:225 msgid "{0, plural, one {The inventory will be in a pending status until the final delete is processed.} other {The inventories will be in a pending status until the final delete is processed.}}" msgstr "" @@ -10328,7 +10337,7 @@ msgstr "" msgid "{0, plural, one {This execution environment is currently being used by other resources. Are you sure you want to delete it?} other {These execution environments could be in use by other resources that rely on them. Are you sure you want to delete them anyway?}}" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:228 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:257 msgid "{0, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}" msgstr "" diff --git a/awx/ui_next/src/locales/zu/messages.po b/awx/ui_next/src/locales/zu/messages.po index 1c1466a993..12ac252f57 100644 --- a/awx/ui_next/src/locales/zu/messages.po +++ b/awx/ui_next/src/locales/zu/messages.po @@ -46,7 +46,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:46 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:75 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:106 -#: screens/Template/shared/JobTemplateForm.jsx:211 +#: screens/Template/shared/JobTemplateForm.jsx:214 msgid "0 (Normal)" msgstr "" @@ -67,7 +67,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:47 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:76 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:107 -#: screens/Template/shared/JobTemplateForm.jsx:212 +#: screens/Template/shared/JobTemplateForm.jsx:215 msgid "1 (Verbose)" msgstr "" @@ -83,7 +83,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:48 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:77 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:108 -#: screens/Template/shared/JobTemplateForm.jsx:213 +#: screens/Template/shared/JobTemplateForm.jsx:216 msgid "2 (More Verbose)" msgstr "" @@ -94,7 +94,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:49 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:78 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:109 -#: screens/Template/shared/JobTemplateForm.jsx:214 +#: screens/Template/shared/JobTemplateForm.jsx:217 msgid "3 (Debug)" msgstr "" @@ -105,7 +105,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:50 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:79 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:215 +#: screens/Template/shared/JobTemplateForm.jsx:218 msgid "4 (Connection Debug)" msgstr "" @@ -158,7 +158,7 @@ msgstr "" #: screens/Project/Projects.jsx:29 #: screens/Team/Team.jsx:56 #: screens/Team/Teams.jsx:30 -#: screens/Template/Template.jsx:145 +#: screens/Template/Template.jsx:136 #: screens/Template/Templates.jsx:44 #: screens/Template/WorkflowJobTemplate.jsx:122 msgid "Access" @@ -201,7 +201,7 @@ msgstr "" #: screens/Host/HostGroups/HostGroupsList.jsx:182 #: screens/Host/HostList/HostList.jsx:168 #: screens/Host/HostList/HostListItem.jsx:42 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:246 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:275 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:77 #: screens/InstanceGroup/Instances/InstanceList.jsx:217 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:153 @@ -307,7 +307,7 @@ msgstr "" msgid "Add a new node between these two nodes" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:159 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:187 msgid "Add container group" msgstr "" @@ -319,7 +319,7 @@ msgstr "" msgid "Add existing host" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:160 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:188 msgid "Add instance group" msgstr "" @@ -651,9 +651,9 @@ msgstr "" msgid "Azure AD settings" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:125 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:148 #: components/AddRole/AddResourceRole.jsx:286 -#: components/LaunchPrompt/LaunchPrompt.jsx:134 +#: components/LaunchPrompt/LaunchPrompt.jsx:128 #: components/Schedule/shared/SchedulePromptableFields.jsx:136 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:90 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:70 @@ -730,7 +730,7 @@ msgstr "" msgid "Back to Teams" msgstr "" -#: screens/Template/Template.jsx:138 +#: screens/Template/Template.jsx:129 #: screens/Template/WorkflowJobTemplate.jsx:115 msgid "Back to Templates" msgstr "" @@ -759,8 +759,8 @@ msgstr "" msgid "Back to execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:56 -#: screens/InstanceGroup/InstanceGroup.jsx:57 +#: screens/InstanceGroup/ContainerGroup.jsx:68 +#: screens/InstanceGroup/InstanceGroup.jsx:69 msgid "Back to instance groups" msgstr "" @@ -823,7 +823,7 @@ msgstr "" msgid "Cache timeout (seconds)" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:126 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:149 #: components/AddRole/AddResourceRole.jsx:287 #: components/AssociateModal/AssociateModal.jsx:116 #: components/AssociateModal/AssociateModal.jsx:121 @@ -833,7 +833,7 @@ msgstr "" #: components/DisassociateButton/DisassociateButton.jsx:125 #: components/FormActionGroup/FormActionGroup.jsx:24 #: components/FormActionGroup/FormActionGroup.jsx:29 -#: components/LaunchPrompt/LaunchPrompt.jsx:135 +#: components/LaunchPrompt/LaunchPrompt.jsx:129 #: components/Lookup/HostFilterLookup.jsx:350 #: components/Lookup/Lookup.jsx:186 #: components/PaginatedTable/ToolbarDeleteButton.jsx:281 @@ -958,7 +958,7 @@ msgid "" "logging aggregator host and logging aggregator type." msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:245 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:274 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:76 msgid "Capacity" msgstr "" @@ -1008,7 +1008,7 @@ msgid "Channel" msgstr "" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:102 -#: screens/Template/shared/JobTemplateForm.jsx:206 +#: screens/Template/shared/JobTemplateForm.jsx:209 msgid "Check" msgstr "" @@ -1041,7 +1041,7 @@ msgid "Choose a Webhook Service" msgstr "" #: components/LaunchPrompt/steps/OtherPromptsStep.jsx:95 -#: screens/Template/shared/JobTemplateForm.jsx:199 +#: screens/Template/shared/JobTemplateForm.jsx:202 msgid "Choose a job type" msgstr "" @@ -1167,6 +1167,7 @@ msgstr "" msgid "Collapse" msgstr "" +#: components/AdHocCommands/AdHocPreviewStep.jsx:8 #: components/JobList/JobList.jsx:186 #: components/JobList/JobListItem.jsx:37 #: screens/Job/JobDetail/JobDetail.jsx:81 @@ -1182,7 +1183,7 @@ msgstr "" #: components/PromptDetail/PromptWFJobTemplateDetail.jsx:36 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:138 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:61 -#: screens/Template/shared/JobTemplateForm.jsx:602 +#: screens/Template/shared/JobTemplateForm.jsx:605 msgid "Concurrent Jobs" msgstr "" @@ -1250,11 +1251,11 @@ msgstr "" msgid "Container group" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:81 +#: screens/InstanceGroup/ContainerGroup.jsx:93 msgid "Container group not found." msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:129 +#: components/LaunchPrompt/LaunchPrompt.jsx:123 #: components/Schedule/shared/SchedulePromptableFields.jsx:131 msgid "Content Loading" msgstr "" @@ -1275,7 +1276,7 @@ msgid "" "will produce as the playbook executes." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:465 +#: screens/Template/shared/JobTemplateForm.jsx:468 msgid "" "Control the level of output ansible will\n" "produce as the playbook executes." @@ -1340,7 +1341,7 @@ msgstr "" #~ msgid "Copyright 2019 Red Hat, Inc." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:406 +#: screens/Template/shared/JobTemplateForm.jsx:409 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:209 msgid "Create" msgstr "" @@ -1553,7 +1554,7 @@ msgstr "" #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:40 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:94 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:56 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:51 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:54 #: screens/Inventory/InventorySourceDetail/InventorySourceDetail.jsx:198 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:42 #: screens/Inventory/shared/InventorySourceSubForms/EC2SubForm.jsx:41 @@ -1600,11 +1601,11 @@ msgstr "" msgid "Credential passwords" msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:58 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:61 msgid "Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\". If left blank, the underlying Pod's service account will be used." msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:164 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:170 msgid "Credential to authenticate with a protected container registry." msgstr "" @@ -1614,7 +1615,7 @@ msgstr "" #: components/JobList/JobListItem.jsx:215 #: components/LaunchPrompt/steps/CredentialsStep.jsx:193 -#: components/LaunchPrompt/steps/useCredentialsStep.jsx:64 +#: components/LaunchPrompt/steps/useCredentialsStep.jsx:62 #: components/Lookup/MultiCredentialsLookup.jsx:139 #: components/Lookup/MultiCredentialsLookup.jsx:211 #: components/PromptDetail/PromptDetail.jsx:158 @@ -1629,12 +1630,12 @@ msgstr "" #: screens/Credential/Credentials.jsx:23 #: screens/Job/JobDetail/JobDetail.jsx:266 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:286 -#: screens/Template/shared/JobTemplateForm.jsx:374 +#: screens/Template/shared/JobTemplateForm.jsx:377 #: util/getRelatedResourceDeleteDetails.js:90 msgid "Credentials" msgstr "" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:54 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:53 msgid "Credentials that require passwords on launch are not permitted. Please remove or replace the following credentials with a credential of the same type in order to proceed: {0}" msgstr "" @@ -1642,7 +1643,7 @@ msgstr "" msgid "Current page" msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:83 msgid "Custom pod spec" msgstr "" @@ -1669,8 +1670,8 @@ msgstr "" msgid "Customize messages…" msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:66 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:67 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:69 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:70 msgid "Customize pod specification" msgstr "" @@ -1721,7 +1722,7 @@ msgid "Default" msgstr "" #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:39 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:195 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:209 msgid "Default Execution Environment" msgstr "" @@ -1755,7 +1756,7 @@ msgstr "" #: screens/Credential/CredentialDetail/CredentialDetail.jsx:299 #: screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx:126 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:137 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:116 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:117 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:125 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:138 #: screens/Inventory/InventoryGroups/InventoryGroupsList.jsx:100 @@ -1874,7 +1875,7 @@ msgstr "" msgid "Delete error" msgstr "" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:110 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:111 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:119 msgid "Delete instance group" msgstr "" @@ -1932,7 +1933,7 @@ msgstr "" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:207 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:220 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:265 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:294 msgid "Deletion error" msgstr "" @@ -1982,7 +1983,7 @@ msgstr "" #: screens/CredentialType/shared/CredentialTypeForm.jsx:32 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:62 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:152 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:142 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:147 #: screens/Host/HostDetail/HostDetail.jsx:81 #: screens/Host/HostList/HostList.jsx:150 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:78 @@ -2016,7 +2017,7 @@ msgstr "" #: screens/Template/Survey/SurveyQuestionForm.jsx:166 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:116 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:166 -#: screens/Template/shared/JobTemplateForm.jsx:246 +#: screens/Template/shared/JobTemplateForm.jsx:249 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:115 #: screens/User/UserOrganizations/UserOrganizationList.jsx:65 #: screens/User/UserOrganizations/UserOrganizationListItem.jsx:15 @@ -2058,8 +2059,8 @@ msgstr "" #~ msgid "Detail coming soon :)" #~ msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:61 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:71 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:62 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:72 #: components/ErrorDetail/ErrorDetail.jsx:73 #: components/Schedule/Schedule.jsx:66 #: screens/Application/Application/Application.jsx:77 @@ -2072,8 +2073,8 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironments.jsx:26 #: screens/Host/Host.jsx:52 #: screens/Host/Hosts.jsx:28 -#: screens/InstanceGroup/ContainerGroup.jsx:63 -#: screens/InstanceGroup/InstanceGroup.jsx:64 +#: screens/InstanceGroup/ContainerGroup.jsx:75 +#: screens/InstanceGroup/InstanceGroup.jsx:76 #: screens/InstanceGroup/InstanceGroups.jsx:30 #: screens/InstanceGroup/InstanceGroups.jsx:36 #: screens/Inventory/Inventories.jsx:60 @@ -2130,7 +2131,7 @@ msgstr "" #: screens/Setting/UI/UIDetail/UIDetail.jsx:61 #: screens/Team/Team.jsx:55 #: screens/Team/Teams.jsx:28 -#: screens/Template/Template.jsx:144 +#: screens/Template/Template.jsx:135 #: screens/Template/Templates.jsx:42 #: screens/Template/WorkflowJobTemplate.jsx:121 #: screens/User/User.jsx:63 @@ -2211,7 +2212,7 @@ msgstr "" msgid "Discard local changes before syncing" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:480 +#: screens/Template/shared/JobTemplateForm.jsx:483 msgid "" "Divide the work done by this job template\n" "into the specified number of job slices, each running the\n" @@ -2526,7 +2527,7 @@ msgstr "" msgid "Enable Concurrent Jobs" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:609 +#: screens/Template/shared/JobTemplateForm.jsx:612 msgid "Enable Fact Storage" msgstr "" @@ -2539,8 +2540,8 @@ msgstr "" #~ msgid "Enable Privilege Escalation" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:583 #: screens/Template/shared/JobTemplateForm.jsx:586 +#: screens/Template/shared/JobTemplateForm.jsx:589 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:225 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:228 msgid "Enable Webhook" @@ -2575,7 +2576,7 @@ msgstr "" #~ msgid "Enable simplified login for your {brandName} applications" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:589 +#: screens/Template/shared/JobTemplateForm.jsx:592 msgid "Enable webhook for this template." msgstr "" @@ -2614,7 +2615,7 @@ msgstr "" #~ "template." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:569 +#: screens/Template/shared/JobTemplateForm.jsx:572 msgid "" "Enables creation of a provisioning\n" "callback URL. Using the URL a host can contact {0}\n" @@ -2787,9 +2788,9 @@ msgstr "" #: screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx:210 #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:146 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:223 -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:124 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:125 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:133 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:268 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:297 #: screens/Job/JobOutput/JobOutput.jsx:761 msgid "Error" msgstr "" @@ -2820,8 +2821,8 @@ msgstr "" #: components/InstanceToggle/InstanceToggle.jsx:61 #: components/JobList/JobList.jsx:280 #: components/JobList/JobList.jsx:291 -#: components/LaunchButton/LaunchButton.jsx:173 -#: components/LaunchPrompt/LaunchPrompt.jsx:72 +#: components/LaunchButton/LaunchButton.jsx:161 +#: components/LaunchPrompt/LaunchPrompt.jsx:66 #: components/NotificationList/NotificationList.jsx:246 #: components/PaginatedTable/ToolbarDeleteButton.jsx:205 #: components/ResourceAccessList/ResourceAccessList.jsx:234 @@ -2948,7 +2949,7 @@ msgstr "" msgid "Examples include:" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:109 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:114 msgid "Examples:" msgstr "" @@ -2964,11 +2965,11 @@ msgstr "" msgid "Execute when the parent node results in a successful state." msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:85 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:86 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:40 #: components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.jsx:103 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:197 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:189 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:211 msgid "Execution Environment" msgstr "" @@ -2980,7 +2981,7 @@ msgstr "" #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:91 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:92 #: components/AdHocCommands/AdHocExecutionEnvironmentStep.jsx:104 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:144 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:158 #: routeConfig.jsx:140 #: screens/ActivityStream/ActivityStream.jsx:208 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:122 @@ -3258,7 +3259,7 @@ msgstr "" msgid "Failed to delete one or more hosts." msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:300 msgid "Failed to delete one or more instance groups." msgstr "" @@ -3399,7 +3400,7 @@ msgid "Failed to fetch the updated project data." msgstr "" #: components/AdHocCommands/AdHocCommands.jsx:113 -#: components/LaunchButton/LaunchButton.jsx:176 +#: components/LaunchButton/LaunchButton.jsx:164 #: screens/ManagementJob/ManagementJobList/ManagementJobList.jsx:130 msgid "Failed to launch job." msgstr "" @@ -3487,7 +3488,7 @@ msgstr "" msgid "Field ends with value." msgstr "" -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:77 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:80 msgid "Field for passing a custom Kubernetes or OpenShift Pod specification." msgstr "" @@ -3566,7 +3567,7 @@ msgstr "" msgid "Follow" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:254 +#: screens/Template/shared/JobTemplateForm.jsx:257 msgid "" "For job templates, select run to execute\n" "the playbook. Select check to only check playbook syntax,\n" @@ -3589,7 +3590,7 @@ msgstr "" #: components/AdHocCommands/AdHocDetailsStep.jsx:180 #: components/PromptDetail/PromptJobTemplateDetail.jsx:154 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:230 -#: screens/Template/shared/JobTemplateForm.jsx:425 +#: screens/Template/shared/JobTemplateForm.jsx:428 msgid "Forks" msgstr "" @@ -3696,7 +3697,7 @@ msgstr "" msgid "GitLab" msgstr "" -#: components/Lookup/ExecutionEnvironmentLookup.jsx:192 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:206 msgid "Global Default Execution Environment" msgstr "" @@ -3705,7 +3706,7 @@ msgstr "" msgid "Globally Available" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:148 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:154 msgid "Globally available execution environment can not be reassigned to a specific Organization" msgstr "" @@ -3803,7 +3804,7 @@ msgstr "" msgid "Hide" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Hide description" msgstr "" @@ -3828,7 +3829,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:161 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:238 -#: screens/Template/shared/JobTemplateForm.jsx:642 +#: screens/Template/shared/JobTemplateForm.jsx:645 msgid "Host Config Key" msgstr "" @@ -4041,7 +4042,7 @@ msgid "" "default group for the inventory." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:559 +#: screens/Template/shared/JobTemplateForm.jsx:562 msgid "" "If enabled, run this playbook as an\n" "administrator." @@ -4054,7 +4055,7 @@ msgid "" "--diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:499 +#: screens/Template/shared/JobTemplateForm.jsx:502 msgid "" "If enabled, show the changes made by\n" "Ansible tasks, where supported. This is equivalent\n" @@ -4065,7 +4066,7 @@ msgstr "" msgid "If enabled, show the changes made by Ansible tasks, where supported. This is equivalent to Ansible’s --diff mode." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:603 +#: screens/Template/shared/JobTemplateForm.jsx:606 msgid "" "If enabled, simultaneous runs of this job\n" "template will be allowed." @@ -4075,7 +4076,7 @@ msgstr "" msgid "If enabled, simultaneous runs of this workflow job template will be allowed." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:610 +#: screens/Template/shared/JobTemplateForm.jsx:613 msgid "" "If enabled, this will store gathered facts so they can\n" "be viewed at the host level. Facts are persisted and\n" @@ -4108,7 +4109,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:140 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentList.jsx:159 #: screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.jsx:62 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:99 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:103 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:91 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvList.jsx:110 #: screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.jsx:16 @@ -4214,8 +4215,8 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:227 #: routeConfig.jsx:130 #: screens/ActivityStream/ActivityStream.jsx:196 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:134 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:224 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:170 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:253 #: screens/InstanceGroup/InstanceGroups.jsx:16 #: screens/InstanceGroup/InstanceGroups.jsx:26 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:91 @@ -4233,7 +4234,7 @@ msgstr "" msgid "Instance group" msgstr "" -#: screens/InstanceGroup/InstanceGroup.jsx:87 +#: screens/InstanceGroup/InstanceGroup.jsx:99 msgid "Instance group not found." msgstr "" @@ -4245,8 +4246,8 @@ msgstr "" msgid "Instance groups" msgstr "" -#: screens/InstanceGroup/InstanceGroup.jsx:69 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:244 +#: screens/InstanceGroup/InstanceGroup.jsx:81 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:273 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:75 #: screens/InstanceGroup/InstanceGroups.jsx:31 #: screens/InstanceGroup/Instances/InstanceList.jsx:156 @@ -4462,7 +4463,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:160 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:235 -#: screens/Template/shared/JobTemplateForm.jsx:479 +#: screens/Template/shared/JobTemplateForm.jsx:482 msgid "Job Slicing" msgstr "" @@ -4477,7 +4478,7 @@ msgstr "" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:334 #: screens/Job/JobDetail/JobDetail.jsx:294 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:337 -#: screens/Template/shared/JobTemplateForm.jsx:520 +#: screens/Template/shared/JobTemplateForm.jsx:523 msgid "Job Tags" msgstr "" @@ -4492,7 +4493,7 @@ msgstr "" msgid "Job Template" msgstr "" -#: components/LaunchPrompt/steps/credentialsValidator.jsx:40 +#: components/LaunchPrompt/steps/credentialsValidator.jsx:39 msgid "Job Template default credentials must be replaced with one of the same type. Please select a credential for the following types in order to proceed: {0}" msgstr "" @@ -4520,7 +4521,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:156 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:183 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:142 -#: screens/Template/shared/JobTemplateForm.jsx:251 +#: screens/Template/shared/JobTemplateForm.jsx:254 msgid "Job Type" msgstr "" @@ -4545,8 +4546,8 @@ msgstr "" #: screens/Dashboard/shared/LineChart.jsx:69 #: screens/Host/Host.jsx:67 #: screens/Host/Hosts.jsx:31 -#: screens/InstanceGroup/ContainerGroup.jsx:68 -#: screens/InstanceGroup/InstanceGroup.jsx:74 +#: screens/InstanceGroup/ContainerGroup.jsx:80 +#: screens/InstanceGroup/InstanceGroup.jsx:86 #: screens/InstanceGroup/InstanceGroups.jsx:32 #: screens/InstanceGroup/InstanceGroups.jsx:37 #: screens/Inventory/Inventories.jsx:59 @@ -4558,7 +4559,7 @@ msgstr "" #: screens/Job/Jobs.jsx:25 #: screens/Setting/SettingList.jsx:85 #: screens/Setting/Settings.jsx:71 -#: screens/Template/Template.jsx:164 +#: screens/Template/Template.jsx:155 #: screens/Template/Templates.jsx:46 #: screens/Template/WorkflowJobTemplate.jsx:145 msgid "Jobs" @@ -4656,7 +4657,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:279 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:304 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:193 -#: screens/Template/shared/JobTemplateForm.jsx:392 +#: screens/Template/shared/JobTemplateForm.jsx:395 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:195 msgid "Labels" msgstr "" @@ -4744,7 +4745,7 @@ msgstr "" msgid "Last used" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:106 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:130 #: components/LaunchPrompt/steps/usePreviewStep.jsx:35 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:54 #: screens/ManagementJob/ManagementJobList/LaunchManagementPrompt.jsx:57 @@ -4782,7 +4783,7 @@ msgstr "" msgid "Launch workflow" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:106 +#: components/LaunchPrompt/LaunchPrompt.jsx:100 msgid "Launch | {0}" msgstr "" @@ -4843,7 +4844,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:221 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:231 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:152 -#: screens/Template/shared/JobTemplateForm.jsx:441 +#: screens/Template/shared/JobTemplateForm.jsx:444 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:156 msgid "Limit" msgstr "" @@ -4916,7 +4917,8 @@ msgstr "" msgid "Machine Credential" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:98 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:102 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:112 msgid "Machine credential" msgstr "" @@ -5029,13 +5031,13 @@ msgstr "" msgid "Minimum length" msgstr "" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:33 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:34 msgid "" "Minimum number of instances that will be automatically\n" "assigned to this group when new instances come online." msgstr "" -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:43 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:44 msgid "" "Minimum percentage of all instances that will be automatically\n" "assigned to this group when new instances come online." @@ -5194,8 +5196,8 @@ msgstr "" #: components/Lookup/ApplicationLookup.jsx:111 #: components/Lookup/CredentialLookup.jsx:186 #: components/Lookup/CredentialLookup.jsx:201 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:161 -#: components/Lookup/ExecutionEnvironmentLookup.jsx:168 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:175 +#: components/Lookup/ExecutionEnvironmentLookup.jsx:182 #: components/Lookup/HostFilterLookup.jsx:79 #: components/Lookup/HostFilterLookup.jsx:364 #: components/Lookup/HostListItem.jsx:8 @@ -5268,7 +5270,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:91 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateList.jsx:117 #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:9 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:91 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:94 #: screens/Host/HostDetail/HostDetail.jsx:74 #: screens/Host/HostGroups/HostGroupItem.jsx:28 #: screens/Host/HostGroups/HostGroupsList.jsx:164 @@ -5278,14 +5280,14 @@ msgstr "" #: screens/Host/HostList/HostListItem.jsx:28 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:45 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:50 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:240 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:269 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:63 #: screens/InstanceGroup/Instances/InstanceList.jsx:163 #: screens/InstanceGroup/Instances/InstanceList.jsx:170 #: screens/InstanceGroup/Instances/InstanceList.jsx:211 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:117 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:45 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:20 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:47 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:21 #: screens/Inventory/InventoryDetail/InventoryDetail.jsx:74 #: screens/Inventory/InventoryGroupDetail/InventoryGroupDetail.jsx:35 #: screens/Inventory/InventoryGroupHosts/InventoryGroupHostList.jsx:190 @@ -5364,7 +5366,7 @@ msgstr "" #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:76 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx:96 -#: screens/Template/shared/JobTemplateForm.jsx:238 +#: screens/Template/shared/JobTemplateForm.jsx:241 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:107 #: screens/User/UserOrganizations/UserOrganizationList.jsx:60 #: screens/User/UserOrganizations/UserOrganizationList.jsx:64 @@ -5407,11 +5409,12 @@ msgstr "" msgid "New" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:80 -#: components/AdHocCommands/AdHocCommandsWizard.jsx:92 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:81 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:93 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:116 #: components/AddRole/AddResourceRole.jsx:215 #: components/AddRole/AddResourceRole.jsx:250 -#: components/LaunchPrompt/LaunchPrompt.jsx:136 +#: components/LaunchPrompt/LaunchPrompt.jsx:130 #: components/Schedule/shared/SchedulePromptableFields.jsx:138 #: screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.jsx:66 #: screens/Setting/Subscription/SubscriptionEdit/SubscriptionEdit.jsx:59 @@ -5613,7 +5616,7 @@ msgstr "" #: screens/Organization/Organizations.jsx:33 #: screens/Project/Project.jsx:111 #: screens/Project/Projects.jsx:30 -#: screens/Template/Template.jsx:150 +#: screens/Template/Template.jsx:141 #: screens/Template/Templates.jsx:45 #: screens/Template/WorkflowJobTemplate.jsx:127 msgid "Notifications" @@ -5652,7 +5655,7 @@ msgstr "" #: screens/Setting/shared/SharedFields.jsx:144 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:53 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "Off" msgstr "" @@ -5670,7 +5673,7 @@ msgstr "" #: screens/Setting/shared/SharedFields.jsx:143 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 #: screens/Template/Survey/SurveyToolbar.jsx:52 -#: screens/Template/shared/JobTemplateForm.jsx:505 +#: screens/Template/shared/JobTemplateForm.jsx:508 msgid "On" msgstr "" @@ -5708,7 +5711,7 @@ msgstr "" msgid "Option Details" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:395 +#: screens/Template/shared/JobTemplateForm.jsx:398 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:198 msgid "" "Optional labels that describe this job template,\n" @@ -5723,9 +5726,9 @@ msgstr "" #: components/NotificationList/NotificationList.jsx:220 #: components/NotificationList/NotificationListItem.jsx:31 #: screens/Credential/shared/TypeInputsSubForm.jsx:47 -#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:62 +#: screens/InstanceGroup/shared/ContainerGroupForm.jsx:65 #: screens/Project/shared/ProjectSubForms/SharedFields.jsx:67 -#: screens/Template/shared/JobTemplateForm.jsx:552 +#: screens/Template/shared/JobTemplateForm.jsx:555 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:222 msgid "Options" msgstr "" @@ -5887,7 +5890,7 @@ msgstr "" #~ "Ansible Tower documentation for example syntax." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:414 +#: screens/Template/shared/JobTemplateForm.jsx:417 msgid "" "Pass extra command line variables to the playbook. This is the\n" "-e or --extra-vars command line parameter for ansible-playbook.\n" @@ -5964,7 +5967,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:153 #: screens/Job/JobDetail/JobDetail.jsx:220 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:229 -#: screens/Template/shared/JobTemplateForm.jsx:355 +#: screens/Template/shared/JobTemplateForm.jsx:358 msgid "Playbook" msgstr "" @@ -6041,7 +6044,7 @@ msgstr "" msgid "Please select a day number between 1 and 31." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:170 +#: screens/Template/shared/JobTemplateForm.jsx:173 msgid "Please select an Inventory or check the Prompt on Launch option" msgstr "" @@ -6062,17 +6065,17 @@ msgid "Pod spec override" msgstr "" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:64 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:28 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:29 msgid "Policy instance minimum" msgstr "" #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:69 -#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:38 +#: screens/InstanceGroup/shared/InstanceGroupForm.jsx:39 msgid "Policy instance percentage" msgstr "" -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:56 -#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:62 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:63 +#: screens/Credential/shared/CredentialPlugins/CredentialPluginField.jsx:69 msgid "Populate field from an external secret management system" msgstr "" @@ -6124,6 +6127,7 @@ msgstr "" msgid "Press Enter to edit. Press ESC to stop editing." msgstr "" +#: components/AdHocCommands/AdHocCommandsWizard.jsx:121 #: components/LaunchPrompt/steps/usePreviewStep.jsx:23 #: screens/Template/Survey/SurveyList.jsx:162 #: screens/Template/Survey/SurveyList.jsx:164 @@ -6136,7 +6140,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:65 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:128 -#: screens/Template/shared/JobTemplateForm.jsx:558 +#: screens/Template/shared/JobTemplateForm.jsx:561 msgid "Privilege Escalation" msgstr "" @@ -6235,7 +6239,7 @@ msgstr "" #~ msgid "Prompts" #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:444 +#: screens/Template/shared/JobTemplateForm.jsx:447 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:159 msgid "" "Provide a host pattern to further constrain\n" @@ -6284,23 +6288,23 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:164 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:240 -#: screens/Template/shared/JobTemplateForm.jsx:629 +#: screens/Template/shared/JobTemplateForm.jsx:632 msgid "Provisioning Callback URL" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:624 +#: screens/Template/shared/JobTemplateForm.jsx:627 msgid "Provisioning Callback details" msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:70 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:133 -#: screens/Template/shared/JobTemplateForm.jsx:563 #: screens/Template/shared/JobTemplateForm.jsx:566 +#: screens/Template/shared/JobTemplateForm.jsx:569 msgid "Provisioning Callbacks" msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx:88 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:129 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:134 msgid "Pull" msgstr "" @@ -6399,7 +6403,7 @@ msgstr "" msgid "Refer to the" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:434 +#: screens/Template/shared/JobTemplateForm.jsx:437 msgid "" "Refer to the Ansible documentation for details\n" "about the configuration file." @@ -6425,7 +6429,7 @@ msgstr "" msgid "Regions" msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:157 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:163 msgid "Registry credential" msgstr "" @@ -6678,7 +6682,7 @@ msgstr "" #: screens/Credential/shared/ExternalTestModal.jsx:89 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.jsx:49 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/RunStep.jsx:24 -#: screens/Template/shared/JobTemplateForm.jsx:202 +#: screens/Template/shared/JobTemplateForm.jsx:205 msgid "Run" msgstr "" @@ -6689,7 +6693,7 @@ msgstr "" msgid "Run Command" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:123 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:146 msgid "Run command" msgstr "" @@ -6719,7 +6723,7 @@ msgstr "" msgid "Running Handlers" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:242 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:271 #: screens/InstanceGroup/Instances/InstanceList.jsx:213 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:123 msgid "Running Jobs" @@ -6843,7 +6847,7 @@ msgstr "" #: screens/Project/Project.jsx:123 #: screens/Project/Projects.jsx:33 #: screens/Schedule/AllSchedules.jsx:25 -#: screens/Template/Template.jsx:157 +#: screens/Template/Template.jsx:148 #: screens/Template/Templates.jsx:50 #: screens/Template/WorkflowJobTemplate.jsx:134 msgid "Schedules" @@ -6969,7 +6973,7 @@ msgstr "" msgid "Select a Resource Type" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:335 +#: screens/Template/shared/JobTemplateForm.jsx:338 msgid "" "Select a branch for the job template. This branch is applied to\n" "all job template nodes that prompt for a branch." @@ -7008,7 +7012,7 @@ msgstr "" msgid "Select a playbook" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:323 +#: screens/Template/shared/JobTemplateForm.jsx:326 msgid "Select a project before editing the execution environment." msgstr "" @@ -7045,7 +7049,7 @@ msgstr "" #: components/Schedule/shared/ScheduleForm.jsx:85 #: components/Schedule/shared/ScheduleForm.jsx:89 #: screens/Credential/shared/CredentialForm.jsx:47 -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:80 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:83 #: screens/Inventory/shared/InventoryForm.jsx:59 #: screens/Inventory/shared/InventorySourceSubForms/AzureSubForm.jsx:50 #: screens/Inventory/shared/InventorySourceSubForms/GCESubForm.jsx:50 @@ -7100,7 +7104,7 @@ msgstr "" msgid "Select an organization before editing the default execution environment." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:377 +#: screens/Template/shared/JobTemplateForm.jsx:380 msgid "" "Select credentials for accessing the nodes this job will be ran\n" "against. You can only select one credential of each type. For machine credentials (SSH),\n" @@ -7171,7 +7175,7 @@ msgstr "" msgid "Select the Instance Groups for this Inventory to run on." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:514 +#: screens/Template/shared/JobTemplateForm.jsx:517 msgid "" "Select the Instance Groups for this Organization\n" "to run on." @@ -7201,12 +7205,12 @@ msgstr "" #~ msgid "Select the default execution environment for this project." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:322 +#: screens/Template/shared/JobTemplateForm.jsx:325 msgid "Select the execution environment for this job template." msgstr "" #: components/Lookup/InventoryLookup.jsx:110 -#: screens/Template/shared/JobTemplateForm.jsx:286 +#: screens/Template/shared/JobTemplateForm.jsx:289 msgid "" "Select the inventory containing the hosts\n" "you want this job to manage." @@ -7224,11 +7228,11 @@ msgstr "" msgid "Select the inventory that this host will belong to." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:358 +#: screens/Template/shared/JobTemplateForm.jsx:361 msgid "Select the playbook to be executed by this job." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:301 +#: screens/Template/shared/JobTemplateForm.jsx:304 msgid "" "Select the project containing the playbook\n" "you want this job to execute." @@ -7374,7 +7378,7 @@ msgstr "" #: components/PromptDetail/PromptJobTemplateDetail.jsx:158 #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:314 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:234 -#: screens/Template/shared/JobTemplateForm.jsx:496 +#: screens/Template/shared/JobTemplateForm.jsx:499 msgid "Show Changes" msgstr "" @@ -7387,7 +7391,7 @@ msgstr "" msgid "Show changes" msgstr "" -#: components/LaunchPrompt/LaunchPrompt.jsx:111 +#: components/LaunchPrompt/LaunchPrompt.jsx:105 #: components/Schedule/shared/SchedulePromptableFields.jsx:113 msgid "Show description" msgstr "" @@ -7452,7 +7456,7 @@ msgstr "" #: components/Schedule/ScheduleDetail/ScheduleDetail.jsx:352 #: screens/Job/JobDetail/JobDetail.jsx:312 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:352 -#: screens/Template/shared/JobTemplateForm.jsx:536 +#: screens/Template/shared/JobTemplateForm.jsx:539 msgid "Skip Tags" msgstr "" @@ -7465,7 +7469,7 @@ msgstr "" #~ "of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:539 +#: screens/Template/shared/JobTemplateForm.jsx:542 msgid "" "Skip tags are useful when you have a\n" "large playbook, and you want to skip specific parts of a\n" @@ -7553,7 +7557,7 @@ msgstr "" #: screens/Project/ProjectDetail/ProjectDetail.jsx:203 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:228 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:138 -#: screens/Template/shared/JobTemplateForm.jsx:332 +#: screens/Template/shared/JobTemplateForm.jsx:335 msgid "Source Control Branch" msgstr "" @@ -7848,7 +7852,7 @@ msgid "Sunday" msgstr "" #: components/LaunchPrompt/steps/useSurveyStep.jsx:26 -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/Templates.jsx:47 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "Survey" @@ -7959,7 +7963,7 @@ msgstr "" #~ "the usage of tags." #~ msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:523 +#: screens/Template/shared/JobTemplateForm.jsx:526 msgid "" "Tags are useful when you have a large\n" "playbook, and you want to run a specific part of a\n" @@ -8043,7 +8047,7 @@ msgstr "" msgid "Teams" msgstr "" -#: screens/Template/Template.jsx:184 +#: screens/Template/Template.jsx:175 #: screens/Template/WorkflowJobTemplate.jsx:179 msgid "Template not found." msgstr "" @@ -8126,7 +8130,7 @@ msgid "" "from 1 to 120 seconds." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:490 +#: screens/Template/shared/JobTemplateForm.jsx:493 msgid "" "The amount of time (in seconds) to run\n" "before the job is canceled. Defaults to 0 for no job\n" @@ -8162,7 +8166,7 @@ msgid "" "the branch needs to be \"pull/62/head\"." msgstr "" -#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:106 +#: screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.jsx:111 msgid "The full image location, including the container registry, image name, and version tag." msgstr "" @@ -8173,7 +8177,7 @@ msgid "" "documentation for more details." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:428 +#: screens/Template/shared/JobTemplateForm.jsx:431 msgid "" "The number of parallel or simultaneous\n" "processes to use while executing the playbook. An empty value,\n" @@ -8225,8 +8229,8 @@ msgid "" msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:155 -msgid "The tower instance group cannot be deleted." -msgstr "" +#~ msgid "The tower instance group cannot be deleted." +#~ msgstr "" #: screens/Project/shared/ProjectSubForms/ManualSubForm.jsx:47 msgid "" @@ -8304,7 +8308,7 @@ msgstr "" msgid "Third" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:153 +#: screens/Template/shared/JobTemplateForm.jsx:156 msgid "This Project needs to be updated" msgstr "" @@ -8326,7 +8330,7 @@ msgstr "" msgid "This action will disassociate the following:" msgstr "" -#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:114 +#: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:115 msgid "This container group is currently being by other resources. Are you sure you want to delete it?" msgstr "" @@ -8426,7 +8430,7 @@ msgid "This field must be greater than 0" msgstr "" #: components/LaunchPrompt/steps/useSurveyStep.jsx:111 -#: screens/Template/shared/JobTemplateForm.jsx:150 +#: screens/Template/shared/JobTemplateForm.jsx:153 #: screens/User/shared/UserForm.jsx:81 #: screens/User/shared/UserForm.jsx:92 #: util/validators.jsx:5 @@ -8502,7 +8506,8 @@ msgstr "" msgid "This schedule is missing required survey values" msgstr "" -#: components/AdHocCommands/AdHocCommandsWizard.jsx:64 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:65 +#: components/AdHocCommands/AdHocCommandsWizard.jsx:105 #: components/LaunchPrompt/steps/StepName.jsx:27 msgid "This step contains errors" msgstr "" @@ -8569,7 +8574,7 @@ msgstr "" #: screens/NotificationTemplate/shared/TypeInputsSubForm.jsx:112 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:233 #: screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/NodeTypeStep.jsx:169 -#: screens/Template/shared/JobTemplateForm.jsx:489 +#: screens/Template/shared/JobTemplateForm.jsx:492 msgid "Timeout" msgstr "" @@ -8672,7 +8677,7 @@ msgstr "" msgid "Top Pagination" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:243 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:272 #: screens/InstanceGroup/Instances/InstanceList.jsx:214 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:124 msgid "Total Jobs" @@ -8747,7 +8752,7 @@ msgstr "" #: screens/ExecutionEnvironment/ExecutionEnvironmentTemplate/ExecutionEnvironmentTemplateListItem.jsx:12 #: screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.jsx:50 #: screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx:55 -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:241 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:270 #: screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.jsx:68 #: screens/InstanceGroup/Instances/InstanceList.jsx:212 #: screens/InstanceGroup/Instances/InstanceListItem.jsx:120 @@ -9039,7 +9044,7 @@ msgstr "" #: screens/Job/JobDetail/JobDetail.jsx:341 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:367 #: screens/Template/WorkflowJobTemplateDetail/WorkflowJobTemplateDetail.jsx:209 -#: screens/Template/shared/JobTemplateForm.jsx:412 +#: screens/Template/shared/JobTemplateForm.jsx:415 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:217 msgid "Variables" msgstr "" @@ -9070,7 +9075,7 @@ msgstr "" #: screens/Inventory/shared/InventorySourceSubForms/SharedFields.jsx:90 #: screens/Job/JobDetail/JobDetail.jsx:222 #: screens/Template/JobTemplateDetail/JobTemplateDetail.jsx:232 -#: screens/Template/shared/JobTemplateForm.jsx:462 +#: screens/Template/shared/JobTemplateForm.jsx:465 msgid "Verbosity" msgstr "" @@ -9173,7 +9178,7 @@ msgstr "" msgid "View Settings" msgstr "" -#: screens/Template/Template.jsx:168 +#: screens/Template/Template.jsx:159 #: screens/Template/WorkflowJobTemplate.jsx:149 msgid "View Survey" msgstr "" @@ -9186,7 +9191,7 @@ msgstr "" msgid "View Team Details" msgstr "" -#: screens/Template/Template.jsx:265 +#: screens/Template/Template.jsx:259 #: screens/Template/WorkflowJobTemplate.jsx:279 msgid "View Template Details" msgstr "" @@ -9258,7 +9263,7 @@ msgstr "" msgid "View all Teams." msgstr "" -#: screens/Template/Template.jsx:185 +#: screens/Template/Template.jsx:176 #: screens/Template/WorkflowJobTemplate.jsx:180 msgid "View all Templates." msgstr "" @@ -9283,8 +9288,8 @@ msgstr "" msgid "View all execution environments" msgstr "" -#: screens/InstanceGroup/ContainerGroup.jsx:83 -#: screens/InstanceGroup/InstanceGroup.jsx:89 +#: screens/InstanceGroup/ContainerGroup.jsx:95 +#: screens/InstanceGroup/InstanceGroup.jsx:101 msgid "View all instance groups" msgstr "" @@ -9408,7 +9413,7 @@ msgstr "" msgid "Webhook URL" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:655 +#: screens/Template/shared/JobTemplateForm.jsx:658 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:253 msgid "Webhook details" msgstr "" @@ -9633,8 +9638,8 @@ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableTo msgstr "" #: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:147 -msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." -msgstr "" +#~ msgid "You do not have permission to delete {pluralizedItemName}: {itemsUnableToDelete}." +#~ msgstr "" #: components/DisassociateButton/DisassociateButton.jsx:50 msgid "You do not have permission to disassociate the following: {itemsUnableToDisassociate}" @@ -9670,12 +9675,12 @@ msgstr "" msgid "Zoom Out" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:753 +#: screens/Template/shared/JobTemplateForm.jsx:756 #: screens/Template/shared/WebhookSubForm.jsx:152 msgid "a new webhook key will be generated on save." msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:750 +#: screens/Template/shared/JobTemplateForm.jsx:753 #: screens/Template/shared/WebhookSubForm.jsx:142 msgid "a new webhook url will be generated on save." msgstr "" @@ -9918,7 +9923,7 @@ msgstr "" msgid "social login" msgstr "" -#: screens/Template/shared/JobTemplateForm.jsx:344 +#: screens/Template/shared/JobTemplateForm.jsx:347 #: screens/Template/shared/WorkflowJobTemplateForm.jsx:189 msgid "source control branch" msgstr "" @@ -9963,6 +9968,10 @@ msgstr "" msgid "{0, plural, one {Delete Group?} other {Delete Groups?}}" msgstr "" +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:179 +msgid "{0, plural, one {The following Instance Group cannot be deleted} other {The following Instance Groups cannot be deleted}}" +msgstr "" + #: screens/Inventory/InventoryList/InventoryList.jsx:225 msgid "{0, plural, one {The inventory will be in a pending status until the final delete is processed.} other {The inventories will be in a pending status until the final delete is processed.}}" msgstr "" @@ -9991,7 +10000,7 @@ msgstr "" msgid "{0, plural, one {This execution environment is currently being used by other resources. Are you sure you want to delete it?} other {These execution environments could be in use by other resources that rely on them. Are you sure you want to delete them anyway?}}" msgstr "" -#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:228 +#: screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx:257 msgid "{0, plural, one {This instance group is currently being by other resources. Are you sure you want to delete it?} other {Deleting these instance groups could impact other resources that rely on them. Are you sure you want to delete anyway?}}" msgstr "" diff --git a/awx/ui_next/src/screens/InstanceGroup/ContainerGroup.jsx b/awx/ui_next/src/screens/InstanceGroup/ContainerGroup.jsx index 640380b983..3ebbbb7035 100644 --- a/awx/ui_next/src/screens/InstanceGroup/ContainerGroup.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/ContainerGroup.jsx @@ -13,7 +13,7 @@ import { CaretLeftIcon } from '@patternfly/react-icons'; import { Card, PageSection } from '@patternfly/react-core'; import useRequest from '../../util/useRequest'; -import { InstanceGroupsAPI } from '../../api'; +import { InstanceGroupsAPI, SettingsAPI } from '../../api'; import RoutedTabs from '../../components/RoutedTabs'; import ContentError from '../../components/ContentError'; import ContentLoading from '../../components/ContentLoading'; @@ -30,12 +30,24 @@ function ContainerGroup({ setBreadcrumb }) { isLoading, error: contentError, request: fetchInstanceGroups, - result: instanceGroup, + result: { instanceGroup, defaultExecution }, } = useRequest( useCallback(async () => { - const { data } = await InstanceGroupsAPI.readDetail(id); - return data; - }, [id]) + const [ + { data }, + { + data: { DEFAULT_EXECUTION_QUEUE_NAME }, + }, + ] = await Promise.all([ + InstanceGroupsAPI.readDetail(id), + SettingsAPI.readAll(), + ]); + return { + instanceGroup: data, + defaultExecution: DEFAULT_EXECUTION_QUEUE_NAME, + }; + }, [id]), + { instanceGroup: null, defaultExecution: '' } ); useEffect(() => { @@ -109,10 +121,16 @@ function ContainerGroup({ setBreadcrumb }) { {instanceGroup && ( <> - + - + )} - {instanceGroup.summary_fields.user_capabilities && + {name !== defaultExecution && + instanceGroup.summary_fields.user_capabilities && instanceGroup.summary_fields.user_capabilities.delete && ( + > + + )} ); diff --git a/awx/ui_next/src/screens/InstanceGroup/InstanceGroup.jsx b/awx/ui_next/src/screens/InstanceGroup/InstanceGroup.jsx index 187109d8c6..20587bb75d 100644 --- a/awx/ui_next/src/screens/InstanceGroup/InstanceGroup.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/InstanceGroup.jsx @@ -31,16 +31,13 @@ function InstanceGroup({ setBreadcrumb }) { isLoading, error: contentError, request: fetchInstanceGroups, - result: { instanceGroup, defaultControlPlane, defaultExecution }, + result: { instanceGroup, defaultControlPlane }, } = useRequest( useCallback(async () => { const [ { data }, { - data: { - DEFAULT_CONTROL_PLANE_QUEUE_NAME, - DEFAULT_EXECUTION_QUEUE_NAME, - }, + data: { DEFAULT_CONTROL_PLANE_QUEUE_NAME }, }, ] = await Promise.all([ InstanceGroupsAPI.readDetail(id), @@ -49,10 +46,9 @@ function InstanceGroup({ setBreadcrumb }) { return { instanceGroup: data, defaultControlPlane: DEFAULT_CONTROL_PLANE_QUEUE_NAME, - defaultExecution: DEFAULT_EXECUTION_QUEUE_NAME, }; }, [id]), - { instanceGroup: {}, defaultControlPlane: '', defaultExecution: '' } + { instanceGroup: null, defaultControlPlane: '' } ); useEffect(() => { @@ -133,12 +129,14 @@ function InstanceGroup({ setBreadcrumb }) { - + diff --git a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx index 5ba2ced4ab..3222078910 100644 --- a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.jsx @@ -7,6 +7,7 @@ import { Button } from '@patternfly/react-core'; import AlertModal from '../../../components/AlertModal'; import { CardBody, CardActionsRow } from '../../../components/Card'; +import ErrorDetail from '../../../components/ErrorDetail'; import DeleteButton from '../../../components/DeleteButton'; import { Detail, @@ -22,7 +23,7 @@ const Unavailable = styled.span` color: var(--pf-global--danger-color--200); `; -function InstanceGroupDetails({ instanceGroup }) { +function InstanceGroupDetails({ instanceGroup, defaultControlPlane }) { const { id, name } = instanceGroup; const history = useHistory(); @@ -110,7 +111,7 @@ function InstanceGroupDetails({ instanceGroup }) { {t`Edit`} )} - {name !== 'tower' && + {name !== defaultControlPlane && instanceGroup.summary_fields.user_capabilities && instanceGroup.summary_fields.user_capabilities.delete && ( + > + + )} ); diff --git a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupEdit/InstanceGroupEdit.jsx b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupEdit/InstanceGroupEdit.jsx index 166d8753f1..db736773a9 100644 --- a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupEdit/InstanceGroupEdit.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupEdit/InstanceGroupEdit.jsx @@ -5,11 +5,7 @@ import { CardBody } from '../../../components/Card'; import { InstanceGroupsAPI } from '../../../api'; import InstanceGroupForm from '../shared/InstanceGroupForm'; -function InstanceGroupEdit({ - instanceGroup, - defaultExecution, - defaultControlPlane, -}) { +function InstanceGroupEdit({ instanceGroup, defaultControlPlane }) { const history = useHistory(); const [submitError, setSubmitError] = useState(null); const detailsUrl = `/instance_groups/${instanceGroup.id}/details`; @@ -31,7 +27,6 @@ function InstanceGroupEdit({ ', () => { await act(async () => { wrapper = mountWithContexts( , @@ -77,7 +76,6 @@ describe('', () => { await act(async () => { towerWrapper = mountWithContexts( , @@ -94,28 +92,6 @@ describe('', () => { ).toEqual('controlplane'); }); - test('default instance group name can not be updated', async () => { - let towerWrapper; - await act(async () => { - towerWrapper = mountWithContexts( - , - { - context: { router: { history } }, - } - ); - }); - expect( - towerWrapper.find('input#instance-group-name').prop('disabled') - ).toBeTruthy(); - expect( - towerWrapper.find('input#instance-group-name').prop('value') - ).toEqual('default'); - }); - test('handleSubmit should call the api and redirect to details page', async () => { await act(async () => { wrapper.find('InstanceGroupForm').invoke('onSubmit')( diff --git a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx index c6de8a9f3e..0bc7745260 100644 --- a/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx +++ b/awx/ui_next/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupList.jsx @@ -55,6 +55,30 @@ function InstanceGroupList({ }) { const location = useLocation(); const match = useRouteMatch(); + const { + error: protectedItemsError, + isloading: isLoadingProtectedItems, + request: fetchProtectedItems, + result: { defaultControlPlane, defaultExecution }, + } = useRequest( + useCallback(async () => { + const { + data: { + DEFAULT_CONTROL_PLANE_QUEUE_NAME, + DEFAULT_EXECUTION_QUEUE_NAME, + }, + } = await SettingsAPI.readAll(); + return { + defaultControlPlane: DEFAULT_CONTROL_PLANE_QUEUE_NAME, + defaultExecution: DEFAULT_EXECUTION_QUEUE_NAME, + }; + }, []), + { defaultControlPlane: '', defaultExecution: '' } + ); + + useEffect(() => { + fetchProtectedItems(); + }, [fetchProtectedItems]); const { error: contentError, @@ -66,32 +90,18 @@ function InstanceGroupList({ actions, relatedSearchableKeys, searchableKeys, - defaultControlPlane, - defaultExecution, }, } = useRequest( useCallback(async () => { const params = parseQueryString(QS_CONFIG, location.search); - const [ - response, - responseActions, - { - data: { - DEFAULT_CONTROL_PLANE_QUEUE_NAME, - DEFAULT_EXECUTION_QUEUE_NAME, - }, - }, - ] = await Promise.all([ + const [response, responseActions] = await Promise.all([ InstanceGroupsAPI.read(params), InstanceGroupsAPI.readOptions(), - SettingsAPI.readAll(), ]); return { instanceGroups: response.data.results, - defaultControlPlane: DEFAULT_CONTROL_PLANE_QUEUE_NAME, - defaultExecution: DEFAULT_EXECUTION_QUEUE_NAME, instanceGroupsCount: response.data.count, actions: responseActions.data.actions, relatedSearchableKeys: ( @@ -165,15 +175,17 @@ function InstanceGroupList({ const pluralizedItemName = t`Instance Groups`; let errorMessageDelete = ''; + const notdeletedable = selected.filter( + i => i.name === defaultControlPlane || i.name === defaultExecution + ); - if ( - modifiedSelected.some( - item => - item.name === defaultControlPlane || item.name === defaultExecution - ) - ) { - errorMessageDelete = errorMessageDelete.concat( - t`The following Instance Group cannot be deleted` + if (notdeletedable.length) { + errorMessageDelete = ( + ); } @@ -227,9 +239,14 @@ function InstanceGroupList({ Date: Thu, 24 Jun 2021 16:55:36 -0400 Subject: [PATCH 40/43] Make sure that validation of managed EEs makes sense - missing fields in a patch request should be ignored - compare the organization pks, if present --- awx/api/views/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/awx/api/views/__init__.py b/awx/api/views/__init__.py index 678fe8317b..a781057671 100644 --- a/awx/api/views/__init__.py +++ b/awx/api/views/__init__.py @@ -710,8 +710,12 @@ class ExecutionEnvironmentDetail(RetrieveUpdateDestroyAPIView): fields_to_check = ['name', 'description', 'organization', 'image', 'credential'] if instance.managed and request.user.can_access(models.ExecutionEnvironment, 'change', instance): for field in fields_to_check: + if kwargs.get('partial') and field not in request.data: + continue left = getattr(instance, field, None) - right = request.data.get(field, None) + if hasattr(left, 'id'): + left = left.id + right = request.data.get(field) if left != right: raise PermissionDenied(_("Only the 'pull' field can be edited for managed execution environments.")) return super().update(request, *args, **kwargs) From 1ed170fff096dfdee01c6d6c449632c6ac72cff4 Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Fri, 25 Jun 2021 12:32:33 -0400 Subject: [PATCH 41/43] Dont overwrite result_traceback if it was already set. --- awx/main/tasks.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index b5d1ae397f..26f5da81d1 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -3006,7 +3006,8 @@ class AWXReceptorJob: if state_name == 'Succeeded': return res - raise RuntimeError(detail) + if self.task.instance.result_traceback is None: + raise RuntimeError(detail) return res From 40f5ff362cad91e13531184dab0ff70ed0b4d73a Mon Sep 17 00:00:00 2001 From: Jeff Bradberry Date: Fri, 25 Jun 2021 13:49:57 -0400 Subject: [PATCH 42/43] Bump ansible-runner to 2.0.0.0rc3 --- requirements/requirements.in | 2 +- requirements/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements/requirements.in b/requirements/requirements.in index 9aebd41631..f33f7df959 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -1,5 +1,5 @@ aiohttp -ansible-runner==2.0.0.0rc2 +ansible-runner==2.0.0.0rc3 ansiconv==1.0.0 # UPGRADE BLOCKER: from 2013, consider replacing instead of upgrading asciichartpy autobahn>=20.12.3 # CVE-2020-35678 diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 7c175e4ebd..819c97f2f3 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -4,7 +4,7 @@ aiohttp==3.6.2 # via -r /awx_devel/requirements/requirements.in aioredis==1.3.1 # via channels-redis -ansible-runner==2.0.0.0rc2 +ansible-runner==2.0.0.0rc3 # via -r /awx_devel/requirements/requirements.in ansiconv==1.0.0 # via -r /awx_devel/requirements/requirements.in From f126a6343b9dabc5919c3e4ab35fb51a74495779 Mon Sep 17 00:00:00 2001 From: Alan Rominger Date: Mon, 28 Jun 2021 09:19:34 -0400 Subject: [PATCH 43/43] Fix bug setting execution_node to null (not blank) (#5169) --- awx/main/tasks.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 26f5da81d1..e07b2e5a51 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -2081,17 +2081,15 @@ class RunProjectUpdate(BaseTask): if settings.IS_K8S: instance_group = InventoryUpdate(inventory_source=inv_src).preferred_instance_groups[0] - execution_node = None else: instance_group = project_update.instance_group - execution_node = project_update.execution_node local_inv_update = inv_src.create_inventory_update( _eager_fields=dict( launch_type='scm', status='running', instance_group=instance_group, - execution_node=execution_node, + execution_node=project_update.execution_node, source_project_update=project_update, celery_task_id=project_update.celery_task_id, )