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

Commit c17a1e8

Browse files
committed
access page
1 parent e8290cd commit c17a1e8

File tree

3 files changed

+121
-0
lines changed

3 files changed

+121
-0
lines changed
+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import { Heading, Link, Table, Tabs } from "@navikt/ds-react"
2+
import { PendingAccessRequestBar } from "./pendingAccessRequestBar"
3+
4+
interface pendingAccessRequestsForGroupProps {
5+
accessRequests: any[]
6+
}
7+
8+
export const AccessRequestsForGroup = ({ accessRequests }: pendingAccessRequestsForGroupProps) => {
9+
const pendingRequest = accessRequests.filter((r) => r.status === 'pending')
10+
const processedRequest = accessRequests.filter((r) => r.status === 'approved' || r.status === 'denied')
11+
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></>
81+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { ExpansionCard } from "@navikt/ds-react"
2+
import { useState } from "react"
3+
4+
interface PendingAccessRequestBarProps {
5+
accessRequest: any
6+
}
7+
8+
export const PendingAccessRequestBar = ({ accessRequest }: PendingAccessRequestBarProps) => {
9+
const [expanded, setExpanded] = useState(false)
10+
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>)
27+
}

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

+13
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { JoinableViewsList } from '../../components/dataProc/joinableViewsList'
1111
import { DataproductsList } from '../../components/dataproducts/dataproductList'
1212
import { Tabs } from '@navikt/ds-react'
1313
import { useFetchUserData } from '../../lib/rest/userData'
14+
import { AccessRequestsForGroup } from '../../components/user/accessRequestsForGroup'
1415

1516
export const UserPages = () => {
1617
const router = useRouter()
@@ -62,6 +63,18 @@ export const UserPages = () => {
6263
</div>
6364
),
6465
},
66+
{
67+
title: 'Tilgangssøknader til min gruppe',
68+
slug: 'requestsForGroup',
69+
component: (
70+
<div className="grid gap-4">
71+
<h2>Tilgangssøknader til min gruppe</h2>
72+
<AccessRequestsForGroup
73+
accessRequests={data.accessRequestsAsGranter as any[]}
74+
/>
75+
</div>
76+
),
77+
},
6578
{
6679
title: 'Mine tilgangssøknader',
6780
slug: 'requests',

0 commit comments

Comments
 (0)