Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions public/locales/en/dataset.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@
},
"deleteDatasetModal": {
"title": "Delete Dataset",
"message": "Are you sure you want to delete this dataset? This action cannot be undone.",
"messageDraft": "Are you sure you want to delete this draft version? Files will be reverted to the most recently published version. You cannot undelete this draft.",
"messageDataset": "Are you sure you want to delete this dataset? You cannot undelete this dataset.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"messageDataset": "Are you sure you want to delete this dataset? You cannot undelete this dataset.",
"messageDataset": "Are you sure you want to delete this dataset and all of its files? You cannot undelete this dataset.",

"defaultDatasetDeleteError": "An error occurred while deleting the dataset."
}
},
Expand Down Expand Up @@ -137,7 +138,8 @@
"heading": "Unpublished Dataset Private URL",
"alertText": "This unpublished dataset is being privately shared."
},
"datasetDeletedSuccess": "The dataset has been deleted."
"datasetDeletedSuccessDraft": "The dataset draft has been deleted.",
"datasetDeletedSuccessDataset": "The dataset has been deleted."
},
"termsTab": {
"editTermsButton": "Edit Term Requirements",
Expand Down
6 changes: 4 additions & 2 deletions public/locales/es/dataset.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@
},
"deleteDatasetModal": {
"title": "Eliminar dataset",
"message": "¿Seguro que quieres eliminar este dataset? Esta acción no se puede deshacer.",
"messageDraft": "¿Seguro que quieres eliminar esta versión borrador? No podrás recuperar este borrador.",
"messageDataset": "¿Seguro que quieres eliminar este dataset? Esta acción no se puede deshacer.",
"defaultDatasetDeleteError": "Ocurrió un error al eliminar el dataset."
}
},
Expand Down Expand Up @@ -137,7 +138,8 @@
"heading": "URL privada de dataset no publicado",
"alertText": "Este dataset no publicado se está compartiendo de forma privada."
},
"datasetDeletedSuccess": "El dataset ha sido eliminado."
"datasetDeletedSuccessDraft": "El borrador del dataset ha sido eliminado.",
"datasetDeletedSuccessDataset": "El dataset ha sido eliminado."
},
"termsTab": {
"editTermsButton": "Editar requisitos de términos",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,25 @@ interface ConfirmDeleteDraftDatasetModalProps {
handleDelete: () => void
isDeletingDataset: boolean
errorDeletingDataset: string | null
hasReleasedVersion: boolean
}

export const ConfirmDeleteDraftDatasetModal = ({
show,
handleClose,
handleDelete,
isDeletingDataset,
errorDeletingDataset
errorDeletingDataset,
hasReleasedVersion
}: ConfirmDeleteDraftDatasetModalProps) => {
const { t: tShared } = useTranslation('shared')
const { t } = useTranslation('dataset')
const modalTitle = t('datasetActionButtons.editDataset.deleteDatasetModal.title')
const modalTitle = hasReleasedVersion
? t('datasetActionButtons.editDataset.delete.draft')
: t('datasetActionButtons.editDataset.delete.released')
const modalMessage = hasReleasedVersion
? t('datasetActionButtons.editDataset.deleteDatasetModal.messageDraft')
: t('datasetActionButtons.editDataset.deleteDatasetModal.messageDataset')

return (
<Modal
Expand All @@ -35,8 +42,7 @@ export const ConfirmDeleteDraftDatasetModal = ({
<Modal.Body>
<Stack gap={2}>
<Stack direction="horizontal" gap={2} className={styles.message}>
<ExclamationTriangle />{' '}
<span>{t('datasetActionButtons.editDataset.deleteDatasetModal.message')}</span>
<ExclamationTriangle /> <span>{modalMessage}</span>
</Stack>
{errorDeletingDataset && (
<Stack direction="horizontal" gap={2} className={`${styles.message} ${styles.error}`}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export function DeleteDraftDatasetButton({
const [showConfirmationModal, setShowConfirmationModal] = useState(false)
const navigate = useNavigate()
const { t } = useTranslation('dataset')
const hasReleasedVersion = dataset.version.someDatasetVersionHasBeenReleased

const handleOpenModal = () => setShowConfirmationModal(true)
const handleCloseModal = () => setShowConfirmationModal(false)
Expand All @@ -45,7 +46,13 @@ export function DeleteDraftDatasetButton({
navigate(`${Route.DATASETS}?${searchParams.toString()}`)
}

toast.success(t('alerts.datasetDeletedSuccess'))
toast.success(
t(
hasReleasedVersion
? 'alerts.datasetDeletedSuccessDraft'
: 'alerts.datasetDeletedSuccessDataset'
)
)
}

if (
Expand All @@ -59,7 +66,7 @@ export function DeleteDraftDatasetButton({
<>
<DropdownSeparator />
<DropdownButtonItem onClick={handleOpenModal}>
{dataset.version.someDatasetVersionHasBeenReleased
{hasReleasedVersion
? t('datasetActionButtons.editDataset.delete.draft')
: t('datasetActionButtons.editDataset.delete.released')}
</DropdownButtonItem>
Expand All @@ -69,6 +76,7 @@ export function DeleteDraftDatasetButton({
handleDelete={() => handleDeleteDraftDataset(dataset.persistentId)}
isDeletingDataset={isDeletingDataset}
errorDeletingDataset={errorDeletingDataset}
hasReleasedVersion={hasReleasedVersion}
/>
</>
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ export const Default: Story = {
handleClose={() => {}}
handleDelete={() => {}}
isDeletingDataset={false}
errorDeletingDataset={null}></ConfirmDeleteDraftDatasetModal>
errorDeletingDataset={null}
hasReleasedVersion={true}></ConfirmDeleteDraftDatasetModal>
)
}
export const DeleteInProgress: Story = {
Expand All @@ -28,7 +29,8 @@ export const DeleteInProgress: Story = {
isDeletingDataset={true}
handleClose={() => {}}
handleDelete={() => {}}
errorDeletingDataset={null}></ConfirmDeleteDraftDatasetModal>
errorDeletingDataset={null}
hasReleasedVersion={true}></ConfirmDeleteDraftDatasetModal>
)
}
export const WithError: Story = {
Expand All @@ -38,8 +40,7 @@ export const WithError: Story = {
isDeletingDataset={true}
handleClose={() => {}}
handleDelete={() => {}}
errorDeletingDataset={
Error('Error deleting dataset').message
}></ConfirmDeleteDraftDatasetModal>
errorDeletingDataset={Error('Error deleting dataset').message}
hasReleasedVersion={true}></ConfirmDeleteDraftDatasetModal>
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ describe('DeleteDraftDatasetButton', () => {
cy.findByRole('button', { name: 'Delete Dataset' }).click()

cy.findByRole('dialog').should('exist')
cy.findByText(/Are you sure you want to delete this dataset?/i).should('exist')
cy.findByText(/Are you sure you want to delete this dataset\?/i).should('exist')
})

it('closes confirmation modal when cancel is clicked', () => {
Expand Down Expand Up @@ -121,6 +121,26 @@ describe('DeleteDraftDatasetButton', () => {
cy.findByText(/The dataset has been deleted./).should('exist')
})

it('shows draft-specific messaging and toast when a released dataset draft is deleted', () => {
repository.deleteDatasetDraft = cy.stub().resolves()
cy.customMount(
<DeleteDraftDatasetButton
datasetRepository={repository}
dataset={DatasetMother.create({
permissions: DatasetPermissionsMother.createWithDeleteDatasetAllowed(),
locks: [],
version: DatasetVersionMother.createReleasedWithLatestVersionIsADraft()
})}
/>
)

cy.findByRole('button', { name: 'Delete Draft Version' }).click()
cy.findByRole('dialog').should('exist')
cy.findByText(/Are you sure you want to delete this draft version\?/i).should('exist')
cy.findByRole('button', { name: 'Delete' }).click()
cy.findByText(/The dataset draft has been deleted./).should('exist')
})

it('should not delete dataset if delete button clicked and repository fails', () => {
repository.deleteDatasetDraft = cy.stub().rejects(new Error('Some unknown error'))
cy.customMount(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ describe('EditDatasetMenu', () => {
)
cy.findByRole('button', { name: 'Edit Dataset' }).click()
cy.findByRole('button', { name: /Delete/ }).click()
cy.findByText(/Are you sure you want to delete this dataset?/i).should('exist')
cy.findByText(/Are you sure you want to delete this dataset\?/i).should('exist')
cy.findByRole('button', { name: 'Delete' }).click()
cy.findByText(/The dataset has been deleted./).should('exist')

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ describe('Dataset', () => {

cy.findByRole('button', { name: 'Edit Dataset' }).should('exist').click()
cy.findByRole('button', { name: 'Delete Dataset' }).should('exist').click()
cy.findByText(/Are you sure you want to delete this dataset?/i).should('exist')
cy.findByText(/Are you sure you want to delete this dataset\?/i).should('exist')
cy.findByRole('button', { name: 'Delete' }).should('exist').click()
cy.findByText(/The dataset has been deleted./i).should('exist')
})
Expand Down
Loading