foreman_remote_execution 15.0.2 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/api/v2/job_templates_controller.rb +3 -0
- data/app/views/api/v2/job_invocations/main.json.rabl +1 -1
- data/lib/foreman_remote_execution/engine.rb +1 -1
- data/lib/foreman_remote_execution/version.rb +1 -1
- data/locale/foreman_remote_execution.pot +138 -135
- data/package.json +8 -7
- data/webpack/JobInvocationDetail/JobAdditionInfo.js +4 -4
- data/webpack/JobInvocationDetail/JobInvocationDetail.scss +5 -5
- data/webpack/JobInvocationDetail/JobInvocationHostTable.js +7 -4
- data/webpack/JobInvocationDetail/JobInvocationHostTableToolbar.js +8 -3
- data/webpack/JobInvocationDetail/JobInvocationToolbarButtons.js +3 -5
- data/webpack/JobInvocationDetail/TemplateInvocationComponents/OutputToggleGroup.js +1 -1
- data/webpack/JobInvocationDetail/TemplateInvocationComponents/PreviewTemplate.js +3 -10
- data/webpack/JobInvocationDetail/TemplateInvocationComponents/TemplateActionButtons.js +5 -5
- data/webpack/JobInvocationDetail/TemplateInvocationComponents/index.scss +1 -1
- data/webpack/JobInvocationDetail/__tests__/MainInformation.test.js +6 -6
- data/webpack/JobInvocationDetail/__tests__/TemplateInvocation.test.js +1 -1
- data/webpack/JobInvocationDetail/__tests__/fixtures.js +1 -0
- data/webpack/JobInvocationDetail/index.js +14 -13
- data/webpack/JobWizard/Footer.js +2 -4
- data/webpack/JobWizard/JobWizard.js +1 -1
- data/webpack/JobWizard/JobWizard.scss +19 -19
- data/webpack/JobWizard/JobWizardPageRerun.js +22 -16
- data/webpack/JobWizard/PermissionDenied.js +15 -11
- data/webpack/JobWizard/__tests__/integration.test.js +10 -8
- data/webpack/JobWizard/steps/AdvancedFields/DescriptionField.js +26 -14
- data/webpack/JobWizard/steps/AdvancedFields/Fields.js +5 -5
- data/webpack/JobWizard/steps/AdvancedFields/__tests__/AdvancedFields.test.js +14 -12
- data/webpack/JobWizard/steps/HostsAndInputs/SelectAPI.js +1 -1
- data/webpack/JobWizard/steps/HostsAndInputs/SelectGQL.js +1 -1
- data/webpack/JobWizard/steps/HostsAndInputs/__tests__/HostsAndInputs.test.js +5 -5
- data/webpack/JobWizard/steps/HostsAndInputs/index.js +41 -36
- data/webpack/JobWizard/steps/ReviewDetails/ReviewDetails.test.js +3 -3
- data/webpack/JobWizard/steps/ReviewDetails/index.js +1 -1
- data/webpack/JobWizard/steps/Schedule/PurposeField.js +1 -1
- data/webpack/JobWizard/steps/Schedule/RepeatCron.js +1 -1
- data/webpack/JobWizard/steps/Schedule/RepeatDaily.js +1 -1
- data/webpack/JobWizard/steps/Schedule/RepeatHour.js +6 -4
- data/webpack/JobWizard/steps/Schedule/RepeatMonth.js +1 -1
- data/webpack/JobWizard/steps/Schedule/RepeatWeek.js +1 -1
- data/webpack/JobWizard/steps/Schedule/ScheduleFuture.js +10 -3
- data/webpack/JobWizard/steps/Schedule/ScheduleRecurring.js +29 -19
- data/webpack/JobWizard/steps/form/DateTimePicker.js +1 -1
- data/webpack/JobWizard/steps/form/FormHelpers.js +7 -4
- data/webpack/JobWizard/steps/form/Formatter.js +3 -1
- data/webpack/JobWizard/steps/form/GroupedSelectField.js +3 -3
- data/webpack/JobWizard/steps/form/NumberInput.js +17 -7
- data/webpack/JobWizard/steps/form/ResourceSelect.js +8 -4
- data/webpack/JobWizard/steps/form/SearchSelect.js +6 -2
- data/webpack/JobWizard/steps/form/SelectField.js +3 -2
- data/webpack/react_app/components/FeaturesDropdown/index.js +1 -1
- data/webpack/react_app/components/FeaturesDropdown/index.scss +2 -2
- data/webpack/react_app/components/HostKebab/KebabItems.js +1 -1
- data/webpack/react_app/components/RecentJobsCard/RecentJobsCard.js +2 -1
- data/webpack/react_app/components/RecentJobsCard/RecentJobsTable.js +3 -3
- data/webpack/react_app/components/RecentJobsCard/styles.scss +3 -3
- data/webpack/react_app/components/RegistrationExtension/RexInterface.js +5 -3
- data/webpack/react_app/components/RegistrationExtension/RexPull.js +1 -1
- data/webpack/react_app/components/RegistrationExtension/__tests__/__snapshots__/RexInterface.test.js.snap +6 -6
- metadata +2 -2
@@ -127,7 +127,9 @@ export const formatter = (input, values, setValue) => {
|
|
127
127
|
rows={2}
|
128
128
|
id={id}
|
129
129
|
value={value}
|
130
|
-
onChange={
|
130
|
+
onChange={(_event, newValue) =>
|
131
|
+
setValue({ ...values, [name]: newValue })
|
132
|
+
}
|
131
133
|
/>
|
132
134
|
</FormGroup>
|
133
135
|
);
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import React, { useState } from 'react';
|
2
2
|
import PropTypes from 'prop-types';
|
3
|
+
import { FormGroup } from '@patternfly/react-core';
|
3
4
|
import {
|
4
5
|
SelectOption,
|
5
6
|
Select,
|
6
7
|
SelectGroup,
|
7
8
|
SelectVariant,
|
8
|
-
|
9
|
-
} from '@patternfly/react-core';
|
9
|
+
} from '@patternfly/react-core/deprecated';
|
10
10
|
|
11
11
|
export const GroupedSelectField = ({
|
12
12
|
label,
|
@@ -62,7 +62,7 @@ export const GroupedSelectField = ({
|
|
62
62
|
ouiaId={fieldId}
|
63
63
|
isGrouped
|
64
64
|
variant={SelectVariant.typeahead}
|
65
|
-
onToggle={setIsOpen}
|
65
|
+
onToggle={(_event, val) => setIsOpen(val)}
|
66
66
|
onFilter={onFilter}
|
67
67
|
isOpen={isOpen}
|
68
68
|
onSelect={() => null}
|
@@ -1,6 +1,13 @@
|
|
1
1
|
import React, { useState } from 'react';
|
2
2
|
import PropTypes from 'prop-types';
|
3
|
-
import {
|
3
|
+
import {
|
4
|
+
FormGroup,
|
5
|
+
TextInput,
|
6
|
+
ValidatedOptions,
|
7
|
+
FormHelperText,
|
8
|
+
HelperText,
|
9
|
+
HelperTextItem,
|
10
|
+
} from '@patternfly/react-core';
|
4
11
|
import { translate as __ } from 'foremanReact/common/I18n';
|
5
12
|
import { isPositiveNumber } from './FormHelpers';
|
6
13
|
|
@@ -8,17 +15,13 @@ export const NumberInput = ({ formProps, inputProps }) => {
|
|
8
15
|
const [validated, setValidated] = useState();
|
9
16
|
const name = inputProps.id.replace(/-/g, ' ');
|
10
17
|
return (
|
11
|
-
<FormGroup
|
12
|
-
{...formProps}
|
13
|
-
helperTextInvalid={__('Has to be a positive number')}
|
14
|
-
validated={validated}
|
15
|
-
>
|
18
|
+
<FormGroup {...formProps}>
|
16
19
|
<TextInput
|
17
20
|
ouiaId={name}
|
18
21
|
aria-label={name}
|
19
22
|
type="text"
|
20
23
|
{...inputProps}
|
21
|
-
onChange={newValue => {
|
24
|
+
onChange={(_event, newValue) => {
|
22
25
|
setValidated(
|
23
26
|
isPositiveNumber(newValue) || newValue === ''
|
24
27
|
? ValidatedOptions.noval
|
@@ -27,6 +30,13 @@ export const NumberInput = ({ formProps, inputProps }) => {
|
|
27
30
|
inputProps.onChange(newValue);
|
28
31
|
}}
|
29
32
|
/>
|
33
|
+
{validated === 'error' && (
|
34
|
+
<FormHelperText>
|
35
|
+
<HelperText>
|
36
|
+
<HelperTextItem>{__('Has to be a positive number')}</HelperTextItem>
|
37
|
+
</HelperText>
|
38
|
+
</FormHelperText>
|
39
|
+
)}
|
30
40
|
</FormGroup>
|
31
41
|
);
|
32
42
|
};
|
@@ -1,6 +1,10 @@
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
2
2
|
import PropTypes from 'prop-types';
|
3
|
-
import {
|
3
|
+
import {
|
4
|
+
Select,
|
5
|
+
SelectOption,
|
6
|
+
SelectVariant,
|
7
|
+
} from '@patternfly/react-core/deprecated';
|
4
8
|
import Immutable from 'seamless-immutable';
|
5
9
|
import { sprintf, translate as __ } from 'foremanReact/common/I18n';
|
6
10
|
import { useForemanSettings } from 'foremanReact/Root/Context/ForemanContext';
|
@@ -104,9 +108,9 @@ export const ResourceSelect = ({
|
|
104
108
|
selections={selected}
|
105
109
|
loadingVariant={isLoading ? 'spinner' : null}
|
106
110
|
onSelect={onSelect}
|
107
|
-
onToggle={setIsOpen}
|
108
|
-
onFilter={onFilter}
|
109
|
-
onClear={onClear}
|
111
|
+
onToggle={(_event, val) => setIsOpen(val)}
|
112
|
+
onFilter={(_event, val) => onFilter(val)}
|
113
|
+
onClear={(_event, val) => onClear(val)}
|
110
114
|
isOpen={isOpen}
|
111
115
|
className="without_select2"
|
112
116
|
maxHeight="45vh"
|
@@ -1,6 +1,10 @@
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
2
2
|
import PropTypes from 'prop-types';
|
3
|
-
import {
|
3
|
+
import {
|
4
|
+
Select,
|
5
|
+
SelectOption,
|
6
|
+
SelectVariant,
|
7
|
+
} from '@patternfly/react-core/deprecated';
|
4
8
|
import Immutable from 'seamless-immutable';
|
5
9
|
import { sprintf, translate as __ } from 'foremanReact/common/I18n';
|
6
10
|
import { DEBOUNCE_API } from '../../JobWizardConstants';
|
@@ -87,7 +91,7 @@ export const SearchSelect = ({
|
|
87
91
|
}
|
88
92
|
loadingVariant={isLoading ? 'spinner' : null}
|
89
93
|
onSelect={onSelect}
|
90
|
-
onToggle={setIsOpen}
|
94
|
+
onToggle={(_event, val) => setIsOpen(val)}
|
91
95
|
isOpen={isOpen}
|
92
96
|
className="without_select2"
|
93
97
|
maxHeight="45vh"
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import React, { useState } from 'react';
|
2
|
-
import { FormGroup
|
2
|
+
import { FormGroup } from '@patternfly/react-core';
|
3
|
+
import { Select, SelectOption } from '@patternfly/react-core/deprecated';
|
3
4
|
import PropTypes from 'prop-types';
|
4
5
|
|
5
6
|
export const SelectField = ({
|
@@ -40,7 +41,7 @@ export const SelectField = ({
|
|
40
41
|
ouiaId={fieldId}
|
41
42
|
selections={value}
|
42
43
|
onSelect={onSelect}
|
43
|
-
onToggle={setIsOpen}
|
44
|
+
onToggle={(_event, val) => setIsOpen(val)}
|
44
45
|
isOpen={isOpen}
|
45
46
|
className="without_select2"
|
46
47
|
maxHeight="45vh"
|
@@ -1,10 +1,10 @@
|
|
1
|
-
#schedule-a-job-dropdown ul.pf-c-dropdown__menu {
|
1
|
+
#schedule-a-job-dropdown ul.pf-v5-c-dropdown__menu {
|
2
2
|
padding-left: 0;
|
3
3
|
li {
|
4
4
|
display: unset;
|
5
5
|
a {
|
6
6
|
font-size: 16px;
|
7
|
-
color: var(--pf-
|
7
|
+
color: var(--pf-v5-cdropdown__menu-item--Color);
|
8
8
|
font-weight: 300;
|
9
9
|
}
|
10
10
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { useSelector } from 'react-redux';
|
3
|
-
import { DropdownItem } from '@patternfly/react-core';
|
3
|
+
import { DropdownItem } from '@patternfly/react-core/deprecated';
|
4
4
|
import { CodeIcon } from '@patternfly/react-icons';
|
5
5
|
import { selectAPIResponse } from 'foremanReact/redux/API/APISelectors';
|
6
6
|
import { translate as __ } from 'foremanReact/common/I18n';
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React, { useState } from 'react';
|
3
3
|
|
4
|
-
import {
|
4
|
+
import { Tabs, Tab, TabTitleText } from '@patternfly/react-core';
|
5
|
+
import { DropdownItem } from '@patternfly/react-core/deprecated';
|
5
6
|
import CardTemplate from 'foremanReact/components/HostDetails/Templates/CardItem/CardTemplate';
|
6
7
|
import { translate as __ } from 'foremanReact/common/I18n';
|
7
8
|
import { foremanUrl } from 'foremanReact/common/helpers';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { Text, Bullseye } from '@patternfly/react-core';
|
4
|
-
import {
|
4
|
+
import { Table, Tr, Tbody, Td } from '@patternfly/react-table';
|
5
5
|
import { STATUS } from 'foremanReact/constants';
|
6
6
|
|
7
7
|
import RelativeDateTime from 'foremanReact/components/common/dates/RelativeDateTime';
|
@@ -41,7 +41,7 @@ const RecentJobsTable = ({ status, hostId }) => {
|
|
41
41
|
}
|
42
42
|
>
|
43
43
|
{!!jobs?.length && (
|
44
|
-
<
|
44
|
+
<Table
|
45
45
|
ouiaId="recent-jobs-table"
|
46
46
|
aria-label="recent-jobs-table"
|
47
47
|
variant="compact"
|
@@ -72,7 +72,7 @@ const RecentJobsTable = ({ status, hostId }) => {
|
|
72
72
|
)
|
73
73
|
)}
|
74
74
|
</Tbody>
|
75
|
-
</
|
75
|
+
</Table>
|
76
76
|
)}
|
77
77
|
</SkeletonLoader>
|
78
78
|
);
|
@@ -1,11 +1,11 @@
|
|
1
1
|
.job-success {
|
2
|
-
color: var(--pf-global--success-color--100);
|
2
|
+
color: var(--pf-v5-global--success-color--100);
|
3
3
|
}
|
4
4
|
|
5
5
|
.job-error {
|
6
|
-
color: var(--pf-global--danger-color--100);
|
6
|
+
color: var(--pf-v5-global--danger-color--100);
|
7
7
|
}
|
8
8
|
|
9
9
|
.job-info {
|
10
|
-
color: var(--pf-global--info-color--200);
|
10
|
+
color: var(--pf-v5-global--info-color--200);
|
11
11
|
}
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|
3
3
|
|
4
4
|
import { translate as __ } from 'foremanReact/common/I18n';
|
5
5
|
|
6
|
-
import { FormGroup, TextInput, Popover } from '@patternfly/react-core';
|
6
|
+
import { FormGroup, TextInput, Popover, Icon } from '@patternfly/react-core';
|
7
7
|
|
8
8
|
import { HelpIcon } from '@patternfly/react-icons';
|
9
9
|
|
@@ -20,10 +20,12 @@ const RexInterface = ({ isLoading, onChange }) => (
|
|
20
20
|
}
|
21
21
|
>
|
22
22
|
<button
|
23
|
-
className="pf-
|
23
|
+
className="pf-v5-cform__group-label-help"
|
24
24
|
onClick={e => e.preventDefault()}
|
25
25
|
>
|
26
|
-
<
|
26
|
+
<Icon isInline>
|
27
|
+
<HelpIcon />
|
28
|
+
</Icon>
|
27
29
|
</button>
|
28
30
|
</Popover>
|
29
31
|
}
|
@@ -59,7 +59,7 @@ const RexPull = ({ isLoading, onChange, pluginValues, configParams }) => (
|
|
59
59
|
<FormSelect
|
60
60
|
ouiaId="registration_setup_remote_execution_pull"
|
61
61
|
value={pluginValues.setupRemoteExecutionPull}
|
62
|
-
onChange={setupRemoteExecutionPull =>
|
62
|
+
onChange={(_event, setupRemoteExecutionPull) =>
|
63
63
|
onChange({ setupRemoteExecutionPull })
|
64
64
|
}
|
65
65
|
className="without_select2"
|
@@ -13,14 +13,14 @@ exports[`RexInterface renders 1`] = `
|
|
13
13
|
}
|
14
14
|
>
|
15
15
|
<button
|
16
|
-
className="pf-
|
16
|
+
className="pf-v5-cform__group-label-help"
|
17
17
|
onClick={[Function]}
|
18
18
|
>
|
19
|
-
<
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
<Icon
|
20
|
+
isInline={true}
|
21
|
+
>
|
22
|
+
<HelpIcon />
|
23
|
+
</Icon>
|
24
24
|
</button>
|
25
25
|
</Popover>
|
26
26
|
}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_remote_execution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 16.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Foreman Remote Execution team
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-03-
|
10
|
+
date: 2025-03-25 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: deface
|