mirror of
https://github.com/fosrl/pangolin.git
synced 2026-05-22 08:45:24 +00:00
✨ delete label
This commit is contained in:
@@ -255,6 +255,11 @@
|
|||||||
"resourceGoTo": "Go to Resource",
|
"resourceGoTo": "Go to Resource",
|
||||||
"resourceDelete": "Delete Resource",
|
"resourceDelete": "Delete Resource",
|
||||||
"resourceDeleteConfirm": "Confirm Delete Resource",
|
"resourceDeleteConfirm": "Confirm Delete Resource",
|
||||||
|
"labelDelete": "Delete Label",
|
||||||
|
"labelDeleteConfirm": "Confirm Delete Label",
|
||||||
|
"labelErrorDelete": "Failed to delete label",
|
||||||
|
"labelMessageRemove": "This action is permanent. All sites, resources, and clients tagged with this label will be untagged.",
|
||||||
|
"labelQuestionRemove": "Are you sure you want to remove the label from the organization?",
|
||||||
"visibility": "Visibility",
|
"visibility": "Visibility",
|
||||||
"enabled": "Enabled",
|
"enabled": "Enabled",
|
||||||
"disabled": "Disabled",
|
"disabled": "Disabled",
|
||||||
|
|||||||
@@ -141,7 +141,12 @@ export default function OrgLabelsTable({
|
|||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent align="end">
|
<DropdownMenuContent align="end">
|
||||||
<DropdownMenuItem>{t("edit")}</DropdownMenuItem>
|
<DropdownMenuItem>{t("edit")}</DropdownMenuItem>
|
||||||
<DropdownMenuItem onClick={() => {}}>
|
<DropdownMenuItem
|
||||||
|
onClick={() => {
|
||||||
|
setSelectedLabel(row.original);
|
||||||
|
setIsDeleteModalOpen(true);
|
||||||
|
}}
|
||||||
|
>
|
||||||
<span className="text-red-500">
|
<span className="text-red-500">
|
||||||
{t("delete")}
|
{t("delete")}
|
||||||
</span>
|
</span>
|
||||||
@@ -154,8 +159,22 @@ export default function OrgLabelsTable({
|
|||||||
[searchParams, t]
|
[searchParams, t]
|
||||||
);
|
);
|
||||||
|
|
||||||
async function deleteLabel() {
|
function deleteLabel(label: LabelRow) {
|
||||||
// ...
|
startRefreshTransition(async () => {
|
||||||
|
await api
|
||||||
|
.delete(`/org/${orgId}/label/${label.labelId}`)
|
||||||
|
.catch((e) => {
|
||||||
|
toast({
|
||||||
|
variant: "destructive",
|
||||||
|
title: t("labelErrorDelete"),
|
||||||
|
description: formatAxiosError(e, t("labelErrorDelete"))
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
router.refresh();
|
||||||
|
setIsDeleteModalOpen(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -169,14 +188,14 @@ export default function OrgLabelsTable({
|
|||||||
}}
|
}}
|
||||||
dialog={
|
dialog={
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
<p>{t("resourceQuestionRemove")}</p>
|
<p>{t("labelQuestionRemove")}</p>
|
||||||
<p>{t("resourceMessageRemove")}</p>
|
<p>{t("labelMessageRemove")}</p>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
buttonText={t("resourceDeleteConfirm")}
|
buttonText={t("labelDeleteConfirm")}
|
||||||
onConfirm={async () => {}}
|
onConfirm={async () => deleteLabel(selectedLabel)}
|
||||||
string={selectedLabel.name}
|
string={selectedLabel.name}
|
||||||
title={t("resourceDelete")}
|
title={t("labelDelete")}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<ControlledDataTable
|
<ControlledDataTable
|
||||||
|
|||||||
Reference in New Issue
Block a user