Skip to content

Commit cd74b93

Browse files
joaraufrodank
andauthored
Alert for endret organisasjonsnummer (#275)
* Legg til alert dersom orgnummer er endret Co-authored-by: Frode Ankill Kämpe <[email protected]> * Bump deploy * Forsøk med ny bump depoloy siden det oppstår nettverkstrøbbel * Legg til wrapper også for tom liste * Prøv med ny bump deoloy * Legg til mer logging for organisasjonsnummerendring Co-authored-by: Frode Ankill Kämpe <[email protected]> * Legg til mer debug for endring av orgnummer * Fjern eksgtra tesdata i kode * Ta bort logging av organisasjonsendringer * Ta bort ekstra wrapping rundt tom liste --------- Co-authored-by: Frode Ankill Kämpe <[email protected]>
1 parent 9fbfc3e commit cd74b93

File tree

8 files changed

+119
-18
lines changed

8 files changed

+119
-18
lines changed

Diff for: .github/workflows/deploy.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
deploy-til-dev:
4444
name: Deploy til dev-gcp
4545
needs: bygg-og-push-docker-image
46-
if: github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/riktekst'
46+
if: github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/alert-for-endret-organisasjonsnummer'
4747
runs-on: ubuntu-latest
4848
steps:
4949
- uses: actions/checkout@v3

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ npm install
1212

1313
## Utvikling
1414

15-
Følgende kommando starter appen i et utviklingsmiljø. Alle API-kall er mocket med msw.js.
15+
Følgende kommando starter appen i et utviklingsmiljø. Alle API-kall er mocket med msw.js.
1616

1717
```sh
1818

Diff for: src/kandidat/kandidatliste/Kandidatliste.tsx

+18-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { Kandidatlistefilter } from './reducer/kandidatlisteReducer';
3535
import SideHeader from './side-header/SideHeader';
3636
import SmsFeilAlertStripe from './smsFeilAlertStripe/SmsFeilAlertStripe';
3737
import TomListe from './tom-liste/TomListe';
38+
import OrganisasjonsnummerAlert from './OrganisasjonsnummerAlert';
3839

3940
type Props = {
4041
kandidatliste: Kandidatlistetype;
@@ -47,6 +48,7 @@ type Props = {
4748
onSendSmsClick: any;
4849
onToggleArkivert: any;
4950
skjulBanner?: boolean;
51+
organisasjonsnummerFraStilling?: string | null;
5052
};
5153

5254
const Kandidatliste: FunctionComponent<Props> = ({
@@ -60,6 +62,7 @@ const Kandidatliste: FunctionComponent<Props> = ({
6062
onToggleMarkert,
6163
onToggleArkivert,
6264
skjulBanner,
65+
organisasjonsnummerFraStilling,
6366
}) => {
6467
useMaskerFødselsnumre();
6568
useHentForespørslerOmDelingAvCv(kandidatliste.stillingId);
@@ -164,6 +167,12 @@ const Kandidatliste: FunctionComponent<Props> = ({
164167
const kandidatlistenErÅpen = kandidatliste.status === Kandidatlistestatus.Åpen;
165168
const kanArkivereKandidater = !filter.visArkiverte && kandidatlistenErÅpen;
166169

170+
const orgnummerDivergererMellomStillingOgKandidat: boolean =
171+
kandidatliste &&
172+
kandidatliste.organisasjonReferanse != null &&
173+
organisasjonsnummerFraStilling != null &&
174+
kandidatliste.organisasjonReferanse !== organisasjonsnummerFraStilling;
175+
167176
return (
168177
<div className={css.innhold}>
169178
<SideHeader kandidatliste={kandidatliste} skjulBanner={skjulBanner} />
@@ -185,6 +194,9 @@ const Kandidatliste: FunctionComponent<Props> = ({
185194
kandidatliste={kandidatliste}
186195
/>
187196
)}
197+
{orgnummerDivergererMellomStillingOgKandidat && (
198+
<OrganisasjonsnummerAlert />
199+
)}
188200
<KnappeRad
189201
kandidatliste={kandidatliste}
190202
onSendSmsClick={onSendSmsClick}
@@ -260,7 +272,12 @@ const Kandidatliste: FunctionComponent<Props> = ({
260272
</div>
261273
</>
262274
) : (
263-
<TomListe kandidatlistenErLukket={!kandidatlistenErÅpen}></TomListe>
275+
<TomListe
276+
kandidatlistenErLukket={!kandidatlistenErÅpen}
277+
orgnummerDivergererMellomStillingOgKandidat={
278+
orgnummerDivergererMellomStillingOgKandidat
279+
}
280+
></TomListe>
264281
)}
265282
</div>
266283
);

Diff for: src/kandidat/kandidatliste/KandidatlisteOgModaler.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ class LegacyKandidatlisteOgModaler extends React.Component<Props> {
207207
onKandidaterAngreArkivering={this.onKandidaterAngreArkivering}
208208
onSendSmsClick={() => this.onToggleSendSmsModal(true)}
209209
onToggleArkivert={toggleArkivert}
210+
organisasjonsnummerFraStilling={this.props.stilling?.employer?.orgnr}
210211
/>
211212
</div>
212213
);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.organisasjonsnummeralert {
2+
margin-bottom: 1rem;
3+
}
+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { Alert, BodyLong, Box, Heading, Link, List } from '@navikt/ds-react';
2+
import css from './OrganisasjonsnummerAlert.module.css';
3+
4+
const OrganisasjonsnummerAlert = () => (
5+
<div className={css.organisasjonsnummeralert}>
6+
<Alert variant="warning">
7+
<Heading level="3" size="medium" spacing>
8+
Stillingen har fått nytt organisasjonsnummer
9+
</Heading>
10+
<BodyLong className={css.beskrivelse}>
11+
Organisasjonsnummeret til stillingen har blitt endret i et annet system. Det kan
12+
føre til at CVer deles med feil organisasjon.
13+
</BodyLong>
14+
15+
<Box paddingBlock="4">
16+
<Heading level="4" size="small">
17+
Hva betyr det for meg?
18+
</Heading>
19+
<BodyLong>
20+
Har du lagt til kandidater på stillingen blir de delt med den forrige
21+
organisasjonen. Deler du CVene deres, vil det føre til personvernsbrudd.
22+
</BodyLong>
23+
</Box>
24+
25+
<List
26+
as="ol"
27+
title="Hva kan jeg gjøre med det?"
28+
description="For å dele CVene til disse kandidatene må du:"
29+
headingTag="h4"
30+
>
31+
<List.Item>Slett kandidatene fra denne stillingen.</List.Item>
32+
<List.Item>
33+
Opprette stillingen på nytt med det nye organisasjonsnummeret.
34+
</List.Item>
35+
<List.Item>Legge til kandidatene igjen på den nye stillingen.</List.Item>
36+
</List>
37+
38+
<List
39+
as="ol"
40+
title="Hva hvis jeg har delt CVene til disse kandidatene allerede?"
41+
headingTag="h4"
42+
>
43+
<List.Item>
44+
Slett delingen: Finn kandidatene i listen, trykk på redigeringsknappen, og velg
45+
"Slett CV hos arbeidsgiver".
46+
</List.Item>
47+
<List.Item>
48+
Meld avvik i{' '}
49+
<Link
50+
target="_blank"
51+
rel="noreferrer noopener"
52+
href="https://navno.sharepoint.com/sites/intranett-avvik"
53+
>
54+
avviksrapporteringssystemet
55+
</Link>{' '}
56+
med informasjon om hva som skjedde.
57+
</List.Item>
58+
</List>
59+
</Alert>
60+
</div>
61+
);
62+
63+
export default OrganisasjonsnummerAlert;

Diff for: src/kandidat/kandidatliste/tom-liste/TomListe.module.css

+4
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@
3232
.knapper > *:not(:last-child) {
3333
margin-right: 1rem;
3434
}
35+
36+
.alertWrapper {
37+
max-width: 40rem;
38+
}

Diff for: src/kandidat/kandidatliste/tom-liste/TomListe.tsx

+28-15
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,43 @@ import { FunctionComponent, ReactNode } from 'react';
22
import { Heading } from '@navikt/ds-react';
33
import classnames from 'classnames';
44
import css from './TomListe.module.css';
5+
import OrganisasjonsnummerAlert from '../OrganisasjonsnummerAlert';
56

67
type Props = {
78
children?: ReactNode;
89
kandidatlistenErLukket: boolean;
10+
orgnummerDivergererMellomStillingOgKandidat: boolean;
911
};
1012

11-
const TomListe: FunctionComponent<Props> = ({ kandidatlistenErLukket, children }) => (
13+
const TomListe: FunctionComponent<Props> = ({
14+
kandidatlistenErLukket,
15+
orgnummerDivergererMellomStillingOgKandidat,
16+
children,
17+
}) => (
1218
<div className={css.tomListe}>
13-
<div
14-
className={classnames(css.content, {
15-
[css.contentLukketListe]: kandidatlistenErLukket,
16-
})}
17-
>
18-
<Heading
19-
level="2"
20-
size="medium"
21-
className={classnames(css.tekst, {
22-
[css.tekstMedChildren]: children,
19+
<div>
20+
{orgnummerDivergererMellomStillingOgKandidat && (
21+
<div className={css.alertWrapper}>
22+
<OrganisasjonsnummerAlert />
23+
</div>
24+
)}
25+
<div
26+
className={classnames(css.content, {
27+
[css.contentLukketListe]: kandidatlistenErLukket,
2328
})}
2429
>
25-
<span>Du har ingen kandidater i kandidatlisten.</span>
26-
{kandidatlistenErLukket && <span> Listen er avsluttet.</span>}
27-
</Heading>
28-
{children && <div className={css.knapper}>{children}</div>}
30+
<Heading
31+
level="2"
32+
size="medium"
33+
className={classnames(css.tekst, {
34+
[css.tekstMedChildren]: children,
35+
})}
36+
>
37+
<span>Du har ingen kandidater i kandidatlisten.</span>
38+
{kandidatlistenErLukket && <span> Listen er avsluttet.</span>}
39+
</Heading>
40+
{children && <div className={css.knapper}>{children}</div>}
41+
</div>
2942
</div>
3043
</div>
3144
);

0 commit comments

Comments
 (0)