@hed-hog/operations 0.0.329 → 0.0.331
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/controllers/operations-collaborators.controller.d.ts +7 -216
- package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -1
- package/dist/controllers/operations-contracts.controller.d.ts +6 -6
- package/dist/controllers/operations-projects.controller.d.ts +25 -0
- package/dist/controllers/operations-projects.controller.d.ts.map +1 -1
- package/dist/controllers/operations-projects.controller.js +48 -0
- package/dist/controllers/operations-projects.controller.js.map +1 -1
- package/dist/controllers/operations-reports.controller.d.ts +1 -1
- package/dist/controllers/operations-tasks.controller.d.ts +30 -5
- package/dist/controllers/operations-tasks.controller.d.ts.map +1 -1
- package/dist/controllers/operations-tasks.controller.js +43 -32
- package/dist/controllers/operations-tasks.controller.js.map +1 -1
- package/dist/controllers/operations-timesheets.controller.d.ts +9 -9
- package/dist/dashboard/components/DashboardLayout.d.ts +30 -0
- package/dist/dashboard/components/DashboardLayout.d.ts.map +1 -0
- package/dist/dashboard/components/DashboardLayout.js +87 -0
- package/dist/dashboard/components/DashboardLayout.js.map +1 -0
- package/dist/dashboard/components/widget-registry.d.ts +23 -0
- package/dist/dashboard/components/widget-registry.d.ts.map +1 -0
- package/dist/dashboard/components/widget-registry.js +245 -0
- package/dist/dashboard/components/widget-registry.js.map +1 -0
- package/dist/dashboard/hooks/useDashboardData.d.ts +20 -0
- package/dist/dashboard/hooks/useDashboardData.d.ts.map +1 -0
- package/dist/dashboard/hooks/useDashboardData.js +24 -0
- package/dist/dashboard/hooks/useDashboardData.js.map +1 -0
- package/dist/dashboard/types/widgets.types.d.ts +233 -0
- package/dist/dashboard/types/widgets.types.d.ts.map +1 -0
- package/dist/dashboard/types/widgets.types.js +6 -0
- package/dist/dashboard/types/widgets.types.js.map +1 -0
- package/dist/dashboard/widgets/CapacityDistribution.d.ts +23 -0
- package/dist/dashboard/widgets/CapacityDistribution.d.ts.map +1 -0
- package/dist/dashboard/widgets/CapacityDistribution.js +11 -0
- package/dist/dashboard/widgets/CapacityDistribution.js.map +1 -0
- package/dist/dashboard/widgets/EffortByProject.d.ts +22 -0
- package/dist/dashboard/widgets/EffortByProject.d.ts.map +1 -0
- package/dist/dashboard/widgets/EffortByProject.js +11 -0
- package/dist/dashboard/widgets/EffortByProject.js.map +1 -0
- package/dist/dashboard/widgets/HeadcountByArea.d.ts +24 -0
- package/dist/dashboard/widgets/HeadcountByArea.d.ts.map +1 -0
- package/dist/dashboard/widgets/HeadcountByArea.js +11 -0
- package/dist/dashboard/widgets/HeadcountByArea.js.map +1 -0
- package/dist/dashboard/widgets/ManagedProjectsStatus.d.ts +18 -0
- package/dist/dashboard/widgets/ManagedProjectsStatus.d.ts.map +1 -0
- package/dist/dashboard/widgets/ManagedProjectsStatus.js +12 -0
- package/dist/dashboard/widgets/ManagedProjectsStatus.js.map +1 -0
- package/dist/dashboard/widgets/MyHoursPeriodKpi.d.ts +22 -0
- package/dist/dashboard/widgets/MyHoursPeriodKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyHoursPeriodKpi.js +12 -0
- package/dist/dashboard/widgets/MyHoursPeriodKpi.js.map +1 -0
- package/dist/dashboard/widgets/MyOpenRequestsKpi.d.ts +19 -0
- package/dist/dashboard/widgets/MyOpenRequestsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyOpenRequestsKpi.js +17 -0
- package/dist/dashboard/widgets/MyOpenRequestsKpi.js.map +1 -0
- package/dist/dashboard/widgets/MyPendingRequestsList.d.ts +23 -0
- package/dist/dashboard/widgets/MyPendingRequestsList.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyPendingRequestsList.js +14 -0
- package/dist/dashboard/widgets/MyPendingRequestsList.js.map +1 -0
- package/dist/dashboard/widgets/MyProjectAllocationsKpi.d.ts +22 -0
- package/dist/dashboard/widgets/MyProjectAllocationsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyProjectAllocationsKpi.js +11 -0
- package/dist/dashboard/widgets/MyProjectAllocationsKpi.js.map +1 -0
- package/dist/dashboard/widgets/MyQuickActions.d.ts +23 -0
- package/dist/dashboard/widgets/MyQuickActions.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyQuickActions.js +18 -0
- package/dist/dashboard/widgets/MyQuickActions.js.map +1 -0
- package/dist/dashboard/widgets/MyRelevantDeadlines.d.ts +23 -0
- package/dist/dashboard/widgets/MyRelevantDeadlines.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyRelevantDeadlines.js +22 -0
- package/dist/dashboard/widgets/MyRelevantDeadlines.js.map +1 -0
- package/dist/dashboard/widgets/MyTimesheetStatusKpi.d.ts +17 -0
- package/dist/dashboard/widgets/MyTimesheetStatusKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyTimesheetStatusKpi.js +11 -0
- package/dist/dashboard/widgets/MyTimesheetStatusKpi.js.map +1 -0
- package/dist/dashboard/widgets/MyWeeklyJourney.d.ts +21 -0
- package/dist/dashboard/widgets/MyWeeklyJourney.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyWeeklyJourney.js +19 -0
- package/dist/dashboard/widgets/MyWeeklyJourney.js.map +1 -0
- package/dist/dashboard/widgets/PortfolioCostsKpi.d.ts +19 -0
- package/dist/dashboard/widgets/PortfolioCostsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/PortfolioCostsKpi.js +12 -0
- package/dist/dashboard/widgets/PortfolioCostsKpi.js.map +1 -0
- package/dist/dashboard/widgets/PortfolioEffortKpi.d.ts +18 -0
- package/dist/dashboard/widgets/PortfolioEffortKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/PortfolioEffortKpi.js +8 -0
- package/dist/dashboard/widgets/PortfolioEffortKpi.js.map +1 -0
- package/dist/dashboard/widgets/PortfolioProjectsKpi.d.ts +22 -0
- package/dist/dashboard/widgets/PortfolioProjectsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/PortfolioProjectsKpi.js +56 -0
- package/dist/dashboard/widgets/PortfolioProjectsKpi.js.map +1 -0
- package/dist/dashboard/widgets/PortfolioRiskKpi.d.ts +19 -0
- package/dist/dashboard/widgets/PortfolioRiskKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/PortfolioRiskKpi.js +11 -0
- package/dist/dashboard/widgets/PortfolioRiskKpi.js.map +1 -0
- package/dist/dashboard/widgets/ProjectStatusOverview.d.ts +19 -0
- package/dist/dashboard/widgets/ProjectStatusOverview.d.ts.map +1 -0
- package/dist/dashboard/widgets/ProjectStatusOverview.js +18 -0
- package/dist/dashboard/widgets/ProjectStatusOverview.js.map +1 -0
- package/dist/dashboard/widgets/StrategicDeadlines.d.ts +24 -0
- package/dist/dashboard/widgets/StrategicDeadlines.d.ts.map +1 -0
- package/dist/dashboard/widgets/StrategicDeadlines.js +22 -0
- package/dist/dashboard/widgets/StrategicDeadlines.js.map +1 -0
- package/dist/dashboard/widgets/TeamApprovalQueue.d.ts +24 -0
- package/dist/dashboard/widgets/TeamApprovalQueue.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamApprovalQueue.js +12 -0
- package/dist/dashboard/widgets/TeamApprovalQueue.js.map +1 -0
- package/dist/dashboard/widgets/TeamCapacityKpi.d.ts +18 -0
- package/dist/dashboard/widgets/TeamCapacityKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamCapacityKpi.js +19 -0
- package/dist/dashboard/widgets/TeamCapacityKpi.js.map +1 -0
- package/dist/dashboard/widgets/TeamHeadcountKpi.d.ts +22 -0
- package/dist/dashboard/widgets/TeamHeadcountKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamHeadcountKpi.js +56 -0
- package/dist/dashboard/widgets/TeamHeadcountKpi.js.map +1 -0
- package/dist/dashboard/widgets/TeamHoursKpi.d.ts +19 -0
- package/dist/dashboard/widgets/TeamHoursKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamHoursKpi.js +13 -0
- package/dist/dashboard/widgets/TeamHoursKpi.js.map +1 -0
- package/dist/dashboard/widgets/TeamPendingApprovalsKpi.d.ts +20 -0
- package/dist/dashboard/widgets/TeamPendingApprovalsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamPendingApprovalsKpi.js +11 -0
- package/dist/dashboard/widgets/TeamPendingApprovalsKpi.js.map +1 -0
- package/dist/dashboard/widgets/TeamUtilizationOverview.d.ts +18 -0
- package/dist/dashboard/widgets/TeamUtilizationOverview.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamUtilizationOverview.js +17 -0
- package/dist/dashboard/widgets/TeamUtilizationOverview.js.map +1 -0
- package/dist/dashboard/widgets/TeamWorkloadAlerts.d.ts +24 -0
- package/dist/dashboard/widgets/TeamWorkloadAlerts.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamWorkloadAlerts.js +19 -0
- package/dist/dashboard/widgets/TeamWorkloadAlerts.js.map +1 -0
- package/dist/dashboard/widgets/index.d.ts +24 -0
- package/dist/dashboard/widgets/index.d.ts.map +1 -0
- package/dist/dashboard/widgets/index.js +54 -0
- package/dist/dashboard/widgets/index.js.map +1 -0
- package/dist/dto/create-collaborator.dto.d.ts +0 -1
- package/dist/dto/create-collaborator.dto.d.ts.map +1 -1
- package/dist/dto/create-collaborator.dto.js +0 -6
- package/dist/dto/create-collaborator.dto.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/operations.controller.d.ts +42 -0
- package/dist/operations.controller.d.ts.map +1 -1
- package/dist/operations.service.d.ts +178 -264
- package/dist/operations.service.d.ts.map +1 -1
- package/dist/operations.service.js +2170 -1340
- package/dist/operations.service.js.map +1 -1
- package/dist/operations.service.spec.js +345 -174
- package/dist/operations.service.spec.js.map +1 -1
- package/hedhog/data/dashboard_component.yaml +66 -0
- package/hedhog/data/dashboard_component_role.yaml +8 -8
- package/hedhog/data/dashboard_item.yaml +25 -25
- package/hedhog/data/dashboard_role.yaml +1 -1
- package/hedhog/data/menu.yaml +6 -16
- package/hedhog/data/role.yaml +1 -1
- package/hedhog/data/route.yaml +116 -55
- package/hedhog/frontend/app/_components/async-options-combobox.tsx.ejs +15 -9
- package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +39 -99
- package/hedhog/frontend/app/_components/collaborator-picker.tsx.ejs +158 -0
- package/hedhog/frontend/app/_components/my-project-summary-screen.tsx.ejs +314 -116
- package/hedhog/frontend/app/_components/project-assignments-tab.tsx.ejs +434 -449
- package/hedhog/frontend/app/_components/project-costs-section.tsx.ejs +51 -81
- package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +328 -423
- package/hedhog/frontend/app/_components/project-file-attachments.tsx.ejs +371 -0
- package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +446 -377
- package/hedhog/frontend/app/_components/task-detail-sheet.tsx.ejs +803 -581
- package/hedhog/frontend/app/_components/task-file-attachments.tsx.ejs +14 -9
- package/hedhog/frontend/app/_components/task-form-fields.tsx.ejs +406 -0
- package/hedhog/frontend/app/_components/task-form-sheet.tsx.ejs +629 -784
- package/hedhog/frontend/app/_components/task-info-display.tsx.ejs +137 -0
- package/hedhog/frontend/app/_components/timesheet-entry-create-sheet.tsx.ejs +306 -0
- package/hedhog/frontend/app/_lib/api.ts.ejs +480 -476
- package/hedhog/frontend/app/_lib/hooks/use-values-visibility.ts.ejs +61 -0
- package/hedhog/frontend/app/_lib/types.ts.ejs +66 -5
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +0 -2
- package/hedhog/frontend/app/_lib/utils/task-ui.ts.ejs +43 -0
- package/hedhog/frontend/app/approvals/page.tsx.ejs +11 -2
- package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +6 -1
- package/hedhog/frontend/app/collaborators/page.tsx.ejs +127 -42
- package/hedhog/frontend/app/contracts/page.tsx.ejs +29 -8
- package/hedhog/frontend/app/dashboard/widgets/CapacityDistribution.tsx.ejs +84 -0
- package/hedhog/frontend/app/dashboard/widgets/EffortByProject.tsx.ejs +85 -0
- package/hedhog/frontend/app/dashboard/widgets/HeadcountByArea.tsx.ejs +101 -0
- package/hedhog/frontend/app/dashboard/widgets/ManagedProjectsStatus.tsx.ejs +113 -0
- package/hedhog/frontend/app/dashboard/widgets/MyHoursPeriodKpi.tsx.ejs +87 -0
- package/hedhog/frontend/app/dashboard/widgets/MyOpenRequestsKpi.tsx.ejs +97 -0
- package/hedhog/frontend/app/dashboard/widgets/MyPendingRequestsList.tsx.ejs +99 -0
- package/hedhog/frontend/app/dashboard/widgets/MyProjectAllocationsKpi.tsx.ejs +78 -0
- package/hedhog/frontend/app/dashboard/widgets/MyQuickActions.tsx.ejs +130 -0
- package/hedhog/frontend/app/dashboard/widgets/MyRelevantDeadlines.tsx.ejs +144 -0
- package/hedhog/frontend/app/dashboard/widgets/MyTimesheetStatusKpi.tsx.ejs +78 -0
- package/hedhog/frontend/app/dashboard/widgets/MyWeeklyJourney.tsx.ejs +99 -0
- package/hedhog/frontend/app/dashboard/widgets/PortfolioCostsKpi.tsx.ejs +112 -0
- package/hedhog/frontend/app/dashboard/widgets/PortfolioEffortKpi.tsx.ejs +93 -0
- package/hedhog/frontend/app/dashboard/widgets/PortfolioProjectsKpi.tsx.ejs +96 -0
- package/hedhog/frontend/app/dashboard/widgets/PortfolioRiskKpi.tsx.ejs +115 -0
- package/hedhog/frontend/app/dashboard/widgets/ProjectStatusOverview.tsx.ejs +120 -0
- package/hedhog/frontend/app/dashboard/widgets/StrategicDeadlines.tsx.ejs +146 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamApprovalQueue.tsx.ejs +108 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamCapacityKpi.tsx.ejs +97 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamHeadcountKpi.tsx.ejs +100 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamHoursKpi.tsx.ejs +104 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamPendingApprovalsKpi.tsx.ejs +110 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamUtilizationOverview.tsx.ejs +115 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamWorkloadAlerts.tsx.ejs +117 -0
- package/hedhog/frontend/app/dashboard/widgets/index.ts.ejs +26 -0
- package/hedhog/frontend/app/departments/page.tsx.ejs +6 -1
- package/hedhog/frontend/app/my-projects/page.tsx.ejs +59 -16
- package/hedhog/frontend/app/my-tasks/page.tsx.ejs +329 -106
- package/hedhog/frontend/app/project-cost-categories/page.tsx.ejs +58 -52
- package/hedhog/frontend/app/project-cost-types/page.tsx.ejs +58 -51
- package/hedhog/frontend/app/projects/page.tsx.ejs +436 -35
- package/hedhog/frontend/app/reports/collaborators/page.tsx.ejs +65 -52
- package/hedhog/frontend/app/reports/projects/page.tsx.ejs +80 -82
- package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +13 -2
- package/hedhog/frontend/app/time-off/page.tsx.ejs +6 -1
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +10 -4
- package/hedhog/frontend/messages/en.json +460 -61
- package/hedhog/frontend/messages/operations/en.json +61 -52
- package/hedhog/frontend/messages/operations/pt.json +59 -43
- package/hedhog/frontend/messages/pt.json +460 -61
- package/hedhog/frontend/widgets/capacity-distribution.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/effort-by-project.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/headcount-by-area.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/index.ts.ejs +25 -0
- package/hedhog/frontend/widgets/managed-projects-status.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-hours-period-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-open-requests-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-pending-requests-list.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-project-allocations-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-quick-actions.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-relevant-deadlines.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-timesheet-status-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-weekly-journey.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/portfolio-costs-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/portfolio-effort-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/portfolio-projects-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/portfolio-risk-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/project-status-overview.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/shared-operations-widget.tsx.ejs +170 -0
- package/hedhog/frontend/widgets/strategic-deadlines.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-approval-queue.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-capacity-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-headcount-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-hours-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-pending-approvals-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-utilization-overview.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-workload-alerts.tsx.ejs +17 -0
- package/hedhog/table/operations_collaborator.yaml +8 -13
- package/hedhog/table/operations_project.yaml +1 -1
- package/hedhog/table/operations_project_file.yaml +23 -0
- package/hedhog/table/operations_task.yaml +76 -69
- package/hedhog/table/operations_task_activity.yaml +51 -0
- package/package.json +7 -6
- package/src/controllers/operations-projects.controller.ts +41 -8
- package/src/controllers/operations-tasks.controller.ts +156 -166
- package/src/dashboard/README.md +214 -0
- package/src/dashboard/components/DashboardLayout.tsx +131 -0
- package/src/dashboard/components/widget-registry.ts +255 -0
- package/src/dashboard/hooks/useDashboardData.ts +29 -0
- package/src/dashboard/types/widgets.types.ts +237 -0
- package/src/dashboard/widgets/CapacityDistribution.tsx +56 -0
- package/src/dashboard/widgets/EffortByProject.tsx +51 -0
- package/src/dashboard/widgets/HeadcountByArea.tsx +57 -0
- package/src/dashboard/widgets/ManagedProjectsStatus.tsx +53 -0
- package/src/dashboard/widgets/MyHoursPeriodKpi.tsx +87 -0
- package/src/dashboard/widgets/MyOpenRequestsKpi.tsx +51 -0
- package/src/dashboard/widgets/MyPendingRequestsList.tsx +63 -0
- package/src/dashboard/widgets/MyProjectAllocationsKpi.tsx +57 -0
- package/src/dashboard/widgets/MyQuickActions.tsx +62 -0
- package/src/dashboard/widgets/MyRelevantDeadlines.tsx +84 -0
- package/src/dashboard/widgets/MyTimesheetStatusKpi.tsx +65 -0
- package/src/dashboard/widgets/MyWeeklyJourney.tsx +57 -0
- package/src/dashboard/widgets/PortfolioCostsKpi.tsx +48 -0
- package/src/dashboard/widgets/PortfolioEffortKpi.tsx +41 -0
- package/src/dashboard/widgets/PortfolioRiskKpi.tsx +50 -0
- package/src/dashboard/widgets/ProjectStatusOverview.tsx +52 -0
- package/src/dashboard/widgets/StrategicDeadlines.tsx +93 -0
- package/src/dashboard/widgets/TeamApprovalQueue.tsx +70 -0
- package/src/dashboard/widgets/TeamCapacityKpi.tsx +50 -0
- package/src/dashboard/widgets/TeamHoursKpi.tsx +51 -0
- package/src/dashboard/widgets/TeamPendingApprovalsKpi.tsx +53 -0
- package/src/dashboard/widgets/TeamUtilizationOverview.tsx +62 -0
- package/src/dashboard/widgets/TeamWorkloadAlerts.tsx +81 -0
- package/src/dashboard/widgets/index.ts +26 -0
- package/src/dto/create-collaborator.dto.ts +4 -11
- package/src/index.ts +3 -0
- package/src/operations.service.spec.ts +988 -764
- package/src/operations.service.ts +4300 -2538
|
@@ -16,13 +16,17 @@
|
|
|
16
16
|
"approve": "Approve",
|
|
17
17
|
"reject": "Reject",
|
|
18
18
|
"submit": "Submit",
|
|
19
|
+
"logHours": "Log hours",
|
|
19
20
|
"cancel": "Cancel",
|
|
20
21
|
"loadMore": "Load more",
|
|
21
22
|
"clearSelection": "Clear selection",
|
|
22
23
|
"manageDepartments": "Manage departments",
|
|
23
24
|
"manageCollaboratorTypes": "Manage relationship types",
|
|
24
25
|
"manageTemplates": "Manage templates",
|
|
25
|
-
"useTemplate": "Use template"
|
|
26
|
+
"useTemplate": "Use template",
|
|
27
|
+
"showValues": "Show values",
|
|
28
|
+
"hideValues": "Hide values",
|
|
29
|
+
"editPersonCrm": "Edit person record (CRM)"
|
|
26
30
|
},
|
|
27
31
|
"filters": {
|
|
28
32
|
"allStatuses": "All statuses",
|
|
@@ -30,6 +34,19 @@
|
|
|
30
34
|
"dateFrom": "From",
|
|
31
35
|
"dateTo": "To"
|
|
32
36
|
},
|
|
37
|
+
"taskStatus": {
|
|
38
|
+
"todo": "Backlog",
|
|
39
|
+
"doing": "In Progress",
|
|
40
|
+
"review": "Review",
|
|
41
|
+
"done": "Done"
|
|
42
|
+
},
|
|
43
|
+
"priority": {
|
|
44
|
+
"low": "Low",
|
|
45
|
+
"medium": "Medium",
|
|
46
|
+
"high": "High"
|
|
47
|
+
},
|
|
48
|
+
"overdueLabel": "Overdue:",
|
|
49
|
+
"responsible": "Responsible",
|
|
33
50
|
"labels": {
|
|
34
51
|
"notAvailable": "Not available",
|
|
35
52
|
"notAssigned": "Not assigned",
|
|
@@ -110,11 +127,11 @@
|
|
|
110
127
|
"noTemplatesFound": "No templates found.",
|
|
111
128
|
"loading": "Loading..."
|
|
112
129
|
},
|
|
113
|
-
"states": {
|
|
114
|
-
"loading": "Loading...",
|
|
115
|
-
"emptyTitle": "No records found",
|
|
116
|
-
"emptyDescription": "Adjust the current filters or create a new record.",
|
|
117
|
-
"noAccessTitle": "Access required"
|
|
130
|
+
"states": {
|
|
131
|
+
"loading": "Loading...",
|
|
132
|
+
"emptyTitle": "No records found",
|
|
133
|
+
"emptyDescription": "Adjust the current filters or create a new record.",
|
|
134
|
+
"noAccessTitle": "Access required"
|
|
118
135
|
}
|
|
119
136
|
},
|
|
120
137
|
"DashboardPage": {
|
|
@@ -208,7 +225,6 @@
|
|
|
208
225
|
"description": "Create or update the workforce profile used across projects, contracts, and approvals."
|
|
209
226
|
},
|
|
210
227
|
"form": {
|
|
211
|
-
"userId": "User ID",
|
|
212
228
|
"code": "Code",
|
|
213
229
|
"displayName": "Display name",
|
|
214
230
|
"department": "Department",
|
|
@@ -218,12 +234,16 @@
|
|
|
218
234
|
"notes": "Notes"
|
|
219
235
|
},
|
|
220
236
|
"messages": {
|
|
221
|
-
"userRequired": "A user ID is required for new collaborators.",
|
|
222
237
|
"requiredFields": "Code and display name are required.",
|
|
223
238
|
"saveSuccess": "Collaborator saved successfully.",
|
|
224
239
|
"saveError": "Unable to save the collaborator.",
|
|
225
240
|
"statusSuccess": "Collaborator status updated successfully.",
|
|
226
241
|
"statusError": "Unable to update collaborator status."
|
|
242
|
+
},
|
|
243
|
+
"columns": {
|
|
244
|
+
"linkedUser": "User",
|
|
245
|
+
"linkedUserYes": "Linked",
|
|
246
|
+
"linkedUserNo": "No user"
|
|
227
247
|
}
|
|
228
248
|
},
|
|
229
249
|
"DepartmentsPage": {
|
|
@@ -310,9 +330,6 @@
|
|
|
310
330
|
"person": "Person",
|
|
311
331
|
"personEntityLabel": "person",
|
|
312
332
|
"personDescription": "Select an existing person or register a new one without leaving this screen.",
|
|
313
|
-
"userId": "System user",
|
|
314
|
-
"userIdOptional": "System user (optional)",
|
|
315
|
-
"userIdDescription": "Link the platform account this collaborator will use for sign-in, timesheets, and self-service actions.",
|
|
316
333
|
"code": "Code",
|
|
317
334
|
"displayName": "Display name",
|
|
318
335
|
"department": "Department",
|
|
@@ -341,10 +358,6 @@
|
|
|
341
358
|
"breakMinutesDescription": "The last numeric field defines the daily break in minutes. Example: 60 = a 1-hour lunch break.",
|
|
342
359
|
"autoGenerateContractDraft": "Generate contract draft automatically",
|
|
343
360
|
"autoGenerateContractDraftDescription": "Creates a related draft contract classified from the relationship type and linked to the hiring origin.",
|
|
344
|
-
"createUserDescription": "Enter the new system user's credentials. The account will be created immediately and linked to this collaborator.",
|
|
345
|
-
"createUserName": "Full name",
|
|
346
|
-
"createUserEmail": "Email",
|
|
347
|
-
"createUserPassword": "Password",
|
|
348
361
|
"compensationEffectiveDate": "Effective date",
|
|
349
362
|
"compensationNotes": "Compensation notes"
|
|
350
363
|
},
|
|
@@ -389,30 +402,22 @@
|
|
|
389
402
|
"equityNotes": "Notes about quotas, shares, term, or powers",
|
|
390
403
|
"levelLabel": "Select a level",
|
|
391
404
|
"supervisor": "Search a collaborator",
|
|
392
|
-
"userIdOptional": "Select a system user",
|
|
393
|
-
"createUserName": "Full name",
|
|
394
|
-
"createUserEmail": "user@example.com",
|
|
395
|
-
"createUserPassword": "Strong password",
|
|
396
405
|
"compensationNotes": "Notes about the compensation change"
|
|
397
406
|
},
|
|
398
407
|
"actions": {
|
|
399
|
-
"createUser": "Create system user",
|
|
400
408
|
"editPersonCrm": "Edit person record (CRM)"
|
|
401
409
|
},
|
|
402
410
|
"states": {
|
|
403
411
|
"loadingCollaboratorTypes": "Loading relationship types..."
|
|
404
412
|
},
|
|
405
413
|
"messages": {
|
|
406
|
-
"userRequired": "The user binding can be completed after the initial collaborator setup.",
|
|
407
414
|
"personRequired": "Select or create a person for the collaborator.",
|
|
408
415
|
"collaboratorTypeRequired": "Select a relationship type.",
|
|
409
416
|
"requiredFields": "The collaborator code is required.",
|
|
410
417
|
"createSuccess": "Collaborator created successfully.",
|
|
411
418
|
"createError": "Unable to create the collaborator.",
|
|
412
419
|
"updateSuccess": "Collaborator updated successfully.",
|
|
413
|
-
"updateError": "Unable to update the collaborator."
|
|
414
|
-
"createUserSuccess": "User created and linked successfully.",
|
|
415
|
-
"createUserError": "Failed to create the system user."
|
|
420
|
+
"updateError": "Unable to update the collaborator."
|
|
416
421
|
},
|
|
417
422
|
"chart": {
|
|
418
423
|
"salaryHistory": "Salary history",
|
|
@@ -529,14 +534,25 @@
|
|
|
529
534
|
"totalDescription": "All delivery projects visible to your access scope.",
|
|
530
535
|
"active": "Active",
|
|
531
536
|
"activeDescription": "Open for timesheet entries and ongoing team work.",
|
|
532
|
-
"
|
|
533
|
-
"
|
|
537
|
+
"completed": "Completed",
|
|
538
|
+
"completedDescription": "Projects that finished their delivery lifecycle.",
|
|
534
539
|
"upcomingDeliveries": "With deadline",
|
|
535
540
|
"upcomingDeliveriesDescription": "Projects that have an end date defined."
|
|
536
541
|
},
|
|
537
542
|
"viewMode": "View mode",
|
|
538
543
|
"viewModeTable": "Table",
|
|
539
544
|
"viewModeCards": "Cards",
|
|
545
|
+
"viewModeBoard": "Board",
|
|
546
|
+
"board": {
|
|
547
|
+
"directorOnly": "Project movement on the board is available only for directors.",
|
|
548
|
+
"emptyColumn": "No projects in this column.",
|
|
549
|
+
"columns": {
|
|
550
|
+
"planning": "Planning",
|
|
551
|
+
"active": "Active",
|
|
552
|
+
"paused": "Paused",
|
|
553
|
+
"completed": "Completed"
|
|
554
|
+
}
|
|
555
|
+
},
|
|
540
556
|
"actions": {
|
|
541
557
|
"archive": "Archive"
|
|
542
558
|
},
|
|
@@ -571,8 +587,8 @@
|
|
|
571
587
|
"totalDescription": "Projects you have an active allocation in.",
|
|
572
588
|
"active": "Active",
|
|
573
589
|
"activeDescription": "Projects open for timesheet entries.",
|
|
574
|
-
"
|
|
575
|
-
"
|
|
590
|
+
"completed": "Completed",
|
|
591
|
+
"completedDescription": "Projects completed in your scope.",
|
|
576
592
|
"upcomingDeliveries": "With deadline",
|
|
577
593
|
"upcomingDeliveriesDescription": "Projects that have an end date defined."
|
|
578
594
|
},
|
|
@@ -619,6 +635,9 @@
|
|
|
619
635
|
"done": "Done",
|
|
620
636
|
"doneDescription": "Completed tasks."
|
|
621
637
|
},
|
|
638
|
+
"labels": {
|
|
639
|
+
"progress": "Progress"
|
|
640
|
+
},
|
|
622
641
|
"status": {
|
|
623
642
|
"todo": "To do",
|
|
624
643
|
"doing": "In progress",
|
|
@@ -644,6 +663,8 @@
|
|
|
644
663
|
"teamDescription": "{count} collaborators selected for the initial team. You can refine assignments after saving.",
|
|
645
664
|
"financials": "Financial and contract basis",
|
|
646
665
|
"financialsDescription": "Financial, billing, and contract settings can be completed after the project is saved.",
|
|
666
|
+
"files": "Attached files",
|
|
667
|
+
"filesDescription": "Upload one or more files to keep project documents and attachments centralized.",
|
|
647
668
|
"contract": "Contract generation settings",
|
|
648
669
|
"contractDescription": "Link an existing contract or configure draft generation after the initial project save.",
|
|
649
670
|
"nextSteps": "Continue after saving",
|
|
@@ -713,7 +734,6 @@
|
|
|
713
734
|
"statuses": {
|
|
714
735
|
"planning": "Planning",
|
|
715
736
|
"active": "Active",
|
|
716
|
-
"at_risk": "At risk",
|
|
717
737
|
"paused": "Paused",
|
|
718
738
|
"completed": "Completed",
|
|
719
739
|
"archived": "Archived"
|
|
@@ -811,24 +831,6 @@
|
|
|
811
831
|
"warning": "Attention",
|
|
812
832
|
"danger": "Critical"
|
|
813
833
|
},
|
|
814
|
-
"sections": {
|
|
815
|
-
"overview": "Overview",
|
|
816
|
-
"contract": "Related contract",
|
|
817
|
-
"team": "Assigned collaborators",
|
|
818
|
-
"teamDescription": "Initial and ongoing staffing linked to this project.",
|
|
819
|
-
"indicators": "Operational indicators",
|
|
820
|
-
"indicatorsDescription": "Current project staffing and delivery metrics.",
|
|
821
|
-
"costs": "Project Costs",
|
|
822
|
-
"costsDescription": "Manage planned, confirmed, and cancelled costs associated with this project."
|
|
823
|
-
},
|
|
824
|
-
"indicators": {
|
|
825
|
-
"activeAssignments": "Active assignments",
|
|
826
|
-
"completedAssignments": "Completed assignments",
|
|
827
|
-
"averageAllocation": "Average allocation",
|
|
828
|
-
"totalWeeklyHours": "Total weekly hours"
|
|
829
|
-
},
|
|
830
|
-
"noContract": "No related contract is linked to this project yet.",
|
|
831
|
-
"noAssignments": "No collaborators are assigned to this project yet.",
|
|
832
834
|
"sections": {
|
|
833
835
|
"overview": "Overview",
|
|
834
836
|
"contract": "Related contract",
|
|
@@ -847,8 +849,18 @@
|
|
|
847
849
|
"archivedTasks": "Archived tasks",
|
|
848
850
|
"archivedTasksDescription": "Review archived project tasks, open details, restore them, or delete them permanently.",
|
|
849
851
|
"costs": "Project Costs",
|
|
850
|
-
"costsDescription": "Manage planned, confirmed, and cancelled costs associated with this project."
|
|
852
|
+
"costsDescription": "Manage planned, confirmed, and cancelled costs associated with this project.",
|
|
853
|
+
"files": "Project Files",
|
|
854
|
+
"filesDescription": "Manage files and documents attached to this project."
|
|
855
|
+
},
|
|
856
|
+
"indicators": {
|
|
857
|
+
"activeAssignments": "Active assignments",
|
|
858
|
+
"completedAssignments": "Completed assignments",
|
|
859
|
+
"averageAllocation": "Average allocation",
|
|
860
|
+
"totalWeeklyHours": "Total weekly hours"
|
|
851
861
|
},
|
|
862
|
+
"noContract": "No related contract is linked to this project yet.",
|
|
863
|
+
"noAssignments": "No collaborators are assigned to this project yet.",
|
|
852
864
|
"tabs": {
|
|
853
865
|
"tasks": "Tasks",
|
|
854
866
|
"overview": "Overview",
|
|
@@ -856,8 +868,14 @@
|
|
|
856
868
|
"team": "Team",
|
|
857
869
|
"timeline": "Timeline",
|
|
858
870
|
"archive": "Archive",
|
|
859
|
-
"costs": "Costs"
|
|
871
|
+
"costs": "Costs",
|
|
872
|
+
"files": "Files"
|
|
860
873
|
},
|
|
874
|
+
"deleteProjectButton": "Delete project",
|
|
875
|
+
"deleteConfirmTitle": "Permanently delete project",
|
|
876
|
+
"deleteConfirmDescription": "This action is irreversible. The project and all its data will be permanently removed.",
|
|
877
|
+
"deleteConfirmLabel": "Type the project name to confirm",
|
|
878
|
+
"deleteConfirmButton": "Delete permanently",
|
|
861
879
|
"charts": {
|
|
862
880
|
"projectProgress": "Progress",
|
|
863
881
|
"burnup": "Burnup / progress",
|
|
@@ -952,14 +970,18 @@
|
|
|
952
970
|
"descriptionPlaceholder": "Optional description",
|
|
953
971
|
"priorityLabel": "Priority",
|
|
954
972
|
"columnLabel": "Column",
|
|
973
|
+
"assigneeLabel": "Assignee",
|
|
955
974
|
"deadlineLabel": "Deadline",
|
|
956
975
|
"estimateLabel": "Estimate (h)",
|
|
957
976
|
"tagsLabel": "Tags",
|
|
958
|
-
"tagsPlaceholder": "
|
|
977
|
+
"tagsPlaceholder": "Type and press Enter to add...",
|
|
959
978
|
"attachmentsLabel": "Attachments",
|
|
960
979
|
"saving": "Saving...",
|
|
961
980
|
"tabInfo": "Info",
|
|
962
|
-
"tabComments": "Comments"
|
|
981
|
+
"tabComments": "Comments",
|
|
982
|
+
"tabActivities": "Activities",
|
|
983
|
+
"tabFiles": "Files",
|
|
984
|
+
"doingTimeLabel": "Time in progress"
|
|
963
985
|
},
|
|
964
986
|
"dialogs": {
|
|
965
987
|
"archiveTitle": "Archive task",
|
|
@@ -967,7 +989,37 @@
|
|
|
967
989
|
"deleteTitle": "Delete task",
|
|
968
990
|
"deleteDescription": "Are you sure you want to permanently delete this task? This action cannot be undone."
|
|
969
991
|
},
|
|
970
|
-
"emptyArchivedDescription": "There are no archived tasks in this project."
|
|
992
|
+
"emptyArchivedDescription": "There are no archived tasks in this project.",
|
|
993
|
+
"commentsSection": {
|
|
994
|
+
"title": "Comments",
|
|
995
|
+
"noComments": "No comments yet.",
|
|
996
|
+
"defaultUser": "Unknown user",
|
|
997
|
+
"ariaEditComment": "Edit comment",
|
|
998
|
+
"ariaDeleteComment": "Delete comment",
|
|
999
|
+
"saveButton": "Save",
|
|
1000
|
+
"cancelButton": "Cancel",
|
|
1001
|
+
"submitButton": "Add comment",
|
|
1002
|
+
"errors": {
|
|
1003
|
+
"addComment": "Unable to add the comment.",
|
|
1004
|
+
"editComment": "Unable to update the comment.",
|
|
1005
|
+
"deleteComment": "Unable to delete the comment."
|
|
1006
|
+
}
|
|
1007
|
+
},
|
|
1008
|
+
"activitiesSection": {
|
|
1009
|
+
"title": "Activities",
|
|
1010
|
+
"noActivities": "No activities recorded yet.",
|
|
1011
|
+
"defaultUser": "Unknown user",
|
|
1012
|
+
"statusChanged": "Moved from {from} to {to}.",
|
|
1013
|
+
"fallbackAction": "Recorded an activity on this task.",
|
|
1014
|
+
"kpis": {
|
|
1015
|
+
"activities": "Activities",
|
|
1016
|
+
"activitiesDescription": "Recorded events",
|
|
1017
|
+
"collaborators": "Collaborators",
|
|
1018
|
+
"collaboratorsDescription": "People who interacted",
|
|
1019
|
+
"executionTime": "Execution",
|
|
1020
|
+
"executionTimeDescription": "Total accumulated time"
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
971
1023
|
},
|
|
972
1024
|
"ContractsPage": {
|
|
973
1025
|
"title": "Contracts",
|
|
@@ -1432,6 +1484,7 @@
|
|
|
1432
1484
|
"searchPlaceholder": "Search collaborator, project, task, approver, or notes...",
|
|
1433
1485
|
"emptyDescription": "No timesheets match the current filters.",
|
|
1434
1486
|
"sheet": {
|
|
1487
|
+
"title": "Quick entry",
|
|
1435
1488
|
"createTitle": "Quick entry",
|
|
1436
1489
|
"editTitle": "Edit entry",
|
|
1437
1490
|
"description": "Choose the project, task, date, and duration to log work with minimal friction.",
|
|
@@ -1989,15 +2042,15 @@
|
|
|
1989
2042
|
"category": "Category",
|
|
1990
2043
|
"billable": "Billable",
|
|
1991
2044
|
"reimbursable": "Reimbursable",
|
|
1992
|
-
"all": "All",
|
|
1993
|
-
"yes": "Yes",
|
|
1994
|
-
"no": "No",
|
|
1995
|
-
"planned": "Planned",
|
|
1996
|
-
"realized": "Realized",
|
|
1997
|
-
"statuses": {
|
|
1998
|
-
"planned": "Planned",
|
|
1999
|
-
"approved": "Approved",
|
|
2000
|
-
"realized": "Realized",
|
|
2045
|
+
"all": "All",
|
|
2046
|
+
"yes": "Yes",
|
|
2047
|
+
"no": "No",
|
|
2048
|
+
"planned": "Planned",
|
|
2049
|
+
"realized": "Realized",
|
|
2050
|
+
"statuses": {
|
|
2051
|
+
"planned": "Planned",
|
|
2052
|
+
"approved": "Approved",
|
|
2053
|
+
"realized": "Realized",
|
|
2001
2054
|
"cancelled": "Cancelled"
|
|
2002
2055
|
},
|
|
2003
2056
|
"colDate": "Date",
|
|
@@ -2125,5 +2178,351 @@
|
|
|
2125
2178
|
"statusBreakdown": "Planned × Approved × Realized",
|
|
2126
2179
|
"noData": "Not enough data"
|
|
2127
2180
|
}
|
|
2181
|
+
},
|
|
2182
|
+
"TaskFileAttachments": {
|
|
2183
|
+
"uploadError": "Upload error",
|
|
2184
|
+
"error": "Error",
|
|
2185
|
+
"empty": "No attached files",
|
|
2186
|
+
"dropzone": {
|
|
2187
|
+
"ariaLabel": "Click or drop files to attach",
|
|
2188
|
+
"dragging": "Drop files here",
|
|
2189
|
+
"idle": "Click or drag files to attach"
|
|
2190
|
+
},
|
|
2191
|
+
"actions": {
|
|
2192
|
+
"openInNewTab": "Open in a new tab",
|
|
2193
|
+
"removeFile": "Remove file"
|
|
2194
|
+
}
|
|
2195
|
+
},
|
|
2196
|
+
"ProjectFileAttachments": {
|
|
2197
|
+
"uploadError": "Upload error",
|
|
2198
|
+
"error": "Error",
|
|
2199
|
+
"empty": "No attached files",
|
|
2200
|
+
"dropzone": {
|
|
2201
|
+
"ariaLabel": "Click or drop files to attach",
|
|
2202
|
+
"dragging": "Drop files here",
|
|
2203
|
+
"idle": "Click or drag files to attach"
|
|
2204
|
+
},
|
|
2205
|
+
"actions": {
|
|
2206
|
+
"openInNewTab": "Open in a new tab",
|
|
2207
|
+
"removeFile": "Remove file"
|
|
2208
|
+
}
|
|
2209
|
+
},
|
|
2210
|
+
"ReportsCollaboratorsPage": {
|
|
2211
|
+
"title": "Collaborators Report",
|
|
2212
|
+
"description": "Executive dashboard with costs, profit, current capacity, and planning for the next 12 months.",
|
|
2213
|
+
"breadcrumb": "Reports / Collaborators",
|
|
2214
|
+
"actions": {
|
|
2215
|
+
"clear": "Clear"
|
|
2216
|
+
},
|
|
2217
|
+
"filters": {
|
|
2218
|
+
"start": "Start",
|
|
2219
|
+
"end": "End",
|
|
2220
|
+
"department": "Department",
|
|
2221
|
+
"contract": "Contract",
|
|
2222
|
+
"scenario": "Scenario",
|
|
2223
|
+
"all": "All"
|
|
2224
|
+
},
|
|
2225
|
+
"scenario": {
|
|
2226
|
+
"base": "Base",
|
|
2227
|
+
"growth": "Growth",
|
|
2228
|
+
"conservative": "Conservative"
|
|
2229
|
+
},
|
|
2230
|
+
"allocationStatus": {
|
|
2231
|
+
"overload": "Overloaded",
|
|
2232
|
+
"idle": "Idle",
|
|
2233
|
+
"healthy": "Healthy"
|
|
2234
|
+
},
|
|
2235
|
+
"cards": {
|
|
2236
|
+
"headcount": {
|
|
2237
|
+
"title": "Headcount",
|
|
2238
|
+
"description": "Collaborators in scope"
|
|
2239
|
+
},
|
|
2240
|
+
"cost": {
|
|
2241
|
+
"title": "Total cost",
|
|
2242
|
+
"perAllocatedHour": "per allocated hour",
|
|
2243
|
+
"perCapacityHour": "per capacity hour"
|
|
2244
|
+
},
|
|
2245
|
+
"revenue": {
|
|
2246
|
+
"title": "Generated value",
|
|
2247
|
+
"description": "{hours} billable"
|
|
2248
|
+
},
|
|
2249
|
+
"margin": {
|
|
2250
|
+
"title": "Margin"
|
|
2251
|
+
},
|
|
2252
|
+
"utilization": {
|
|
2253
|
+
"title": "Utilization",
|
|
2254
|
+
"description": "Committed billable hours over total capacity"
|
|
2255
|
+
},
|
|
2256
|
+
"freeCapacity": {
|
|
2257
|
+
"title": "Free capacity",
|
|
2258
|
+
"description": "{percent} available"
|
|
2259
|
+
},
|
|
2260
|
+
"overtime": {
|
|
2261
|
+
"title": "Overtime",
|
|
2262
|
+
"description": "{count} people overloaded"
|
|
2263
|
+
},
|
|
2264
|
+
"scenario": {
|
|
2265
|
+
"title": "12-month scenario",
|
|
2266
|
+
"description": "Projection calculated by the backend"
|
|
2267
|
+
}
|
|
2268
|
+
},
|
|
2269
|
+
"table": {
|
|
2270
|
+
"title": "Collaborator breakdown",
|
|
2271
|
+
"description": "Fixed cost in period, generated value, profit, committed capacity, and executive recommendation.",
|
|
2272
|
+
"hoursBillableOf": "{billable} bill. of {allocated}",
|
|
2273
|
+
"headers": {
|
|
2274
|
+
"collaborator": "Collaborator",
|
|
2275
|
+
"cost": "Cost",
|
|
2276
|
+
"generatedValue": "Generated value",
|
|
2277
|
+
"profit": "Profit",
|
|
2278
|
+
"hours": "Hours",
|
|
2279
|
+
"allocation": "Allocation",
|
|
2280
|
+
"risk": "Risk",
|
|
2281
|
+
"recommendation": "Recommendation"
|
|
2282
|
+
}
|
|
2283
|
+
}
|
|
2284
|
+
},
|
|
2285
|
+
"ReportsProjectsPage": {
|
|
2286
|
+
"title": "Projects Report",
|
|
2287
|
+
"description": "Executive dashboard with revenue, cost, profit, deadlines, risk, and planning for the next 12 months.",
|
|
2288
|
+
"breadcrumb": "Reports / Projects",
|
|
2289
|
+
"filters": {
|
|
2290
|
+
"start": "Start",
|
|
2291
|
+
"end": "End",
|
|
2292
|
+
"status": "Status",
|
|
2293
|
+
"client": "Client",
|
|
2294
|
+
"scenario": "Scenario",
|
|
2295
|
+
"all": "All"
|
|
2296
|
+
},
|
|
2297
|
+
"scenario": {
|
|
2298
|
+
"base": "Base",
|
|
2299
|
+
"growth": "Growth",
|
|
2300
|
+
"conservative": "Conservative"
|
|
2301
|
+
},
|
|
2302
|
+
"status": {
|
|
2303
|
+
"on_track": "On track",
|
|
2304
|
+
"attention": "Attention",
|
|
2305
|
+
"late": "Late",
|
|
2306
|
+
"paused": "Paused"
|
|
2307
|
+
},
|
|
2308
|
+
"contractType": {
|
|
2309
|
+
"fixed_price": "Fixed price",
|
|
2310
|
+
"time_materials": "Time / materials",
|
|
2311
|
+
"retainer": "Retainer"
|
|
2312
|
+
},
|
|
2313
|
+
"risk": {
|
|
2314
|
+
"baixo": "low",
|
|
2315
|
+
"médio": "medium",
|
|
2316
|
+
"alto": "high"
|
|
2317
|
+
},
|
|
2318
|
+
"actions": {
|
|
2319
|
+
"clear": "Clear",
|
|
2320
|
+
"viewDetails": "View details"
|
|
2321
|
+
},
|
|
2322
|
+
"cards": {
|
|
2323
|
+
"projects": {
|
|
2324
|
+
"title": "Projects",
|
|
2325
|
+
"tooltip": "Total number of active projects in the filtered period, including those under operational risk.",
|
|
2326
|
+
"description": "{count} under operational risk"
|
|
2327
|
+
},
|
|
2328
|
+
"budget": {
|
|
2329
|
+
"title": "Budget",
|
|
2330
|
+
"tooltip": "Sum of budget_amount across all projects in the filtered period.",
|
|
2331
|
+
"description": "{count} projects in the period"
|
|
2332
|
+
},
|
|
2333
|
+
"allocatedCost": {
|
|
2334
|
+
"title": "Allocated cost",
|
|
2335
|
+
"tooltip": "Cost calculated from allocations: planned weekly hours × collaborator monthly cost × months in period ÷ weekly capacity.",
|
|
2336
|
+
"description": "vs {value} consumed"
|
|
2337
|
+
},
|
|
2338
|
+
"plannedProfit": {
|
|
2339
|
+
"title": "Planned profit",
|
|
2340
|
+
"tooltip": "Difference between total project budget and allocated collaborator cost in the period.",
|
|
2341
|
+
"description": "{value} margin"
|
|
2342
|
+
},
|
|
2343
|
+
"hours": {
|
|
2344
|
+
"title": "Consumed hours",
|
|
2345
|
+
"tooltip": "Total logged and approved timesheet hours within the selected period.",
|
|
2346
|
+
"description": "{value} billable"
|
|
2347
|
+
},
|
|
2348
|
+
"consumedHoursCost": {
|
|
2349
|
+
"title": "Consumed hours cost",
|
|
2350
|
+
"tooltip": "Actual cost of delivered hours: timesheet hours × collaborator hourly rate (monthly cost ÷ weekly capacity).",
|
|
2351
|
+
"description": "{value} of delivered hours"
|
|
2352
|
+
},
|
|
2353
|
+
"idlenessRate": {
|
|
2354
|
+
"title": "Idleness rate",
|
|
2355
|
+
"tooltip": "Percentage of idle time: gap between planned weekly allocation and hours actually submitted in timesheets, relative to total capacity.",
|
|
2356
|
+
"description": "{value} idle cost"
|
|
2357
|
+
},
|
|
2358
|
+
"idlenessCost": {
|
|
2359
|
+
"title": "Idleness cost",
|
|
2360
|
+
"tooltip": "Amount spent on idle time: allocated cost minus cost of hours effectively consumed in approved timesheets.",
|
|
2361
|
+
"description": "{value} idleness"
|
|
2362
|
+
}
|
|
2363
|
+
},
|
|
2364
|
+
"table": {
|
|
2365
|
+
"title": "Project breakdown",
|
|
2366
|
+
"description": "Budget, allocated cost, planned profit, consumed hours, idleness, and risk by project.",
|
|
2367
|
+
"billableHours": "{value} billable",
|
|
2368
|
+
"columns": {
|
|
2369
|
+
"project": "Project",
|
|
2370
|
+
"status": "Status",
|
|
2371
|
+
"budget": "Budget",
|
|
2372
|
+
"allocatedCost": "Allocated cost",
|
|
2373
|
+
"plannedProfit": "Planned profit",
|
|
2374
|
+
"hours": "Consumed hours",
|
|
2375
|
+
"consumedHoursCost": "Consumed hours cost",
|
|
2376
|
+
"idlenessRate": "Idleness rate",
|
|
2377
|
+
"idlenessCost": "Idleness cost",
|
|
2378
|
+
"risk": "Risk",
|
|
2379
|
+
"recommendation": "Recommendation"
|
|
2380
|
+
}
|
|
2381
|
+
}
|
|
2382
|
+
},
|
|
2383
|
+
"MyOpenRequestsKpi": {
|
|
2384
|
+
"alert": "Attention",
|
|
2385
|
+
"openRequests": "Open requests",
|
|
2386
|
+
"requests": {
|
|
2387
|
+
"vacation": "Vacation",
|
|
2388
|
+
"scheduleAdjust": "Schedule Adjustment",
|
|
2389
|
+
"expenses": "Expenses",
|
|
2390
|
+
"others": "Others"
|
|
2391
|
+
}
|
|
2392
|
+
},
|
|
2393
|
+
"MyQuickActions": {
|
|
2394
|
+
"timesheetLabel": "Log Timesheet",
|
|
2395
|
+
"requestLabel": "New Request",
|
|
2396
|
+
"vacationLabel": "Request Vacation",
|
|
2397
|
+
"expenseLabel": "Log Expense",
|
|
2398
|
+
"tipsTitle": "💡 Useful tips:",
|
|
2399
|
+
"tips": {
|
|
2400
|
+
"timesheet": "✓ Complete your timesheet every week",
|
|
2401
|
+
"vacation": "✓ Request vacation in advance",
|
|
2402
|
+
"expense": "✓ Log expenses on time"
|
|
2403
|
+
}
|
|
2404
|
+
},
|
|
2405
|
+
"ProjectStatusOverview": {
|
|
2406
|
+
"totalProjects": "Total Projects",
|
|
2407
|
+
"statuses": {
|
|
2408
|
+
"planning": "Planning",
|
|
2409
|
+
"inProgress": "In Progress",
|
|
2410
|
+
"review": "In Review",
|
|
2411
|
+
"completed": "Completed",
|
|
2412
|
+
"onHold": "On Hold"
|
|
2413
|
+
}
|
|
2414
|
+
},
|
|
2415
|
+
"TeamUtilizationOverview": {
|
|
2416
|
+
"totalCollaborators": "Total Collaborators",
|
|
2417
|
+
"overUtilizedAlert": "{count} collaborator(s) over-utilized",
|
|
2418
|
+
"rebalanceRecommendation": "Consider rebalancing projects",
|
|
2419
|
+
"categories": {
|
|
2420
|
+
"overUtilized": "Over-utilized",
|
|
2421
|
+
"wellUtilized": "Well utilized",
|
|
2422
|
+
"underUtilized": "Under-utilized",
|
|
2423
|
+
"idle": "Inactive"
|
|
2424
|
+
}
|
|
2425
|
+
},
|
|
2426
|
+
"CapacityDistribution": {
|
|
2427
|
+
"empty": "No areas with capacity",
|
|
2428
|
+
"total": "Total Capacity"
|
|
2429
|
+
},
|
|
2430
|
+
"EffortByProject": {
|
|
2431
|
+
"empty": "No projects with effort",
|
|
2432
|
+
"total": "Total Effort"
|
|
2433
|
+
},
|
|
2434
|
+
"HeadcountByArea": {
|
|
2435
|
+
"empty": "No areas with collaborators",
|
|
2436
|
+
"totalCollaborators": "Total Collaborators"
|
|
2437
|
+
},
|
|
2438
|
+
"ManagedProjectsStatus": {
|
|
2439
|
+
"title": "Project Health",
|
|
2440
|
+
"onSchedule": "On Schedule",
|
|
2441
|
+
"atRisk": "At Risk",
|
|
2442
|
+
"delayed": "Delayed",
|
|
2443
|
+
"done": "Done",
|
|
2444
|
+
"distribution": "Distribution",
|
|
2445
|
+
"supervision": "projects under supervision"
|
|
2446
|
+
},
|
|
2447
|
+
"MyProjectAllocationsKpi": {
|
|
2448
|
+
"activeProjects": "Active projects",
|
|
2449
|
+
"capacity": "Capacity"
|
|
2450
|
+
},
|
|
2451
|
+
"MyRelevantDeadlines": {
|
|
2452
|
+
"empty": "No critical deadlines",
|
|
2453
|
+
"overdue": "Overdue"
|
|
2454
|
+
},
|
|
2455
|
+
"PortfolioCostsKpi": {
|
|
2456
|
+
"label": "Total Costs",
|
|
2457
|
+
"trend": "Trend",
|
|
2458
|
+
"decreasing": "Decreasing",
|
|
2459
|
+
"increasing": "Increasing",
|
|
2460
|
+
"stable": "Stable",
|
|
2461
|
+
"budgetUtilization": "Budget Utilization",
|
|
2462
|
+
"spent": "${value}k spent",
|
|
2463
|
+
"budgeted": "${value}k budgeted",
|
|
2464
|
+
"savings": "Savings"
|
|
2465
|
+
},
|
|
2466
|
+
"PortfolioEffortKpi": {
|
|
2467
|
+
"label": "Total Effort",
|
|
2468
|
+
"available": "Available",
|
|
2469
|
+
"utilizationRate": "Utilization Rate",
|
|
2470
|
+
"allocated": "Allocated",
|
|
2471
|
+
"highDemand": "⚠️ Portfolio with high demand",
|
|
2472
|
+
"balanced": "✓ Balanced utilization",
|
|
2473
|
+
"availableCapacity": "📊 Available capacity"
|
|
2474
|
+
},
|
|
2475
|
+
"PortfolioRiskKpi": {
|
|
2476
|
+
"label": "Identified Risks",
|
|
2477
|
+
"trendLabel": "Trend:",
|
|
2478
|
+
"increasing": "📈 Increasing",
|
|
2479
|
+
"decreasing": "📉 Decreasing",
|
|
2480
|
+
"stable": "➡️ Stable",
|
|
2481
|
+
"critical": "🔴 Critical",
|
|
2482
|
+
"high": "🟠 High",
|
|
2483
|
+
"medium": "🟡 Medium",
|
|
2484
|
+
"urgentAttention": "⚠️ Requires immediate attention"
|
|
2485
|
+
},
|
|
2486
|
+
"StrategicDeadlines": {
|
|
2487
|
+
"empty": "No critical deadlines"
|
|
2488
|
+
},
|
|
2489
|
+
"TeamApprovalQueue": {
|
|
2490
|
+
"typeLabels": {
|
|
2491
|
+
"timesheet": "Timesheet",
|
|
2492
|
+
"expense": "Expense",
|
|
2493
|
+
"vacation": "Vacation",
|
|
2494
|
+
"schedule": "Schedule"
|
|
2495
|
+
},
|
|
2496
|
+
"empty": "Approval queue is empty"
|
|
2497
|
+
},
|
|
2498
|
+
"TeamCapacityKpi": {
|
|
2499
|
+
"available": "Available",
|
|
2500
|
+
"critical": "Critical",
|
|
2501
|
+
"high": "High",
|
|
2502
|
+
"great": "Great",
|
|
2503
|
+
"normal": "Normal",
|
|
2504
|
+
"utilization": "Utilization",
|
|
2505
|
+
"allocated": "{hours}h allocated",
|
|
2506
|
+
"total": "{hours}h total",
|
|
2507
|
+
"status": "Status"
|
|
2508
|
+
},
|
|
2509
|
+
"TeamHoursKpi": {
|
|
2510
|
+
"averagePerPerson": "Avg/Person",
|
|
2511
|
+
"goalVariation": "Goal Variation",
|
|
2512
|
+
"registeredHours": "Registered Hours",
|
|
2513
|
+
"registered": "{hours}h logged",
|
|
2514
|
+
"goal": "{hours}h goal",
|
|
2515
|
+
"collaborators": "Collaborators"
|
|
2516
|
+
},
|
|
2517
|
+
"TeamPendingApprovalsKpi": {
|
|
2518
|
+
"label": "Awaiting Approval",
|
|
2519
|
+
"requests": "Requests",
|
|
2520
|
+
"urgent": "Urgent:",
|
|
2521
|
+
"avgTime": "Average time:",
|
|
2522
|
+
"days": "{count} days"
|
|
2523
|
+
},
|
|
2524
|
+
"TeamWorkloadAlerts": {
|
|
2525
|
+
"empty": "No critical alerts",
|
|
2526
|
+
"lastUpdated": "Last updated: 5 min ago"
|
|
2128
2527
|
}
|
|
2129
2528
|
}
|