From 9409ea75e50834381c19616f96d62b2d311bca17 Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Thu, 10 Oct 2024 09:17:31 +0200 Subject: [PATCH] chore: table for launch scan is added to scan page --- app/(prowler)/scans/page.tsx | 15 ++- components/providers/provider-info-short.tsx | 9 +- components/providers/provider-info.tsx | 6 +- components/providers/snippet-id-provider.tsx | 2 +- components/scans/table/column-get-scans.tsx | 122 ++++++++++++++++++ ...mn-scans.tsx => column-provider-scans.tsx} | 2 +- components/scans/table/index.ts | 3 +- 7 files changed, 146 insertions(+), 13 deletions(-) create mode 100644 components/scans/table/column-get-scans.tsx rename components/scans/table/{column-scans.tsx => column-provider-scans.tsx} (95%) diff --git a/app/(prowler)/scans/page.tsx b/app/(prowler)/scans/page.tsx index 3ce355a465..56043a18fe 100644 --- a/app/(prowler)/scans/page.tsx +++ b/app/(prowler)/scans/page.tsx @@ -3,7 +3,11 @@ import { Suspense } from "react"; import { getProviders } from "@/actions/providers"; import { FilterControls, filterScans } from "@/components/filters"; -import { ColumnScans, SkeletonTableScans } from "@/components/scans/table"; +import { + ColumnGetScans, + ColumnProviderScans, + SkeletonTableScans, +} from "@/components/scans/table"; import { Header } from "@/components/ui"; import { DataTable } from "@/components/ui/table"; import { SearchParamsProps } from "@/types"; @@ -23,8 +27,8 @@ export default async function Scans({ -
-
+
+
}> @@ -59,10 +63,9 @@ const SSRDataTableProviders = async ({ return ( ); }; @@ -87,7 +90,7 @@ const SSRDataTableScans = async ({ return ( = ({
{getProviderLogo()}
- {providerAlias} - + + {providerAlias} + +
diff --git a/components/providers/provider-info.tsx b/components/providers/provider-info.tsx index 7ff3a52821..47fb6c293c 100644 --- a/components/providers/provider-info.tsx +++ b/components/providers/provider-info.tsx @@ -60,13 +60,15 @@ export const ProviderInfo: React.FC = ({ }; return ( -
+
{getProviderLogo()}
{getIcon()}
- {providerAlias} + + {providerAlias} + {/* */}
diff --git a/components/providers/snippet-id-provider.tsx b/components/providers/snippet-id-provider.tsx index 0bcc0951c7..0d3c76d566 100644 --- a/components/providers/snippet-id-provider.tsx +++ b/components/providers/snippet-id-provider.tsx @@ -25,7 +25,7 @@ export const SnippetIdProvider: React.FC = ({ >

- + {providerId}

diff --git a/components/scans/table/column-get-scans.tsx b/components/scans/table/column-get-scans.tsx new file mode 100644 index 0000000000..caf45268e5 --- /dev/null +++ b/components/scans/table/column-get-scans.tsx @@ -0,0 +1,122 @@ +"use client"; + +import { ColumnDef } from "@tanstack/react-table"; +import { add } from "date-fns"; + +import { + DateWithTime, + ProviderInfo, + SnippetIdProvider, +} from "@/components/providers"; +import { DataTableColumnHeader, StatusBadge } from "@/components/ui/table"; +import { ProviderProps } from "@/types"; + +import { DataTableRowActions } from "./data-table-row-actions"; + +const getProviderData = (row: { original: ProviderProps }) => { + return row.original; +}; + +export const ColumnGetScans: ColumnDef[] = [ + { + header: " ", + cell: ({ row }) =>

{row.index + 1}

, + }, + { + accessorKey: "account", + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const { + attributes: { connection, provider, alias }, + } = getProviderData(row); + return ( + + ); + }, + }, + { + accessorKey: "uid", + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const { + attributes: { uid }, + } = getProviderData(row); + return ; + }, + }, + { + accessorKey: "status", + header: "Scan Status", + cell: () => { + // Temporarily overwriting the value until the API is functional. + return ; + }, + }, + { + accessorKey: "lastScan", + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const { + attributes: { updated_at }, + } = getProviderData(row); + return ; + }, + }, + { + accessorKey: "nextScan", + header: "Next Scan", + cell: ({ row }) => { + const { + attributes: { updated_at }, + } = getProviderData(row); + const nextDay = add(new Date(updated_at), { + hours: 24, + }); + return ; + }, + }, + { + accessorKey: "resources", + header: "Resources", + cell: () => { + // Temporarily overwriting the value until the API is functional. + return

{288}

; + }, + }, + { + accessorKey: "added", + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const { + attributes: { inserted_at }, + } = getProviderData(row); + return ; + }, + }, + { + id: "actions", + cell: ({ row }) => { + return ; + }, + }, +]; diff --git a/components/scans/table/column-scans.tsx b/components/scans/table/column-provider-scans.tsx similarity index 95% rename from components/scans/table/column-scans.tsx rename to components/scans/table/column-provider-scans.tsx index 624d2bdc40..9311f50086 100644 --- a/components/scans/table/column-scans.tsx +++ b/components/scans/table/column-provider-scans.tsx @@ -11,7 +11,7 @@ const getProviderData = (row: { original: ProviderProps }) => { return row.original; }; -export const ColumnScans: ColumnDef[] = [ +export const ColumnProviderScans: ColumnDef[] = [ { accessorKey: "provider", header: "Provider", diff --git a/components/scans/table/index.ts b/components/scans/table/index.ts index 62300a2d96..471e150f9f 100644 --- a/components/scans/table/index.ts +++ b/components/scans/table/index.ts @@ -1,3 +1,4 @@ -export * from "./column-scans"; +export * from "./column-get-scans"; +export * from "./column-provider-scans"; export * from "./data-table-row-actions"; export * from "./skeleton-table-scans";