diff --git a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/Steg3.tsx b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/Steg3.tsx index fa676e7c4cf..13cd545b45b 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/Steg3.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/Steg3.tsx @@ -1,4 +1,4 @@ -import React, { Suspense, useContext, useEffect } from 'react' +import React, { Suspense, useContext, useEffect, useState } from 'react' import * as Yup from 'yup' import { harAvhukedeAttributter } from '@/components/bestillingsveileder/utils' import { MiljoVelger } from '@/components/miljoVelger/MiljoVelger' @@ -11,6 +11,7 @@ import { MalFormOrganisasjon } from '@/pages/organisasjoner/MalFormOrganisasjon' import { useFormikContext } from 'formik' import { useCurrentBruker, useOrganisasjonTilgang } from '@/utils/hooks/useBruker' import Loading from '@/components/ui/loading/Loading' +import { Gruppevalg } from '@/components/velgGruppe/VelgGruppeToggle' const Bestillingskriterier = React.lazy( () => import('@/components/bestilling/sammendrag/kriterier/Bestillingskriterier'), @@ -21,6 +22,8 @@ export const Steg3 = () => { const formikBag = useFormikContext() const { currentBruker } = useCurrentBruker() + const [gruppevalg, setGruppevalg] = useState(Gruppevalg.MINE) + const { organisasjonTilgang } = useOrganisasjonTilgang() const tilgjengeligMiljoe = organisasjonTilgang?.miljoe @@ -101,7 +104,12 @@ export const Steg3 = () => { /> )} {importTestnorge && !opts.gruppe && ( - + )} {importTestnorge && opts.gruppe && (
diff --git a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/VelgGruppe.tsx b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/VelgGruppe.tsx index 6490f85b75c..78581785d0f 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/VelgGruppe.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg3/VelgGruppe.tsx @@ -12,7 +12,13 @@ type VelgGruppeProps = { fraGruppe?: number } -export const VelgGruppe = ({ formikBag, title, fraGruppe = null }: VelgGruppeProps) => { +export const VelgGruppe = ({ + formikBag, + title, + fraGruppe = null, + gruppevalg, + setGruppevalg, +}: VelgGruppeProps) => { const [valgtGruppe, setValgtGruppe] = useState(_.get(formikBag.values, `gruppeId`)) useEffect(() => { @@ -30,6 +36,8 @@ export const VelgGruppe = ({ formikBag, title, fraGruppe = null }: VelgGruppePro valgtGruppe={valgtGruppe} setValgtGruppe={setValgtGruppe} fraGruppe={fraGruppe} + gruppevalg={gruppevalg} + setGruppevalg={setGruppevalg} />
@@ -40,7 +48,7 @@ VelgGruppe.validation = { gruppeId: ifPresent( '$gruppeId', Yup.string().required( - 'Velg eksisterende gruppe eller opprett ny gruppe for å importere personen(e)' - ) + 'Velg eksisterende gruppe eller opprett ny gruppe for å importere personen(e)', + ), ), } diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/bankkonto/form/NorskBankkonto.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/bankkonto/form/NorskBankkonto.tsx index ac00ac2d134..460b08f2f80 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/bankkonto/form/NorskBankkonto.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/bankkonto/form/NorskBankkonto.tsx @@ -22,7 +22,7 @@ export const NorskBankkonto = ({ formikBag }: { formikBag: FormikProps<{}> }) =>
{ onChange={(egenskapen) => formikBag.setFieldValue(egenskap, egenskapen.value)} value={_.get(formikBag.values, egenskap)} placeholder={ - _.get(formikBag.values, egenskap) ? _.get(formikBag.values, egenskap) : 'Velg...' + _.get(formikBag.values, egenskap) ? _.get(formikBag.values, egenskap) : 'Velg ...' } isClearable={false} feil={ diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/navn/Navn.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/navn/Navn.tsx index ac46cc4c4e8..11eb048da1f 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/navn/Navn.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/navn/Navn.tsx @@ -95,7 +95,7 @@ export const NavnForm = ({ formikBag, path, identtype }: NavnTypes) => { { @@ -119,7 +119,7 @@ export const NavnForm = ({ formikBag, path, identtype }: NavnTypes) => { { const mellomnavn = change?.map((option: Option) => option.value) @@ -138,7 +138,7 @@ export const NavnForm = ({ formikBag, path, identtype }: NavnTypes) => { { const etternavn = change?.map((option: Option) => option.value) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/pdlPerson/PdlPersonUtenIdentifikator.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/pdlPerson/PdlPersonUtenIdentifikator.tsx index 053cd859dd4..757baaa0bbb 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/pdlPerson/PdlPersonUtenIdentifikator.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/pdlPerson/PdlPersonUtenIdentifikator.tsx @@ -40,21 +40,21 @@ export const PdlPersonUtenIdentifikator = ({ diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/sikkerhetstiltak/Sikkerhetstiltak.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/sikkerhetstiltak/Sikkerhetstiltak.tsx index 9ab1ecbae24..cc28c04cfbb 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/sikkerhetstiltak/Sikkerhetstiltak.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/sikkerhetstiltak/Sikkerhetstiltak.tsx @@ -60,7 +60,7 @@ export const Sikkerhetstiltak = ({ formikBag }: SikkerhetstiltakProps) => { handleValueChange( option.label === 'Opphørt' ? option.label : option.label.substring(indexBeskrSikkerhetTiltak), 'beskrivelse', - idx + idx, ) } @@ -106,7 +106,7 @@ export const Sikkerhetstiltak = ({ formikBag }: SikkerhetstiltakProps) => { opts.personFoerLeggTil ? Options('sikkerhetstiltakType') : Options('sikkerhetstiltakType').filter( - (option) => option.label !== 'Opphørt' + (option) => option.label !== 'Opphørt', ) } size="large" @@ -123,7 +123,7 @@ export const Sikkerhetstiltak = ({ formikBag }: SikkerhetstiltakProps) => { options={randomNavUsers} isClearable={false} name={`${path}.kontaktperson.personident`} - placeholder={personident ? personident : 'Velg...'} + placeholder={personident ? personident : 'Velg ...'} label={'Kontaktperson'} fastfield={false} /> @@ -138,8 +138,8 @@ export const Sikkerhetstiltak = ({ formikBag }: SikkerhetstiltakProps) => { !isToday( _.get( formikBag.values, - `pdldata.person.sikkerhetstiltak[${idx}].gyldigFraOgMed` - ) + `pdldata.person.sikkerhetstiltak[${idx}].gyldigFraOgMed`, + ), ) } warningText="TPS støtter kun sikkerhetstiltak fra gjeldende dato. Endre til dagens dato dersom et diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/utils.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/utils.tsx index 495c68ef8c2..ae16f56c36f 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/utils.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/pdlf/form/partials/utils.tsx @@ -6,7 +6,7 @@ export const getPlaceholder = (values, selectedValuePath) => { const etternavn = _.get(values, `${selectedValuePath}.etternavn`) mellomnavn = mellomnavn !== '' ? ' ' + mellomnavn : mellomnavn - return !_.isNil(fornavn) && fornavn !== '' ? fornavn + mellomnavn + ' ' + etternavn : 'Velg...' + return !_.isNil(fornavn) && fornavn !== '' ? fornavn + mellomnavn + ' ' + etternavn : 'Velg ...' } export const setNavn = (navn, path, setFieldValue) => { diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/button/FlyttPersonButton/FlyttPersonModal.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/button/FlyttPersonButton/FlyttPersonModal.tsx index 27300ac1176..8277a041751 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/button/FlyttPersonButton/FlyttPersonModal.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/button/FlyttPersonButton/FlyttPersonModal.tsx @@ -19,6 +19,7 @@ import { Alert } from '@navikt/ds-react' import { usePdlOptions, useTestnorgeOptions } from '@/utils/hooks/useSelectOptions' import { useGruppeIdenter } from '@/utils/hooks/useGruppe' import { CypressSelector } from '../../../../../cypress/mocks/Selectors' +import { Gruppevalg } from '@/components/velgGruppe/VelgGruppeToggle' type FlyttPersonButtonTypes = { gruppeId: number @@ -134,6 +135,7 @@ const StyledErrorMessageWithFocus = styled(ErrorMessageWithFocus)` export const FlyttPersonModal = ({ gruppeId, modalIsOpen, closeModal }: FlyttPersonButtonTypes) => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) + const [gruppevalg, setGruppevalg] = useState(Gruppevalg.MINE) const { identer: gruppeIdenter, loading: gruppeLoading } = useGruppeIdenter(gruppeId) @@ -247,6 +249,8 @@ export const FlyttPersonModal = ({ gruppeId, modalIsOpen, closeModal }: FlyttPer formikBag={formikBag} title={'Velg hvilken gruppe du ønsker å flytte personer til'} fraGruppe={gruppeId} + gruppevalg={gruppevalg} + setGruppevalg={setGruppevalg} /> diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/select/Select.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/select/Select.tsx index fe03d4e0d28..95fb79e885a 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/select/Select.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/inputs/select/Select.tsx @@ -48,7 +48,7 @@ export const Select = ({ isLoading = false, isSearchable = true, isClearable = true, - placeholder = 'Velg...', + placeholder = 'Velg ...', options = [], isMulti = false, styles, diff --git a/apps/dolly-frontend/src/main/js/src/components/velgGruppe/AlleGrupper.tsx b/apps/dolly-frontend/src/main/js/src/components/velgGruppe/AlleGrupper.tsx new file mode 100644 index 00000000000..f4844444bbd --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/velgGruppe/AlleGrupper.tsx @@ -0,0 +1,71 @@ +import { DollySelect } from '@/components/ui/form/inputs/select/Select' +import Loading from '@/components/ui/loading/Loading' +import { useAlleBrukere, useCurrentBruker } from '@/utils/hooks/useBruker' +import { Gruppe, useEgneGrupper, useGrupper } from '@/utils/hooks/useGruppe' +import React, { useState } from 'react' + +interface AlleGrupper { + setValgtGruppe: React.Dispatch> + valgtGruppe: string + fraGruppe?: number | null +} + +type Options = { + value: string + label: string +} + +export default ({ setValgtGruppe, valgtGruppe, fraGruppe = null }: AlleGrupper) => { + const { currentBruker } = useCurrentBruker() + const { brukere, loading: loadingBrukere } = useAlleBrukere() + const [valgtBruker, setValgtBruker] = useState(null) + + const filteredBrukerliste = brukere?.filter( + (bruker) => bruker.brukerId !== currentBruker.brukerId, + ) + + const brukerOptions = filteredBrukerliste?.map((bruker) => { + return { + value: bruker?.brukerId, + label: bruker?.brukernavn, + } + }) + + const { grupper, loading: loadingGrupper } = useEgneGrupper(valgtBruker) + + const filteredGruppeliste = grupper?.contents?.filter((gruppe) => gruppe.id !== fraGruppe) + + const gruppeOptions = filteredGruppeliste?.map((gruppe: Gruppe) => { + return { + value: gruppe.id, + label: `${gruppe.id} - ${gruppe.navn}`, + } + }) + + return ( +
+ setValgtBruker(bruker?.value || null)} + value={valgtBruker} + isLoading={loadingBrukere} + placeholder={loadingBrukere ? 'Laster brukere ...' : 'Velg bruker ...'} + /> + setValgtGruppe(gruppe?.value)} + value={valgtGruppe} + size={fraGruppe ? 'grow' : 'large'} + isClearable={false} + isDisabled={!valgtBruker} + isLoading={loadingGrupper} + placeholder={loadingGrupper ? 'Laster grupper ...' : 'Velg gruppe ...'} + /> +
+ ) +} diff --git a/apps/dolly-frontend/src/main/js/src/components/velgGruppe/EksisterendeGruppe.tsx b/apps/dolly-frontend/src/main/js/src/components/velgGruppe/EksisterendeGruppe.tsx index 0b674a414dd..524bef8a924 100644 --- a/apps/dolly-frontend/src/main/js/src/components/velgGruppe/EksisterendeGruppe.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/velgGruppe/EksisterendeGruppe.tsx @@ -7,7 +7,7 @@ import React from 'react' interface EksisterendeGruppe { setValgtGruppe: React.Dispatch> valgtGruppe: string - fraGruppe?: number + fraGruppe?: number | null } type Options = { diff --git a/apps/dolly-frontend/src/main/js/src/components/velgGruppe/NyGruppe.tsx b/apps/dolly-frontend/src/main/js/src/components/velgGruppe/NyGruppe.tsx index 86d30fe71e2..2c93b697d97 100644 --- a/apps/dolly-frontend/src/main/js/src/components/velgGruppe/NyGruppe.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/velgGruppe/NyGruppe.tsx @@ -51,8 +51,8 @@ export default ({ setValgtGruppe }: NyGruppe) => { {() => (
- - + +
Opprett diff --git a/apps/dolly-frontend/src/main/js/src/components/velgGruppe/VelgGruppeToggle.tsx b/apps/dolly-frontend/src/main/js/src/components/velgGruppe/VelgGruppeToggle.tsx index 20c1d9d73fa..e74ebda3376 100644 --- a/apps/dolly-frontend/src/main/js/src/components/velgGruppe/VelgGruppeToggle.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/velgGruppe/VelgGruppeToggle.tsx @@ -1,9 +1,10 @@ -import React, { useState } from 'react' +import React from 'react' import NyGruppe from './NyGruppe' import EksisterendeGruppe from '@/components/velgGruppe/EksisterendeGruppe' import { ToggleGroup } from '@navikt/ds-react' import styled from 'styled-components' import { CypressSelector } from '../../../cypress/mocks/Selectors' +import AlleGrupper from '@/components/velgGruppe/AlleGrupper' interface VelgGruppeToggleProps { setValgtGruppe: React.Dispatch> @@ -11,8 +12,9 @@ interface VelgGruppeToggleProps { fraGruppe?: number } -enum Gruppevalg { - EKSISTERENDE = 'Eksisterende', +export enum Gruppevalg { + MINE = 'Mine', + ALLE = 'Alle', NY = 'Ny', } @@ -24,9 +26,9 @@ export const VelgGruppeToggle = ({ setValgtGruppe, valgtGruppe, fraGruppe = null, + gruppevalg, + setGruppevalg, }: VelgGruppeToggleProps) => { - const [gruppevalg, setGruppevalg] = useState(Gruppevalg.EKSISTERENDE) - const handleToggleChange = (value: Gruppevalg) => { setGruppevalg(value) setValgtGruppe('') @@ -36,11 +38,14 @@ export const VelgGruppeToggle = ({ - Eksisterende gruppe + Mine grupper + + + Alle grupper - {gruppevalg === Gruppevalg.EKSISTERENDE ? ( + {gruppevalg === Gruppevalg.MINE && ( - ) : ( - )} + {gruppevalg === Gruppevalg.ALLE && ( + + )} + {gruppevalg === Gruppevalg.NY && }
) } diff --git a/apps/dolly-frontend/src/main/js/src/utils/hooks/useGruppe.tsx b/apps/dolly-frontend/src/main/js/src/utils/hooks/useGruppe.tsx index fefe971d8d4..7e6d3abafee 100644 --- a/apps/dolly-frontend/src/main/js/src/utils/hooks/useGruppe.tsx +++ b/apps/dolly-frontend/src/main/js/src/utils/hooks/useGruppe.tsx @@ -13,7 +13,7 @@ const getPaginertGruppeUrl = ( pageNo: number, pageSize: number, sortKolonne?: string, - sortRetning?: string + sortRetning?: string, ) => { const sorting = sortKolonne && sortRetning ? `&sortRetning=${sortRetning}&sortKolonne=${sortKolonne}` : '' @@ -51,7 +51,7 @@ export const useGruppeById = ( pageSize = 10, autoRefresh = false, sortKolonne = null, - sortRetning = null + sortRetning = null, ) => { if (!gruppeId) { return { @@ -65,7 +65,7 @@ export const useGruppeById = ( { refreshInterval: autoRefresh ? 2000 : null, dedupingInterval: autoRefresh ? 2000 : null, - } + }, ) return { @@ -83,7 +83,7 @@ export const useGruppeById = ( export const useGruppeIdenter = (gruppeId) => { const { data, isLoading, error } = useSWR( gruppeId ? getHelGruppeUrl(gruppeId) : null, - fetcher + fetcher, ) return { @@ -101,7 +101,7 @@ export const useGruppeIdenter = (gruppeId) => { export const useGrupper = (pageNo, pageSize, brukerId?: string) => { const { data, isLoading, error } = useSWR( getGrupperUrl(pageNo, pageSize, brukerId), - fetcher + fetcher, ) return { @@ -113,8 +113,8 @@ export const useGrupper = (pageNo, pageSize, brukerId?: string) => { export const useEgneGrupper = (brukerId: string) => { const { data, isLoading, error } = useSWR( - getEgneGrupperUrl(brukerId), - fetcher + brukerId ? getEgneGrupperUrl(brukerId) : null, + fetcher, ) return {