Skip to content

Commit 5609626

Browse files
committed
Flytt dupliser knapp til handlinger
1 parent fd4bfdb commit 5609626

File tree

7 files changed

+106
-148
lines changed

7 files changed

+106
-148
lines changed

frontend/mr-admin-flate/src/components/avtaler/DupliserAvtale.tsx

-36
This file was deleted.

frontend/mr-admin-flate/src/components/detaljside/DupliserButton.tsx

-27
This file was deleted.

frontend/mr-admin-flate/src/components/gjennomforing/DupliserGjennomforing.tsx

-38
This file was deleted.

frontend/mr-admin-flate/src/pages/avtaler/AvtaleKnapperad.tsx

+27-1
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@ import { AvbrytAvtaleModal } from "@/components/modal/AvbrytAvtaleModal";
77
import { VarselModal } from "@mr/frontend-common/components/varsel/VarselModal";
88
import { KnapperadContainer } from "@/pages/KnapperadContainer";
99
import { BodyShort, Button, Dropdown } from "@navikt/ds-react";
10-
import { AvtaleDto, NavAnsatt } from "@mr/api-client-v2";
10+
import { AvtaleDto, NavAnsatt, Opphav } from "@mr/api-client-v2";
1111
import { useRef } from "react";
1212
import { useNavigate } from "react-router";
13+
import { LayersPlusIcon } from "@navikt/aksel-icons";
14+
import { useSetAtom } from "jotai";
15+
import { avtaleDetaljerTabAtom } from "@/api/atoms";
1316

1417
interface Props {
1518
ansatt: NavAnsatt;
@@ -21,11 +24,27 @@ export function AvtaleKnapperad({ ansatt, avtale }: Props) {
2124
const advarselModal = useRef<HTMLDialogElement>(null);
2225
const avbrytModalRef = useRef<HTMLDialogElement>(null);
2326
const registrerOpsjonModalRef = useRef<HTMLDialogElement>(null);
27+
const setAvtaleDetaljerTab = useSetAtom(avtaleDetaljerTabAtom);
2428

2529
function kanRegistrereOpsjon(avtale: AvtaleDto): boolean {
2630
return !!avtale?.opsjonsmodellData?.opsjonMaksVarighet;
2731
}
2832

33+
function dupliserAvtale() {
34+
setAvtaleDetaljerTab("detaljer");
35+
navigate(`/avtaler/skjema`, {
36+
state: {
37+
dupliserAvtale: {
38+
opphav: Opphav.MR_ADMIN_FLATE,
39+
tiltakstype: avtale.tiltakstype,
40+
avtaletype: avtale.avtaletype,
41+
beskrivelse: avtale.beskrivelse,
42+
faneinnhold: avtale.faneinnhold,
43+
},
44+
},
45+
});
46+
}
47+
2948
return (
3049
<KnapperadContainer>
3150
<EndringshistorikkPopover>
@@ -72,6 +91,13 @@ export function AvtaleKnapperad({ ansatt, avtale }: Props) {
7291
</Dropdown.Menu.GroupedList.Item>
7392
)}
7493
</Dropdown.Menu.GroupedList>
94+
<Dropdown.Menu.Divider />
95+
<Dropdown.Menu.List>
96+
<Dropdown.Menu.List.Item onClick={dupliserAvtale}>
97+
<LayersPlusIcon fontSize="1.5rem" aria-label="Ikon for duplisering av dokument" />
98+
Dupliser
99+
</Dropdown.Menu.List.Item>
100+
</Dropdown.Menu.List>
75101
</Dropdown.Menu>
76102
</Dropdown>
77103
</HarSkrivetilgang>

frontend/mr-admin-flate/src/pages/avtaler/AvtalePage.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { DupliserAvtale } from "@/components/avtaler/DupliserAvtale";
21
import { Header } from "@/components/detaljside/Header";
32
import { AvtaleIkon } from "@/components/ikoner/AvtaleIkon";
43
import { Brodsmule, Brodsmuler } from "@/components/navigering/Brodsmuler";
@@ -50,7 +49,6 @@ export function AvtalePage() {
5049
</Heading>
5150
</VStack>
5251
<AvtalestatusTag avtale={avtale} showAvbruttAarsak />
53-
<DupliserAvtale avtale={avtale} />
5452
</div>
5553
</Header>
5654
<Tabs value={currentTab()}>

frontend/mr-admin-flate/src/pages/gjennomforing/GjennomforingKnapperad.tsx

+79-42
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { gjennomforingDetaljerTabAtom } from "@/api/atoms";
12
import { useFeatureToggle } from "@/api/features/useFeatureToggle";
23
import { useGjennomforingEndringshistorikk } from "@/api/gjennomforing/useGjennomforingEndringshistorikk";
34
import { HarSkrivetilgang } from "@/components/authActions/HarSkrivetilgang";
@@ -7,9 +8,17 @@ import { SetApentForPameldingModal } from "@/components/gjennomforing/SetApentFo
78
import { RegistrerStengtHosArrangorModal } from "@/components/gjennomforing/stengt/RegistrerStengtHosArrangorModal";
89
import { AvbrytGjennomforingModal } from "@/components/modal/AvbrytGjennomforingModal";
910
import { KnapperadContainer } from "@/pages/KnapperadContainer";
10-
import { GjennomforingDto, GjennomforingStatus, NavAnsatt, Toggles } from "@mr/api-client-v2";
11+
import {
12+
GjennomforingDto,
13+
GjennomforingStatus,
14+
NavAnsatt,
15+
Opphav,
16+
Toggles,
17+
} from "@mr/api-client-v2";
1118
import { VarselModal } from "@mr/frontend-common/components/varsel/VarselModal";
19+
import { LayersPlusIcon } from "@navikt/aksel-icons";
1220
import { Alert, BodyShort, Button, Dropdown, Switch } from "@navikt/ds-react";
21+
import { useSetAtom } from "jotai";
1322
import React, { useRef } from "react";
1423
import { useFetcher, useNavigate } from "react-router";
1524
interface Props {
@@ -24,6 +33,7 @@ export function GjennomforingKnapperad({ ansatt, gjennomforing }: Props) {
2433
const avbrytModalRef = useRef<HTMLDialogElement>(null);
2534
const registrerStengtModalRef = useRef<HTMLDialogElement>(null);
2635
const apentForPameldingModalRef = useRef<HTMLDialogElement>(null);
36+
const setGjennomforingDetaljerTab = useSetAtom(gjennomforingDetaljerTabAtom);
2737

2838
const { data: enableOkonomi } = useFeatureToggle(
2939
Toggles.MULIGHETSROMMET_TILTAKSTYPE_MIGRERING_OKONOMI,
@@ -48,6 +58,20 @@ export function GjennomforingKnapperad({ ansatt, gjennomforing }: Props) {
4858
gjennomforingPublisert = fetcher.formData.get("publisert") === "true";
4959
}
5060

61+
function dupliserGjennomforing() {
62+
setGjennomforingDetaljerTab("detaljer");
63+
navigate(`/avtaler/${gjennomforing.avtaleId}/gjennomforinger/skjema`, {
64+
state: {
65+
dupliserGjennomforing: {
66+
opphav: Opphav.MR_ADMIN_FLATE,
67+
avtaleId: gjennomforing.avtaleId,
68+
beskrivelse: gjennomforing.beskrivelse,
69+
faneinnhold: gjennomforing.faneinnhold,
70+
},
71+
},
72+
});
73+
}
74+
5175
return (
5276
<KnapperadContainer>
5377
<HarSkrivetilgang
@@ -69,52 +93,65 @@ export function GjennomforingKnapperad({ ansatt, gjennomforing }: Props) {
6993
<EndringshistorikkPopover>
7094
<GjennomforingEndringshistorikk id={gjennomforing.id} />
7195
</EndringshistorikkPopover>
72-
73-
<HarSkrivetilgang
74-
ressurs="Gjennomføring"
75-
condition={gjennomforing.status.status === GjennomforingStatus.GJENNOMFORES}
76-
>
96+
<HarSkrivetilgang ressurs="Gjennomføring">
7797
<Dropdown>
7898
<Button size="small" as={Dropdown.Toggle}>
7999
Handlinger
80100
</Button>
81101
<Dropdown.Menu>
82-
<Dropdown.Menu.GroupedList>
83-
<Dropdown.Menu.GroupedList.Item
84-
onClick={() => {
85-
if (
86-
gjennomforing.administratorer &&
87-
gjennomforing.administratorer.length > 0 &&
88-
!gjennomforing.administratorer.map((a) => a.navIdent).includes(ansatt.navIdent)
89-
) {
90-
advarselModal.current?.showModal();
91-
} else {
92-
navigate("skjema");
93-
}
94-
}}
95-
>
96-
Rediger gjennomføring
97-
</Dropdown.Menu.GroupedList.Item>
98-
{gjennomforing.status.status === GjennomforingStatus.GJENNOMFORES && (
99-
<Dropdown.Menu.GroupedList.Item
100-
onClick={() => apentForPameldingModalRef.current?.showModal()}
101-
>
102-
{gjennomforing.apentForPamelding ? "Steng for påmelding" : "Åpne for påmelding"}
103-
</Dropdown.Menu.GroupedList.Item>
104-
)}
105-
{enableOkonomi && (
106-
<Dropdown.Menu.GroupedList.Item
107-
onClick={() => registrerStengtModalRef.current?.showModal()}
108-
>
109-
Registrer stengt hos arrangør
110-
</Dropdown.Menu.GroupedList.Item>
111-
)}
112-
{gjennomforing.status.status === GjennomforingStatus.GJENNOMFORES && (
113-
<Dropdown.Menu.GroupedList.Item onClick={() => avbrytModalRef.current?.showModal()}>
114-
Avbryt gjennomføring
115-
</Dropdown.Menu.GroupedList.Item>
116-
)}
117-
</Dropdown.Menu.GroupedList>
102+
{gjennomforing.status.status === GjennomforingStatus.GJENNOMFORES && (
103+
<>
104+
<Dropdown.Menu.GroupedList>
105+
<Dropdown.Menu.GroupedList.Item
106+
onClick={() => {
107+
if (
108+
gjennomforing.administratorer &&
109+
gjennomforing.administratorer.length > 0 &&
110+
!gjennomforing.administratorer
111+
.map((a) => a.navIdent)
112+
.includes(ansatt.navIdent)
113+
) {
114+
advarselModal.current?.showModal();
115+
} else {
116+
navigate("skjema");
117+
}
118+
}}
119+
>
120+
Rediger gjennomføring
121+
</Dropdown.Menu.GroupedList.Item>
122+
{gjennomforing.status.status === GjennomforingStatus.GJENNOMFORES && (
123+
<Dropdown.Menu.GroupedList.Item
124+
onClick={() => apentForPameldingModalRef.current?.showModal()}
125+
>
126+
{gjennomforing.apentForPamelding
127+
? "Steng for påmelding"
128+
: "Åpne for påmelding"}
129+
</Dropdown.Menu.GroupedList.Item>
130+
)}
131+
{enableOkonomi && (
132+
<Dropdown.Menu.GroupedList.Item
133+
onClick={() => registrerStengtModalRef.current?.showModal()}
134+
>
135+
Registrer stengt hos arrangør
136+
</Dropdown.Menu.GroupedList.Item>
137+
)}
138+
{gjennomforing.status.status === GjennomforingStatus.GJENNOMFORES && (
139+
<Dropdown.Menu.GroupedList.Item
140+
onClick={() => avbrytModalRef.current?.showModal()}
141+
>
142+
Avbryt gjennomføring
143+
</Dropdown.Menu.GroupedList.Item>
144+
)}
145+
</Dropdown.Menu.GroupedList>
146+
<Dropdown.Menu.Divider />
147+
</>
148+
)}
149+
<Dropdown.Menu.List>
150+
<Dropdown.Menu.List.Item onClick={dupliserGjennomforing}>
151+
<LayersPlusIcon fontSize="1.5rem" aria-label="Ikon for duplisering av dokument" />
152+
Dupliser
153+
</Dropdown.Menu.List.Item>
154+
</Dropdown.Menu.List>
118155
</Dropdown.Menu>
119156
</Dropdown>
120157
</HarSkrivetilgang>

frontend/mr-admin-flate/src/pages/gjennomforing/GjennomforingPage.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { useFeatureToggle } from "@/api/features/useFeatureToggle";
22
import { Header } from "@/components/detaljside/Header";
3-
import { DupliserGjennomforing } from "@/components/gjennomforing/DupliserGjennomforing";
43
import { GjennomforingIkon } from "@/components/ikoner/GjennomforingIkon";
54
import { Laster } from "@/components/laster/Laster";
65
import { Brodsmule, Brodsmuler } from "@/components/navigering/Brodsmuler";
@@ -85,7 +84,6 @@ export function GjennomforingPage() {
8584
status={gjennomforing.status.status}
8685
avbrutt={gjennomforing.status.avbrutt}
8786
/>
88-
<DupliserGjennomforing gjennomforing={gjennomforing} />
8987
</div>
9088
{gjennomforing.status.status === GjennomforingStatus.GJENNOMFORES && (
9189
<div className="pr-2">

0 commit comments

Comments
 (0)