X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/24574669fd453c6846bc9f64ce9ae407db79568b..addb01b6d7636a8963ddb1eff4799ebc96f44739:/src/views-components/dialog-forms/setup-shell-account-dialog.tsx diff --git a/src/views-components/dialog-forms/setup-shell-account-dialog.tsx b/src/views-components/dialog-forms/setup-shell-account-dialog.tsx index c53f53c2..666ea38e 100644 --- a/src/views-components/dialog-forms/setup-shell-account-dialog.tsx +++ b/src/views-components/dialog-forms/setup-shell-account-dialog.tsx @@ -1,31 +1,27 @@ // Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { compose } from "redux"; import { reduxForm, InjectedFormProps, Field } from 'redux-form'; -import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog"; -import { FormDialog } from '~/components/form-dialog/form-dialog'; -import { TextField } from '~/components/text-field/text-field'; -import { VirtualMachinesResource } from '~/models/virtual-machines'; -import { USER_LENGTH_VALIDATION } from '~/validators/validators'; +import { withDialog, WithDialogProps } from "store/dialog/with-dialog"; +import { FormDialog } from 'components/form-dialog/form-dialog'; +import { TextField } from 'components/text-field/text-field'; +import { VirtualMachinesResource } from 'models/virtual-machines'; +import { CHOOSE_VM_VALIDATION } from 'validators/validators'; import { InputLabel } from '@material-ui/core'; -import { NativeSelectField } from '~/components/select-field/select-field'; -import { SETUP_SHELL_ACCOUNT_DIALOG, createUser } from '~/store/users/users-actions'; -import { UserResource } from '~/models/user'; - -interface SetupShellAccountFormDialogData { - email: string; - virtualMachineName: string; - groupVirtualMachine: string; -} +import { NativeSelectField } from 'components/select-field/select-field'; +import { SETUP_SHELL_ACCOUNT_DIALOG, setupUserVM } from 'store/users/users-actions'; +import { UserResource } from 'models/user'; +import { VIRTUAL_MACHINE_ADD_LOGIN_USER_FIELD, VIRTUAL_MACHINE_ADD_LOGIN_VM_FIELD, VIRTUAL_MACHINE_ADD_LOGIN_GROUPS_FIELD, AddLoginFormData } from 'store/virtual-machines/virtual-machines-actions'; +import { GroupArrayInput } from 'views-components/virtual-machines-dialog/group-array-input'; export const SetupShellAccountDialog = compose( withDialog(SETUP_SHELL_ACCOUNT_DIALOG), - reduxForm({ + reduxForm({ form: SETUP_SHELL_ACCOUNT_DIALOG, onSubmit: (data, dispatch) => { - dispatch(createUser(data)); + dispatch(setupUserVM(data)); } }) )( @@ -38,12 +34,6 @@ export const SetupShellAccountDialog = compose( /> ); -interface UserProps { - data: { - user: UserResource; - }; -} - interface VirtualMachinesProps { data: { items: VirtualMachinesResource[]; @@ -54,42 +44,39 @@ interface DataProps { items: VirtualMachinesResource[]; } -const UserEmailField = ({ data }: UserProps) => +const UserNameField = () => + VM Login ; + name={`${VIRTUAL_MACHINE_ADD_LOGIN_USER_FIELD}.username`} + component={TextField as any} + disabled />; const UserVirtualMachineField = ({ data }: VirtualMachinesProps) =>
Virtual Machine
; const UserGroupsVirtualMachineField = () => - ; + const getVirtualMachinesList = (virtualMachines: VirtualMachinesResource[]) => - virtualMachines.map(it => ({ key: it.hostname, value: it.hostname })); + [{ key: "", value: "" }].concat(virtualMachines.map(it => ({ key: it.uuid, value: it.hostname }))); -type SetupShellAccountDialogComponentProps = WithDialogProps<{}> & InjectedFormProps; +type SetupShellAccountDialogComponentProps = WithDialogProps<{}> & InjectedFormProps; const SetupShellAccountFormFields = (props: SetupShellAccountDialogComponentProps) => <> - + ; - - -