Skip to content
This repository was archived by the owner on Nov 1, 2024. It is now read-only.

Commit 9fe82c8

Browse files
committed
fix access request page
1 parent b9e98b8 commit 9fe82c8

File tree

6 files changed

+46
-90
lines changed

6 files changed

+46
-90
lines changed

components/dataproducts/access/datasetAccess.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ interface AccessRequestModalProps {
130130
actionApprove: (requestID: string) => void
131131
}
132132

133-
const AccessRequestModal = ({
133+
export const AccessRequestModal = ({
134134
requestID,
135135
actionDeny,
136136
actionApprove,
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { Alert, Link } from "@navikt/ds-react"
2+
import { useContext, useState } from "react"
3+
import { UserState } from "../../lib/context"
4+
5+
export const AccessRequestAlert = () => {
6+
const userData = useContext(UserState)
7+
return userData?.accessRequests?.length ?(
8+
<Alert variant='info'>
9+
Du har tilgangssøknad som venter på <Link href="/user/requestsForGroup">behandling</Link>.
10+
</Alert>): <></>
11+
}

components/user/accessRequestsForGroup.tsx

+11-70
Original file line numberDiff line numberDiff line change
@@ -6,76 +6,17 @@ interface pendingAccessRequestsForGroupProps {
66
}
77

88
export const AccessRequestsForGroup = ({ accessRequests }: pendingAccessRequestsForGroupProps) => {
9+
//TODO: support approved and denied requests
910
const pendingRequest = accessRequests.filter((r) => r.status === 'pending')
10-
const processedRequest = accessRequests.filter((r) => r.status === 'approved' || r.status === 'denied')
1111
return <><div>
12-
<Tabs defaultValue={"pending"}>
13-
<Tabs.List>
14-
<Tabs.Tab
15-
value="pending"
16-
label="ubehandlet"
17-
/>
18-
<Tabs.Tab
19-
value="processed"
20-
label="behandlet"
21-
/>
22-
</Tabs.List>
23-
<Tabs.Panel value="pending" className="w-full space-y-2 p-4">
24-
<div className="mb-3 w-[91vw] md:w-auto overflow-auto">
25-
{pendingRequest?.length > 0 ? (<div>
26-
{pendingRequest.map((r: any) => (
27-
<PendingAccessRequestBar accessRequest={r}></PendingAccessRequestBar>
28-
))
29-
}</div>
30-
) : (
31-
<div>'Ingen tilgangssøknader'</div>
32-
)}
33-
</div>
34-
35-
</Tabs.Panel>
36-
<Tabs.Panel value="processed" className="w-full space-y-2 p-4">
37-
<div className="mb-3 w-[91vw] md:w-auto overflow-auto">
38-
{processedRequest?.length > 0 ? (
39-
<Table>
40-
<Table.Header>
41-
<Table.Row>
42-
<Table.HeaderCell>Dataprodukt</Table.HeaderCell>
43-
<Table.HeaderCell>Datasett</Table.HeaderCell>
44-
<Table.HeaderCell>Bruker/gruppe</Table.HeaderCell>
45-
<Table.HeaderCell />
46-
</Table.Row>
47-
</Table.Header>
48-
{processedRequest.map((r, i) => (
49-
<>
50-
<Table.Row
51-
className={i % 2 === 0 ? 'bg-[#f7f7f7]' : ''}
52-
key={i + '-request'}
53-
>
54-
<Table.DataCell className="w-36">{r.dataproductName}</Table.DataCell>
55-
<Table.DataCell className="w-36">
56-
{r.datasetName}
57-
</Table.DataCell>
58-
<Table.DataCell className="w-48">
59-
{r.subject}
60-
</Table.DataCell>
61-
<Table.DataCell className="w-48">
62-
<Link target="_blank" rel="norefferer" href={`/dataproduct/${r.dataproductID}/${r.dataproductSlug}/${r.datasetID}`}>
63-
Til datasett
64-
</Link>
65-
</Table.DataCell>
66-
</Table.Row>
67-
</>
68-
))
69-
}
70-
</Table>
71-
) : (
72-
'Ingen tilgangssøknader'
73-
)}
74-
</div>
75-
76-
</Tabs.Panel>
77-
</Tabs>
78-
</div><div>
79-
80-
</div></>
12+
{pendingRequest?.length > 0 ? (<div>
13+
{pendingRequest.map((r: any) => (
14+
<PendingAccessRequestBar accessRequest={r}></PendingAccessRequestBar>
15+
))
16+
}</div>
17+
) : (
18+
<div>'Ingen tilgangssøknader'</div>
19+
)}
20+
</div>
21+
</>
8122
}
+19-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
import { ExpansionCard } from "@navikt/ds-react"
1+
import { ExpansionCard, Link } from "@navikt/ds-react"
22
import { useState } from "react"
3+
import { AccessRequestModal } from "../dataproducts/access/datasetAccess"
4+
import { Header } from "@navikt/ds-react-internal"
35

46
interface PendingAccessRequestBarProps {
57
accessRequest: any
@@ -8,20 +10,20 @@ interface PendingAccessRequestBarProps {
810
export const PendingAccessRequestBar = ({ accessRequest }: PendingAccessRequestBarProps) => {
911
const [expanded, setExpanded] = useState(false)
1012
return (
11-
<div key={accessRequest.id} className="w-[60rem] mb-5 mt-5">
12-
<ExpansionCard aria-label="Pending Request" onToggle={open => setExpanded(open)}>
13-
<ExpansionCard.Header>
14-
<ExpansionCard.Title className="text-[1.3em]">{`${accessRequest?.datasetName} - ${accessRequest?.dataproductName}`}</ExpansionCard.Title>
15-
<ExpansionCard.Description>
16-
<p>fra {accessRequest.owner} - {new Date(accessRequest.created).toLocaleDateString('no-NO')}</p>
17-
<p></p>
18-
</ExpansionCard.Description>
19-
</ExpansionCard.Header>
20-
<ExpansionCard.Content>
21-
<div>
22-
behandle
23-
</div>
24-
</ExpansionCard.Content>
25-
</ExpansionCard>
26-
</div>)
13+
<div key={accessRequest.id} className="w-[60rem] mb-5 mt-5 border pt-2 pb-2 pl-4 pr-4 flex flex-row justify-between rounded border-gray-200">
14+
<div>
15+
<h3> <Link rel="norefferer" href={`/dataproduct/${accessRequest.dataproductID}/${accessRequest.dataproductSlug}/${accessRequest.datasetID}`}>
16+
{`${accessRequest?.datasetName} - ${accessRequest?.dataproductName}`}
17+
</Link>
18+
</h3>
19+
fra {accessRequest.owner} - {new Date(accessRequest.created).toLocaleDateString('no-NO')}
20+
</div>
21+
<div>
22+
<AccessRequestModal requestID={""} actionDeny={function (requestID: string, setOpen: Function): void {
23+
throw new Error("Function not implemented.")
24+
}} actionApprove={function (requestID: string): void {
25+
throw new Error("Function not implemented.")
26+
}}></AccessRequestModal>
27+
</div>
28+
</div>)
2729
}

pages/index.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import LegalGuidanceIcon from "../components/lib/icons/legalGuidanceIcon";
1414
import GetStartedIcon from "../components/lib/icons/getStartedIcon";
1515
import { Next } from '@navikt/ds-icons'
1616
import DatadrivenIcon from "../components/lib/icons/datadrivenIcon";
17+
import { AccessRequestAlert } from '../components/user/accessRequestAlert'
1718

1819
const SEARCH_LIMIT = 6
1920

@@ -34,6 +35,7 @@ const LandingPage = () => {
3435
<Head>
3536
<title>datamarkedsplassen</title>
3637
</Head>
38+
<AccessRequestAlert></AccessRequestAlert>
3739
<div className="bg-surface-subtle p-8 min-h-[34rem] items-center justify-center flex flex-col md:flex-row gap-8">
3840
<ProductAreaLinks/>
3941

pages/user/[[...page]].tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ export const UserPages = () => {
146146
<Head>
147147
<title>Brukerside</title>
148148
</Head>
149-
<div className="flex flex-col items-stretch justify-between pt-8 w-64">
150-
<div className="flex w-64 flex-col gap-2">
149+
<div className="flex flex-col items-stretch justify-between pt-8 w-[20rem]">
150+
<div className="flex w-full flex-col gap-2">
151151
{menuItems.map(({ title, slug }, idx) =>
152152
currentPage == idx ? (
153153
<p

0 commit comments

Comments
 (0)