mirror of
https://github.com/fosrl/pangolin.git
synced 2026-05-22 16:55:44 +00:00
🚧 wip
This commit is contained in:
@@ -1125,7 +1125,9 @@
|
|||||||
"idpErrorNotFound": "IdP not found",
|
"idpErrorNotFound": "IdP not found",
|
||||||
"inviteInvalid": "Invalid Invite",
|
"inviteInvalid": "Invalid Invite",
|
||||||
"labels": "Labels",
|
"labels": "Labels",
|
||||||
"addLabelsButtonText": "Add labels",
|
"addLabels": "Add labels",
|
||||||
|
"siteLabelsTab": "Labels",
|
||||||
|
"siteLabelsDescription": "Manage labels associated with this site.",
|
||||||
"inviteInvalidDescription": "The invite link is invalid.",
|
"inviteInvalidDescription": "The invite link is invalid.",
|
||||||
"inviteErrorWrongUser": "Invite is not for this user",
|
"inviteErrorWrongUser": "Invite is not for this user",
|
||||||
"inviteErrorUserNotExists": "User does not exist. Please create an account first.",
|
"inviteErrorUserNotExists": "User does not exist. Please create an account first.",
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ export default function SitesTable({
|
|||||||
const [selectedSite, setSelectedSite] = useState<SiteRow | null>(null);
|
const [selectedSite, setSelectedSite] = useState<SiteRow | null>(null);
|
||||||
const [resourcesDialogSite, setResourcesDialogSite] =
|
const [resourcesDialogSite, setResourcesDialogSite] =
|
||||||
useState<SiteRow | null>(null);
|
useState<SiteRow | null>(null);
|
||||||
|
const [isLabelsDialogOpen, setIsLabelsDialogOpen] = useState(false);
|
||||||
const [isRefreshing, startTransition] = useTransition();
|
const [isRefreshing, startTransition] = useTransition();
|
||||||
const [isNavigatingToAddPage, startNavigation] = useTransition();
|
const [isNavigatingToAddPage, startNavigation] = useTransition();
|
||||||
|
|
||||||
@@ -453,18 +454,7 @@ export default function SitesTable({
|
|||||||
accessorKey: "labels",
|
accessorKey: "labels",
|
||||||
header: () => <span className="p-3">{t("labels")}</span>,
|
header: () => <span className="p-3">{t("labels")}</span>,
|
||||||
cell: ({ row }) => {
|
cell: ({ row }) => {
|
||||||
return (
|
return <></>;
|
||||||
<Button
|
|
||||||
className="rounded-full inline-flex gap-1 items-center py-0.5"
|
|
||||||
size="sm"
|
|
||||||
variant="outline"
|
|
||||||
>
|
|
||||||
<PlusIcon className="size-3 flex-none" />{" "}
|
|
||||||
<span className="text-xs">
|
|
||||||
{t("addLabelsButtonText")}
|
|
||||||
</span>
|
|
||||||
</Button>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -507,6 +497,14 @@ export default function SitesTable({
|
|||||||
{t("sitesTableViewPrivateResources")}
|
{t("sitesTableViewPrivateResources")}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</Link>
|
</Link>
|
||||||
|
<DropdownMenuItem
|
||||||
|
onClick={() => {
|
||||||
|
setSelectedSite(siteRow);
|
||||||
|
setIsLabelsDialogOpen(true);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{t("addLabels")}</span>
|
||||||
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setSelectedSite(siteRow);
|
setSelectedSite(siteRow);
|
||||||
@@ -597,6 +595,7 @@ export default function SitesTable({
|
|||||||
</Credenza>
|
</Credenza>
|
||||||
|
|
||||||
{selectedSite && (
|
{selectedSite && (
|
||||||
|
<>
|
||||||
<ConfirmDeleteDialog
|
<ConfirmDeleteDialog
|
||||||
open={isDeleteModalOpen}
|
open={isDeleteModalOpen}
|
||||||
setOpen={(val) => {
|
setOpen={(val) => {
|
||||||
@@ -616,6 +615,13 @@ export default function SitesTable({
|
|||||||
string={selectedSite.name}
|
string={selectedSite.name}
|
||||||
title={t("siteDelete")}
|
title={t("siteDelete")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<SiteLabelsDialog
|
||||||
|
isOpen={isLabelsDialogOpen}
|
||||||
|
setIsOpen={setIsLabelsDialogOpen}
|
||||||
|
site={selectedSite}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<ControlledDataTable
|
<ControlledDataTable
|
||||||
@@ -651,3 +657,37 @@ export default function SitesTable({
|
|||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SiteLabelsDialogProps = {
|
||||||
|
site: SiteRow;
|
||||||
|
isOpen: boolean;
|
||||||
|
setIsOpen: (open: boolean) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
function SiteLabelsDialog({ site, isOpen, setIsOpen }: SiteLabelsDialogProps) {
|
||||||
|
const t = useTranslations();
|
||||||
|
return (
|
||||||
|
<Credenza open={isOpen} onOpenChange={setIsOpen}>
|
||||||
|
<CredenzaContent className="">
|
||||||
|
<CredenzaHeader>
|
||||||
|
<CredenzaTitle>{t("siteLabelsTab")}</CredenzaTitle>
|
||||||
|
<CredenzaDescription>
|
||||||
|
{t("siteLabelsDescription")}
|
||||||
|
</CredenzaDescription>
|
||||||
|
</CredenzaHeader>
|
||||||
|
<CredenzaBody>
|
||||||
|
<></>
|
||||||
|
</CredenzaBody>
|
||||||
|
<CredenzaFooter>
|
||||||
|
<Button
|
||||||
|
type="button"
|
||||||
|
variant="outline"
|
||||||
|
onClick={() => setIsOpen(false)}
|
||||||
|
>
|
||||||
|
{t("close")}
|
||||||
|
</Button>
|
||||||
|
</CredenzaFooter>
|
||||||
|
</CredenzaContent>
|
||||||
|
</Credenza>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user