• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IQSS / dataverse-frontend / 18140405254

30 Sep 2025 06:55PM UTC coverage: 98.052% (+0.7%) from 97.333%
18140405254

push

github

web-flow
Merge pull request #844 from IQSS/jggautier-patch-1

Adding "Featured Items" to changes section of README

1582 of 1638 branches covered (96.58%)

Branch coverage included in aggregate %.

3804 of 3855 relevant lines covered (98.68%)

10860.15 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

64.1
/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/EditDatasetMenu.tsx
1
import { useTranslation } from 'react-i18next'
2
import { useNavigate } from 'react-router-dom'
3
import {
4
  Dataset,
5
  DatasetNonNumericVersionSearchParam,
6
  DatasetPublishingStatus
7
} from '../../../../dataset/domain/models/Dataset'
8
import { DropdownButton, DropdownButtonItem } from '@iqss/dataverse-design-system'
9
import { EditDatasetPermissionsMenu } from './EditDatasetPermissionsMenu'
10
import { DeleteDraftDatasetButton } from './delete-draft-dataset/DeleteDraftDatasetButton'
11
import { DeaccessionDatasetButton } from './DeaccessionDatasetButton'
12
import { useSession } from '../../../session/SessionContext'
13
import { QueryParamKey, Route } from '../../../Route.enum'
14
import { DatasetRepository } from '@/dataset/domain/repositories/DatasetRepository'
15
import { useNotImplementedModal } from '../../.././not-implemented/NotImplementedModalContext'
16

17
interface EditDatasetMenuProps {
18
  dataset: Dataset
19
  datasetRepository: DatasetRepository
20
}
23✔
21

23✔
22
export enum EditDatasetMenuItems {
23✔
23
  FILES_UPLOAD = 'filesUpload',
23✔
24
  METADATA = 'metadata',
23✔
25
  TERMS = 'terms',
23✔
26
  PERMISSIONS = 'permissions',
23✔
27
  PRIVATE_URL = 'privateUrl',
28
  THUMBNAILS_PLUS_WIDGETS = 'thumbnailsPlusWidgets',
29
  DEACCESSION = 'deaccession',
258✔
30
  DELETE = 'delete'
258✔
31
}
258✔
32

258✔
33
export function EditDatasetMenu({ dataset, datasetRepository }: EditDatasetMenuProps) {
251✔
34
  const { user } = useSession()
35
  const { t } = useTranslation('dataset')
251✔
36
  const navigate = useNavigate()
×
37
  const { showModal } = useNotImplementedModal()
×
38
  const isDeaccessioned = dataset.version.publishingStatus === DatasetPublishingStatus.DEACCESSIONED
39

×
40
  const handleOnSelect = (eventKey: EditDatasetMenuItems | string | null) => {
×
41
    const searchParams = new URLSearchParams()
42
    searchParams.set(QueryParamKey.PERSISTENT_ID, dataset.persistentId)
43

×
44
    if (dataset.version.publishingStatus === DatasetPublishingStatus.DRAFT) {
×
45
      searchParams.set(QueryParamKey.VERSION, DatasetNonNumericVersionSearchParam.DRAFT)
×
46
    } else {
47
      searchParams.set(QueryParamKey.VERSION, dataset.version.number.toString())
×
48
    }
×
49

×
50
    if (eventKey === EditDatasetMenuItems.FILES_UPLOAD) {
51
      navigate(`${Route.UPLOAD_DATASET_FILES}?${searchParams.toString()}`)
×
52
      return
53
    }
54
    if (eventKey === EditDatasetMenuItems.METADATA) {
251✔
55
      navigate(`${Route.EDIT_DATASET_METADATA}?${searchParams.toString()}`)
230✔
56
      return
57
    }
58
    if (eventKey === EditDatasetMenuItems.TERMS) {
21✔
59
      showModal()
60
      return
61
    }
62
    if (eventKey === EditDatasetMenuItems.PERMISSIONS) {
63
      showModal()
64
      return
65
    }
66
    if (eventKey === EditDatasetMenuItems.PRIVATE_URL) {
67
      showModal()
68
      return
69
    }
70
    if (eventKey === EditDatasetMenuItems.THUMBNAILS_PLUS_WIDGETS) {
71
      showModal()
72
      return
73
    }
74
  }
75

76
  if (!user || !dataset.permissions.canUpdateDataset) {
77
    return <></>
78
  }
79

80
  return (
81
    <DropdownButton
42✔
82
      onSelect={handleOnSelect}
83
      id={`edit-dataset-menu`}
84
      title={t('datasetActionButtons.editDataset.title')}
85
      asButtonGroup
86
      variant="secondary"
87
      disabled={dataset.checkIsLockedFromEdits(user.persistentId)}>
88
      {/* TODO: remove this when we can handle non-S3 files */}
89
      {dataset?.fileStore?.startsWith('s3') && (
90
        <DropdownButtonItem
91
          eventKey={EditDatasetMenuItems.FILES_UPLOAD}
92
          as="button"
93
          disabled={!dataset.hasValidTermsOfAccess}>
94
          {t('datasetActionButtons.editDataset.filesUpload')}
95
        </DropdownButtonItem>
23✔
96
      )}
97

98
      <DropdownButtonItem
99
        eventKey={EditDatasetMenuItems.METADATA}
100
        as="button"
101
        disabled={!dataset.hasValidTermsOfAccess}>
102
        {t('datasetActionButtons.editDataset.metadata')}
103
      </DropdownButtonItem>
104
      <DropdownButtonItem eventKey={EditDatasetMenuItems.TERMS} as="button">
105
        {t('datasetActionButtons.editDataset.terms')}
106
      </DropdownButtonItem>
107
      <EditDatasetPermissionsMenu dataset={dataset} />
108
      {(dataset.permissions.canManageDatasetPermissions ||
109
        dataset.permissions.canManageFilesPermissions) && (
110
        <DropdownButtonItem eventKey={EditDatasetMenuItems.PRIVATE_URL} as="button">
111
          {t('datasetActionButtons.editDataset.privateUrl')}
112
        </DropdownButtonItem>
113
      )}
114
      <DropdownButtonItem eventKey={EditDatasetMenuItems.THUMBNAILS_PLUS_WIDGETS} as="button">
115
        {t('datasetActionButtons.editDataset.thumbnailsPlusWidgets')}
116
      </DropdownButtonItem>
117
      <DeleteDraftDatasetButton dataset={dataset} datasetRepository={datasetRepository} />
118
      {!isDeaccessioned && (
119
        <DeaccessionDatasetButton datasetRepository={datasetRepository} dataset={dataset} />
120
      )}
121
    </DropdownButton>
122
  )
123
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc