Skip to content

Commit 47cfd49

Browse files
committed
feat: disallow guestbook if it's a draft or edit permission
1 parent 78a5bbb commit 47cfd49

19 files changed

Lines changed: 422 additions & 41 deletions

File tree

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"@dnd-kit/sortable": "8.0.0",
1919
"@dnd-kit/utilities": "3.2.2",
2020
"@faker-js/faker": "7.6.0",
21-
"@iqss/dataverse-client-javascript": "2.1.0-alpha.2",
21+
"@iqss/dataverse-client-javascript": "2.1.0-pr438.62748a8",
2222
"@iqss/dataverse-design-system": "*",
2323
"@istanbuljs/nyc-config-typescript": "1.0.2",
2424
"@tanstack/react-table": "8.9.2",

packages/design-system/src/lib/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export { NavbarDropdown } from './components/navbar/navbar-dropdown/NavbarDropdo
1212
export { ThemeProvider, useTheme } from './components/theme/ThemeProvider'
1313
export { Breadcrumb } from './components/breadcrumb/Breadcrumb'
1414
export { Alert } from './components/alert/Alert'
15+
export type { AlertVariant } from './components/alert/AlertVariant'
1516
export { Tabs } from './components/tabs/Tabs'
1617
export { Accordion } from './components/accordion/Accordion'
1718
export { ButtonGroup } from './components/button-group/ButtonGroup'

packages/design-system/tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
"forceConsistentCasingInFileNames": true,
1212
"noFallthroughCasesInSwitch": true,
1313
"module": "esnext",
14-
"moduleResolution": "node",
14+
"moduleResolution": "bundler",
1515
"resolveJsonModule": true,
1616
"isolatedModules": true,
1717
"noEmit": true,
18-
"jsx": "react-jsx"
18+
"jsx": "react-jsx"
1919
},
2020
"include": ["src", "tests", "vite.config.ts", "cypress.config.ts", ".storybook/test-runner.ts"],
2121
"exclude": ["tests/**/**.spec.ts", "tests/**/**.spec.tsx"]

src/alert/domain/models/Alert.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { AlertVariant } from '@iqss/dataverse-design-system/dist/components/alert/AlertVariant'
1+
import { type AlertVariant } from '@iqss/dataverse-design-system'
22

33
export enum AlertMessageKey {
44
DRAFT_VERSION = 'draftVersion',

src/guestbooks/domain/models/Guestbook.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export interface GuestbookOption {
66
}
77

88
export interface GuestbookCustomQuestion {
9+
id?: number | string
910
question: string
1011
required: boolean
1112
displayOrder: number

src/sections/dataset/dataset-action-buttons/access-dataset-menu/AccessDatasetMenu.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ export function AccessDatasetMenu({
5151
const [selectedDownloadFormat, setSelectedDownloadFormat] = useState<FileDownloadMode>(
5252
FileDownloadMode.ORIGINAL
5353
)
54-
const hasGuestbook = guestbookId !== undefined
54+
const hasGuestbook =
55+
guestbookId !== undefined &&
56+
version.publishingStatus !== DatasetPublishingStatus.DRAFT &&
57+
!permissions.canUpdateDataset
5558

5659
const flesToDownloadSizeIsZero =
5760
fileDownloadSizes.map(({ value }) => value).reduce((acc, curr) => acc + curr, 0) === 0

src/sections/dataset/dataset-files/files-table/file-actions/download-files/DownloadFilesButton.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next'
33
import { Button, DropdownButton, DropdownButtonItem } from '@iqss/dataverse-design-system'
44
import { MouseEvent, useState } from 'react'
55
import { toast } from 'react-toastify'
6+
import { DatasetPublishingStatus } from '@/dataset/domain/models/Dataset'
67
import { FileDownloadMode } from '../../../../../../files/domain/models/FileMetadata'
78
import { useDataset } from '../../../../DatasetContext'
89
import { FileSelection } from '../../row-selection/useFileSelection'
@@ -42,7 +43,10 @@ export function DownloadFilesButton({ files, fileSelection }: DownloadFilesButto
4243
const fileIdsForGuestbookSubmission = allFilesSelected
4344
? undefined
4445
: getFileIdsFromSelection(fileSelection)
45-
const hasGuestbook = dataset?.guestbookId !== undefined
46+
const hasGuestbook =
47+
dataset?.guestbookId !== undefined &&
48+
dataset?.version.publishingStatus !== DatasetPublishingStatus.DRAFT &&
49+
!dataset?.permissions.canUpdateDataset
4650

4751
const onClick = (event: MouseEvent<HTMLElement>, downloadMode: FileDownloadMode) => {
4852
if (fileSelectionCount === SELECTED_FILES_EMPTY) {

src/sections/dataset/dataset-files/files-table/file-actions/file-actions-cell/file-action-buttons/FileActionButtons.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ export function FileActionButtons({
3131
userHasDownloadPermission={file.permissions.canDownloadFile}
3232
metadata={file.metadata}
3333
isDeaccessioned={file.datasetPublishingStatus === DatasetPublishingStatus.DEACCESSIONED}
34+
isDraft={file.datasetPublishingStatus === DatasetPublishingStatus.DRAFT}
35+
canEdit={file.permissions.canEditOwnerDataset}
3436
ingestInProgress={file.ingest.isInProgress}
3537
asIcon
3638
/>

src/sections/file/File.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ export function File({
153153
metadata={file.metadata}
154154
ingestInProgress={file.ingest.isInProgress}
155155
isDeaccessioned={isDeaccessioned}
156+
isDraft={file.datasetVersion.publishingStatus === DatasetPublishingStatus.DRAFT}
157+
canEdit={file.permissions.canEditOwnerDataset}
156158
guestbookId={file.guestbookId}
157159
datasetPersistentId={file.datasetPersistentId}
158160
datasetLicense={file.datasetLicense}

0 commit comments

Comments
 (0)