From 6a92d8470fc552f0751cc3d6f48f39b0c0c7ecc6 Mon Sep 17 00:00:00 2001 From: sanjaypinna Date: Tue, 28 May 2024 17:38:19 +0530 Subject: [PATCH 1/4] add a placeholder --- .../dataset/[id]/edit/components/AccessModelForm.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelForm.tsx b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelForm.tsx index e553bfe2..86e47a6b 100644 --- a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelForm.tsx +++ b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelForm.tsx @@ -460,10 +460,11 @@ const AccessModelForm: React.FC = ({
Date: Tue, 28 May 2024 17:48:36 +0530 Subject: [PATCH 2/4] fix select all resources issue --- .../[id]/edit/components/AccessModelForm.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelForm.tsx b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelForm.tsx index 86e47a6b..e9cddf21 100644 --- a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelForm.tsx +++ b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelForm.tsx @@ -257,13 +257,15 @@ const AccessModelForm: React.FC = ({ handleSave({ ...accessModelData, resources: updatedResources }); }; - const handleSelectAll = () => { const allResources = data?.datasetResources.map((resource: any) => ({ label: resource.name, value: resource.id, - schema: resource.schema, + schema: resource.schema.map((field: any) => ({ + label: field.fieldName, + value: field.id.toString(), // Ensure ID is a string for Combobox + })), })) || []; setSelectedFields(allResources); @@ -272,15 +274,16 @@ const AccessModelForm: React.FC = ({ const updatedResources = allResources.map((resource: any) => ({ resource: resource.value, - fields: resource.schema.map((option: any) => option.value), + fields: resource.schema.map((option: any) => parseInt(option.value, 10)), // Convert to integer })); - setAccessModelData((prevData) => ({ - ...prevData, + const updatedData = { + ...accessModelData, resources: updatedResources, - })); + }; - handleSave({ ...accessModelData, resources: updatedResources }); + setAccessModelData(updatedData); + handleSave(updatedData); }; const { mutate, isLoading: editMutationLoading } = useMutation( From a687338f26942488e6a7c37d8bafe60efc71f44c Mon Sep 17 00:00:00 2001 From: sanjaypinna Date: Wed, 29 May 2024 16:41:03 +0530 Subject: [PATCH 3/4] fix padding --- .../dataset/[id]/edit/components/AccessModelList.tsx | 2 +- .../dataset/[id]/edit/components/EditLayout.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelList.tsx b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelList.tsx index bf0f8a59..4f5f4cb1 100644 --- a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelList.tsx +++ b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelList.tsx @@ -134,7 +134,7 @@ const AccessModelList: React.FC = ({
) : ( <> -
+
Showing {data.accessModelResources?.length} Access Types diff --git a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/EditLayout.tsx b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/EditLayout.tsx index 6af020a7..0f650726 100644 --- a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/EditLayout.tsx +++ b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/EditLayout.tsx @@ -130,7 +130,7 @@ export function EditLayout({ children, params }: LayoutProps) { organization={routerParams.organizationId.toString()} />
-
+
{children}
From 1add535e4915f2bb180c318eb20b0f07bf31bd95 Mon Sep 17 00:00:00 2001 From: sanjaypinna Date: Wed, 29 May 2024 17:36:17 +0530 Subject: [PATCH 4/4] add search in access model listing --- .../[id]/edit/components/AccessModelList.tsx | 44 +++++++++++++++---- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelList.tsx b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelList.tsx index 4f5f4cb1..f90c5b89 100644 --- a/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelList.tsx +++ b/app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/AccessModelList.tsx @@ -1,10 +1,18 @@ import { UUID } from 'crypto'; -import React, { useEffect } from 'react'; +import React, { useEffect, useState } from 'react'; import Link from 'next/link'; import { useParams } from 'next/navigation'; import { graphql } from '@/gql'; import { useMutation, useQuery } from '@tanstack/react-query'; -import { Button, DataTable, IconButton, Spinner, Text, toast } from 'opub-ui'; +import { + Button, + DataTable, + IconButton, + SearchInput, + Spinner, + Text, + toast, +} from 'opub-ui'; import { GraphQL } from '@/lib/api'; import { formatDate, toTitleCase } from '@/lib/utils'; @@ -54,11 +62,16 @@ const AccessModelList: React.FC = ({ }) ); + const [filteredRows, setFilteredRows] = useState([]); + useEffect(() => { refetch(); - }, [list]); + if (data?.accessModelResources) { + setFilteredRows(data.accessModelResources); + } + }, [data, list]); - const { mutate } = useMutation( + const { mutate, isLoading: deleteLoading } = useMutation( (data: { accessModelId: UUID }) => GraphQL(deleteAccessModel, data), { onSuccess: () => { @@ -126,24 +139,39 @@ const AccessModelList: React.FC = ({ })); }; + const handleSearchChange = (e: string) => { + const searchTerm = e.toLowerCase(); + const filtered = data?.accessModelResources.filter((row: any) => + row.name.toLowerCase().includes(searchTerm) + ); + setFilteredRows(filtered || []); + }; + return (
- {!data || isLoading ? ( + {!data || isLoading || deleteLoading ? (
) : ( <> -
+
- Showing {data.accessModelResources?.length} Access Types + Showing {data?.accessModelResources?.length || 0} Access Types + handleSearchChange(e)} + />