mirror of
https://github.com/ansible/awx.git
synced 2026-05-08 01:47:35 -02:30
add MultiCredentialsLookup select/deselect logic
This commit is contained in:
@@ -92,7 +92,6 @@ function MultiCredentialsLookup(props) {
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log('useEffect', selectedType);
|
|
||||||
(async () => {
|
(async () => {
|
||||||
if (!selectedType) {
|
if (!selectedType) {
|
||||||
return;
|
return;
|
||||||
@@ -111,21 +110,7 @@ function MultiCredentialsLookup(props) {
|
|||||||
})();
|
})();
|
||||||
}, [selectedType]);
|
}, [selectedType]);
|
||||||
|
|
||||||
// handleCredentialTypeSelect(value, type) {
|
const isMultiple = selectedType && selectedType.value === 'Vault';
|
||||||
// const { credentialTypes } = this.state;
|
|
||||||
// const selectedType = credentialTypes.filter(item => item.label === type);
|
|
||||||
// this.setState({ selectedCredentialType: selectedType[0] }, () => {
|
|
||||||
// this.loadCredentials();
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
|
|
||||||
// const {
|
|
||||||
// selectedCredentialType,
|
|
||||||
// credentialTypes,
|
|
||||||
// credentials,
|
|
||||||
// credentialsCount,
|
|
||||||
// } = state;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<FormGroup label={i18n._(t`Credentials`)} fieldId="multiCredential">
|
<FormGroup label={i18n._(t`Credentials`)} fieldId="multiCredential">
|
||||||
{tooltip && <FieldTooltip content={tooltip} />}
|
{tooltip && <FieldTooltip content={tooltip} />}
|
||||||
@@ -134,15 +119,10 @@ function MultiCredentialsLookup(props) {
|
|||||||
onToggleItem={toggleCredentialSelection}
|
onToggleItem={toggleCredentialSelection}
|
||||||
id="multiCredential"
|
id="multiCredential"
|
||||||
lookupHeader={i18n._(t`Credentials`)}
|
lookupHeader={i18n._(t`Credentials`)}
|
||||||
// name="credentials"
|
|
||||||
value={value}
|
value={value}
|
||||||
multiple
|
multiple
|
||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
// items={credentials}
|
|
||||||
// count={credentialsCount}
|
|
||||||
qsConfig={QS_CONFIG}
|
qsConfig={QS_CONFIG}
|
||||||
// columns={}
|
|
||||||
// TODO bind removeItem
|
|
||||||
renderItemChip={({ item, removeItem, canDelete }) => (
|
renderItemChip={({ item, removeItem, canDelete }) => (
|
||||||
<CredentialChip
|
<CredentialChip
|
||||||
key={item.id}
|
key={item.id}
|
||||||
@@ -184,13 +164,25 @@ function MultiCredentialsLookup(props) {
|
|||||||
isSearchable: true,
|
isSearchable: true,
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
multiple={selectedType && selectedType.value === 'Vault'}
|
multiple={isMultiple}
|
||||||
header={i18n._(t`Credentials`)}
|
header={i18n._(t`Credentials`)}
|
||||||
name="credentials"
|
name="credentials"
|
||||||
qsConfig={QS_CONFIG}
|
qsConfig={QS_CONFIG}
|
||||||
readOnly={!canDelete}
|
readOnly={!canDelete}
|
||||||
selectItem={() => {}}
|
selectItem={item => {
|
||||||
deselectItem={() => {}}
|
if (isMultiple) {
|
||||||
|
return dispatch({ type: 'SELECT_ITEM', item });
|
||||||
|
}
|
||||||
|
const selectedItems = state.selectedItems.filter(
|
||||||
|
i => i.kind !== item.kind
|
||||||
|
);
|
||||||
|
selectedItems.push(item);
|
||||||
|
return dispatch({
|
||||||
|
type: 'SET_SELECTED_ITEMS',
|
||||||
|
selectedItems,
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
deselectItem={item => dispatch({ type: 'DESELECT_ITEM', item })}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -171,11 +171,7 @@ const Item = shape({
|
|||||||
|
|
||||||
Lookup.propTypes = {
|
Lookup.propTypes = {
|
||||||
id: string,
|
id: string,
|
||||||
// items: arrayOf(shape({})).isRequired,
|
|
||||||
// count: number.isRequired,
|
|
||||||
// TODO: change to `header`
|
|
||||||
header: string,
|
header: string,
|
||||||
// name: string,
|
|
||||||
onChange: func.isRequired,
|
onChange: func.isRequired,
|
||||||
value: oneOfType([Item, arrayOf(Item)]),
|
value: oneOfType([Item, arrayOf(Item)]),
|
||||||
multiple: bool,
|
multiple: bool,
|
||||||
@@ -189,7 +185,6 @@ Lookup.propTypes = {
|
|||||||
Lookup.defaultProps = {
|
Lookup.defaultProps = {
|
||||||
id: 'lookup-search',
|
id: 'lookup-search',
|
||||||
header: null,
|
header: null,
|
||||||
// name: null,
|
|
||||||
value: null,
|
value: null,
|
||||||
multiple: false,
|
multiple: false,
|
||||||
required: false,
|
required: false,
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ export default function reducer(state, action) {
|
|||||||
return { ...state, multiple: action.value };
|
return { ...state, multiple: action.value };
|
||||||
case 'SET_VALUE':
|
case 'SET_VALUE':
|
||||||
return { ...state, value: action.value };
|
return { ...state, value: action.value };
|
||||||
|
case 'SET_SELECTED_ITEMS':
|
||||||
|
return { ...state, selectedItems: action.selectedItems };
|
||||||
default:
|
default:
|
||||||
throw new Error(`Unrecognized action type: ${action.type}`);
|
throw new Error(`Unrecognized action type: ${action.type}`);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user