diff --git a/src/components/tabell/etiketter.tsx b/src/components/tabell/etiketter.tsx index 7bd0cf27f..e38362f3d 100644 --- a/src/components/tabell/etiketter.tsx +++ b/src/components/tabell/etiketter.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import {BrukerModell, VurderingsBehov} from '../../model-interfaces'; import hiddenIf from '../hidden-if/hidden-if'; import {Tag} from '@navikt/ds-react'; -import {hentSkjermetInfo} from '../../utils/dato-utils'; +import {hentSikkerhetsTiltakInfo, hentSkjermetInfo} from '../../utils/dato-utils'; interface EtiketterProps { bruker: BrukerModell; @@ -12,19 +12,23 @@ interface EtiketterProps { function Etiketter({bruker, erVedtakStotteFeatureTogglePa}: EtiketterProps) { const HiddenEtikett = hiddenIf(Tag); const skjermetInfo = hentSkjermetInfo(bruker.egenAnsatt, bruker.skjermetTil); + const sikkerhetTiltakInfo = hentSikkerhetsTiltakInfo( + bruker.sikkerhetstiltak.length > 0, + bruker.sikkerhetstiltak_beskrivelse, + bruker.sikkerhetstiltak_gyldig_fra, + bruker.sikkerhetstiltak_gyldig_til + ); return ( <> + >{`${sikkerhetTiltakInfo.tittel}`} diff --git a/src/mocks/portefolje.ts b/src/mocks/portefolje.ts index 448c88ea1..873cf20d5 100755 --- a/src/mocks/portefolje.ts +++ b/src/mocks/portefolje.ts @@ -182,6 +182,13 @@ function lagBruker(sikkerhetstiltak = [], egenAnsatt = false) { const random_egenAnsatt = erSkjermet(); const random_harSkjermetTil = erSkjermet(); + const harSikkerhetsTiltak = Math.random() < 10 / 100; + const sikkerhetsTiltakCode = hentSikkerhetstiltak(); + + var sikkerhetsTiltakKoderMapper = new Map(); + sikkerhetsTiltakKoderMapper.set('TOAN', 'To ansatte i samtale'); + sikkerhetsTiltakKoderMapper.set('FYUS', 'Fysisk utestengelse'); + return { fnr: grunndata.fnr, aktoerid: aktoerid, @@ -191,7 +198,12 @@ function lagBruker(sikkerhetstiltak = [], egenAnsatt = false) { nyForVeileder, nyForEnhet, diskresjonskode: null, - sikkerhetstiltak, + sikkerhetstiltak: harSikkerhetsTiltak ? hentSikkerhetstiltak() : [], + sikkerhetstiltak_gyldig_fra: harSikkerhetsTiltak ? randomDate({past: true}) : null, + sikkerhetstiltak_gyldig_til: harSikkerhetsTiltak ? randomDate({past: false}) : null, + sikkerhetstiltak_beskrivelse: harSikkerhetsTiltak + ? sikkerhetsTiltakKoderMapper.get(sikkerhetsTiltakCode[0]) + : null, venterPaSvarFraBruker: grunndata.venterPaSvarFraBruker, venterPaSvarFraNAV: grunndata.venterPaSvarFraNAV, nyesteUtlopteAktivitet: grunndata.nesteUtlopteAktivitet, @@ -321,6 +333,15 @@ const hentSpraak = () => { return null; }; +const hentSikkerhetstiltak = () => { + const sikkerhetsTiltakKoder = ['TOAN', 'FYUS']; + + let randomArray = new Int8Array(2); + window.crypto.getRandomValues(randomArray); + + return [sikkerhetsTiltakKoder[Math.abs(randomArray[1] % sikkerhetsTiltakKoder.length)]]; +}; + const randomEndring = () => { const keys = Object.keys(hendelserLabels); return keys[(keys.length * Math.random()) << 0]; diff --git a/src/model-interfaces.ts b/src/model-interfaces.ts index 36044a3cb..cbee6c129 100755 --- a/src/model-interfaces.ts +++ b/src/model-interfaces.ts @@ -118,6 +118,9 @@ export interface BrukerModell { oppfolgingStartdato: string; // dato veilederId?: string; sikkerhetstiltak: string[]; + sikkerhetstiltak_gyldig_fra?: string; + sikkerhetstiltak_gyldig_til?: string; + sikkerhetstiltak_beskrivelse?: string; diskresjonskode?: string; egenAnsatt: boolean; skjermetTil?: string; @@ -242,6 +245,12 @@ export interface SkjermingEtikettConfig { type: 'error' | 'warning' | 'info' | 'success'; } +export interface SikkerhetsTiltakEtikettConfig { + hidden: boolean; + tittel: string | null; + type: 'error' | 'warning' | 'info' | 'success'; +} + export interface IdentParam { ident: string; } diff --git a/src/utils/dato-utils.ts b/src/utils/dato-utils.ts index 4955fcbf0..1f0642c8d 100755 --- a/src/utils/dato-utils.ts +++ b/src/utils/dato-utils.ts @@ -1,6 +1,6 @@ import moment from 'moment'; import {Maybe} from './types'; -import {SkjermingEtikettConfig} from '../model-interfaces'; +import {SikkerhetsTiltakEtikettConfig, SkjermingEtikettConfig} from '../model-interfaces'; export function fn(value) { return typeof value === 'function' ? value : () => value; @@ -234,3 +234,31 @@ export function hentSkjermetInfo( }; } } + +export function hentSikkerhetsTiltakInfo( + harSikkerhetsTiltak: boolean | undefined, + tiltakBeskrivelse: string | undefined, + tiltakFra: string | undefined, + tiltakTil: string | undefined +): SikkerhetsTiltakEtikettConfig { + if (!harSikkerhetsTiltak) { + return { + hidden: true, + tittel: null, + type: 'info' + }; + } + + let tittelVerdi = 'Sikkerhetstiltak'; + if (tiltakBeskrivelse && tiltakBeskrivelse.length > 0) { + tittelVerdi += ': ' + tiltakBeskrivelse; + } + if (tiltakTil) { + tittelVerdi += ' (til ' + moment(tiltakTil).format('DD.MM.YYYY') + ')'; + } + return { + hidden: false, + tittel: tittelVerdi, + type: 'error' + }; +}