-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove wkw datasource suggestions #7697
Changes from 10 commits
2849111
c9f752a
de8017a
c1b52f4
b264843
1673c15
c1c4630
97a9d6d
1d5437b
b0be7cd
5dd5e4d
cb4d67f
ef4188b
db9ba6d
f755c22
724445d
5f7c546
b5fb853
67e3295
dd1f4e1
c1cee08
dab6a0c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,20 @@ | ||
import { | ||
DeleteOutlined, | ||
EllipsisOutlined, | ||
EyeOutlined, | ||
LoadingOutlined, | ||
PlusCircleOutlined, | ||
PlusOutlined, | ||
ReloadOutlined, | ||
SettingOutlined, | ||
WarningOutlined, | ||
} from "@ant-design/icons"; | ||
import window from "libs/window"; | ||
import { Link, LinkProps } from "react-router-dom"; | ||
import * as React from "react"; | ||
import type { APIDatasetId, APIDataset, APIDatasetCompact } from "types/api_flow_types"; | ||
import { clearCache, deleteDatasetOnDisk, getDataset } from "admin/admin_rest_api"; | ||
import { clearCache, getDataset } from "admin/admin_rest_api"; | ||
import Toast from "libs/toast"; | ||
import messages from "messages"; | ||
import CreateExplorativeModal from "dashboard/advanced_dataset/create_explorative_modal"; | ||
import { MenuProps, Modal, Typography } from "antd"; | ||
import { confirmAsync } from "dashboard/dataset/helper_components"; | ||
import { useQueryClient } from "@tanstack/react-query"; | ||
import { MenuProps } from "antd"; | ||
import { useState } from "react"; | ||
|
||
const disabledStyle: React.CSSProperties = { | ||
|
@@ -118,7 +113,6 @@ function LinkWithDisabled({ | |
} | ||
|
||
function DatasetActionView(props: Props) { | ||
const queryClient = useQueryClient(); | ||
const { dataset } = props; | ||
|
||
const [isReloading, setIsReloading] = useState(false); | ||
|
@@ -137,54 +131,6 @@ function DatasetActionView(props: Props) { | |
setIsReloading(false); | ||
}; | ||
|
||
const onDeleteDataset = async () => { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This function was only used in the |
||
const dataset = await getDataset(props.dataset); | ||
|
||
const deleteDataset = await confirmAsync({ | ||
title: "Danger Zone", | ||
content: ( | ||
<> | ||
<Typography.Title level={4} type="danger"> | ||
Deleting a dataset from disk cannot be undone. Are you certain to delete dataset{" "} | ||
{dataset.name}? | ||
</Typography.Title> | ||
<Typography.Paragraph> | ||
Note, WEBKNOSSOS cannot delete datasets that have annotations associated with them. | ||
</Typography.Paragraph> | ||
</> | ||
), | ||
okText: "Yes, delete dataset from disk", | ||
okType: "danger", | ||
}); | ||
|
||
if (!deleteDataset) { | ||
return; | ||
} | ||
|
||
await deleteDatasetOnDisk(dataset.dataStore.url, dataset); | ||
|
||
Toast.success( | ||
messages["dataset.delete_success"]({ | ||
datasetName: dataset.name, | ||
}), | ||
); | ||
|
||
// Invalidate the dataset list cache to exclude the deleted dataset | ||
queryClient.setQueryData( | ||
["datasetsByFolder", dataset.folderId], | ||
(oldItems: APIDatasetCompact[] | undefined) => { | ||
if (oldItems == null) { | ||
return oldItems; | ||
} | ||
return oldItems.filter( | ||
(item) => | ||
item.name !== dataset.name || item.owningOrganization !== dataset.owningOrganization, | ||
); | ||
}, | ||
); | ||
queryClient.invalidateQueries({ queryKey: ["dataset", "search"] }); | ||
}; | ||
|
||
const disabledWhenReloadingStyle = getDisabledWhenReloadingStyle(isReloading); | ||
const reloadLink = ( | ||
<a | ||
|
@@ -197,48 +143,8 @@ function DatasetActionView(props: Props) { | |
Reload | ||
</a> | ||
); | ||
const importLink = ( | ||
<div className="dataset-table-actions"> | ||
<Link | ||
to={`/datasets/${dataset.owningOrganization}/${dataset.name}/import`} | ||
className="import-dataset" | ||
> | ||
<PlusCircleOutlined className="icon-margin-right" /> | ||
Import | ||
</Link> | ||
{reloadLink} | ||
<a | ||
onClick={() => | ||
Modal.error({ | ||
title: "Cannot load this dataset", | ||
content: ( | ||
<div> | ||
<p>{dataset.status}</p> | ||
{dataset.status === "Deleted by user." ? ( | ||
<p> | ||
Even though this dataset was deleted by a user, it is still shown here, because | ||
it was referenced by at least one annotation. | ||
</p> | ||
) : null} | ||
</div> | ||
), | ||
}) | ||
} | ||
> | ||
<WarningOutlined className="icon-margin-right" /> | ||
Show Error | ||
</a> | ||
{dataset.status !== "Deleted by user." ? ( | ||
<a onClick={() => onDeleteDataset()}> | ||
<DeleteOutlined className="icon-margin-right" /> | ||
Delete Dataset | ||
</a> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure whether it's a good idea to delete this. The use case is:
I don't think that removing the wkw datasource suggestions means that the above use cases goes away. cc @fm3 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree, it should still be possible to fix the json, and parsing errors should be reported. Just not the automated suggestions. |
||
) : null} | ||
</div> | ||
); | ||
return ( | ||
<div> | ||
{dataset.isEditable && !dataset.isActive ? importLink : null} | ||
{dataset.isActive ? ( | ||
<div className="dataset-table-actions nowrap"> | ||
<NewAnnotationLink | ||
|
@@ -330,7 +236,7 @@ export function getDatasetActionContextMenu({ | |
}, | ||
} | ||
: null, | ||
dataset.isEditable && dataset.isActive | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Am I correct, that we no longer have a "not imported" state for a dataset? In that case, is it possible for a dataset to not be active? The only option would be to delete a dataset 🤔 My thought is that we may not need this field There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I don't know what happens now if a datasource properties json does not exist (or is incomplete). I assume the dataset won't be active then. However, the front-end should still show the edit button. Otherwise, the dataset would not be usable/fixable as you say. |
||
dataset.isEditable | ||
? { | ||
key: "edit", | ||
label: "Open Settings", | ||
|
@@ -340,15 +246,6 @@ export function getDatasetActionContextMenu({ | |
} | ||
: null, | ||
|
||
dataset.isEditable && !dataset.isActive | ||
? { | ||
key: "import", | ||
label: "Import", | ||
onClick: () => { | ||
window.location.href = `/datasets/${dataset.owningOrganization}/${dataset.name}/import`; | ||
}, | ||
} | ||
: null, | ||
{ | ||
key: "reload", | ||
label: "Reload", | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As according to the pr description, the "import" should always be named edit, I got rid of the import route (see router.tsx). I hope I didn't misunderstand this 🤞