mirror of
https://github.com/ansible/awx.git
synced 2026-04-05 01:59:25 -02:30
fix blur behavior/error messages in JT form
This commit is contained in:
@@ -16,6 +16,7 @@ class InventoryLookup extends React.Component {
|
|||||||
value,
|
value,
|
||||||
tooltip,
|
tooltip,
|
||||||
onChange,
|
onChange,
|
||||||
|
onBlur,
|
||||||
required,
|
required,
|
||||||
isValid,
|
isValid,
|
||||||
helperTextInvalid,
|
helperTextInvalid,
|
||||||
@@ -37,6 +38,7 @@ class InventoryLookup extends React.Component {
|
|||||||
name="inventory"
|
name="inventory"
|
||||||
value={value}
|
value={value}
|
||||||
onLookupSave={onChange}
|
onLookupSave={onChange}
|
||||||
|
onBlur={onBlur}
|
||||||
getItems={getInventories}
|
getItems={getInventories}
|
||||||
required={required}
|
required={required}
|
||||||
qsNamespace="inventory"
|
qsNamespace="inventory"
|
||||||
|
|||||||
@@ -233,16 +233,19 @@ class JobTemplateForm extends Component {
|
|||||||
render={({ form }) => (
|
render={({ form }) => (
|
||||||
<InventoryLookup
|
<InventoryLookup
|
||||||
value={inventory}
|
value={inventory}
|
||||||
|
onBlur={() => form.setFieldTouched('inventory')}
|
||||||
tooltip={i18n._(t`Select the inventory containing the hosts
|
tooltip={i18n._(t`Select the inventory containing the hosts
|
||||||
you want this job to manage.`)}
|
you want this job to manage.`)}
|
||||||
|
isValid={!form.touched.inventory || !form.errors.inventory}
|
||||||
|
helperTextInvalid={form.errors.inventory}
|
||||||
onChange={value => {
|
onChange={value => {
|
||||||
form.setFieldValue('inventory', value.id);
|
form.setFieldValue('inventory', value.id);
|
||||||
form.setFieldValue('organizationId', value.organization);
|
form.setFieldValue('organizationId', value.organization);
|
||||||
this.setState({ inventory: value });
|
this.setState({ inventory: value });
|
||||||
}}
|
}}
|
||||||
isValid={!form.errors.inventory}
|
|
||||||
helperTextInvalid={form.errors.inventory}
|
|
||||||
required
|
required
|
||||||
|
touched={form.touched.inventory}
|
||||||
|
error={form.errors.inventory}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
@@ -251,12 +254,12 @@ class JobTemplateForm extends Component {
|
|||||||
validate={this.handleProjectValidation()}
|
validate={this.handleProjectValidation()}
|
||||||
render={({ form }) => (
|
render={({ form }) => (
|
||||||
<ProjectLookup
|
<ProjectLookup
|
||||||
helperTextInvalid={form.errors.project}
|
|
||||||
isValid={!form.errors.project}
|
|
||||||
value={project}
|
value={project}
|
||||||
onBlur={handleBlur}
|
onBlur={() => form.setFieldTouched('project')}
|
||||||
tooltip={i18n._(t`Select the project containing the playbook
|
tooltip={i18n._(t`Select the project containing the playbook
|
||||||
you want this job to execute.`)}
|
you want this job to execute.`)}
|
||||||
|
isValid={!form.touched.project || !form.errors.project}
|
||||||
|
helperTextInvalid={form.errors.project}
|
||||||
onChange={value => {
|
onChange={value => {
|
||||||
form.setFieldValue('project', value.id);
|
form.setFieldValue('project', value.id);
|
||||||
this.setState({ project: value });
|
this.setState({ project: value });
|
||||||
@@ -289,6 +292,7 @@ class JobTemplateForm extends Component {
|
|||||||
isValid={isValid}
|
isValid={isValid}
|
||||||
form={form}
|
form={form}
|
||||||
field={field}
|
field={field}
|
||||||
|
onBlur={() => form.setFieldTouched('playbook')}
|
||||||
onError={err => this.setState({ contentError: err })}
|
onError={err => this.setState({ contentError: err })}
|
||||||
/>
|
/>
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
|
|||||||
@@ -5,7 +5,15 @@ import { t } from '@lingui/macro';
|
|||||||
import AnsibleSelect from '@components/AnsibleSelect';
|
import AnsibleSelect from '@components/AnsibleSelect';
|
||||||
import { ProjectsAPI } from '@api';
|
import { ProjectsAPI } from '@api';
|
||||||
|
|
||||||
function PlaybookSelect({ projectId, isValid, form, field, onError, i18n }) {
|
function PlaybookSelect({
|
||||||
|
projectId,
|
||||||
|
isValid,
|
||||||
|
form,
|
||||||
|
field,
|
||||||
|
onBlur,
|
||||||
|
onError,
|
||||||
|
i18n,
|
||||||
|
}) {
|
||||||
const [options, setOptions] = useState([]);
|
const [options, setOptions] = useState([]);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!projectId) {
|
if (!projectId) {
|
||||||
@@ -40,6 +48,7 @@ function PlaybookSelect({ projectId, isValid, form, field, onError, i18n }) {
|
|||||||
isValid={isValid}
|
isValid={isValid}
|
||||||
form={form}
|
form={form}
|
||||||
{...field}
|
{...field}
|
||||||
|
onBlur={onBlur}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user