From bf08de60386a0ab1640c86fd35c67a948d215f36 Mon Sep 17 00:00:00 2001 From: amitamrutiya Date: Tue, 11 Feb 2025 10:27:30 +0530 Subject: [PATCH 1/4] feat: add some permssion constant for the workspace card Signed-off-by: amitamrutiya --- src/custom/Workspaces/WorkspaceCard.tsx | 154 ++++++++++++++++-------- 1 file changed, 103 insertions(+), 51 deletions(-) diff --git a/src/custom/Workspaces/WorkspaceCard.tsx b/src/custom/Workspaces/WorkspaceCard.tsx index d06340cf..fdb9dff8 100644 --- a/src/custom/Workspaces/WorkspaceCard.tsx +++ b/src/custom/Workspaces/WorkspaceCard.tsx @@ -52,7 +52,13 @@ interface CardFrontProps { onAssignDesign: () => void; isEnvironmentAllowed: boolean; isTeamAllowed: boolean; - isDesignAndViewAllowed: boolean; + isDesignAllowed: boolean; + isViewAllowed: boolean; + isEditWorkspaceAllowed: boolean; + isViewsVisible: boolean; + isDesignsVisible: boolean; + isTeamsVisible: boolean; + isEnvironmentsVisible: boolean; } interface CardBackProps { @@ -90,9 +96,14 @@ interface WorkspaceCardProps { designAndViewOfWorkspaceCount: number; isEnvironmentAllowed: boolean; isTeamAllowed: boolean; - isDesignAndViewAllowed: boolean; + isDesignAllowed: boolean; + isViewAllowed: boolean; isDeleteWorkspaceAllowed: boolean; isEditWorkspaceAllowed: boolean; + isViewsVisible: boolean; + isDesignsVisible: boolean; + isTeamsVisible: boolean; + isEnvironmentsVisible: boolean; } /** @@ -142,9 +153,14 @@ const WorkspaceCard = ({ designAndViewOfWorkspaceCount, isEnvironmentAllowed, isTeamAllowed, - isDesignAndViewAllowed, + isDesignAllowed, + isViewAllowed, isDeleteWorkspaceAllowed, - isEditWorkspaceAllowed + isEditWorkspaceAllowed, + isViewsVisible, + isDesignsVisible, + isEnvironmentsVisible, + isTeamsVisible }: WorkspaceCardProps) => { const deleted = workspaceDetails.deleted_at.Valid; return ( @@ -164,7 +180,13 @@ const WorkspaceCard = ({ onAssignDesign={onAssignDesign} isEnvironmentAllowed={isEnvironmentAllowed} isTeamAllowed={isTeamAllowed} - isDesignAndViewAllowed={isDesignAndViewAllowed} + isDesignAllowed={isDesignAllowed} + isViewAllowed={isViewAllowed} + isViewsVisible={isViewsVisible} + isDesignsVisible={isDesignsVisible} + isEnvironmentsVisible={isEnvironmentsVisible} + isTeamsVisible={isTeamsVisible} + isEditWorkspaceAllowed={isEditWorkspaceAllowed} /> { return ( @@ -227,52 +254,77 @@ const CardFront = ({ gap: 1 }} > - - e.stopPropagation()}> - {isEnvironmentAllowed ? ( - - ) : ( - - )} - - - + {isEnvironmentsVisible && ( + + e.stopPropagation()}> + {isEnvironmentAllowed ? ( + + ) : ( + + )} + + + + )} - - e.stopPropagation()}> - {isTeamAllowed ? ( - - ) : ( - - )} - - - - - e.stopPropagation()}> - {isDesignAndViewAllowed ? ( - - ) : ( - - )} - - - + {isTeamsVisible && ( + + e.stopPropagation()}> + {isTeamAllowed ? ( + + ) : ( + + )} + + + + )} + + {isDesignsVisible && !isViewsVisible && ( + + e.stopPropagation()}> + {isDesignAllowed ? ( + + ) : ( + + )} + + + + )} + + {isDesignsVisible && isViewsVisible && ( + + e.stopPropagation()}> + {isDesignAllowed && isViewAllowed ? ( + + ) : ( + + )} + + + + )} ); From 2f7a98cf916b4b7010bf6d106d7c14ac5da4ca2b Mon Sep 17 00:00:00 2001 From: amitamrutiya Date: Tue, 11 Feb 2025 10:27:57 +0530 Subject: [PATCH 2/4] feat: add visibility control for design, environment, team, and view assignments Signed-off-by: amitamrutiya --- src/custom/Workspaces/hooks/useDesignAssignment.tsx | 8 +++++--- src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx | 8 +++++--- src/custom/Workspaces/hooks/useTeamAssignment.tsx | 8 +++++--- src/custom/Workspaces/hooks/useViewsAssignment.tsx | 8 +++++--- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/custom/Workspaces/hooks/useDesignAssignment.tsx b/src/custom/Workspaces/hooks/useDesignAssignment.tsx index 4f6f5fb3..d7c3a60d 100644 --- a/src/custom/Workspaces/hooks/useDesignAssignment.tsx +++ b/src/custom/Workspaces/hooks/useDesignAssignment.tsx @@ -14,13 +14,15 @@ interface useDesignAssignmentProps { useGetDesignsOfWorkspaceQuery: any; useAssignDesignToWorkspaceMutation: any; useUnassignDesignFromWorkspaceMutation: any; + isDesignsVisible?: boolean; } const useDesignAssignment = ({ workspaceId, useGetDesignsOfWorkspaceQuery, useAssignDesignToWorkspaceMutation, - useUnassignDesignFromWorkspaceMutation + useUnassignDesignFromWorkspaceMutation, + isDesignsVisible }: useDesignAssignmentProps): AssignmentHookResult => { const [designsPage, setDesignsPage] = useState(0); const [designsData, setDesignsData] = useState([]); @@ -40,7 +42,7 @@ const useDesignAssignment = ({ filter: '{"assigned":false}' }), { - skip: skipDesigns + skip: skipDesigns || !isDesignsVisible } ); @@ -51,7 +53,7 @@ const useDesignAssignment = ({ pagesize: designsPageSize }), { - skip: skipDesigns + skip: skipDesigns || !isDesignsVisible } ); diff --git a/src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx b/src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx index 155f28c3..1e34ea42 100644 --- a/src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx +++ b/src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx @@ -8,13 +8,15 @@ interface UseEnvironmentAssignmentProps { useGetEnvironmentsOfWorkspaceQuery: any; useAssignEnvironmentToWorkspaceMutation: any; useUnassignEnvironmentFromWorkspaceMutation: any; + isEnvironmentsVisible?: boolean; } const useEnvironmentAssignment = ({ workspaceId, useGetEnvironmentsOfWorkspaceQuery, useAssignEnvironmentToWorkspaceMutation, - useUnassignEnvironmentFromWorkspaceMutation + useUnassignEnvironmentFromWorkspaceMutation, + isEnvironmentsVisible }: UseEnvironmentAssignmentProps): AssignmentHookResult => { const [environmentsPage, setEnvironmentsPage] = useState(0); const [environmentsData, setEnvironmentsData] = useState([]); @@ -34,7 +36,7 @@ const useEnvironmentAssignment = ({ filter: '{"assigned":false}' }), { - skip: skipEnvironments + skip: skipEnvironments || !isEnvironmentsVisible } ); @@ -45,7 +47,7 @@ const useEnvironmentAssignment = ({ pagesize: environmentsPageSize }), { - skip: skipEnvironments + skip: skipEnvironments || !isEnvironmentsVisible } ); diff --git a/src/custom/Workspaces/hooks/useTeamAssignment.tsx b/src/custom/Workspaces/hooks/useTeamAssignment.tsx index 0c27619e..e3f17759 100644 --- a/src/custom/Workspaces/hooks/useTeamAssignment.tsx +++ b/src/custom/Workspaces/hooks/useTeamAssignment.tsx @@ -8,13 +8,15 @@ interface UseTeamAssignmentProps { useGetTeamsOfWorkspaceQuery: any; useAssignTeamToWorkspaceMutation: any; useUnassignTeamFromWorkspaceMutation: any; + isTeamsVisible?: boolean; } const useTeamAssignment = ({ workspaceId, useGetTeamsOfWorkspaceQuery, useAssignTeamToWorkspaceMutation, - useUnassignTeamFromWorkspaceMutation + useUnassignTeamFromWorkspaceMutation, + isTeamsVisible }: UseTeamAssignmentProps): AssignmentHookResult => { const [teamsPage, setTeamsPage] = useState(0); const [teamsData, setTeamsData] = useState([]); @@ -36,7 +38,7 @@ const useTeamAssignment = ({ filter: '{"assigned":false}' }), { - skip: skipTeams + skip: skipTeams || !isTeamsVisible } ); @@ -47,7 +49,7 @@ const useTeamAssignment = ({ pagesize: teamsPageSize }), { - skip: skipTeams + skip: skipTeams || !isTeamsVisible } ); diff --git a/src/custom/Workspaces/hooks/useViewsAssignment.tsx b/src/custom/Workspaces/hooks/useViewsAssignment.tsx index 6f1294b9..be7f8914 100644 --- a/src/custom/Workspaces/hooks/useViewsAssignment.tsx +++ b/src/custom/Workspaces/hooks/useViewsAssignment.tsx @@ -14,13 +14,15 @@ interface useViewAssignmentProps { useGetViewsOfWorkspaceQuery: any; useAssignViewToWorkspaceMutation: any; useUnassignViewFromWorkspaceMutation: any; + isEnvironmentsVisible?: boolean; } const useViewAssignment = ({ workspaceId, useGetViewsOfWorkspaceQuery, useAssignViewToWorkspaceMutation, - useUnassignViewFromWorkspaceMutation + useUnassignViewFromWorkspaceMutation, + isEnvironmentsVisible }: useViewAssignmentProps): AssignmentHookResult => { const [viewsPage, setviewsPage] = useState(0); const [viewsData, setviewsData] = useState([]); @@ -40,7 +42,7 @@ const useViewAssignment = ({ filter: '{"assigned":false}' }), { - skip: skipviews + skip: skipviews || !isEnvironmentsVisible } ); @@ -51,7 +53,7 @@ const useViewAssignment = ({ pagesize: viewsPageSize }), { - skip: skipviews + skip: skipviews || !isEnvironmentsVisible } ); From 073d1dad8e43e84c224a9d1106c9811fb03e820f Mon Sep 17 00:00:00 2001 From: amitamrutiya Date: Tue, 11 Feb 2025 10:30:36 +0530 Subject: [PATCH 3/4] chore: remove some props Signed-off-by: amitamrutiya --- src/custom/Workspaces/WorkspaceCard.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/custom/Workspaces/WorkspaceCard.tsx b/src/custom/Workspaces/WorkspaceCard.tsx index fdb9dff8..30f4eff5 100644 --- a/src/custom/Workspaces/WorkspaceCard.tsx +++ b/src/custom/Workspaces/WorkspaceCard.tsx @@ -54,7 +54,6 @@ interface CardFrontProps { isTeamAllowed: boolean; isDesignAllowed: boolean; isViewAllowed: boolean; - isEditWorkspaceAllowed: boolean; isViewsVisible: boolean; isDesignsVisible: boolean; isTeamsVisible: boolean; @@ -186,7 +185,6 @@ const WorkspaceCard = ({ isDesignsVisible={isDesignsVisible} isEnvironmentsVisible={isEnvironmentsVisible} isTeamsVisible={isTeamsVisible} - isEditWorkspaceAllowed={isEditWorkspaceAllowed} /> Date: Tue, 11 Feb 2025 10:31:48 +0530 Subject: [PATCH 4/4] fix: title Signed-off-by: amitamrutiya --- src/custom/Workspaces/WorkspaceCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/custom/Workspaces/WorkspaceCard.tsx b/src/custom/Workspaces/WorkspaceCard.tsx index 30f4eff5..be4a9c58 100644 --- a/src/custom/Workspaces/WorkspaceCard.tsx +++ b/src/custom/Workspaces/WorkspaceCard.tsx @@ -299,7 +299,7 @@ const CardFront = ({ disabled={!isDesignAllowed} /> ) : ( - + )}