diff --git a/src/components/tabell/kolonner/tiltakshendelse-lenke-kolonne.tsx b/src/components/tabell/kolonner/tiltakshendelse-lenke-kolonne.tsx new file mode 100755 index 000000000..78be647ff --- /dev/null +++ b/src/components/tabell/kolonner/tiltakshendelse-lenke-kolonne.tsx @@ -0,0 +1,42 @@ +import {BrukerModell} from '../../../model-interfaces'; +import {oppdaterBrukerIKontekstOgNavigerTilLenke} from '../../../utils/utils'; +import {AksjonKnappMedPopoverFeilmelding} from '../../aksjon-knapp-med-popover-feilmelding/aksjon-knapp-med-popover-feilmelding'; +import {getVeilarbpersonflateUrl} from '../../../utils/url-utils'; + +interface LenkeKolonneProps { + bruker: BrukerModell; + skalVises: boolean; + enhetId: string; + className?: string; +} + +export const TiltakshendelseLenkeKolonne = ({bruker, skalVises, enhetId, className}: LenkeKolonneProps) => { + if (!skalVises || !bruker.tiltakshendelse) { + return null; + } + + const tiltakshendelse = bruker.tiltakshendelse; + + const handterKlikk = () => + oppdaterBrukerIKontekstOgNavigerTilLenke(bruker.fnr, getVeilarbpersonflateUrl(tiltakshendelse.lenke, enhetId)); + + const handterKlikkNyFane = () => + oppdaterBrukerIKontekstOgNavigerTilLenke( + bruker.fnr, + getVeilarbpersonflateUrl(tiltakshendelse.lenke, enhetId), + true + ); + + return ( +
+ {tiltakshendelse && ( + + )} +
+ ); +}; diff --git a/src/components/toolbar/listevisning/listevisning-utils.ts b/src/components/toolbar/listevisning/listevisning-utils.ts index 906de7a84..bd9260e28 100755 --- a/src/components/toolbar/listevisning/listevisning-utils.ts +++ b/src/components/toolbar/listevisning/listevisning-utils.ts @@ -54,3 +54,5 @@ alternativerConfig.set(Kolonne.HAR_BARN_UNDER_18, {tekstlabel: 'Barn under 18 å alternativerConfig.set(Kolonne.UTDANNING_OG_SITUASJON_SIST_ENDRET, {tekstlabel: 'Dato sist endret'}); alternativerConfig.set(Kolonne.HUSKELAPP_KOMMENTAR, {tekstlabel: 'Huskelapp'}); alternativerConfig.set(Kolonne.HUSKELAPP_FRIST, {tekstlabel: 'Frist huskelapp'}); +alternativerConfig.set(Kolonne.TILTAKSHENDELSE_LENKE, {tekstlabel: 'Tiltakshendelse lenke'}); +alternativerConfig.set(Kolonne.TILTAKSHENDELSE_DATO_OPPRETTET, {tekstlabel: 'Tiltakshendelse opprettet'}); diff --git a/src/ducks/features.ts b/src/ducks/features.ts index 6ef510a77..f88a04514 100755 --- a/src/ducks/features.ts +++ b/src/ducks/features.ts @@ -8,7 +8,8 @@ import { PORTEFOLJE_FEATURES, SPOR_OM_TILBAKEMELDING, VEDTAKSTOTTE, - HUSKELAPP + HUSKELAPP, + VIS_STATUSFILTER_TILTAKSHENDELSE } from '../konstanter'; const ADD_FEATURE = 'veilarbportefoljeflatefs/features/ADD_FEATURE'; @@ -24,7 +25,8 @@ const initalState: FeaturesState = { [ALERTSTRIPE_FEILMELDING]: false, [VIS_AAP_VURDERINGSFRISTKOLONNER]: false, [FILTER_FOR_PERSONER_MED_BARN_UNDER_18]: false, - [HUSKELAPP]: false + [HUSKELAPP]: false, + [VIS_STATUSFILTER_TILTAKSHENDELSE]: false }; // Reducer diff --git a/src/ducks/ui/listevisning-selectors.ts b/src/ducks/ui/listevisning-selectors.ts index aab69f2c1..295aa8e35 100755 --- a/src/ducks/ui/listevisning-selectors.ts +++ b/src/ducks/ui/listevisning-selectors.ts @@ -15,6 +15,7 @@ import { I_AVTALT_AKTIVITET, MIN_ARBEIDSLISTE, MOTER_IDAG, + TILTAKSHENDELSER, TILTAKSPENGER_YTELSE, UNDER_VURDERING, UTLOPTE_AKTIVITETER, @@ -138,6 +139,8 @@ export function getMuligeKolonner(filtervalg: FiltervalgModell, oversiktType: Ov const filtrertPaHuskelapp = filtervalg.ferdigfilterListe.includes(HUSKELAPP); + const filtrertPaTiltakshendelse = filtervalg.ferdigfilterListe.includes(TILTAKSHENDELSER); + return ([] as Kolonne[]) .concat(addHvis(Kolonne.FODELAND, filtrertPaLandgruppeEllerFoedeland)) .concat(addHvis(Kolonne.STATSBORGERSKAP, filtrertPaLandgruppeEllerFoedeland)) @@ -153,6 +156,8 @@ export function getMuligeKolonner(filtervalg: FiltervalgModell, oversiktType: Ov .concat(addHvis(Kolonne.UTLOPTE_AKTIVITETER, filtervalg.ferdigfilterListe.includes(UTLOPTE_AKTIVITETER))) .concat(addHvis(Kolonne.AVTALT_AKTIVITET, filtervalg.ferdigfilterListe.includes(I_AVTALT_AKTIVITET))) .concat(addHvis(Kolonne.VENTER_SVAR, filtrertPaVenterSvarFraNavEllerBruker)) + .concat(addHvis(Kolonne.TILTAKSHENDELSE_LENKE, filtrertPaTiltakshendelse)) + .concat(addHvis(Kolonne.TILTAKSHENDELSE_DATO_OPPRETTET, filtrertPaTiltakshendelse)) .concat(addHvis(Kolonne.VEDTAKSTATUS, filtrertPaUnderVurdering)) .concat(addHvis(Kolonne.VEDTAKSTATUS_ENDRET, filtrertPaUnderVurdering)) .concat(addHvis(Kolonne.ANSVARLIG_VEILEDER_FOR_VEDTAK, filtrertPaUnderVurdering)) diff --git a/src/ducks/ui/listevisning.ts b/src/ducks/ui/listevisning.ts index 6ecb6523b..7c992f8bc 100755 --- a/src/ducks/ui/listevisning.ts +++ b/src/ducks/ui/listevisning.ts @@ -58,7 +58,9 @@ export enum Kolonne { HAR_BARN_UNDER_18 = 'har_barn_under_18', UTDANNING_OG_SITUASJON_SIST_ENDRET = 'utdanning_og_situasjon_sist_endret', HUSKELAPP_FRIST = 'huskelapp_frist', - HUSKELAPP_KOMMENTAR = 'huskelapp_kommentar' + HUSKELAPP_KOMMENTAR = 'huskelapp_kommentar', + TILTAKSHENDELSE_LENKE = 'tiltakshendelse_lenke', + TILTAKSHENDELSE_DATO_OPPRETTET = 'tiltakshendelse_dato_opprettet' } export enum OversiktType { diff --git a/src/enhetsportefolje/enhet-kolonner.tsx b/src/enhetsportefolje/enhet-kolonner.tsx index d9587b839..17bb5693d 100755 --- a/src/enhetsportefolje/enhet-kolonner.tsx +++ b/src/enhetsportefolje/enhet-kolonner.tsx @@ -1,4 +1,5 @@ -import * as React from 'react'; +import React from 'react'; +import moment from 'moment'; import BrukerNavn from '../components/tabell/brukernavn'; import BrukerFnr from '../components/tabell/brukerfnr'; import UkeKolonne from '../components/tabell/kolonner/ukekolonne'; @@ -6,6 +7,7 @@ import { avvik14aVedtakAvhengigeFilter, I_AVTALT_AKTIVITET, MOTER_IDAG, + TILTAKSHENDELSER, UNDER_VURDERING, UTLOPTE_AKTIVITETER, VENTER_PA_SVAR_FRA_BRUKER, @@ -42,16 +44,16 @@ import { toDateString } from '../utils/dato-utils'; import VarighetKolonne from '../components/tabell/kolonner/varighetkolonne'; -import './enhetsportefolje.css'; -import './brukerliste.css'; import {DagerSidenKolonne} from '../components/tabell/kolonner/dagersidenkolonne'; import {TekstKolonne} from '../components/tabell/kolonner/tekstkolonne'; import SisteEndringKategori from '../components/tabell/sisteendringkategori'; -import moment from 'moment'; import {useGeografiskbostedSelector} from '../hooks/redux/use-geografiskbosted-selector'; import {useTolkbehovSelector} from '../hooks/redux/use-tolkbehovspraak-selector'; import {useFeatureSelector} from '../hooks/redux/use-feature-selector'; import {VIS_AAP_VURDERINGSFRISTKOLONNER} from '../konstanter'; +import {TiltakshendelseLenkeKolonne} from '../components/tabell/kolonner/tiltakshendelse-lenke-kolonne'; +import './enhetsportefolje.css'; +import './brukerliste.css'; interface EnhetKolonnerProps { className?: string; @@ -272,6 +274,23 @@ function EnhetKolonner({className, bruker, enhetId, filtervalg, valgteKolonner, valgteKolonner.includes(Kolonne.VENTER_SVAR) } /> + + - +
+ Hendelse på tiltak +
+
+ Dato for hendelse +
diff --git a/src/filtrering/filter-konstanter.ts b/src/filtrering/filter-konstanter.ts index 60bf6dc0d..fccf046fc 100755 --- a/src/filtrering/filter-konstanter.ts +++ b/src/filtrering/filter-konstanter.ts @@ -123,7 +123,7 @@ export const ferdigfilterListeLabelTekst = { VENTER_PA_SVAR_FRA_NAV: 'Venter på svar fra NAV', VENTER_PA_SVAR_FRA_BRUKER: 'Venter på svar fra bruker', MOTER_IDAG: 'Møte med NAV i dag', - TILTAKSHENDELSER: 'Tiltaksdeltakelse', + TILTAKSHENDELSER: 'Hendelser på tiltak', UTLOPTE_AKTIVITETER: 'Utløpte aktiviteter', IKKE_I_AVTALT_AKTIVITET: 'Ikke i avtalt aktivitet', I_AVTALT_AKTIVITET: 'I avtalt aktivitet', diff --git a/src/minoversikt/minoversikt-kolonner.tsx b/src/minoversikt/minoversikt-kolonner.tsx index 91d053c99..2378e489e 100755 --- a/src/minoversikt/minoversikt-kolonner.tsx +++ b/src/minoversikt/minoversikt-kolonner.tsx @@ -1,4 +1,5 @@ -import * as React from 'react'; +import React from 'react'; +import moment from 'moment'; import { aapRettighetsperiode, aapVurderingsfrist, @@ -22,6 +23,7 @@ import { I_AVTALT_AKTIVITET, MIN_ARBEIDSLISTE, MOTER_IDAG, + TILTAKSHENDELSER, UNDER_VURDERING, UTLOPTE_AKTIVITETER, VENTER_PA_SVAR_FRA_BRUKER, @@ -42,16 +44,16 @@ import { toDateString } from '../utils/dato-utils'; import VarighetKolonne from '../components/tabell/kolonner/varighetkolonne'; -import './minoversikt.css'; import {DagerSidenKolonne} from '../components/tabell/kolonner/dagersidenkolonne'; import {TekstKolonne} from '../components/tabell/kolonner/tekstkolonne'; import SisteEndringKategori from '../components/tabell/sisteendringkategori'; -import moment from 'moment'; import {useGeografiskbostedSelector} from '../hooks/redux/use-geografiskbosted-selector'; import {useTolkbehovSelector} from '../hooks/redux/use-tolkbehovspraak-selector'; import {useFeatureSelector} from '../hooks/redux/use-feature-selector'; import {VIS_AAP_VURDERINGSFRISTKOLONNER} from '../konstanter'; import {truncateTekst} from '../utils/tekst-utils'; +import {TiltakshendelseLenkeKolonne} from '../components/tabell/kolonner/tiltakshendelse-lenke-kolonne'; +import './minoversikt.css'; interface MinOversiktKolonnerProps { className?: string; @@ -290,6 +292,23 @@ function MinoversiktDatokolonner({className, bruker, enhetId, filtervalg, valgte tekst={moteErAvtaltMedNAV ? 'Avtalt med NAV' : '-'} skalVises={!!ferdigfilterListe?.includes(MOTER_IDAG) && valgteKolonner.includes(Kolonne.MOTE_ER_AVTALT)} /> + + +
+ Hendelse på tiltak +
+
+ Dato for hendelse +
); diff --git a/src/mocks/data/features.ts b/src/mocks/data/features.ts index 9a46a87ed..c4d1fa035 100644 --- a/src/mocks/data/features.ts +++ b/src/mocks/data/features.ts @@ -19,7 +19,7 @@ const toggles = { [VIS_AAP_VURDERINGSFRISTKOLONNER]: true, [FILTER_FOR_PERSONER_MED_BARN_UNDER_18]: true, [HUSKELAPP]: true, - [VIS_STATUSFILTER_TILTAKSHENDELSE]: false + [VIS_STATUSFILTER_TILTAKSHENDELSE]: true }; export default toggles; diff --git a/src/mocks/data/portefolje.ts b/src/mocks/data/portefolje.ts index 2a6b14ce5..e1619d38a 100644 --- a/src/mocks/data/portefolje.ts +++ b/src/mocks/data/portefolje.ts @@ -5,7 +5,8 @@ import { BarnUnder18Aar, EnsligeForsorgereOvergangsstonad, FargekategoriModell, - KategoriModell + KategoriModell, + TiltakshendelseModell } from '../../model-interfaces'; import moment from 'moment'; import {rnd} from '../utils'; @@ -200,6 +201,14 @@ const lagHuskelapp = fnr => { }; }; +const lagTiltakshendelse = (): TiltakshendelseModell => ({ + id: '54f06061-4383-417d-a063-1c4fc4701a78', + opprettet: new Date(), + tekst: 'Utkast til påmelding', + lenke: 'https://www.nav.no', + tiltakstype: 'ARBFORB' +}); + function lagBruker(sikkerhetstiltak = []) { const grunndata = lagGrunndata(); @@ -231,6 +240,7 @@ function lagBruker(sikkerhetstiltak = []) { sikkerhetstiltak, venterPaSvarFraBruker: grunndata.venterPaSvarFraBruker, venterPaSvarFraNAV: grunndata.venterPaSvarFraNAV, + tiltakshendelse: lagTiltakshendelse(), nyesteUtlopteAktivitet: grunndata.nesteUtlopteAktivitet, egenAnsatt: random_egenAnsatt ? true : '', skjermetTil: random_harSkjermetTil ? randomDateInNearFuture() : '', diff --git a/src/model-interfaces.ts b/src/model-interfaces.ts index 86ccecf22..4df402e1f 100755 --- a/src/model-interfaces.ts +++ b/src/model-interfaces.ts @@ -59,7 +59,9 @@ export enum Sorteringsfelt { UTDANNING_OG_SITUASJON_SIST_ENDRET = 'utdanningOgSituasjonSistEndret', HUSKELAPP_KOMMENTAR = 'huskelapp_kommentar', HUSKELAPP_FRIST = 'huskelapp_frist', - HUSKELAPP = 'huskelapp' + HUSKELAPP = 'huskelapp', + TILTAKSHENDELSE_LENKE = 'tiltakshendelse_lenke', + TILTAKSHENDELSE_DATO_OPPRETTET = 'tiltakshendelse_dato_opprettet' } export interface FiltervalgModell { @@ -167,7 +169,7 @@ export interface BrukerModell { nyesteUtlopteAktivitet?: string; // dato veilederNavn?: string; brukertiltak?: string[]; - tiltakshendelser?: TiltakshendelseModell[]; + tiltakshendelse: TiltakshendelseModell | null; aktiviteter?: AktiviteterModell; // kun avtalte aktiviteter alleAktiviteter?: AktiviteterModell; aktivitetStart?: string; // dato @@ -292,12 +294,11 @@ export interface HuskelappModell { } export interface TiltakshendelseModell { - hendelseId: string; - hendelseOpprettet: Date; - hendelseTekst: string; - hendelseLenke: string; - tiltakstypeKode: string | null; - sistEndret: Date; + id: string; + opprettet: Date; + tekst: string; + lenke: string; + tiltakstype: string | null; } export enum Status {