From b073dd491e979cbfbe8924fac2fde969ba04e4f7 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 11 May 2026 12:57:58 +0000 Subject: [PATCH] 3 --- .../Ai_tools/configureAi_toolsCols.tsx | 28 +-- .../configureApproval_stepsCols.tsx | 12 +- .../configureData_classificationsCols.tsx | 10 +- .../configureHuman_review_checklistsCols.tsx | 8 +- .../configureIntegrationsCols.tsx | 6 +- .../Matter_types/CardMatter_types.tsx | 136 +-------------- .../Matter_types/ListMatter_types.tsx | 165 ++++++++++-------- .../Matter_types/TableMatter_types.tsx | 56 +++--- .../configureMatter_typesCols.tsx | 2 +- .../Policies/configurePoliciesCols.tsx | 12 +- .../configurePractice_groupsCols.tsx | 4 +- .../configureReview_exceptionsCols.tsx | 12 +- .../Roles_catalog/CardRoles_catalog.tsx | 124 +------------ .../Roles_catalog/ListRoles_catalog.tsx | 151 +++++++++------- .../Roles_catalog/TableRoles_catalog.tsx | 62 +++---- .../configureRoles_catalogCols.tsx | 2 +- .../configureTool_entitlementsCols.tsx | 10 +- .../configureTraining_coursesCols.tsx | 8 +- .../configureUser_training_recordsCols.tsx | 10 +- .../configureVendor_risk_assessmentsCols.tsx | 28 +-- .../Vendors/configureVendorsCols.tsx | 10 +- .../configureWorkflow_runsCols.tsx | 18 +- frontend/src/css/_table.css | 36 +++- .../pages/ai_use_cases/ai_use_cases-new.tsx | 2 +- frontend/src/pages/governance-workbench.tsx | 2 +- .../pages/matter_types/[matter_typesId].tsx | 4 +- .../pages/matter_types/matter_types-edit.tsx | 8 +- .../pages/matter_types/matter_types-list.tsx | 36 ++-- .../pages/matter_types/matter_types-new.tsx | 8 +- .../pages/matter_types/matter_types-table.tsx | 38 ++-- .../pages/matter_types/matter_types-view.tsx | 17 +- .../pages/roles_catalog/[roles_catalogId].tsx | 8 +- .../roles_catalog/roles_catalog-edit.tsx | 8 +- .../roles_catalog/roles_catalog-list.tsx | 34 ++-- .../pages/roles_catalog/roles_catalog-new.tsx | 8 +- .../roles_catalog/roles_catalog-table.tsx | 36 ++-- .../roles_catalog/roles_catalog-view.tsx | 17 +- frontend/src/styles.ts | 63 ++++++- 38 files changed, 540 insertions(+), 659 deletions(-) diff --git a/frontend/src/components/Ai_tools/configureAi_toolsCols.tsx b/frontend/src/components/Ai_tools/configureAi_toolsCols.tsx index 26e2d59..9f467b5 100644 --- a/frontend/src/components/Ai_tools/configureAi_toolsCols.tsx +++ b/frontend/src/components/Ai_tools/configureAi_toolsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'name', - headerName: 'ToolName', + headerName: 'Tool Name', flex: 1, minWidth: 120, filterable: false, @@ -58,7 +58,7 @@ export const loadColumns = async ( { field: 'tool_type', - headerName: 'ToolType', + headerName: 'Tool Type', flex: 1, minWidth: 120, filterable: false, @@ -95,7 +95,7 @@ export const loadColumns = async ( { field: 'deployment_model', - headerName: 'DeploymentModel', + headerName: 'Deployment Model', flex: 1, minWidth: 120, filterable: false, @@ -110,7 +110,7 @@ export const loadColumns = async ( { field: 'approval_status', - headerName: 'ApprovalStatus', + headerName: 'Approval Status', flex: 1, minWidth: 120, filterable: false, @@ -125,7 +125,7 @@ export const loadColumns = async ( { field: 'supports_sso', - headerName: 'SupportsSSO', + headerName: 'Supports SSO', flex: 1, minWidth: 120, filterable: false, @@ -141,7 +141,7 @@ export const loadColumns = async ( { field: 'supports_audit_logs', - headerName: 'SupportsAuditLogs', + headerName: 'Supports Audit Logs', flex: 1, minWidth: 120, filterable: false, @@ -157,7 +157,7 @@ export const loadColumns = async ( { field: 'soc2_status', - headerName: 'SOC2Status', + headerName: 'SOC2 Status', flex: 1, minWidth: 120, filterable: false, @@ -172,7 +172,7 @@ export const loadColumns = async ( { field: 'data_retention_policy', - headerName: 'DataRetentionPolicy', + headerName: 'Data Retention Policy', flex: 1, minWidth: 120, filterable: false, @@ -187,7 +187,7 @@ export const loadColumns = async ( { field: 'training_on_client_data_policy', - headerName: 'TrainingOnClientDataPolicy', + headerName: 'Training On Client Data Policy', flex: 1, minWidth: 120, filterable: false, @@ -202,7 +202,7 @@ export const loadColumns = async ( { field: 'data_residency', - headerName: 'DataResidency', + headerName: 'Data Residency', flex: 1, minWidth: 120, filterable: false, @@ -217,7 +217,7 @@ export const loadColumns = async ( { field: 'deletion_policy', - headerName: 'DeletionPolicy', + headerName: 'Deletion Policy', flex: 1, minWidth: 120, filterable: false, @@ -232,7 +232,7 @@ export const loadColumns = async ( { field: 'security_posture_summary', - headerName: 'SecurityPostureSummary', + headerName: 'Security Posture Summary', flex: 1, minWidth: 120, filterable: false, @@ -247,7 +247,7 @@ export const loadColumns = async ( { field: 'security_documents', - headerName: 'SecurityDocuments', + headerName: 'Security Documents', flex: 1, minWidth: 120, filterable: false, @@ -273,7 +273,7 @@ export const loadColumns = async ( { field: 'monthly_cost', - headerName: 'MonthlyCost', + headerName: 'Monthly Cost', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Approval_steps/configureApproval_stepsCols.tsx b/frontend/src/components/Approval_steps/configureApproval_stepsCols.tsx index 836689b..20f222d 100644 --- a/frontend/src/components/Approval_steps/configureApproval_stepsCols.tsx +++ b/frontend/src/components/Approval_steps/configureApproval_stepsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'use_case', - headerName: 'AIUseCase', + headerName: 'AI Use Case', flex: 1, minWidth: 120, filterable: false, @@ -65,7 +65,7 @@ export const loadColumns = async ( { field: 'step_type', - headerName: 'StepType', + headerName: 'Step Type', flex: 1, minWidth: 120, filterable: false, @@ -80,7 +80,7 @@ export const loadColumns = async ( { field: 'assigned_reviewer', - headerName: 'AssignedReviewer', + headerName: 'Assigned Reviewer', flex: 1, minWidth: 120, filterable: false, @@ -132,7 +132,7 @@ export const loadColumns = async ( { field: 'assigned_at', - headerName: 'AssignedAt', + headerName: 'Assigned At', flex: 1, minWidth: 120, filterable: false, @@ -150,7 +150,7 @@ export const loadColumns = async ( { field: 'decided_at', - headerName: 'DecidedAt', + headerName: 'Decided At', flex: 1, minWidth: 120, filterable: false, @@ -168,7 +168,7 @@ export const loadColumns = async ( { field: 'step_order', - headerName: 'StepOrder', + headerName: 'Step Order', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Data_classifications/configureData_classificationsCols.tsx b/frontend/src/components/Data_classifications/configureData_classificationsCols.tsx index 01cbb88..7096a2e 100644 --- a/frontend/src/components/Data_classifications/configureData_classificationsCols.tsx +++ b/frontend/src/components/Data_classifications/configureData_classificationsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'label', - headerName: 'ClassificationLabel', + headerName: 'Classification Label', flex: 1, minWidth: 120, filterable: false, @@ -58,7 +58,7 @@ export const loadColumns = async ( { field: 'level', - headerName: 'SensitivityLevel', + headerName: 'Sensitivity Level', flex: 1, minWidth: 120, filterable: false, @@ -88,7 +88,7 @@ export const loadColumns = async ( { field: 'risk_notes', - headerName: 'RiskNotes', + headerName: 'Risk Notes', flex: 1, minWidth: 120, filterable: false, @@ -103,7 +103,7 @@ export const loadColumns = async ( { field: 'required_human_review_level', - headerName: 'RequiredHumanReviewLevel', + headerName: 'Required Human Review Level', flex: 1, minWidth: 120, filterable: false, @@ -118,7 +118,7 @@ export const loadColumns = async ( { field: 'requires_client_notice', - headerName: 'RequiresClientNotice', + headerName: 'Requires Client Notice', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Human_review_checklists/configureHuman_review_checklistsCols.tsx b/frontend/src/components/Human_review_checklists/configureHuman_review_checklistsCols.tsx index 6f03ad3..7b839c7 100644 --- a/frontend/src/components/Human_review_checklists/configureHuman_review_checklistsCols.tsx +++ b/frontend/src/components/Human_review_checklists/configureHuman_review_checklistsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'name', - headerName: 'ChecklistName', + headerName: 'Checklist Name', flex: 1, minWidth: 120, filterable: false, @@ -88,7 +88,7 @@ export const loadColumns = async ( { field: 'practice_group', - headerName: 'PracticeGroupScope', + headerName: 'Practice Group Scope', flex: 1, minWidth: 120, filterable: false, @@ -110,7 +110,7 @@ export const loadColumns = async ( { field: 'data_classification', - headerName: 'DataClassificationScope', + headerName: 'Data Classification Scope', flex: 1, minWidth: 120, filterable: false, @@ -132,7 +132,7 @@ export const loadColumns = async ( { field: 'required_reviewer_role', - headerName: 'RequiredReviewerRole', + headerName: 'Required Reviewer Role', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Integrations/configureIntegrationsCols.tsx b/frontend/src/components/Integrations/configureIntegrationsCols.tsx index f2ed0b0..b4837c3 100644 --- a/frontend/src/components/Integrations/configureIntegrationsCols.tsx +++ b/frontend/src/components/Integrations/configureIntegrationsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'name', - headerName: 'IntegrationName', + headerName: 'Integration Name', flex: 1, minWidth: 120, filterable: false, @@ -104,7 +104,7 @@ export const loadColumns = async ( { field: 'configuration_notes', - headerName: 'ConfigurationNotes', + headerName: 'Configuration Notes', flex: 1, minWidth: 120, filterable: false, @@ -119,7 +119,7 @@ export const loadColumns = async ( { field: 'configuration_files', - headerName: 'ConfigurationFiles', + headerName: 'Configuration Files', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Matter_types/CardMatter_types.tsx b/frontend/src/components/Matter_types/CardMatter_types.tsx index 2556978..eb223ad 100644 --- a/frontend/src/components/Matter_types/CardMatter_types.tsx +++ b/frontend/src/components/Matter_types/CardMatter_types.tsx @@ -1,135 +1,3 @@ -import React from 'react'; -import ImageField from '../ImageField'; -import ListActionsPopover from '../ListActionsPopover'; -import { useAppSelector } from '../../stores/hooks'; -import dataFormatter from '../../helpers/dataFormatter'; -import { Pagination } from '../Pagination'; -import {saveFile} from "../../helpers/fileSaver"; -import LoadingSpinner from "../LoadingSpinner"; -import Link from 'next/link'; +import ListMatter_types from './ListMatter_types'; -import {hasPermission} from "../../helpers/userPermissions"; - - -type Props = { - matter_types: any[]; - loading: boolean; - onDelete: (id: string) => void; - currentPage: number; - numPages: number; - onPageChange: (page: number) => void; -}; - -const CardMatter_types = ({ - matter_types, - loading, - onDelete, - currentPage, - numPages, - onPageChange, -}: Props) => { - const asideScrollbarsStyle = useAppSelector( - (state) => state.style.asideScrollbarsStyle, - ); - const bgColor = useAppSelector((state) => state.style.cardsColor); - const darkMode = useAppSelector((state) => state.style.darkMode); - const corners = useAppSelector((state) => state.style.corners); - const focusRing = useAppSelector((state) => state.style.focusRingColor); - - const currentUser = useAppSelector((state) => state.auth.currentUser); - const hasUpdatePermission = hasPermission(currentUser, 'UPDATE_MATTER_TYPES') - - - return ( -
- {loading && } -
    - {!loading && matter_types.map((item, index) => ( -
  • - -
    - - - {item.name} - - - -
    - -
    -
    -
    - - -
    -
    MatterType
    -
    -
    - { item.name } -
    -
    -
    - - - - -
    -
    Description
    -
    -
    - { item.description } -
    -
    -
    - - - - -
    -
    Active
    -
    -
    - { dataFormatter.booleanFormatter(item.is_active) } -
    -
    -
    - - - -
    -
  • - ))} - {!loading && matter_types.length === 0 && ( -
    -

    No data to display

    -
    - )} -
-
- -
-
- ); -}; - -export default CardMatter_types; +export default ListMatter_types; diff --git a/frontend/src/components/Matter_types/ListMatter_types.tsx b/frontend/src/components/Matter_types/ListMatter_types.tsx index 2f09826..3d316e6 100644 --- a/frontend/src/components/Matter_types/ListMatter_types.tsx +++ b/frontend/src/components/Matter_types/ListMatter_types.tsx @@ -1,16 +1,10 @@ import React from 'react'; -import CardBox from '../CardBox'; -import ImageField from '../ImageField'; -import dataFormatter from '../../helpers/dataFormatter'; -import {saveFile} from "../../helpers/fileSaver"; -import ListActionsPopover from "../ListActionsPopover"; -import {useAppSelector} from "../../stores/hooks"; -import {Pagination} from "../Pagination"; -import LoadingSpinner from "../LoadingSpinner"; import Link from 'next/link'; - -import {hasPermission} from "../../helpers/userPermissions"; - +import ListActionsPopover from "../ListActionsPopover"; +import { useAppSelector } from "../../stores/hooks"; +import { Pagination } from "../Pagination"; +import LoadingSpinner from "../LoadingSpinner"; +import { hasPermission } from "../../helpers/userPermissions"; type Props = { matter_types: any[]; @@ -21,84 +15,111 @@ type Props = { onPageChange: (page: number) => void; }; -const ListMatter_types = ({ matter_types, loading, onDelete, currentPage, numPages, onPageChange }: Props) => { - - const currentUser = useAppSelector((state) => state.auth.currentUser); - const hasUpdatePermission = hasPermission(currentUser, 'UPDATE_MATTER_TYPES') - - const corners = useAppSelector((state) => state.style.corners); - const bgColor = useAppSelector((state) => state.style.cardsColor); +const getInitials = (name?: string) => { + if (!name) { + return 'MT'; + } + return name + .split(' ') + .map((part) => part[0]) + .join('') + .slice(0, 2) + .toUpperCase(); +}; + +const ListMatter_types = ({ matter_types, loading, onDelete, currentPage, numPages, onPageChange }: Props) => { + const currentUser = useAppSelector((state) => state.auth.currentUser); + const hasUpdatePermission = hasPermission(currentUser, 'UPDATE_MATTER_TYPES'); return ( <> -
- {loading && } +
+ {loading && ( +
+ +
+ )} + {!loading && matter_types.map((item) => ( -
- -
- - dark:divide-dark-700 overflow-x-auto' - } - > - - -
-

MatterType

-

{ item.name }

+
+
+
+
+ {getInitials(item.name)} +
+
+

+ Matter type +

+ + {item.name || 'Unnamed matter type'} + +
- - - - -
-

Description

-

{ item.description }

-
- - - - -
-

Active

-

{ dataFormatter.booleanFormatter(item.is_active) }

-
- - - -
- -
+ +
+
+ + {item.is_active ? 'Active' : 'Inactive'} + + + Intake context + +
+ +

+ {item.description || 'No matter-type description yet.'} +

+ +
+

+ Governance use +

+

+ Helps classify AI use cases by legal matter context before risk review and approval. +

+
+
+
))} + {!loading && matter_types.length === 0 && ( -
-

No data to display

-
+
+

No matter types to display

+
)}
-
+ +
) }; -export default ListMatter_types \ No newline at end of file +export default ListMatter_types diff --git a/frontend/src/components/Matter_types/TableMatter_types.tsx b/frontend/src/components/Matter_types/TableMatter_types.tsx index 55447dd..bb9d441 100644 --- a/frontend/src/components/Matter_types/TableMatter_types.tsx +++ b/frontend/src/components/Matter_types/TableMatter_types.tsx @@ -44,9 +44,6 @@ const TableSampleMatter_types = ({ filterItems, setFilterItems, filters, showGri const { matter_types, loading, count, notify: matter_typesNotify, refetch } = useAppSelector((state) => state.matter_types) const { currentUser } = useAppSelector((state) => state.auth); - const focusRing = useAppSelector((state) => state.style.focusRingColor); - const bgColor = useAppSelector((state) => state.style.bgLayoutColor); - const corners = useAppSelector((state) => state.style.corners); const numPages = Math.floor(count / perPage) === 0 ? 1 : Math.ceil(count / perPage); for (let i = 0; i < numPages; i++) { pagesList.push(i); @@ -204,9 +201,7 @@ const TableSampleMatter_types = ({ filterItems, setFilterItems, filters, showGri }; const controlClasses = - 'w-full py-2 px-2 my-2 rounded dark:placeholder-gray-400 ' + - ` ${bgColor} ${focusRing} ${corners} ` + - 'dark:bg-slate-800 border'; + 'w-full my-1.5 rounded-lg border border-[#D8D0C2] bg-white px-3 py-2 text-sm text-[#0E1A2B] shadow-sm outline-none placeholder:text-[#9A8F7F] focus:border-[#D8B75E] focus:ring-2 focus:ring-[#D8B75E]/25 dark:border-dark-700 dark:bg-slate-800 dark:placeholder-gray-400'; const dataGrid = ( @@ -264,7 +259,7 @@ const TableSampleMatter_types = ({ filterItems, setFilterItems, filters, showGri return ( <> {filterItems && Array.isArray( filterItems ) && filterItems.length ? - +
<> +
+
+

Active filters

+

Narrow matter types by name or description.

+
+ Matter scope +
{filterItems && filterItems.map((filterItem) => { return ( -
-
-
Filter
+
+
+
Filter
filter.title === filterItem?.fields?.selectedField )?.type === 'enum' ? ( -
-
+
+
Value
filter.title === filterItem?.fields?.selectedField )?.number ? ( -
-
-
From
+
+
+
From
-
To
+
To
-
-
+
+
+
From
-
To
+
To
) : ( -
-
Contains
+
+
Contains
)}
-
Action
+
Action
) })} -
+
diff --git a/frontend/src/components/Matter_types/configureMatter_typesCols.tsx b/frontend/src/components/Matter_types/configureMatter_typesCols.tsx index f97aad6..fb0cff1 100644 --- a/frontend/src/components/Matter_types/configureMatter_typesCols.tsx +++ b/frontend/src/components/Matter_types/configureMatter_typesCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'name', - headerName: 'MatterType', + headerName: 'Matter type', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Policies/configurePoliciesCols.tsx b/frontend/src/components/Policies/configurePoliciesCols.tsx index e4256d1..ef85e1c 100644 --- a/frontend/src/components/Policies/configurePoliciesCols.tsx +++ b/frontend/src/components/Policies/configurePoliciesCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'title', - headerName: 'PolicyTitle', + headerName: 'Policy Title', flex: 1, minWidth: 120, filterable: false, @@ -58,7 +58,7 @@ export const loadColumns = async ( { field: 'policy_type', - headerName: 'PolicyType', + headerName: 'Policy Type', flex: 1, minWidth: 120, filterable: false, @@ -88,7 +88,7 @@ export const loadColumns = async ( { field: 'practice_group', - headerName: 'PracticeGroupScope', + headerName: 'Practice Group Scope', flex: 1, minWidth: 120, filterable: false, @@ -110,7 +110,7 @@ export const loadColumns = async ( { field: 'data_classification', - headerName: 'DataClassificationScope', + headerName: 'Data Classification Scope', flex: 1, minWidth: 120, filterable: false, @@ -162,7 +162,7 @@ export const loadColumns = async ( { field: 'effective_from', - headerName: 'EffectiveFrom', + headerName: 'Effective From', flex: 1, minWidth: 120, filterable: false, @@ -180,7 +180,7 @@ export const loadColumns = async ( { field: 'effective_to', - headerName: 'EffectiveTo', + headerName: 'Effective To', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Practice_groups/configurePractice_groupsCols.tsx b/frontend/src/components/Practice_groups/configurePractice_groupsCols.tsx index 6ce82f5..84dd8ea 100644 --- a/frontend/src/components/Practice_groups/configurePractice_groupsCols.tsx +++ b/frontend/src/components/Practice_groups/configurePractice_groupsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'name', - headerName: 'PracticeGroupName', + headerName: 'Practice Group Name', flex: 1, minWidth: 120, filterable: false, @@ -73,7 +73,7 @@ export const loadColumns = async ( { field: 'lead_user', - headerName: 'PracticeGroupLead', + headerName: 'Practice Group Lead', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Review_exceptions/configureReview_exceptionsCols.tsx b/frontend/src/components/Review_exceptions/configureReview_exceptionsCols.tsx index bb1c7e1..41d1e15 100644 --- a/frontend/src/components/Review_exceptions/configureReview_exceptionsCols.tsx +++ b/frontend/src/components/Review_exceptions/configureReview_exceptionsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'workflow_run', - headerName: 'WorkflowRun', + headerName: 'Workflow Run', flex: 1, minWidth: 120, filterable: false, @@ -87,7 +87,7 @@ export const loadColumns = async ( { field: 'raised_by', - headerName: 'RaisedBy', + headerName: 'Raised By', flex: 1, minWidth: 120, filterable: false, @@ -109,7 +109,7 @@ export const loadColumns = async ( { field: 'exception_type', - headerName: 'ExceptionType', + headerName: 'Exception Type', flex: 1, minWidth: 120, filterable: false, @@ -139,7 +139,7 @@ export const loadColumns = async ( { field: 'resolution_status', - headerName: 'ResolutionStatus', + headerName: 'Resolution Status', flex: 1, minWidth: 120, filterable: false, @@ -154,7 +154,7 @@ export const loadColumns = async ( { field: 'raised_at', - headerName: 'RaisedAt', + headerName: 'Raised At', flex: 1, minWidth: 120, filterable: false, @@ -172,7 +172,7 @@ export const loadColumns = async ( { field: 'resolved_at', - headerName: 'ResolvedAt', + headerName: 'Resolved At', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Roles_catalog/CardRoles_catalog.tsx b/frontend/src/components/Roles_catalog/CardRoles_catalog.tsx index a3d79e4..c90d7db 100644 --- a/frontend/src/components/Roles_catalog/CardRoles_catalog.tsx +++ b/frontend/src/components/Roles_catalog/CardRoles_catalog.tsx @@ -1,123 +1,3 @@ -import React from 'react'; -import ImageField from '../ImageField'; -import ListActionsPopover from '../ListActionsPopover'; -import { useAppSelector } from '../../stores/hooks'; -import dataFormatter from '../../helpers/dataFormatter'; -import { Pagination } from '../Pagination'; -import {saveFile} from "../../helpers/fileSaver"; -import LoadingSpinner from "../LoadingSpinner"; -import Link from 'next/link'; +import ListRoles_catalog from './ListRoles_catalog'; -import {hasPermission} from "../../helpers/userPermissions"; - - -type Props = { - roles_catalog: any[]; - loading: boolean; - onDelete: (id: string) => void; - currentPage: number; - numPages: number; - onPageChange: (page: number) => void; -}; - -const CardRoles_catalog = ({ - roles_catalog, - loading, - onDelete, - currentPage, - numPages, - onPageChange, -}: Props) => { - const asideScrollbarsStyle = useAppSelector( - (state) => state.style.asideScrollbarsStyle, - ); - const bgColor = useAppSelector((state) => state.style.cardsColor); - const darkMode = useAppSelector((state) => state.style.darkMode); - const corners = useAppSelector((state) => state.style.corners); - const focusRing = useAppSelector((state) => state.style.focusRingColor); - - const currentUser = useAppSelector((state) => state.auth.currentUser); - const hasUpdatePermission = hasPermission(currentUser, 'UPDATE_ROLES_CATALOG') - - - return ( -
- {loading && } -
    - {!loading && roles_catalog.map((item, index) => ( -
  • - -
    - - - {item.name} - - - -
    - -
    -
    -
    - - -
    -
    RoleName
    -
    -
    - { item.name } -
    -
    -
    - - - - -
    -
    Description
    -
    -
    - { item.description } -
    -
    -
    - - - -
    -
  • - ))} - {!loading && roles_catalog.length === 0 && ( -
    -

    No data to display

    -
    - )} -
-
- -
-
- ); -}; - -export default CardRoles_catalog; +export default ListRoles_catalog; diff --git a/frontend/src/components/Roles_catalog/ListRoles_catalog.tsx b/frontend/src/components/Roles_catalog/ListRoles_catalog.tsx index ae2f1e9..633c2f8 100644 --- a/frontend/src/components/Roles_catalog/ListRoles_catalog.tsx +++ b/frontend/src/components/Roles_catalog/ListRoles_catalog.tsx @@ -1,16 +1,10 @@ import React from 'react'; -import CardBox from '../CardBox'; -import ImageField from '../ImageField'; -import dataFormatter from '../../helpers/dataFormatter'; -import {saveFile} from "../../helpers/fileSaver"; -import ListActionsPopover from "../ListActionsPopover"; -import {useAppSelector} from "../../stores/hooks"; -import {Pagination} from "../Pagination"; -import LoadingSpinner from "../LoadingSpinner"; import Link from 'next/link'; - -import {hasPermission} from "../../helpers/userPermissions"; - +import ListActionsPopover from "../ListActionsPopover"; +import { useAppSelector } from "../../stores/hooks"; +import { Pagination } from "../Pagination"; +import LoadingSpinner from "../LoadingSpinner"; +import { hasPermission } from "../../helpers/userPermissions"; type Props = { roles_catalog: any[]; @@ -21,76 +15,105 @@ type Props = { onPageChange: (page: number) => void; }; -const ListRoles_catalog = ({ roles_catalog, loading, onDelete, currentPage, numPages, onPageChange }: Props) => { - - const currentUser = useAppSelector((state) => state.auth.currentUser); - const hasUpdatePermission = hasPermission(currentUser, 'UPDATE_ROLES_CATALOG') - - const corners = useAppSelector((state) => state.style.corners); - const bgColor = useAppSelector((state) => state.style.cardsColor); +const getInitials = (name?: string) => { + if (!name) { + return 'RC'; + } + return name + .split(' ') + .map((part) => part[0]) + .join('') + .slice(0, 2) + .toUpperCase(); +}; + +const ListRoles_catalog = ({ roles_catalog, loading, onDelete, currentPage, numPages, onPageChange }: Props) => { + const currentUser = useAppSelector((state) => state.auth.currentUser); + const hasUpdatePermission = hasPermission(currentUser, 'UPDATE_ROLES_CATALOG'); return ( <> -
- {loading && } +
+ {loading && ( +
+ +
+ )} + {!loading && roles_catalog.map((item) => ( -
- -
- - dark:divide-dark-700 overflow-x-auto' - } - > - - -
-

RoleName

-

{ item.name }

+
+
+
+
+ {getInitials(item.name)} +
+
+

+ Governance role +

+ + {item.name || 'Unnamed role'} + +
- - - - -
-

Description

-

{ item.description }

-
- - - -
- -
+ +
+
+ + Role catalog + + + Approval ownership + +
+ +

+ {item.description || 'No role description yet.'} +

+ +
+

+ Governance use +

+

+ Defines who can own, approve, review, or monitor AI governance workflows. +

+
+
+
))} + {!loading && roles_catalog.length === 0 && ( -
-

No data to display

-
+
+

No roles to display

+
)}
-
+ +
) }; -export default ListRoles_catalog \ No newline at end of file +export default ListRoles_catalog diff --git a/frontend/src/components/Roles_catalog/TableRoles_catalog.tsx b/frontend/src/components/Roles_catalog/TableRoles_catalog.tsx index 8c3973b..ec43eb3 100644 --- a/frontend/src/components/Roles_catalog/TableRoles_catalog.tsx +++ b/frontend/src/components/Roles_catalog/TableRoles_catalog.tsx @@ -44,9 +44,6 @@ const TableSampleRoles_catalog = ({ filterItems, setFilterItems, filters, showGr const { roles_catalog, loading, count, notify: roles_catalogNotify, refetch } = useAppSelector((state) => state.roles_catalog) const { currentUser } = useAppSelector((state) => state.auth); - const focusRing = useAppSelector((state) => state.style.focusRingColor); - const bgColor = useAppSelector((state) => state.style.bgLayoutColor); - const corners = useAppSelector((state) => state.style.corners); const numPages = Math.floor(count / perPage) === 0 ? 1 : Math.ceil(count / perPage); for (let i = 0; i < numPages; i++) { pagesList.push(i); @@ -204,9 +201,7 @@ const TableSampleRoles_catalog = ({ filterItems, setFilterItems, filters, showGr }; const controlClasses = - 'w-full py-2 px-2 my-2 rounded dark:placeholder-gray-400 ' + - ` ${bgColor} ${focusRing} ${corners} ` + - 'dark:bg-slate-800 border'; + 'w-full my-1.5 rounded-lg border border-[#D8D0C2] bg-white px-3 py-2 text-sm text-[#0E1A2B] shadow-sm outline-none placeholder:text-[#9A8F7F] focus:border-[#D8B75E] focus:ring-2 focus:ring-[#D8B75E]/25 dark:border-dark-700 dark:bg-slate-800 dark:placeholder-gray-400'; const dataGrid = ( @@ -264,7 +259,7 @@ const TableSampleRoles_catalog = ({ filterItems, setFilterItems, filters, showGr return ( <> {filterItems && Array.isArray( filterItems ) && filterItems.length ? - + <> +
+
+

Active filters

+

Narrow the role catalog by owner role or description.

+
+ Role scope +
{filterItems && filterItems.map((filterItem) => { return ( -
-
-
Filter
+
+
+
Filter
filter.title === filterItem?.fields?.selectedField )?.type === 'enum' ? ( -
-
+
+
Value
filter.title === filterItem?.fields?.selectedField )?.number ? ( -
-
-
From
+
+
+
From
-
To
+
To
) : filters.find( - (filter) => - filter.title === - filterItem?.fields?.selectedField + (filter) => + filter.title === + filterItem?.fields?.selectedField )?.date ? ( -
-
-
+
+
+
From
-
To
+
To
) : ( -
-
Contains
+
+
Contains
)}
-
Action
+
Action
) })} -
+
diff --git a/frontend/src/components/Roles_catalog/configureRoles_catalogCols.tsx b/frontend/src/components/Roles_catalog/configureRoles_catalogCols.tsx index c0e6dfb..fbc5bea 100644 --- a/frontend/src/components/Roles_catalog/configureRoles_catalogCols.tsx +++ b/frontend/src/components/Roles_catalog/configureRoles_catalogCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'name', - headerName: 'RoleName', + headerName: 'Role name', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Tool_entitlements/configureTool_entitlementsCols.tsx b/frontend/src/components/Tool_entitlements/configureTool_entitlementsCols.tsx index bac33ca..882641d 100644 --- a/frontend/src/components/Tool_entitlements/configureTool_entitlementsCols.tsx +++ b/frontend/src/components/Tool_entitlements/configureTool_entitlementsCols.tsx @@ -65,7 +65,7 @@ export const loadColumns = async ( { field: 'tool', - headerName: 'AITool', + headerName: 'AI Tool', flex: 1, minWidth: 120, filterable: false, @@ -87,7 +87,7 @@ export const loadColumns = async ( { field: 'entitlement_status', - headerName: 'EntitlementStatus', + headerName: 'Entitlement Status', flex: 1, minWidth: 120, filterable: false, @@ -102,7 +102,7 @@ export const loadColumns = async ( { field: 'effective_from', - headerName: 'EffectiveFrom', + headerName: 'Effective From', flex: 1, minWidth: 120, filterable: false, @@ -120,7 +120,7 @@ export const loadColumns = async ( { field: 'effective_to', - headerName: 'EffectiveTo', + headerName: 'Effective To', flex: 1, minWidth: 120, filterable: false, @@ -138,7 +138,7 @@ export const loadColumns = async ( { field: 'restriction_reason', - headerName: 'RestrictionReason', + headerName: 'Restriction Reason', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Training_courses/configureTraining_coursesCols.tsx b/frontend/src/components/Training_courses/configureTraining_coursesCols.tsx index 9cce674..1af52d9 100644 --- a/frontend/src/components/Training_courses/configureTraining_coursesCols.tsx +++ b/frontend/src/components/Training_courses/configureTraining_coursesCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'name', - headerName: 'CourseName', + headerName: 'Course Name', flex: 1, minWidth: 120, filterable: false, @@ -73,7 +73,7 @@ export const loadColumns = async ( { field: 'delivery_type', - headerName: 'DeliveryType', + headerName: 'Delivery Type', flex: 1, minWidth: 120, filterable: false, @@ -103,7 +103,7 @@ export const loadColumns = async ( { field: 'duration_minutes', - headerName: 'DurationMinutes', + headerName: 'Duration Minutes', flex: 1, minWidth: 120, filterable: false, @@ -119,7 +119,7 @@ export const loadColumns = async ( { field: 'validity_days', - headerName: 'ValidityDays', + headerName: 'Validity Days', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/User_training_records/configureUser_training_recordsCols.tsx b/frontend/src/components/User_training_records/configureUser_training_recordsCols.tsx index 31f5177..810a180 100644 --- a/frontend/src/components/User_training_records/configureUser_training_recordsCols.tsx +++ b/frontend/src/components/User_training_records/configureUser_training_recordsCols.tsx @@ -87,7 +87,7 @@ export const loadColumns = async ( { field: 'completion_status', - headerName: 'CompletionStatus', + headerName: 'Completion Status', flex: 1, minWidth: 120, filterable: false, @@ -102,7 +102,7 @@ export const loadColumns = async ( { field: 'completed_at', - headerName: 'CompletedAt', + headerName: 'Completed At', flex: 1, minWidth: 120, filterable: false, @@ -120,7 +120,7 @@ export const loadColumns = async ( { field: 'expires_at', - headerName: 'ExpiresAt', + headerName: 'Expires At', flex: 1, minWidth: 120, filterable: false, @@ -138,7 +138,7 @@ export const loadColumns = async ( { field: 'evidence_note', - headerName: 'EvidenceNote', + headerName: 'Evidence Note', flex: 1, minWidth: 120, filterable: false, @@ -153,7 +153,7 @@ export const loadColumns = async ( { field: 'certificate_files', - headerName: 'CertificateFiles', + headerName: 'Certificate Files', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Vendor_risk_assessments/configureVendor_risk_assessmentsCols.tsx b/frontend/src/components/Vendor_risk_assessments/configureVendor_risk_assessmentsCols.tsx index cd0f85d..5e1b520 100644 --- a/frontend/src/components/Vendor_risk_assessments/configureVendor_risk_assessmentsCols.tsx +++ b/frontend/src/components/Vendor_risk_assessments/configureVendor_risk_assessmentsCols.tsx @@ -65,7 +65,7 @@ export const loadColumns = async ( { field: 'tool', - headerName: 'AITool', + headerName: 'AI Tool', flex: 1, minWidth: 120, filterable: false, @@ -87,7 +87,7 @@ export const loadColumns = async ( { field: 'assessment_status', - headerName: 'AssessmentStatus', + headerName: 'Assessment Status', flex: 1, minWidth: 120, filterable: false, @@ -102,7 +102,7 @@ export const loadColumns = async ( { field: 'confidentiality_score', - headerName: 'ConfidentialityScore', + headerName: 'Confidentiality Score', flex: 1, minWidth: 120, filterable: false, @@ -118,7 +118,7 @@ export const loadColumns = async ( { field: 'security_score', - headerName: 'SecurityScore', + headerName: 'Security Score', flex: 1, minWidth: 120, filterable: false, @@ -134,7 +134,7 @@ export const loadColumns = async ( { field: 'integration_readiness_score', - headerName: 'IntegrationReadinessScore', + headerName: 'Integration Readiness Score', flex: 1, minWidth: 120, filterable: false, @@ -150,7 +150,7 @@ export const loadColumns = async ( { field: 'legal_specific_risk_score', - headerName: 'LegalSpecificRiskScore', + headerName: 'Legal Specific Risk Score', flex: 1, minWidth: 120, filterable: false, @@ -166,7 +166,7 @@ export const loadColumns = async ( { field: 'pricing_score', - headerName: 'PricingScore', + headerName: 'Pricing Score', flex: 1, minWidth: 120, filterable: false, @@ -182,7 +182,7 @@ export const loadColumns = async ( { field: 'support_score', - headerName: 'SupportScore', + headerName: 'Support Score', flex: 1, minWidth: 120, filterable: false, @@ -198,7 +198,7 @@ export const loadColumns = async ( { field: 'compliance_score', - headerName: 'ComplianceScore', + headerName: 'Compliance Score', flex: 1, minWidth: 120, filterable: false, @@ -214,7 +214,7 @@ export const loadColumns = async ( { field: 'overall_score', - headerName: 'OverallScore', + headerName: 'Overall Score', flex: 1, minWidth: 120, filterable: false, @@ -260,7 +260,7 @@ export const loadColumns = async ( { field: 'evidence_files', - headerName: 'EvidenceFiles', + headerName: 'Evidence Files', flex: 1, minWidth: 120, filterable: false, @@ -286,7 +286,7 @@ export const loadColumns = async ( { field: 'owner', - headerName: 'AssessmentOwner', + headerName: 'Assessment Owner', flex: 1, minWidth: 120, filterable: false, @@ -308,7 +308,7 @@ export const loadColumns = async ( { field: 'started_at', - headerName: 'StartedAt', + headerName: 'Started At', flex: 1, minWidth: 120, filterable: false, @@ -326,7 +326,7 @@ export const loadColumns = async ( { field: 'completed_at', - headerName: 'CompletedAt', + headerName: 'Completed At', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Vendors/configureVendorsCols.tsx b/frontend/src/components/Vendors/configureVendorsCols.tsx index 6d768a4..0f06437 100644 --- a/frontend/src/components/Vendors/configureVendorsCols.tsx +++ b/frontend/src/components/Vendors/configureVendorsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'name', - headerName: 'VendorName', + headerName: 'Vendor Name', flex: 1, minWidth: 120, filterable: false, @@ -73,7 +73,7 @@ export const loadColumns = async ( { field: 'vendor_status', - headerName: 'VendorStatus', + headerName: 'Vendor Status', flex: 1, minWidth: 120, filterable: false, @@ -88,7 +88,7 @@ export const loadColumns = async ( { field: 'primary_contact_name', - headerName: 'PrimaryContactName', + headerName: 'Primary Contact Name', flex: 1, minWidth: 120, filterable: false, @@ -103,7 +103,7 @@ export const loadColumns = async ( { field: 'primary_contact_email', - headerName: 'PrimaryContactEmail', + headerName: 'Primary Contact Email', flex: 1, minWidth: 120, filterable: false, @@ -118,7 +118,7 @@ export const loadColumns = async ( { field: 'contract_documents', - headerName: 'ContractDocuments', + headerName: 'Contract Documents', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/components/Workflow_runs/configureWorkflow_runsCols.tsx b/frontend/src/components/Workflow_runs/configureWorkflow_runsCols.tsx index bb2a702..5fd3197 100644 --- a/frontend/src/components/Workflow_runs/configureWorkflow_runsCols.tsx +++ b/frontend/src/components/Workflow_runs/configureWorkflow_runsCols.tsx @@ -43,7 +43,7 @@ export const loadColumns = async ( { field: 'use_case', - headerName: 'AIUseCase', + headerName: 'AI Use Case', flex: 1, minWidth: 120, filterable: false, @@ -109,7 +109,7 @@ export const loadColumns = async ( { field: 'practice_group', - headerName: 'PracticeGroup', + headerName: 'Practice Group', flex: 1, minWidth: 120, filterable: false, @@ -131,7 +131,7 @@ export const loadColumns = async ( { field: 'matter_type', - headerName: 'MatterType', + headerName: 'Matter Type', flex: 1, minWidth: 120, filterable: false, @@ -153,7 +153,7 @@ export const loadColumns = async ( { field: 'review_status', - headerName: 'ReviewStatus', + headerName: 'Review Status', flex: 1, minWidth: 120, filterable: false, @@ -168,7 +168,7 @@ export const loadColumns = async ( { field: 'output_disposition', - headerName: 'OutputDisposition', + headerName: 'Output Disposition', flex: 1, minWidth: 120, filterable: false, @@ -183,7 +183,7 @@ export const loadColumns = async ( { field: 'issues_found', - headerName: 'IssuesFound', + headerName: 'Issues Found', flex: 1, minWidth: 120, filterable: false, @@ -198,7 +198,7 @@ export const loadColumns = async ( { field: 'actual_hours_saved', - headerName: 'ActualHoursSaved', + headerName: 'Actual Hours Saved', flex: 1, minWidth: 120, filterable: false, @@ -214,7 +214,7 @@ export const loadColumns = async ( { field: 'run_cost', - headerName: 'RunCost', + headerName: 'Run Cost', flex: 1, minWidth: 120, filterable: false, @@ -230,7 +230,7 @@ export const loadColumns = async ( { field: 'ran_at', - headerName: 'RanAt', + headerName: 'Ran At', flex: 1, minWidth: 120, filterable: false, diff --git a/frontend/src/css/_table.css b/frontend/src/css/_table.css index 893dc89..3db5530 100644 --- a/frontend/src/css/_table.css +++ b/frontend/src/css/_table.css @@ -70,13 +70,13 @@ @apply text-sm font-normal text-pavitra-900 dark:text-white; } - .datagrid--table, .MuiDataGrid-root { - @apply rounded border-none !important; - + .datagrid--table { + @apply rounded-xl border-none !important; } .datagrid--header { - @apply uppercase !important; + letter-spacing: 0.07em !important; + text-transform: uppercase !important; } .datagrid--header, @@ -95,7 +95,31 @@ } .datagrid--row { - @apply even:bg-gray-100 dark:even:bg-[#1B1D22] dark:odd:bg-dark-900 !important; + @apply even:bg-[#F7F5EF] odd:bg-white dark:even:bg-[#1B1D22] dark:odd:bg-dark-900 !important; + } + + .datagrid--table .MuiDataGrid-cell, + .datagrid--table .MuiDataGrid-columnHeader { + min-width: 0; + } + + .datagrid--table .MuiDataGrid-cellContent, + .datagrid--table .MuiDataGrid-columnHeaderTitle { + word-break: normal !important; + } + + .datagrid--table .MuiDataGrid-cellContent { + overflow-wrap: normal; + white-space: nowrap !important; + } + + .datagrid--table .MuiDataGrid-columnHeaderTitle { + overflow-wrap: normal; + white-space: normal !important; + } + + .datagrid--table .MuiDataGrid-cellContent { + color: #374151; } @@ -111,7 +135,7 @@ @apply dark:bg-dark-700; } - .MuiButton-colorInherit { + .datagrid--table .MuiButton-colorInherit { @apply text-blue-600 dark:text-dark-700 !important; } } diff --git a/frontend/src/pages/ai_use_cases/ai_use_cases-new.tsx b/frontend/src/pages/ai_use_cases/ai_use_cases-new.tsx index 5b2ef9d..faff52c 100644 --- a/frontend/src/pages/ai_use_cases/ai_use_cases-new.tsx +++ b/frontend/src/pages/ai_use_cases/ai_use_cases-new.tsx @@ -134,7 +134,7 @@ const AiUseCasesNew = () => {
- +

What happens next

diff --git a/frontend/src/pages/governance-workbench.tsx b/frontend/src/pages/governance-workbench.tsx index bd69ad9..1df6544 100644 --- a/frontend/src/pages/governance-workbench.tsx +++ b/frontend/src/pages/governance-workbench.tsx @@ -275,7 +275,7 @@ const GovernanceWorkbench = () => { )} - +
diff --git a/frontend/src/pages/matter_types/[matter_typesId].tsx b/frontend/src/pages/matter_types/[matter_typesId].tsx index a1b5f54..ba2af00 100644 --- a/frontend/src/pages/matter_types/[matter_typesId].tsx +++ b/frontend/src/pages/matter_types/[matter_typesId].tsx @@ -178,11 +178,11 @@ const EditMatter_types = () => { diff --git a/frontend/src/pages/matter_types/matter_types-edit.tsx b/frontend/src/pages/matter_types/matter_types-edit.tsx index d3805eb..77d9969 100644 --- a/frontend/src/pages/matter_types/matter_types-edit.tsx +++ b/frontend/src/pages/matter_types/matter_types-edit.tsx @@ -158,10 +158,10 @@ const EditMatter_typesPage = () => { return ( <> - {getPageTitle('Edit matter_types')} + {getPageTitle('Edit matter type')} - + {''} @@ -175,11 +175,11 @@ const EditMatter_typesPage = () => { diff --git a/frontend/src/pages/matter_types/matter_types-list.tsx b/frontend/src/pages/matter_types/matter_types-list.tsx index e3a8346..7fae37a 100644 --- a/frontend/src/pages/matter_types/matter_types-list.tsx +++ b/frontend/src/pages/matter_types/matter_types-list.tsx @@ -6,11 +6,11 @@ import CardBox from '../../components/CardBox' import LayoutAuthenticated from '../../layouts/Authenticated' import SectionMain from '../../components/SectionMain' import SectionTitleLineWithButton from '../../components/SectionTitleLineWithButton' +import LegalOpsPageIntro from '../../components/LegalOpsPageIntro' import { getPageTitle } from '../../config' import TableMatter_types from '../../components/Matter_types/TableMatter_types' import BaseButton from '../../components/BaseButton' import axios from "axios"; -import Link from "next/link"; import {useAppDispatch, useAppSelector} from "../../stores/hooks"; import CardBoxModal from "../../components/CardBoxModal"; import DragDropFilePicker from "../../components/DragDropFilePicker"; @@ -34,7 +34,7 @@ const Matter_typesTablesPage = () => { const dispatch = useAppDispatch(); - const [filters] = useState([{label: 'MatterType', title: 'name'},{label: 'Description', title: 'description'}, + const [filters] = useState([{label: 'Matter type', title: 'name'},{label: 'Description', title: 'description'}, @@ -86,27 +86,33 @@ const Matter_typesTablesPage = () => { return ( <> - {getPageTitle('Matter_types')} + {getPageTitle('Matter types')} - + {''} - - - {hasCreatePermission && } - + + {hasCreatePermission && } - + {hasCreatePermission && ( setIsModalActive(true)} /> @@ -116,11 +122,9 @@ const Matter_typesTablesPage = () => {
-
- Switch to Table -
+ - + { return ( <> - {getPageTitle('New Item')} + {getPageTitle('New matter type')} - + {''} @@ -114,11 +114,11 @@ const Matter_typesNew = () => { diff --git a/frontend/src/pages/matter_types/matter_types-table.tsx b/frontend/src/pages/matter_types/matter_types-table.tsx index 6be24a7..ad5b4db 100644 --- a/frontend/src/pages/matter_types/matter_types-table.tsx +++ b/frontend/src/pages/matter_types/matter_types-table.tsx @@ -6,11 +6,11 @@ import CardBox from '../../components/CardBox' import LayoutAuthenticated from '../../layouts/Authenticated' import SectionMain from '../../components/SectionMain' import SectionTitleLineWithButton from '../../components/SectionTitleLineWithButton' +import LegalOpsPageIntro from '../../components/LegalOpsPageIntro' import { getPageTitle } from '../../config' import TableMatter_types from '../../components/Matter_types/TableMatter_types' import BaseButton from '../../components/BaseButton' import axios from "axios"; -import Link from "next/link"; import {useAppDispatch, useAppSelector} from "../../stores/hooks"; import CardBoxModal from "../../components/CardBoxModal"; import DragDropFilePicker from "../../components/DragDropFilePicker"; @@ -34,7 +34,7 @@ const Matter_typesTablesPage = () => { const dispatch = useAppDispatch(); - const [filters] = useState([{label: 'MatterType', title: 'name'},{label: 'Description', title: 'description'}, + const [filters] = useState([{label: 'Matter type', title: 'name'},{label: 'Description', title: 'description'}, @@ -86,27 +86,33 @@ const Matter_typesTablesPage = () => { return ( <> - {getPageTitle('Matter_types')} + {getPageTitle('Matter types table')} - + {''} - - - {hasCreatePermission && } - + + {hasCreatePermission && } - + {hasCreatePermission && ( setIsModalActive(true)} /> @@ -114,13 +120,9 @@ const Matter_typesTablesPage = () => {
- - - Back to list - -
-
+ + { const { id } = router.query; - function removeLastCharacter(str) { - console.log(str,`str`) - return str.slice(0, -1); - } - useEffect(() => { dispatch(fetch({ id })); }, [dispatch, id]); @@ -42,10 +37,10 @@ const Matter_typesView = () => { return ( <> - {getPageTitle('View matter_types')} + {getPageTitle('Matter type details')} - + {
-

MatterType

+

Matter type

{matter_types?.name}

@@ -163,7 +158,7 @@ const Matter_typesView = () => { <> -

Ai_use_cases MatterType

+

AI use cases

{ <> -

Workflow_runs MatterType

+

Workflow runs

{ return ( <> - {getPageTitle('Edit roles_catalog')} + {getPageTitle('Edit governance role')} - + {''} @@ -150,11 +150,11 @@ const EditRoles_catalog = () => { diff --git a/frontend/src/pages/roles_catalog/roles_catalog-edit.tsx b/frontend/src/pages/roles_catalog/roles_catalog-edit.tsx index 2bd27ed..5e0ddcb 100644 --- a/frontend/src/pages/roles_catalog/roles_catalog-edit.tsx +++ b/frontend/src/pages/roles_catalog/roles_catalog-edit.tsx @@ -130,10 +130,10 @@ const EditRoles_catalogPage = () => { return ( <> - {getPageTitle('Edit roles_catalog')} + {getPageTitle('Edit governance role')} - + {''} @@ -147,11 +147,11 @@ const EditRoles_catalogPage = () => { diff --git a/frontend/src/pages/roles_catalog/roles_catalog-list.tsx b/frontend/src/pages/roles_catalog/roles_catalog-list.tsx index a1ce826..944ec8e 100644 --- a/frontend/src/pages/roles_catalog/roles_catalog-list.tsx +++ b/frontend/src/pages/roles_catalog/roles_catalog-list.tsx @@ -6,11 +6,11 @@ import CardBox from '../../components/CardBox' import LayoutAuthenticated from '../../layouts/Authenticated' import SectionMain from '../../components/SectionMain' import SectionTitleLineWithButton from '../../components/SectionTitleLineWithButton' +import LegalOpsPageIntro from '../../components/LegalOpsPageIntro' import { getPageTitle } from '../../config' import TableRoles_catalog from '../../components/Roles_catalog/TableRoles_catalog' import BaseButton from '../../components/BaseButton' import axios from "axios"; -import Link from "next/link"; import {useAppDispatch, useAppSelector} from "../../stores/hooks"; import CardBoxModal from "../../components/CardBoxModal"; import DragDropFilePicker from "../../components/DragDropFilePicker"; @@ -34,7 +34,7 @@ const Roles_catalogTablesPage = () => { const dispatch = useAppDispatch(); - const [filters] = useState([{label: 'RoleName', title: 'name'},{label: 'Description', title: 'description'}, + const [filters] = useState([{label: 'Role name', title: 'name'},{label: 'Description', title: 'description'}, @@ -86,27 +86,35 @@ const Roles_catalogTablesPage = () => { return ( <> - {getPageTitle('Roles_catalog')} + {getPageTitle('Roles catalog')} - + {''} - + - {hasCreatePermission && } + {hasCreatePermission && } - + {hasCreatePermission && ( setIsModalActive(true)} /> @@ -116,11 +124,9 @@ const Roles_catalogTablesPage = () => {
-
- Switch to Table -
+ - + { return ( <> - {getPageTitle('New Item')} + {getPageTitle('New governance role')} - + {''} @@ -98,11 +98,11 @@ const Roles_catalogNew = () => { diff --git a/frontend/src/pages/roles_catalog/roles_catalog-table.tsx b/frontend/src/pages/roles_catalog/roles_catalog-table.tsx index 2c07c45..1cb9780 100644 --- a/frontend/src/pages/roles_catalog/roles_catalog-table.tsx +++ b/frontend/src/pages/roles_catalog/roles_catalog-table.tsx @@ -6,11 +6,11 @@ import CardBox from '../../components/CardBox' import LayoutAuthenticated from '../../layouts/Authenticated' import SectionMain from '../../components/SectionMain' import SectionTitleLineWithButton from '../../components/SectionTitleLineWithButton' +import LegalOpsPageIntro from '../../components/LegalOpsPageIntro' import { getPageTitle } from '../../config' import TableRoles_catalog from '../../components/Roles_catalog/TableRoles_catalog' import BaseButton from '../../components/BaseButton' import axios from "axios"; -import Link from "next/link"; import {useAppDispatch, useAppSelector} from "../../stores/hooks"; import CardBoxModal from "../../components/CardBoxModal"; import DragDropFilePicker from "../../components/DragDropFilePicker"; @@ -34,7 +34,7 @@ const Roles_catalogTablesPage = () => { const dispatch = useAppDispatch(); - const [filters] = useState([{label: 'RoleName', title: 'name'},{label: 'Description', title: 'description'}, + const [filters] = useState([{label: 'Role name', title: 'name'},{label: 'Description', title: 'description'}, @@ -86,27 +86,35 @@ const Roles_catalogTablesPage = () => { return ( <> - {getPageTitle('Roles_catalog')} + {getPageTitle('Roles catalog table')} - + {''} - + - {hasCreatePermission && } + {hasCreatePermission && } - + {hasCreatePermission && ( setIsModalActive(true)} /> @@ -114,13 +122,9 @@ const Roles_catalogTablesPage = () => {
- - - Back to list - -
-
+ + { const { id } = router.query; - function removeLastCharacter(str) { - console.log(str,`str`) - return str.slice(0, -1); - } - useEffect(() => { dispatch(fetch({ id })); }, [dispatch, id]); @@ -42,10 +37,10 @@ const Roles_catalogView = () => { return ( <> - {getPageTitle('View roles_catalog')} + {getPageTitle('Governance role details')} - + {
-

RoleName

+

Role name

{roles_catalog?.name}

@@ -90,7 +85,7 @@ const Roles_catalogView = () => { - +