}>
@@ -77,17 +66,12 @@ export default function ExportSettings({ model, isReadOnly, requiredRolesText }:
-
-
-
-
-
+
{/*TODO - Add the ability to filter releases needed for export (This functionality is not available on the backend)
*/}
-
-
-
- Save
-
-
-
+
+ Save
+
diff --git a/frontend/src/entry/model/settings/AccessRequestSettings.tsx b/frontend/src/entry/model/settings/AccessRequestSettings.tsx
index 2d4550f7f..a68372048 100644
--- a/frontend/src/entry/model/settings/AccessRequestSettings.tsx
+++ b/frontend/src/entry/model/settings/AccessRequestSettings.tsx
@@ -1,5 +1,5 @@
import { LoadingButton } from '@mui/lab'
-import { Checkbox, Divider, FormControlLabel, Stack, Tooltip, Typography } from '@mui/material'
+import { Checkbox, Divider, FormControlLabel, Stack, Typography } from '@mui/material'
import { patchModel } from 'actions/model'
import { useState } from 'react'
import useNotification from 'src/hooks/useNotification'
@@ -9,11 +9,9 @@ import { getErrorMessage } from 'utils/fetcher'
type AccessRequestSettingsProps = {
model: EntryInterface
- isReadOnly: boolean
- requiredRolesText: string
}
-export default function AccessRequestSettings({ model, isReadOnly, requiredRolesText }: AccessRequestSettingsProps) {
+export default function AccessRequestSettings({ model }: AccessRequestSettingsProps) {
const [allowUngoverned, setAllowUngoverned] = useState(model.settings.ungovernedAccess)
const [loading, setLoading] = useState(false)
const [errorMessage, setErrorMessage] = useState('')
@@ -48,36 +46,26 @@ export default function AccessRequestSettings({ model, isReadOnly, requiredRoles
Manage access requests
-
-
- setAllowUngoverned(event.target.checked)}
- checked={allowUngoverned}
- disabled={isReadOnly}
- size='small'
- />
- }
+ setAllowUngoverned(event.target.checked)}
+ checked={allowUngoverned}
+ size='small'
/>
-
-
+ }
+ />
-
-
-
- Save
-
-
-
+
+ Save
+
diff --git a/frontend/src/entry/model/settings/TemplateSettings.tsx b/frontend/src/entry/model/settings/TemplateSettings.tsx
index 851ec634e..6a35b5f3c 100644
--- a/frontend/src/entry/model/settings/TemplateSettings.tsx
+++ b/frontend/src/entry/model/settings/TemplateSettings.tsx
@@ -1,5 +1,5 @@
import { LoadingButton } from '@mui/lab'
-import { Checkbox, Divider, FormControlLabel, Stack, Tooltip, Typography } from '@mui/material'
+import { Checkbox, Divider, FormControlLabel, Stack, Typography } from '@mui/material'
import { patchModel } from 'actions/model'
import { useState } from 'react'
import useNotification from 'src/hooks/useNotification'
@@ -9,11 +9,9 @@ import { getErrorMessage } from 'utils/fetcher'
type TemplateSettingsProps = {
model: EntryInterface
- isReadOnly: boolean
- requiredRolesText: string
}
-export default function TemplateSettings({ model, isReadOnly, requiredRolesText }: TemplateSettingsProps) {
+export default function TemplateSettings({ model }: TemplateSettingsProps) {
const [allowTemplating, setAllowTemplating] = useState(model.settings.allowTemplating)
const [loading, setLoading] = useState(false)
const [errorMessage, setErrorMessage] = useState('')
@@ -48,35 +46,27 @@ export default function TemplateSettings({ model, isReadOnly, requiredRolesText
Manage Templating
-
- setAllowTemplating(event.target.checked)}
- checked={allowTemplating}
- disabled={isReadOnly}
- size='small'
- />
- }
- />
-
+ setAllowTemplating(event.target.checked)}
+ checked={allowTemplating}
+ size='small'
+ />
+ }
+ />
-
-
-
- Save
-
-
-
+
+ Save
+
diff --git a/frontend/src/entry/overview/EntryRoleList.tsx b/frontend/src/entry/overview/EntryRoleList.tsx
new file mode 100644
index 000000000..9489b2c5c
--- /dev/null
+++ b/frontend/src/entry/overview/EntryRoleList.tsx
@@ -0,0 +1,42 @@
+import { Grid, Stack } from '@mui/material'
+import { Fragment, useMemo } from 'react'
+import EntityIcon from 'src/entry/EntityIcon'
+import EntityNameDisplay from 'src/entry/EntityNameDisplay'
+import EntryRolesChipSet from 'src/entry/overview/EntryRolesChipSet'
+import { EntryInterface } from 'types/types'
+
+type EntryRoleListProps = {
+ entry: EntryInterface
+}
+
+export default function EntryRoleList({ entry }: EntryRoleListProps) {
+ const rows = useMemo(
+ () =>
+ entry.collaborators.map((collaborator) => (
+
+
+
+
+
+
+
+
+
+
+
+ )),
+ [entry.collaborators],
+ )
+
+ return (
+
+
+ Entity
+
+
+ Roles
+
+ {rows}
+
+ )
+}
diff --git a/frontend/src/entry/overview/EntryRolesChipSet.tsx b/frontend/src/entry/overview/EntryRolesChipSet.tsx
new file mode 100644
index 000000000..0bac129ce
--- /dev/null
+++ b/frontend/src/entry/overview/EntryRolesChipSet.tsx
@@ -0,0 +1,16 @@
+import { Chip } from '@mui/material'
+import { useMemo } from 'react'
+import { CollaboratorEntry } from 'types/types'
+
+type EntryRolesChipSetProps = {
+ entryCollaborator: CollaboratorEntry
+}
+
+export default function EntryRolesChipSet({ entryCollaborator }: EntryRolesChipSetProps) {
+ const roleChips = useMemo(
+ () => entryCollaborator.roles.map((role) => ),
+ [entryCollaborator.roles],
+ )
+
+ return roleChips.length ? roleChips :
+}
diff --git a/frontend/src/entry/overview/EntryRolesDialog.tsx b/frontend/src/entry/overview/EntryRolesDialog.tsx
new file mode 100644
index 000000000..e94e63390
--- /dev/null
+++ b/frontend/src/entry/overview/EntryRolesDialog.tsx
@@ -0,0 +1,22 @@
+import { DialogContent, DialogTitle } from '@mui/material'
+import Dialog from '@mui/material/Dialog'
+import { Transition } from 'src/common/Transition'
+import EntryRoleList from 'src/entry/overview/EntryRoleList'
+import { EntryInterface } from 'types/types'
+
+type EntryRolesDialogProps = {
+ entry: EntryInterface
+ open: boolean
+ onClose: () => void
+}
+
+export default function EntryRolesDialog({ entry, open, onClose }: EntryRolesDialogProps) {
+ return (
+
+ )
+}
diff --git a/frontend/src/entry/overview/ExportEntryCardDialog.tsx b/frontend/src/entry/overview/ExportEntryCardDialog.tsx
index 8292acbae..c8179d497 100644
--- a/frontend/src/entry/overview/ExportEntryCardDialog.tsx
+++ b/frontend/src/entry/overview/ExportEntryCardDialog.tsx
@@ -7,6 +7,7 @@ import Image from 'next/image'
import logo from 'public/horizontal-dark.png'
import { useMemo, useRef } from 'react'
import { useReactToPrint } from 'react-to-print'
+import { Transition } from 'src/common/Transition'
import { ArrayFieldTemplate, DescriptionFieldTemplate, ObjectFieldTemplate } from 'src/Form/FormTemplates'
import { EntryInterface, SplitSchemaNoRender } from 'types/types'
import { widgets } from 'utils/formUtils'
@@ -60,7 +61,7 @@ export default function ExportEntryCardDialog({ entry, splitSchema, open, setOpe
}, [splitSchema.steps])
return (
-