import React from 'react';
import PropTypes from 'prop-types';
import { FormGroup, TextInput, Radio } from '@patternfly/react-core';
import { translate as __ } from 'foremanReact/common/I18n';
import { helpLabel, ResetDefault } from '../form/FormHelpers';
import { formatter } from '../form/Formatter';
import { NumberInput } from '../form/NumberInput';
export const EffectiveUserField = ({ value, setValue, defaultValue }) => (
}
>
setValue(newValue)}
/>
);
export const TimeoutToKillField = ({ value, setValue, defaultValue }) => (
),
}}
inputProps={{
value,
placeholder: __('For example: 1, 2, 3, 4, 5...'),
autoComplete: 'timeout-to-kill',
id: 'timeout-to-kill',
onChange: newValue => setValue(newValue),
}}
/>
);
export const TimeToPickupField = ({ value, setValue }) => (
setValue(newValue),
}}
/>
);
export const PasswordField = ({ value, setValue }) => (
setValue(newValue)}
/>
);
export const KeyPassphraseField = ({ value, setValue }) => (
setValue(newValue)}
/>
);
export const EffectiveUserPasswordField = ({ value, setValue }) => (
setValue(newValue)}
/>
);
export const ConcurrencyLevelField = ({ value, setValue, defaultValue }) => (
),
}}
inputProps={{
min: 1,
autoComplete: 'concurrency-level',
id: 'concurrency-level',
placeholder: __('For example: 1, 2, 3, 4, 5...'),
value,
onChange: newValue => setValue(newValue),
}}
/>
);
export const ExecutionOrderingField = ({ isRandomizedOrdering, setValue }) => (
- Ordered - executes the jobs on hosts in alphabetical order
- Randomized - randomizes the order in which jobs are executed on hosts
'
),
}}
/>,
'effective-user-password'
)}
isInline
>
setValue(false)}
id="execution-order-alphabetical"
label={__('Alphabetical')}
/>
setValue(true)}
id="execution-order-randomized"
label={__('Randomized')}
/>
);
export const TemplateInputsFields = ({ inputs, value, setValue }) => (
<>{inputs?.map(input => formatter(input, value, setValue))}>
);
export const SSHUserField = ({ value, setValue, defaultValue }) => (
}
>
setValue(newValue)}
/>
);
EffectiveUserField.propTypes = {
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
setValue: PropTypes.func.isRequired,
defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
};
EffectiveUserField.defaultProps = {
value: '',
defaultValue: null,
};
TimeoutToKillField.propTypes = EffectiveUserField.propTypes;
TimeoutToKillField.defaultProps = EffectiveUserField.defaultProps;
TimeToPickupField.propTypes = EffectiveUserField.propTypes;
TimeToPickupField.defaultProps = EffectiveUserField.defaultProps;
PasswordField.propTypes = EffectiveUserField.propTypes;
PasswordField.defaultProps = EffectiveUserField.defaultProps;
KeyPassphraseField.propTypes = EffectiveUserField.propTypes;
KeyPassphraseField.defaultProps = EffectiveUserField.defaultProps;
EffectiveUserPasswordField.propTypes = EffectiveUserField.propTypes;
EffectiveUserPasswordField.defaultProps = EffectiveUserField.defaultProps;
ConcurrencyLevelField.propTypes = EffectiveUserField.propTypes;
ConcurrencyLevelField.defaultProps = EffectiveUserField.defaultProps;
ExecutionOrderingField.propTypes = {
isRandomizedOrdering: PropTypes.bool,
setValue: PropTypes.func.isRequired,
};
ExecutionOrderingField.defaultProps = {
isRandomizedOrdering: false,
};
TemplateInputsFields.propTypes = {
inputs: PropTypes.array.isRequired,
value: PropTypes.object,
setValue: PropTypes.func.isRequired,
};
TemplateInputsFields.defaultProps = {
value: {},
};
SSHUserField.propTypes = EffectiveUserField.propTypes;
SSHUserField.defaultProps = EffectiveUserField.defaultProps;