import { reduxForm, InjectedFormProps, WrappedFieldProps, Field } from 'redux-form';
import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
import { FormDialog } from 'components/form-dialog/form-dialog';
-import { VIRTUAL_MACHINE_ADD_LOGIN_DIALOG, VIRTUAL_MACHINE_ADD_LOGIN_FORM, addVirtualMachineLogin, AddLoginFormData, VIRTUAL_MACHINE_ADD_LOGIN_USER_FIELD, VIRTUAL_MACHINE_ADD_LOGIN_GROUPS_FIELD } from 'store/virtual-machines/virtual-machines-actions';
+import { VIRTUAL_MACHINE_ADD_LOGIN_DIALOG, VIRTUAL_MACHINE_ADD_LOGIN_FORM, addUpdateVirtualMachineLogin, AddLoginFormData, VIRTUAL_MACHINE_ADD_LOGIN_USER_FIELD, VIRTUAL_MACHINE_ADD_LOGIN_GROUPS_FIELD } from 'store/virtual-machines/virtual-machines-actions';
import { ParticipantSelect } from 'views-components/sharing-dialog/participant-select';
import { GroupArrayInput } from 'views-components/virtual-machines-dialog/group-array-input';
reduxForm<AddLoginFormData>({
form: VIRTUAL_MACHINE_ADD_LOGIN_FORM,
onSubmit: (data, dispatch) => {
- dispatch(addVirtualMachineLogin(data));
+ dispatch(addUpdateVirtualMachineLogin(data));
}
})
)(
(props: CreateGroupDialogComponentProps) =>
<FormDialog
- dialogTitle='Add login permissions'
+ dialogTitle={props.data.updating ? "Update login permission" : "Add login permission"}
formFields={AddLoginFormFields}
- submitLabel='Add'
+ submitLabel={props.data.updating ? "Update" : "Add"}
{...props}
/>
);
-type CreateGroupDialogComponentProps = WithDialogProps<{}> & InjectedFormProps<AddLoginFormData>;
+type CreateGroupDialogComponentProps = WithDialogProps<{updating: boolean}> & InjectedFormProps<AddLoginFormData>;
const AddLoginFormFields = () =>
<>
<UserField />
<GroupArrayInput
name={VIRTUAL_MACHINE_ADD_LOGIN_GROUPS_FIELD}
- input={{id:"Add groups to VM login", disabled:false}}
+ input={{id:"Add groups to VM login (eg: docker, sudo)", disabled:false}}
required={false}
/>
</>;
const UserSelect = ({ input, meta }: WrappedFieldProps) =>
<ParticipantSelect
onlyPeople
- label='Search for users to grant login permission'
+ label='Search for user to grant login permission'
items={input.value ? [input.value] : []}
onSelect={input.onChange}
onDelete={() => (input.onChange(''))} />;