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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/job_templates_controller.rb +3 -0
  3. data/app/views/api/v2/job_invocations/main.json.rabl +1 -1
  4. data/lib/foreman_remote_execution/engine.rb +1 -1
  5. data/lib/foreman_remote_execution/version.rb +1 -1
  6. data/locale/foreman_remote_execution.pot +138 -135
  7. data/package.json +8 -7
  8. data/webpack/JobInvocationDetail/JobAdditionInfo.js +4 -4
  9. data/webpack/JobInvocationDetail/JobInvocationDetail.scss +5 -5
  10. data/webpack/JobInvocationDetail/JobInvocationHostTable.js +7 -4
  11. data/webpack/JobInvocationDetail/JobInvocationHostTableToolbar.js +8 -3
  12. data/webpack/JobInvocationDetail/JobInvocationToolbarButtons.js +3 -5
  13. data/webpack/JobInvocationDetail/TemplateInvocationComponents/OutputToggleGroup.js +1 -1
  14. data/webpack/JobInvocationDetail/TemplateInvocationComponents/PreviewTemplate.js +3 -10
  15. data/webpack/JobInvocationDetail/TemplateInvocationComponents/TemplateActionButtons.js +5 -5
  16. data/webpack/JobInvocationDetail/TemplateInvocationComponents/index.scss +1 -1
  17. data/webpack/JobInvocationDetail/__tests__/MainInformation.test.js +6 -6
  18. data/webpack/JobInvocationDetail/__tests__/TemplateInvocation.test.js +1 -1
  19. data/webpack/JobInvocationDetail/__tests__/fixtures.js +1 -0
  20. data/webpack/JobInvocationDetail/index.js +14 -13
  21. data/webpack/JobWizard/Footer.js +2 -4
  22. data/webpack/JobWizard/JobWizard.js +1 -1
  23. data/webpack/JobWizard/JobWizard.scss +19 -19
  24. data/webpack/JobWizard/JobWizardPageRerun.js +22 -16
  25. data/webpack/JobWizard/PermissionDenied.js +15 -11
  26. data/webpack/JobWizard/__tests__/integration.test.js +10 -8
  27. data/webpack/JobWizard/steps/AdvancedFields/DescriptionField.js +26 -14
  28. data/webpack/JobWizard/steps/AdvancedFields/Fields.js +5 -5
  29. data/webpack/JobWizard/steps/AdvancedFields/__tests__/AdvancedFields.test.js +14 -12
  30. data/webpack/JobWizard/steps/HostsAndInputs/SelectAPI.js +1 -1
  31. data/webpack/JobWizard/steps/HostsAndInputs/SelectGQL.js +1 -1
  32. data/webpack/JobWizard/steps/HostsAndInputs/__tests__/HostsAndInputs.test.js +5 -5
  33. data/webpack/JobWizard/steps/HostsAndInputs/index.js +41 -36
  34. data/webpack/JobWizard/steps/ReviewDetails/ReviewDetails.test.js +3 -3
  35. data/webpack/JobWizard/steps/ReviewDetails/index.js +1 -1
  36. data/webpack/JobWizard/steps/Schedule/PurposeField.js +1 -1
  37. data/webpack/JobWizard/steps/Schedule/RepeatCron.js +1 -1
  38. data/webpack/JobWizard/steps/Schedule/RepeatDaily.js +1 -1
  39. data/webpack/JobWizard/steps/Schedule/RepeatHour.js +6 -4
  40. data/webpack/JobWizard/steps/Schedule/RepeatMonth.js +1 -1
  41. data/webpack/JobWizard/steps/Schedule/RepeatWeek.js +1 -1
  42. data/webpack/JobWizard/steps/Schedule/ScheduleFuture.js +10 -3
  43. data/webpack/JobWizard/steps/Schedule/ScheduleRecurring.js +29 -19
  44. data/webpack/JobWizard/steps/form/DateTimePicker.js +1 -1
  45. data/webpack/JobWizard/steps/form/FormHelpers.js +7 -4
  46. data/webpack/JobWizard/steps/form/Formatter.js +3 -1
  47. data/webpack/JobWizard/steps/form/GroupedSelectField.js +3 -3
  48. data/webpack/JobWizard/steps/form/NumberInput.js +17 -7
  49. data/webpack/JobWizard/steps/form/ResourceSelect.js +8 -4
  50. data/webpack/JobWizard/steps/form/SearchSelect.js +6 -2
  51. data/webpack/JobWizard/steps/form/SelectField.js +3 -2
  52. data/webpack/react_app/components/FeaturesDropdown/index.js +1 -1
  53. data/webpack/react_app/components/FeaturesDropdown/index.scss +2 -2
  54. data/webpack/react_app/components/HostKebab/KebabItems.js +1 -1
  55. data/webpack/react_app/components/RecentJobsCard/RecentJobsCard.js +2 -1
  56. data/webpack/react_app/components/RecentJobsCard/RecentJobsTable.js +3 -3
  57. data/webpack/react_app/components/RecentJobsCard/styles.scss +3 -3
  58. data/webpack/react_app/components/RegistrationExtension/RexInterface.js +5 -3
  59. data/webpack/react_app/components/RegistrationExtension/RexPull.js +1 -1
  60. data/webpack/react_app/components/RegistrationExtension/__tests__/__snapshots__/RexInterface.test.js.snap +6 -6
  61. 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={newValue => setValue({ ...values, [name]: newValue })}
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
- FormGroup,
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 { FormGroup, TextInput, ValidatedOptions } from '@patternfly/react-core';
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 { Select, SelectOption, SelectVariant } from '@patternfly/react-core';
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 { Select, SelectOption, SelectVariant } from '@patternfly/react-core';
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, Select, SelectOption } from '@patternfly/react-core';
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"
@@ -6,7 +6,7 @@ import {
6
6
  Dropdown,
7
7
  DropdownToggle,
8
8
  DropdownToggleAction,
9
- } from '@patternfly/react-core';
9
+ } from '@patternfly/react-core/deprecated';
10
10
  import { push } from 'connected-react-router';
11
11
 
12
12
  import { useAPI } from 'foremanReact/common/hooks/API/APIHooks';
@@ -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-c-dropdown__menu-item--Color);
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 { DropdownItem, Tabs, Tab, TabTitleText } from '@patternfly/react-core';
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 { TableComposable, Tr, Tbody, Td } from '@patternfly/react-table';
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
- <TableComposable
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
- </TableComposable>
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-c-form__group-label-help"
23
+ className="pf-v5-cform__group-label-help"
24
24
  onClick={e => e.preventDefault()}
25
25
  >
26
- <HelpIcon noVerticalAlign />
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-c-form__group-label-help"
16
+ className="pf-v5-cform__group-label-help"
17
17
  onClick={[Function]}
18
18
  >
19
- <HelpIcon
20
- color="currentColor"
21
- noVerticalAlign={true}
22
- size="sm"
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: 15.0.2
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-04 00:00:00.000000000 Z
10
+ date: 2025-03-25 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: deface