From d77fcb7c89b16ee5aa445626828c43f56d60b55e Mon Sep 17 00:00:00 2001
From: elforjani13 <39470382+elforjani13@users.noreply.github.com>
Date: Tue, 30 Aug 2022 19:18:19 +0200
Subject: [PATCH] feat: add project ability.
---
src/constants/abilityOption.tsx | 12 ++-
src/constants/features.tsx | 1 +
src/constants/sidebarMenu.tsx | 9 +++
.../ProjectsLanding/ProjectsActionsBar.tsx | 16 ++--
.../ProjectsLanding/ProjectsEmptyStatus.tsx | 25 ++++---
.../containers/ProjectsLanding/components.tsx | 73 +++++++++++--------
6 files changed, 86 insertions(+), 50 deletions(-)
diff --git a/src/constants/abilityOption.tsx b/src/constants/abilityOption.tsx
index 7f586f047..586e5bd36 100644
--- a/src/constants/abilityOption.tsx
+++ b/src/constants/abilityOption.tsx
@@ -19,6 +19,7 @@ export const AbilitySubject = {
SubscriptionBilling: 'SubscriptionBilling',
CreditNote: 'CreditNote',
VendorCredit: 'VendorCredit',
+ Project:'Project'
};
export const ItemAction = {
@@ -73,7 +74,7 @@ export const CreditNoteAction = {
Create: 'Create',
Edit: 'Edit',
Delete: 'Delete',
- Refund: 'Refund'
+ Refund: 'Refund',
};
export const VendorCreditAction = {
@@ -81,7 +82,7 @@ export const VendorCreditAction = {
Create: 'Create',
Edit: 'Edit',
Delete: 'Delete',
- Refund: 'Refund'
+ Refund: 'Refund',
};
export const BillAction = {
View: 'View',
@@ -141,6 +142,13 @@ export const CashflowAction = {
Delete: 'Delete',
};
+export const ProjectAction = {
+ View: 'View',
+ Create: 'Create',
+ Edit: 'Edit',
+ Delete: 'Delete',
+};
+
export const ReportsAction = {
ALL: 'all',
READ_BALANCE_SHEET: 'read-balance-sheet',
diff --git a/src/constants/features.tsx b/src/constants/features.tsx
index a042429eb..5392025c2 100644
--- a/src/constants/features.tsx
+++ b/src/constants/features.tsx
@@ -4,4 +4,5 @@ export const Features = {
Warehouses: 'warehouses',
Branches: 'branches',
ManualJournal: 'manualJournal',
+ Projects:'Projects'
}
\ No newline at end of file
diff --git a/src/constants/sidebarMenu.tsx b/src/constants/sidebarMenu.tsx
index 60a618110..686e4d3f9 100644
--- a/src/constants/sidebarMenu.tsx
+++ b/src/constants/sidebarMenu.tsx
@@ -23,6 +23,7 @@ import {
ManualJournalAction,
ExpenseAction,
CashflowAction,
+ ProjectAction,
PreferencesAbility,
SubscriptionBillingAbility,
} from '@/constants/abilityOption';
@@ -554,6 +555,10 @@ export const SidebarMenu = [
text: 'Projects',
href: '/projects',
type: ISidebarMenuItemType.Link,
+ permission: {
+ subject: AbilitySubject.Project,
+ ability: ProjectAction.View,
+ },
},
],
},
@@ -565,6 +570,10 @@ export const SidebarMenu = [
text: ,
type: ISidebarMenuItemType.Dialog,
dialogName: 'project-form',
+ permission: {
+ subject: AbilitySubject.Project,
+ ability: ProjectAction.Create,
+ },
},
{
text: ,
diff --git a/src/containers/Projects/containers/ProjectsLanding/ProjectsActionsBar.tsx b/src/containers/Projects/containers/ProjectsLanding/ProjectsActionsBar.tsx
index c768cdaa2..2e6ae493c 100644
--- a/src/containers/Projects/containers/ProjectsLanding/ProjectsActionsBar.tsx
+++ b/src/containers/Projects/containers/ProjectsLanding/ProjectsActionsBar.tsx
@@ -8,6 +8,7 @@ import {
} from '@blueprintjs/core';
import {
Icon,
+ Can,
AdvancedFilterPopover,
DashboardActionViewsList,
DashboardFilterButton,
@@ -15,6 +16,7 @@ import {
FormattedMessage as T,
DashboardActionsBar,
} from '@/components';
+import { ProjectAction, AbilitySubject } from '@/constants/abilityOption';
import withProjects from './withProjects';
import withProjectsActions from './withProjectsActions';
@@ -75,12 +77,14 @@ function ProjectsActionsBar({
onChange={handleTabChange}
/>
- }
- text={}
- onClick={handleNewProjectBtnClick}
- />
+
+ }
+ text={}
+ onClick={handleNewProjectBtnClick}
+ />
+
{/* AdvancedFilterPopover */}