From 970cb97f7393766ee2c20bce1d11518ca4ed02c5 Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Thu, 10 Oct 2024 08:52:36 +0200 Subject: [PATCH] chore: table for launch scan is added to scan page --- app/(prowler)/scans/page.tsx | 14 +-- components/providers/index.ts | 1 + components/providers/provider-info-short.tsx | 51 ++++++++ components/providers/snippet-id-provider.tsx | 3 + components/scans/table/column-scans.tsx | 116 ++++--------------- components/ui/table/data-table.tsx | 8 +- 6 files changed, 90 insertions(+), 103 deletions(-) create mode 100644 components/providers/provider-info-short.tsx diff --git a/app/(prowler)/scans/page.tsx b/app/(prowler)/scans/page.tsx index c0cc62a0af..3ce355a465 100644 --- a/app/(prowler)/scans/page.tsx +++ b/app/(prowler)/scans/page.tsx @@ -2,11 +2,7 @@ import { Spacer } from "@nextui-org/react"; import { Suspense } from "react"; import { getProviders } from "@/actions/providers"; -import { - FilterControls, - filterProviders, - filterScans, -} from "@/components/filters"; +import { FilterControls, filterScans } from "@/components/filters"; import { ColumnScans, SkeletonTableScans } from "@/components/scans/table"; import { Header } from "@/components/ui"; import { DataTable } from "@/components/ui/table"; @@ -27,13 +23,13 @@ export default async function Scans({ -
-
+
+
}>
-
+
}> @@ -66,7 +62,7 @@ const SSRDataTableProviders = async ({ columns={ColumnScans} data={providersData?.data || []} metadata={providersData?.meta} - customFilters={filterProviders} + // customFilters={filterProviders} /> ); }; diff --git a/components/providers/index.ts b/components/providers/index.ts index 9f2aed9e3a..0751b3587c 100644 --- a/components/providers/index.ts +++ b/components/providers/index.ts @@ -3,6 +3,7 @@ export * from "./CheckConnectionProvider"; export * from "./date-with-time"; export * from "./forms/delete-form"; export * from "./provider-info"; +export * from "./provider-info-short"; export * from "./radio-group-provider"; export * from "./scan-status"; export * from "./snippet-id-provider"; diff --git a/components/providers/provider-info-short.tsx b/components/providers/provider-info-short.tsx new file mode 100644 index 0000000000..5f32cbeefc --- /dev/null +++ b/components/providers/provider-info-short.tsx @@ -0,0 +1,51 @@ +import React from "react"; + +import { + AWSProviderBadge, + AzureProviderBadge, + GCPProviderBadge, + KS8ProviderBadge, +} from "../icons/providers-badge"; +import { SnippetIdProvider } from "./snippet-id-provider"; + +interface ProviderInfoProps { + connected: boolean | null; + provider: "aws" | "azure" | "gcp" | "kubernetes"; + providerAlias: string; + providerId: string; +} + +export const ProviderInfoShort: React.FC = ({ + provider, + providerAlias, + providerId, +}) => { + const getProviderLogo = () => { + switch (provider) { + case "aws": + return ; + case "azure": + return ; + case "gcp": + return ; + case "kubernetes": + return ; + default: + return null; + } + }; + + return ( +
+
+
+
{getProviderLogo()}
+
+ {providerAlias} + +
+
+
+
+ ); +}; diff --git a/components/providers/snippet-id-provider.tsx b/components/providers/snippet-id-provider.tsx index 820b08bd6d..0bcc0951c7 100644 --- a/components/providers/snippet-id-provider.tsx +++ b/components/providers/snippet-id-provider.tsx @@ -5,9 +5,11 @@ import { CopyIcon, DoneIcon, IdIcon } from "../icons"; interface SnippetIdProviderProps { providerId: string; + [key: string]: any; } export const SnippetIdProvider: React.FC = ({ providerId, + ...props }) => { return ( = ({ hideSymbol copyIcon={} checkIcon={} + {...props} >

diff --git a/components/scans/table/column-scans.tsx b/components/scans/table/column-scans.tsx index 401f02aa14..624d2bdc40 100644 --- a/components/scans/table/column-scans.tsx +++ b/components/scans/table/column-scans.tsx @@ -1,122 +1,56 @@ "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 { AddIcon } from "@/components/icons/Icons"; +import { ProviderInfoShort } from "@/components/providers"; +import { CustomButton } from "@/components/ui/custom"; import { ProviderProps } from "@/types"; -import { DataTableRowActions } from "./data-table-row-actions"; - const getProviderData = (row: { original: ProviderProps }) => { return row.original; }; export const ColumnScans: ColumnDef[] = [ { - header: " ", - cell: ({ row }) =>

{row.index + 1}

, - }, - { - accessorKey: "account", - header: ({ column }) => ( - - ), + accessorKey: "provider", + header: "Provider", cell: ({ row }) => { const { - attributes: { connection, provider, alias }, + attributes: { connection, provider, alias, uid }, } = getProviderData(row); return ( - ); }, }, { - accessorKey: "uid", - header: ({ column }) => ( - - ), + accessorKey: "launchScan", + header: "Launch Scan", 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 ; + return ( + } + onPress={() => { + console.log(uid); + }} + > + Start + + ); }, }, ]; diff --git a/components/ui/table/data-table.tsx b/components/ui/table/data-table.tsx index 30593a7cf9..ecec4422a3 100644 --- a/components/ui/table/data-table.tsx +++ b/components/ui/table/data-table.tsx @@ -58,9 +58,11 @@ export function DataTable({ return ( <> -
- -
+ {customFilters && ( +
+ +
+ )}