mirror of
https://github.com/ansible/awx.git
synced 2026-05-13 04:17:36 -02:30
Merge pull request #106 from ansible/add-select-default-option
Add default option for AnsibleSelect dropdown.
This commit is contained in:
@@ -11,7 +11,7 @@ describe('<AnsibleSelect />', () => {
|
|||||||
value="foo"
|
value="foo"
|
||||||
name="bar"
|
name="bar"
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
labelName={label}
|
label={label}
|
||||||
data={mockData}
|
data={mockData}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -24,7 +24,7 @@ describe('<AnsibleSelect />', () => {
|
|||||||
value="foo"
|
value="foo"
|
||||||
name="bar"
|
name="bar"
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
labelName={label}
|
label={label}
|
||||||
data={mockData}
|
data={mockData}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -39,11 +39,24 @@ describe('<AnsibleSelect />', () => {
|
|||||||
value="foo"
|
value="foo"
|
||||||
name="bar"
|
name="bar"
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
labelName={label}
|
label={label}
|
||||||
data={null}
|
data={null}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(wrapper.find('FormGroup')).toHaveLength(0);
|
expect(wrapper.find('FormGroup')).toHaveLength(0);
|
||||||
expect(wrapper.find('Select')).toHaveLength(0);
|
expect(wrapper.find('Select')).toHaveLength(0);
|
||||||
});
|
});
|
||||||
|
test('Returns correct select options if defaultSelected props is passed', () => {
|
||||||
|
const wrapper = mount(
|
||||||
|
<AnsibleSelect
|
||||||
|
value="foo"
|
||||||
|
name="bar"
|
||||||
|
onChange={() => { }}
|
||||||
|
label={label}
|
||||||
|
data={mockData}
|
||||||
|
defaultSelected={mockData[1]}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
expect(wrapper.find('Select')).toHaveLength(1);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -32,22 +32,20 @@ class AnsibleSelect extends React.Component {
|
|||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { count } = this.state;
|
const { count } = this.state;
|
||||||
const { value, data } = this.props;
|
const { label = '', value, data, defaultSelected } = this.props;
|
||||||
let elem;
|
let elem;
|
||||||
if (count > 1) {
|
if (count > 1) {
|
||||||
elem = (
|
elem = (
|
||||||
<Select value={value} onChange={this.onSelectChange} aria-label="Select Input">
|
<Select value={value} onChange={this.onSelectChange} aria-label="Select Input">
|
||||||
{data.map((datum) => (
|
{data.map((datum) => (datum === defaultSelected
|
||||||
<SelectOption isDisabled={datum.disabled} key={datum} value={datum} label={datum} />
|
? (<SelectOption key="" value="" label={`Use Default ${label}`} />) : (<SelectOption key={datum} value={datum} label={datum} />)))
|
||||||
))}
|
}
|
||||||
</Select>
|
</Select>
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
elem = null;
|
elem = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return elem;
|
return elem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AnsibleSelect;
|
export default AnsibleSelect;
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ class OrganizationAdd extends React.Component {
|
|||||||
custom_virtualenv: '',
|
custom_virtualenv: '',
|
||||||
instanceGroups: [],
|
instanceGroups: [],
|
||||||
error: '',
|
error: '',
|
||||||
|
defaultEnv: '/venv/ansible/',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,6 +93,7 @@ class OrganizationAdd extends React.Component {
|
|||||||
name,
|
name,
|
||||||
description,
|
description,
|
||||||
custom_virtualenv,
|
custom_virtualenv,
|
||||||
|
defaultEnv,
|
||||||
instanceGroups,
|
instanceGroups,
|
||||||
error
|
error
|
||||||
} = this.state;
|
} = this.state;
|
||||||
@@ -137,10 +139,12 @@ class OrganizationAdd extends React.Component {
|
|||||||
{({ custom_virtualenvs }) => (
|
{({ custom_virtualenvs }) => (
|
||||||
<FormGroup label="Ansible Environment" fieldId="add-org-form-custom-virtualenv">
|
<FormGroup label="Ansible Environment" fieldId="add-org-form-custom-virtualenv">
|
||||||
<AnsibleSelect
|
<AnsibleSelect
|
||||||
|
label="Ansible Environment"
|
||||||
name="custom_virtualenv"
|
name="custom_virtualenv"
|
||||||
value={custom_virtualenv}
|
value={custom_virtualenv}
|
||||||
onChange={this.onFieldChange}
|
onChange={this.onFieldChange}
|
||||||
data={custom_virtualenvs}
|
data={custom_virtualenvs}
|
||||||
|
defaultSelected={defaultEnv}
|
||||||
/>
|
/>
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
)}
|
)}
|
||||||
@@ -151,7 +155,7 @@ class OrganizationAdd extends React.Component {
|
|||||||
submitDisabled={!enabled}
|
submitDisabled={!enabled}
|
||||||
onCancel={this.onCancel}
|
onCancel={this.onCancel}
|
||||||
/>
|
/>
|
||||||
{ error ? <div>error</div> : '' }
|
{error ? <div>error</div> : ''}
|
||||||
</Form>
|
</Form>
|
||||||
</CardBody>
|
</CardBody>
|
||||||
</Card>
|
</Card>
|
||||||
|
|||||||
Reference in New Issue
Block a user