diff --git a/src/layouts/DefaultLayout/components/AppSidebar/index.js b/src/layouts/DefaultLayout/components/AppSidebar/index.js index 05e3a35..efdd7c7 100644 --- a/src/layouts/DefaultLayout/components/AppSidebar/index.js +++ b/src/layouts/DefaultLayout/components/AppSidebar/index.js @@ -145,6 +145,22 @@ const AppSidebar = () => { id: 16, enable: intersection(permissions, ['APPLY_CALLS', 'APPLY_CONFIDI_CALLS']).length }, + { + label: __('Admin', 'gepafin'), + icon: 'pi pi-shield', + href: '/admin', + id: 20, + enable: intersection(permissions, [ + 'ROOT_MANAGE_NDG', + 'ROOT_MANAGE_APPL_STATUS', + 'ROOT_MANAGE_AMENDMENT_REOPEN', + 'ROOT_MANAGE_AMENDMENT_EXTEND', + 'ROOT_MANAGE_APPL_VIEW_DELETED', + 'ROOT_MANAGE_APPL_DELETE_CONFIRM', + 'ROOT_MANAGE_APPL_DELETE', + 'ROOT_MANAGE_PEC_SEND' + ]).length + }, { label: __('Log di Sistema', 'gepafin'), icon: 'pi pi-receipt', diff --git a/src/pages/Admin/components/ManageAmendmentExtendSection/index.js b/src/pages/Admin/components/ManageAmendmentExtendSection/index.js new file mode 100644 index 0000000..898403f --- /dev/null +++ b/src/pages/Admin/components/ManageAmendmentExtendSection/index.js @@ -0,0 +1,10 @@ +import React from 'react'; +import { __ } from '@wordpress/i18n'; + +const ManageAmendmentExtendSection = () => { + return
+

{__('Estensione soccorso istruttorio', 'gepafin')}

+
+} + +export default ManageAmendmentExtendSection; diff --git a/src/pages/Admin/components/ManageAmendmentReopenSection/index.js b/src/pages/Admin/components/ManageAmendmentReopenSection/index.js new file mode 100644 index 0000000..40b8ba4 --- /dev/null +++ b/src/pages/Admin/components/ManageAmendmentReopenSection/index.js @@ -0,0 +1,10 @@ +import React from 'react'; +import { __ } from '@wordpress/i18n'; + +const ManageAmendmentReopenSection = () => { + return
+

{__('Riapertura soccorso istruttorio', 'gepafin')}

+
+} + +export default ManageAmendmentReopenSection; diff --git a/src/pages/Admin/components/ManageApplDeleteSection/index.js b/src/pages/Admin/components/ManageApplDeleteSection/index.js new file mode 100644 index 0000000..ba0933e --- /dev/null +++ b/src/pages/Admin/components/ManageApplDeleteSection/index.js @@ -0,0 +1,10 @@ +import React from 'react'; +import { __ } from '@wordpress/i18n'; + +const ManageApplDeleteSection = ({ canViewDeleted, canDeleteConfirm, canDelete }) => { + return
+

{__('Gestione domande eliminate', 'gepafin')}

+
+} + +export default ManageApplDeleteSection; diff --git a/src/pages/Admin/components/ManageApplStatusSection/index.js b/src/pages/Admin/components/ManageApplStatusSection/index.js new file mode 100644 index 0000000..d18e189 --- /dev/null +++ b/src/pages/Admin/components/ManageApplStatusSection/index.js @@ -0,0 +1,10 @@ +import React from 'react'; +import { __ } from '@wordpress/i18n'; + +const ManageApplStatusSection = () => { + return
+

{__('Gestione stato domande', 'gepafin')}

+
+} + +export default ManageApplStatusSection; diff --git a/src/pages/Admin/components/ManageNdgSection/index.js b/src/pages/Admin/components/ManageNdgSection/index.js new file mode 100644 index 0000000..0fa5a7c --- /dev/null +++ b/src/pages/Admin/components/ManageNdgSection/index.js @@ -0,0 +1,10 @@ +import React from 'react'; +import { __ } from '@wordpress/i18n'; + +const ManageNdgSection = () => { + return
+

{__('Gestione NDG', 'gepafin')}

+
+} + +export default ManageNdgSection; diff --git a/src/pages/Admin/index.js b/src/pages/Admin/index.js new file mode 100644 index 0000000..9aac328 --- /dev/null +++ b/src/pages/Admin/index.js @@ -0,0 +1,47 @@ +import React from 'react'; +import { __ } from '@wordpress/i18n'; +import { intersection } from 'ramda'; + +// store +import { useStoreValue } from '../../store'; + +// components +import ManageNdgSection from './components/ManageNdgSection'; +import ManageApplStatusSection from './components/ManageApplStatusSection'; +import ManageAmendmentReopenSection from './components/ManageAmendmentReopenSection'; +import ManageAmendmentExtendSection from './components/ManageAmendmentExtendSection'; +import ManageApplDeleteSection from './components/ManageApplDeleteSection'; + +const Admin = () => { + const permissions = useStoreValue('getPermissions'); + + const hasNdg = intersection(permissions, ['ROOT_MANAGE_NDG']).length > 0; + const hasApplStatus = intersection(permissions, ['ROOT_MANAGE_APPL_STATUS']).length > 0; + const hasAmendmentReopen = intersection(permissions, ['ROOT_MANAGE_AMENDMENT_REOPEN']).length > 0; + const hasAmendmentExtend = intersection(permissions, ['ROOT_MANAGE_AMENDMENT_EXTEND']).length > 0; + const hasApplDelete = intersection(permissions, [ + 'ROOT_MANAGE_APPL_VIEW_DELETED', + 'ROOT_MANAGE_APPL_DELETE_CONFIRM', + 'ROOT_MANAGE_APPL_DELETE' + ]).length > 0; + + const canViewDeleted = intersection(permissions, ['ROOT_MANAGE_APPL_VIEW_DELETED']).length > 0; + const canDeleteConfirm = intersection(permissions, ['ROOT_MANAGE_APPL_DELETE_CONFIRM']).length > 0; + const canDelete = intersection(permissions, ['ROOT_MANAGE_APPL_DELETE']).length > 0; + + return
+

{__('Admin', 'gepafin')}

+
+ {hasNdg && <>
} + {hasApplStatus && <>
} + {hasAmendmentReopen && <>
} + {hasAmendmentExtend && <>
} + {hasApplDelete && <>
} +
+} + +export default Admin; diff --git a/src/routes.js b/src/routes.js index 7dd469e..be1fed1 100644 --- a/src/routes.js +++ b/src/routes.js @@ -56,6 +56,7 @@ import LoginConfidi from './pages/LoginConfidi'; import ResetPasswordAdmin from './pages/ResetPasswordAdmin'; import DashboardBeneficiarioConfidi from './pages/DashboardBeneficiarioConfidi'; import DashboardDirector from './pages/DashboardDirector'; +import Admin from './pages/Admin'; const routes = ({ role, chosenCompanyId }) => { @@ -287,6 +288,9 @@ const routes = ({ role, chosenCompanyId }) => { {'ROLE_PRE_INSTRUCTOR' === role ? : null} {'ROLE_INSTRUCTOR_MANAGER' === role ? : null} }/> + + + }/> }/> }/>