Skip to content
Snippets Groups Projects
Verified Commit 4cd02e73 authored by Andreas Ellewsen's avatar Andreas Ellewsen
Browse files

Make type and ou choices required in new role form

Adding a role without selecting either of these makes no sense, and will
be refused by the backend accordingly.
parent 9ef2ae46
No related branches found
No related tags found
1 merge request!293Make type and ou choices required in new role form
...@@ -116,6 +116,8 @@ ...@@ -116,6 +116,8 @@
"invalidEmail": "Invalid e-mail address", "invalidEmail": "Invalid e-mail address",
"passportNumberRequired": "Passport number required", "passportNumberRequired": "Passport number required",
"mobilePhoneRequired": "Mobile phone is required", "mobilePhoneRequired": "Mobile phone is required",
"typeMustBeChosen": "Role is required",
"ouMustBeChosen": "Organisation is required",
"startDateMustBeSet": "Start date must be set", "startDateMustBeSet": "Start date must be set",
"startDateMustBeBeforeEndDate": "Start date has to be before end date", "startDateMustBeBeforeEndDate": "Start date has to be before end date",
"phoneNumberAndCountryCode": "Both country code and phone number must be set", "phoneNumberAndCountryCode": "Both country code and phone number must be set",
......
...@@ -116,6 +116,8 @@ ...@@ -116,6 +116,8 @@
"invalidEmail": "Ugyldig e-postadresse", "invalidEmail": "Ugyldig e-postadresse",
"passportNumberRequired": "Passnummer er obligatorisk", "passportNumberRequired": "Passnummer er obligatorisk",
"mobilePhoneRequired": "Mobilnummer er obligatorisk", "mobilePhoneRequired": "Mobilnummer er obligatorisk",
"typeMustBeChosen": "Gjesterolle er obligatorisk",
"ouMustBeChosen": "Organisasjon er obligatorisk",
"startDateMustBeSet": "Startdato må være satt", "startDateMustBeSet": "Startdato må være satt",
"startDateMustBeBeforeEndDate": "Startdato må være før sluttdato", "startDateMustBeBeforeEndDate": "Startdato må være før sluttdato",
"phoneNumberAndCountryCode": "Både landkode og telefonnummer må være satt", "phoneNumberAndCountryCode": "Både landkode og telefonnummer må være satt",
......
...@@ -116,6 +116,8 @@ ...@@ -116,6 +116,8 @@
"invalidEmail": "Ugyldig e-postadresse", "invalidEmail": "Ugyldig e-postadresse",
"passportNumberRequired": "Passnummer er obligatorisk", "passportNumberRequired": "Passnummer er obligatorisk",
"mobilePhoneRequired": "Mobilnummer er obligatorisk", "mobilePhoneRequired": "Mobilnummer er obligatorisk",
"typeMustBeChosen": "Gjesterolle er obligatorisk",
"ouMustBeChosen": "Organisasjon er obligatorisk",
"startDateMustBeSet": "Startdato må vere satt", "startDateMustBeSet": "Startdato må vere satt",
"startDateMustBeBeforeEndDate": "Startdato må vere før sluttdato", "startDateMustBeBeforeEndDate": "Startdato må vere før sluttdato",
"phoneNumberAndCountryCode": "Både landkode og telefonnummer må vere satt", "phoneNumberAndCountryCode": "Både landkode og telefonnummer må vere satt",
......
...@@ -190,41 +190,68 @@ function NewGuestRole({ guest, reloadGuestInfo }: NewGuestRoleProps) { ...@@ -190,41 +190,68 @@ function NewGuestRole({ guest, reloadGuestInfo }: NewGuestRoleProps) {
</Typography> </Typography>
<form onSubmit={onSubmit}> <form onSubmit={onSubmit}>
<Stack spacing={2}> <Stack spacing={2}>
<FormControl> <Controller
<InputLabel id="roletype-select-label"> name="type"
{t('input.roleType')} control={control}
</InputLabel> rules={{ required: true }}
<Select render={() => (
id="roletype-select" <FormControl>
defaultValue="" <InputLabel id="roletype-select-label">
value={roleTypeChoice} {t('input.roleType')}
error={!!errors.type} </InputLabel>
label={t('input.roleType')} <Select
onChange={handleRoleTypeChange} id="roletype-select"
> defaultValue=""
{(roleTypes === undefined ? [] : roleTypes) value={roleTypeChoice}
.sort(roleTypeSort()) error={!!errors.type}
.map((rt) => rolesToItem(rt))} label={t('input.roleType')}
</Select> onChange={handleRoleTypeChange}
</FormControl> >
{(roleTypes === undefined ? [] : roleTypes)
.sort(roleTypeSort())
.map((rt) => rolesToItem(rt))}
</Select>
</FormControl>
)}
/>
{errors.type && errors.type.type === 'required' && (
<Box sx={{ typography: 'caption', color: 'error.main' }}>
{t('validation.typeMustBeChosen')}
</Box>
)}
<Controller
name="orgunit"
control={control}
rules={{ required: true }}
render={() => (
<FormControl>
<InputLabel id="ou-select-label-id">
{t('common:ou')}
</InputLabel>
<Select
labelId="ou-select-label"
id="ou-select-label"
defaultValue=""
value={ouChoice.toString()}
label={t('common:ou')}
onChange={handleOuChange}
>
{ous !== undefined &&
ous.length > 0 &&
ous
.sort(i18n.language === 'en' ? enSort : nbSort)
.map((ou) => ouToItem(ou))}
</Select>
</FormControl>
)}
/>
{errors.orgunit && errors.orgunit.type === 'required' && (
<Box sx={{ typography: 'caption', color: 'error.main' }}>
{t('validation.ouMustBeChosen')}
</Box>
)}
<FormControl>
<InputLabel id="ou-select-label-id">{t('common:ou')}</InputLabel>
<Select
labelId="ou-select-label"
id="ou-select-label"
defaultValue=""
value={ouChoice.toString()}
label={t('common:ou')}
onChange={handleOuChange}
>
{ous !== undefined &&
ous.length > 0 &&
ous
.sort(i18n.language === 'en' ? enSort : nbSort)
.map((ou) => ouToItem(ou))}
</Select>
</FormControl>
<Controller <Controller
name="start_date" name="start_date"
control={control} control={control}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment