@hed-hog/operations 0.0.305 → 0.0.309

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.
Files changed (138) hide show
  1. package/dist/controllers/operations-approvals.controller.d.ts +114 -1
  2. package/dist/controllers/operations-approvals.controller.d.ts.map +1 -1
  3. package/dist/controllers/operations-approvals.controller.js +16 -3
  4. package/dist/controllers/operations-approvals.controller.js.map +1 -1
  5. package/dist/controllers/operations-collaborators.controller.d.ts +16 -1
  6. package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -1
  7. package/dist/controllers/operations-collaborators.controller.js +16 -3
  8. package/dist/controllers/operations-collaborators.controller.js.map +1 -1
  9. package/dist/controllers/operations-contracts.controller.d.ts +14 -453
  10. package/dist/controllers/operations-contracts.controller.d.ts.map +1 -1
  11. package/dist/controllers/operations-contracts.controller.js +11 -112
  12. package/dist/controllers/operations-contracts.controller.js.map +1 -1
  13. package/dist/controllers/operations-org-structure.controller.d.ts +65 -2
  14. package/dist/controllers/operations-org-structure.controller.d.ts.map +1 -1
  15. package/dist/controllers/operations-org-structure.controller.js +18 -5
  16. package/dist/controllers/operations-org-structure.controller.js.map +1 -1
  17. package/dist/controllers/operations-projects.controller.d.ts +28 -4
  18. package/dist/controllers/operations-projects.controller.d.ts.map +1 -1
  19. package/dist/controllers/operations-projects.controller.js +17 -5
  20. package/dist/controllers/operations-projects.controller.js.map +1 -1
  21. package/dist/controllers/operations-timesheets.controller.d.ts +52 -4
  22. package/dist/controllers/operations-timesheets.controller.d.ts.map +1 -1
  23. package/dist/controllers/operations-timesheets.controller.js +28 -11
  24. package/dist/controllers/operations-timesheets.controller.js.map +1 -1
  25. package/dist/dto/list-approvals.dto.d.ts +6 -0
  26. package/dist/dto/list-approvals.dto.d.ts.map +1 -0
  27. package/dist/dto/list-approvals.dto.js +28 -0
  28. package/dist/dto/list-approvals.dto.js.map +1 -0
  29. package/dist/dto/list-collaborator-types.dto.d.ts +3 -1
  30. package/dist/dto/list-collaborator-types.dto.d.ts.map +1 -1
  31. package/dist/dto/list-collaborator-types.dto.js +7 -1
  32. package/dist/dto/list-collaborator-types.dto.js.map +1 -1
  33. package/dist/dto/list-collaborators.dto.d.ts +1 -0
  34. package/dist/dto/list-collaborators.dto.d.ts.map +1 -1
  35. package/dist/dto/list-collaborators.dto.js +5 -0
  36. package/dist/dto/list-collaborators.dto.js.map +1 -1
  37. package/dist/dto/list-contracts.dto.d.ts +8 -0
  38. package/dist/dto/list-contracts.dto.d.ts.map +1 -0
  39. package/dist/dto/list-contracts.dto.js +38 -0
  40. package/dist/dto/list-contracts.dto.js.map +1 -0
  41. package/dist/dto/list-departments.dto.d.ts +5 -0
  42. package/dist/dto/list-departments.dto.d.ts.map +1 -0
  43. package/dist/dto/list-departments.dto.js +23 -0
  44. package/dist/dto/list-departments.dto.js.map +1 -0
  45. package/dist/dto/list-projects.dto.d.ts +5 -0
  46. package/dist/dto/list-projects.dto.d.ts.map +1 -0
  47. package/dist/dto/list-projects.dto.js +23 -0
  48. package/dist/dto/list-projects.dto.js.map +1 -0
  49. package/dist/dto/list-schedule-adjustments.dto.d.ts +5 -0
  50. package/dist/dto/list-schedule-adjustments.dto.d.ts.map +1 -0
  51. package/dist/dto/list-schedule-adjustments.dto.js +23 -0
  52. package/dist/dto/list-schedule-adjustments.dto.js.map +1 -0
  53. package/dist/dto/list-time-off-requests.dto.d.ts +5 -0
  54. package/dist/dto/list-time-off-requests.dto.d.ts.map +1 -0
  55. package/dist/dto/list-time-off-requests.dto.js +23 -0
  56. package/dist/dto/list-time-off-requests.dto.js.map +1 -0
  57. package/dist/dto/list-timesheets.dto.d.ts +5 -0
  58. package/dist/dto/list-timesheets.dto.d.ts.map +1 -0
  59. package/dist/dto/list-timesheets.dto.js +23 -0
  60. package/dist/dto/list-timesheets.dto.js.map +1 -0
  61. package/dist/dto/reorder-collaborator-types.dto.d.ts +4 -0
  62. package/dist/dto/reorder-collaborator-types.dto.d.ts.map +1 -0
  63. package/dist/dto/reorder-collaborator-types.dto.js +25 -0
  64. package/dist/dto/reorder-collaborator-types.dto.js.map +1 -0
  65. package/dist/dto/update-collaborator-type.dto.d.ts +3 -1
  66. package/dist/dto/update-collaborator-type.dto.d.ts.map +1 -1
  67. package/dist/dto/update-collaborator-type.dto.js +2 -1
  68. package/dist/dto/update-collaborator-type.dto.js.map +1 -1
  69. package/dist/operations.service.d.ts +362 -271
  70. package/dist/operations.service.d.ts.map +1 -1
  71. package/dist/operations.service.js +1195 -1098
  72. package/dist/operations.service.js.map +1 -1
  73. package/dist/operations.service.spec.js +73 -22
  74. package/dist/operations.service.spec.js.map +1 -1
  75. package/hedhog/data/menu.yaml +19 -55
  76. package/hedhog/data/operations_collaborator_type.yaml +76 -76
  77. package/hedhog/data/route.yaml +52 -70
  78. package/hedhog/frontend/app/_components/async-options-combobox.tsx.ejs +5 -3
  79. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +8 -1
  80. package/hedhog/frontend/app/_components/collaborator-select-with-create.tsx.ejs +15 -10
  81. package/hedhog/frontend/app/_components/contract-details-screen.tsx.ejs +108 -213
  82. package/hedhog/frontend/app/_components/contract-form-screen.tsx.ejs +251 -2039
  83. package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +167 -60
  84. package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +70 -301
  85. package/hedhog/frontend/app/_components/system-user-select-with-create.tsx.ejs +102 -51
  86. package/hedhog/frontend/app/_components/timesheet-task-create-sheet.tsx.ejs +1 -0
  87. package/hedhog/frontend/app/_lib/types.ts.ejs +19 -24
  88. package/hedhog/frontend/app/_lib/utils/format.ts.ejs +14 -9
  89. package/hedhog/frontend/app/approvals/page.tsx.ejs +843 -151
  90. package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +457 -154
  91. package/hedhog/frontend/app/collaborators/page.tsx.ejs +118 -49
  92. package/hedhog/frontend/app/contracts/[id]/page.tsx.ejs +2 -2
  93. package/hedhog/frontend/app/contracts/page.tsx.ejs +215 -617
  94. package/hedhog/frontend/app/departments/page.tsx.ejs +257 -113
  95. package/hedhog/frontend/app/projects/page.tsx.ejs +90 -51
  96. package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +546 -118
  97. package/hedhog/frontend/app/time-off/page.tsx.ejs +400 -123
  98. package/hedhog/frontend/app/timesheets/page.tsx.ejs +647 -342
  99. package/hedhog/frontend/messages/en.json +148 -14
  100. package/hedhog/frontend/messages/pt.json +199 -56
  101. package/hedhog/table/operations_collaborator.yaml +18 -18
  102. package/hedhog/table/operations_collaborator_equity_participation.yaml +43 -43
  103. package/hedhog/table/operations_collaborator_type.yaml +33 -33
  104. package/hedhog/table/operations_contract.yaml +0 -9
  105. package/hedhog/table/operations_contract_document.yaml +33 -33
  106. package/package.json +4 -4
  107. package/src/controllers/operations-approvals.controller.ts +9 -3
  108. package/src/controllers/operations-collaborators.controller.ts +15 -2
  109. package/src/controllers/operations-contracts.controller.ts +8 -92
  110. package/src/controllers/operations-org-structure.controller.ts +17 -4
  111. package/src/controllers/operations-projects.controller.ts +10 -4
  112. package/src/controllers/operations-timesheets.controller.ts +30 -8
  113. package/src/dto/create-collaborator-type.dto.ts +43 -43
  114. package/src/dto/create-collaborator.dto.ts +223 -223
  115. package/src/dto/list-approvals.dto.ts +12 -0
  116. package/src/dto/list-collaborator-types.dto.ts +20 -15
  117. package/src/dto/list-collaborators.dto.ts +34 -30
  118. package/src/dto/list-contracts.dto.ts +20 -0
  119. package/src/dto/list-departments.dto.ts +8 -0
  120. package/src/dto/list-projects.dto.ts +8 -0
  121. package/src/dto/list-schedule-adjustments.dto.ts +8 -0
  122. package/src/dto/list-time-off-requests.dto.ts +8 -0
  123. package/src/dto/list-timesheets.dto.ts +8 -0
  124. package/src/dto/reorder-collaborator-types.dto.ts +10 -0
  125. package/src/dto/update-collaborator-type.dto.ts +4 -3
  126. package/src/dto/update-collaborator.dto.ts +3 -3
  127. package/src/operations.service.spec.ts +96 -30
  128. package/src/operations.service.ts +1738 -1777
  129. package/hedhog/frontend/app/_components/contract-creation-wizard.tsx.ejs +0 -631
  130. package/hedhog/frontend/app/_components/contract-template-form-screen.tsx.ejs +0 -526
  131. package/hedhog/frontend/app/_components/contract-template-select-with-create.tsx.ejs +0 -247
  132. package/hedhog/frontend/app/_components/contract-wizard-sheet.tsx.ejs +0 -3520
  133. package/hedhog/frontend/app/contracts/templates/page.tsx.ejs +0 -380
  134. package/hedhog/frontend/app/team/page.tsx.ejs +0 -352
  135. package/hedhog/table/operations_contract_financial_term.yaml +0 -40
  136. package/hedhog/table/operations_contract_revision.yaml +0 -38
  137. package/hedhog/table/operations_contract_signature.yaml +0 -38
  138. package/hedhog/table/operations_contract_template.yaml +0 -58
@@ -13,6 +13,7 @@
13
13
  "addLine": "Add line",
14
14
  "approve": "Approve",
15
15
  "reject": "Reject",
16
+ "submit": "Submit",
16
17
  "cancel": "Cancel",
17
18
  "loadMore": "Load more",
18
19
  "clearSelection": "Clear selection",
@@ -29,6 +30,7 @@
29
30
  "notAvailable": "Not available",
30
31
  "notAssigned": "Not assigned",
31
32
  "collaborator": "Collaborator",
33
+ "collaborators": "Collaborators",
32
34
  "collaboratorType": "Relationship type",
33
35
  "department": "Department",
34
36
  "supervisor": "Supervisor",
@@ -94,7 +96,11 @@
94
96
  "pending": "Pending",
95
97
  "approved": "Approved",
96
98
  "equityParticipation": "Equity participation",
97
- "votingPower": "Voting power"
99
+ "votingPower": "Voting power",
100
+ "searchCollaborator": "Search collaborator...",
101
+ "noCollaboratorsFound": "No collaborators found.",
102
+ "searchTemplate": "Search template...",
103
+ "noTemplatesFound": "No templates found."
98
104
  },
99
105
  "states": {
100
106
  "emptyTitle": "No records found",
@@ -225,6 +231,9 @@
225
231
  "description": "Description",
226
232
  "status": "Status"
227
233
  },
234
+ "viewMode": "View mode",
235
+ "viewModeTable": "Table",
236
+ "viewModeCards": "Grid",
228
237
  "messages": {
229
238
  "requiredFields": "Department name is required.",
230
239
  "saveSuccess": "Department saved successfully.",
@@ -375,6 +384,7 @@
375
384
  "inactive": "Inactive types"
376
385
  },
377
386
  "columns": {
387
+ "drag": "Move",
378
388
  "name": "Name",
379
389
  "slug": "Slug",
380
390
  "category": "Category",
@@ -382,6 +392,10 @@
382
392
  "sortOrder": "Order",
383
393
  "collaborators": "Collaborators"
384
394
  },
395
+ "reorder": {
396
+ "description": "Drag the table rows to save the order automatically.",
397
+ "filtered": "Reordering is available in table view only, with no search, no filters, and all items loaded on the page."
398
+ },
385
399
  "sheet": {
386
400
  "createTitle": "Create relationship type",
387
401
  "editTitle": "Edit relationship type",
@@ -395,10 +409,15 @@
395
409
  "sortOrder": "Display order",
396
410
  "status": "Status"
397
411
  },
412
+ "viewMode": "View mode",
413
+ "viewModeTable": "Table",
414
+ "viewModeCards": "Grid",
398
415
  "messages": {
399
416
  "requiredFields": "Relationship type name is required.",
400
417
  "saveSuccess": "Relationship type saved successfully.",
401
418
  "saveError": "Unable to save the relationship type.",
419
+ "reorderSuccess": "Order updated successfully.",
420
+ "reorderError": "Unable to save the new order.",
402
421
  "statusSuccess": "Relationship type status updated successfully.",
403
422
  "statusError": "Unable to update the relationship type status."
404
423
  }
@@ -526,7 +545,7 @@
526
545
  },
527
546
  "hints": {
528
547
  "summary": "Keep this short: scope, goal, and any delivery context.",
529
- "progressPercent": "Use a simple estimate from 0 to 100.",
548
+ "progressPercent": "Use a simple estimate from 0 - 100.",
530
549
  "monthlyHourCap": "Optional cap used for planning and draft contract generation.",
531
550
  "contract": "Selecting an existing contract disables automatic draft generation.",
532
551
  "contractTemplate": "Use a template to prefill the next contract or the automatic draft for this project.",
@@ -539,7 +558,7 @@
539
558
  "name": "Enter the project name",
540
559
  "clientName": "Select or create the client company/account",
541
560
  "summary": "Describe scope, goals, and relevant delivery context",
542
- "progressPercent": "0 to 100",
561
+ "progressPercent": "0 - 100",
543
562
  "managerSearch": "Search manager...",
544
563
  "assignmentSearch": "Search collaborator by name, department, or role",
545
564
  "contractSearch": "Search existing contract...",
@@ -607,30 +626,69 @@
607
626
  },
608
627
  "indicators": {
609
628
  "activeAssignments": "Active assignments",
610
- "billableAssignments": "Billable assignments",
629
+ "completedAssignments": "Completed assignments",
611
630
  "averageAllocation": "Average allocation",
612
631
  "totalWeeklyHours": "Total weekly hours"
613
632
  },
614
633
  "noContract": "No related contract is linked to this project yet.",
615
- "noAssignments": "No collaborators are assigned to this project yet."
634
+ "noAssignments": "No collaborators are assigned to this project yet.",
635
+ "sections": {
636
+ "overview": "Overview",
637
+ "contract": "Related contract",
638
+ "team": "Assigned collaborators",
639
+ "teamDescription": "Initial and ongoing staffing linked to this project.",
640
+ "indicators": "Operational indicators",
641
+ "indicatorsDescription": "Current project staffing and delivery metrics.",
642
+ "deliveryHealth": "Delivery health",
643
+ "deliveryHealthDescription": "Visual overview of team allocation and operational pace.",
644
+ "quickRadar": "Quick radar",
645
+ "quickRadarDescription": "Short-term decision signals.",
646
+ "taskBoard": "Task board",
647
+ "taskBoardDescription": "Kanban-style board with drag between columns and task side panel."
648
+ },
649
+ "charts": {
650
+ "allocationByCollaborator": "Allocation by collaborator",
651
+ "weeklyVelocity": "Weekly velocity"
652
+ },
653
+ "quickRadar": {
654
+ "activeAssignments": "Active assignments",
655
+ "timesheetPendencies": "Timesheet pendencies",
656
+ "plannedWeeklyHours": "Planned weekly hours"
657
+ },
658
+ "taskForm": {
659
+ "titleNew": "New task",
660
+ "titleEdit": "Edit task",
661
+ "nameLabel": "Name",
662
+ "namePlaceholder": "Task name",
663
+ "descriptionLabel": "Description",
664
+ "descriptionPlaceholder": "Optional description",
665
+ "priorityLabel": "Priority",
666
+ "columnLabel": "Column",
667
+ "deadlineLabel": "Deadline",
668
+ "estimateLabel": "Estimate (h)",
669
+ "tagsLabel": "Tags",
670
+ "tagsPlaceholder": "planning, client, design (comma-separated)",
671
+ "saving": "Saving..."
672
+ }
616
673
  },
617
674
  "ContractsPage": {
618
675
  "title": "Contracts",
619
- "description": "Central registry for manual and business-origin contracts, lifecycle status, documents, and financial oversight.",
676
+ "description": "Lean contract management with name, file, status, and fast preview access.",
620
677
  "breadcrumb": "Contracts",
621
- "searchPlaceholder": "Search contract, party, client, type, or code...",
678
+ "searchPlaceholder": "Search contracts by name or file...",
622
679
  "emptyDescription": "No contracts match the current filters.",
623
680
  "cards": {
624
681
  "total": "Total contracts",
625
682
  "active": "Active contracts",
626
- "underReview": "Under review",
627
- "withTemplate": "With template"
683
+ "inactive": "Inactive contracts",
684
+ "withFile": "With file"
628
685
  },
629
686
  "viewMode": "View mode",
630
687
  "viewModeTable": "Table",
631
688
  "viewModeCards": "Cards",
632
689
  "columns": {
633
690
  "title": "Title",
691
+ "file": "File",
634
692
  "code": "Code",
635
693
  "type": "Type",
636
694
  "origin": "Origin",
@@ -641,6 +699,7 @@
641
699
  "financials": "Financial summary"
642
700
  },
643
701
  "actions": {
702
+ "preview": "Preview",
644
703
  "downloadPdf": "Download PDF",
645
704
  "uploadPdf": "Upload PDF",
646
705
  "duplicate": "Duplicate",
@@ -754,6 +813,9 @@
754
813
  "editTitle": "Edit Contract Template",
755
814
  "description": "Keep reusable models ready for faster project contracts and drafts."
756
815
  },
816
+ "viewMode": "View mode",
817
+ "viewModeTable": "Table",
818
+ "viewModeCards": "Grid",
757
819
  "messages": {
758
820
  "statusSuccess": "Template status updated successfully.",
759
821
  "statusError": "Unable to update template status."
@@ -802,10 +864,11 @@
802
864
  "editTitle": "Edit Contract",
803
865
  "duplicateTitle": "Duplicate Contract",
804
866
  "breadcrumb": "Contract Form",
805
- "description": "Create or update contracts manually while managing parties, signatures, financials, revisions, documents, and editor content.",
867
+ "description": "Create or update contracts with a direct flow for name, file, and status.",
806
868
  "noAccessDescription": "Director permissions are required to manage contracts.",
807
869
  "loading": "Loading contract data...",
808
870
  "tabs": {
871
+ "preview": "Preview",
809
872
  "overview": "Overview",
810
873
  "parties": "Parties",
811
874
  "signatures": "Signatures",
@@ -817,6 +880,7 @@
817
880
  "sections": {
818
881
  "overview": "Overview",
819
882
  "overviewDescription": "Core registry, lifecycle, origin, and ownership fields.",
883
+ "simpleDescription": "Only name, file, and status are editable here. Existing contract relationships are preserved when saving.",
820
884
  "parties": "Parties",
821
885
  "partiesDescription": "Main people and companies related to this contract.",
822
886
  "signatures": "Signatures",
@@ -836,6 +900,7 @@
836
900
  "code": "Code",
837
901
  "name": "Contract title",
838
902
  "clientName": "Client name",
903
+ "relationsPreserved": "Relationships preserved",
839
904
  "contractTemplate": "Contract template",
840
905
  "contractTemplateDescription": "Select a reusable template to prefill the initial metadata and content for this contract.",
841
906
  "contractCategory": "Category",
@@ -871,6 +936,12 @@
871
936
  "revisionStatus": "Revision status",
872
937
  "summary": "Summary"
873
938
  },
939
+ "labels": {
940
+ "projectsCount": "{count} project(s)",
941
+ "partiesCount": "{count} party relation(s)",
942
+ "signaturesCount": "{count} signature(s)",
943
+ "documentsCount": "{count} document(s)"
944
+ },
874
945
  "options": {
875
946
  "contractCategories": {
876
947
  "employee": "Employee",
@@ -956,7 +1027,7 @@
956
1027
  }
957
1028
  },
958
1029
  "messages": {
959
- "requiredFields": "Code, contract title, and client name are required.",
1030
+ "requiredFields": "The contract name is required.",
960
1031
  "createSuccess": "Contract created successfully.",
961
1032
  "createError": "Unable to create the contract.",
962
1033
  "updateSuccess": "Contract updated successfully.",
@@ -985,7 +1056,7 @@
985
1056
  "ContractDetailsPage": {
986
1057
  "title": "Contract Details",
987
1058
  "breadcrumb": "Contract Details",
988
- "description": "Review the contract registry entry, related parties, signatures, financials, documents, revisions, and audit history.",
1059
+ "description": "Preview the contract, download the file, and review linked relationships.",
989
1060
  "notFound": "The requested contract could not be found or is not visible in your access scope.",
990
1061
  "tabs": {
991
1062
  "overview": "Overview",
@@ -994,9 +1065,11 @@
994
1065
  "financials": "Financials",
995
1066
  "documents": "Documents",
996
1067
  "revisions": "Revisions",
997
- "history": "History"
1068
+ "history": "History",
1069
+ "preview": "Preview"
998
1070
  },
999
1071
  "sections": {
1072
+ "preview": "Contract preview",
1000
1073
  "overview": "Overview",
1001
1074
  "parties": "Parties",
1002
1075
  "signatures": "Signatures",
@@ -1006,6 +1079,7 @@
1006
1079
  "history": "History / Audit"
1007
1080
  },
1008
1081
  "actions": {
1082
+ "preview": "Preview",
1009
1083
  "downloadPdf": "Download PDF",
1010
1084
  "download": "Download"
1011
1085
  },
@@ -1029,6 +1103,7 @@
1029
1103
  "revision": "Revision"
1030
1104
  },
1031
1105
  "states": {
1106
+ "previewUnavailable": "There is no PDF available to preview for this contract yet.",
1032
1107
  "noParties": "No parties are linked to this contract yet.",
1033
1108
  "noSignatures": "No signatures are registered yet.",
1034
1109
  "noDocuments": "No contract documents are available yet.",
@@ -1095,12 +1170,22 @@
1095
1170
  "projectHint": "Projects with active assignments appear here automatically.",
1096
1171
  "activityPlaceholder": "Example: Standup, implementation, QA, client sync"
1097
1172
  },
1173
+ "details": {
1174
+ "title": "Timesheet details",
1175
+ "description": "Review the submitted summary and the list of entries linked to this week.",
1176
+ "period": "Period",
1177
+ "entriesTitle": "Week entries",
1178
+ "noEntries": "No entries are linked to this timesheet."
1179
+ },
1098
1180
  "recentEntries": {
1099
1181
  "title": "Recent entries",
1100
1182
  "description": "Your newest work logs appear here right after saving.",
1101
1183
  "empty": "Your recent entries will appear here.",
1102
1184
  "loading": "Loading recent entries..."
1103
1185
  },
1186
+ "actions": {
1187
+ "viewDetails": "View details"
1188
+ },
1104
1189
  "cards": {
1105
1190
  "visible": "Visible timesheets",
1106
1191
  "visibleDescription": "Weekly records visible to your role scope.",
@@ -1109,14 +1194,22 @@
1109
1194
  "hours": "Logged hours",
1110
1195
  "hoursDescription": "Total work hours across all visible timesheets."
1111
1196
  },
1197
+ "viewMode": "View mode",
1198
+ "viewModeTable": "Table",
1199
+ "viewModeCards": "Grid",
1112
1200
  "messages": {
1113
1201
  "requiredFields": "Project, task, date, and duration are required.",
1202
+ "collaboratorContextRequired": "Your user must be linked to a collaborator profile to report time.",
1114
1203
  "entryValidation": "Enter a valid duration greater than zero.",
1115
1204
  "selectProjectRequired": "Select a project assignment first.",
1116
1205
  "selectTaskRequired": "Select or create a task first.",
1117
1206
  "selectProjectFirst": "Select a project before creating a task.",
1207
+ "projectLoadError": "Unable to load the available projects.",
1208
+ "taskLoadError": "Unable to load the available tasks.",
1118
1209
  "saveSuccess": "Entry saved successfully.",
1119
1210
  "saveError": "Unable to save the entry.",
1211
+ "updateSuccess": "Entry updated successfully.",
1212
+ "updateError": "Unable to update the entry.",
1120
1213
  "deleteSuccess": "Entry deleted successfully.",
1121
1214
  "deleteError": "Unable to delete the entry.",
1122
1215
  "confirmDeleteTitle": "Delete entry?",
@@ -1125,6 +1218,12 @@
1125
1218
  "submitError": "Unable to submit the timesheet.",
1126
1219
  "taskCreateSuccess": "Task created successfully.",
1127
1220
  "taskCreateError": "Unable to create the task."
1221
+ },
1222
+ "statuses": {
1223
+ "draft": "Draft",
1224
+ "submitted": "Pending review",
1225
+ "approved": "Approved",
1226
+ "rejected": "Not approved"
1128
1227
  }
1129
1228
  },
1130
1229
  "ApprovalsPage": {
@@ -1148,6 +1247,13 @@
1148
1247
  "description": "Add an optional note for {requester}'s request: {target}.",
1149
1248
  "notePlaceholder": "e.g. Approved for the requested period. Check your calendar for team coverage."
1150
1249
  },
1250
+ "details": {
1251
+ "title": "Approval details",
1252
+ "description": "Review the submitted request, the requested period, and the approver response.",
1253
+ "period": "Period",
1254
+ "projects": "Linked projects",
1255
+ "decidedAt": "Decided at"
1256
+ },
1151
1257
  "options": {
1152
1258
  "statuses": {
1153
1259
  "pending": "Pending",
@@ -1172,6 +1278,12 @@
1172
1278
  "permanent": "Permanent"
1173
1279
  }
1174
1280
  },
1281
+ "actions": {
1282
+ "viewDetails": "View details"
1283
+ },
1284
+ "viewMode": "View mode",
1285
+ "viewModeTable": "Table",
1286
+ "viewModeCards": "Grid",
1175
1287
  "messages": {
1176
1288
  "approveSuccess": "Approval completed successfully.",
1177
1289
  "approveError": "Unable to approve the request.",
@@ -1192,6 +1304,11 @@
1192
1304
  "helperDescription": "Keep vacation, sick leave, personal time, and other absences in one place so the status history stays easy to follow.",
1193
1305
  "reasonPlaceholder": "Add any context that will help your supervisor review this request."
1194
1306
  },
1307
+ "details": {
1308
+ "title": "Time-off details",
1309
+ "description": "Review the requested period, the calculated days, and the approver feedback.",
1310
+ "period": "Period"
1311
+ },
1195
1312
  "cards": {
1196
1313
  "submitted": "Awaiting review",
1197
1314
  "submittedDescription": "Requests sent and pending a supervisor decision.",
@@ -1221,6 +1338,12 @@
1221
1338
  "approved": "Approved and kept in your history.",
1222
1339
  "rejected": "Check the manager notes for next steps."
1223
1340
  },
1341
+ "viewMode": "View mode",
1342
+ "viewModeTable": "Table",
1343
+ "viewModeCards": "Grid",
1344
+ "actions": {
1345
+ "viewDetails": "View details"
1346
+ },
1224
1347
  "messages": {
1225
1348
  "requiredFields": "Start date and end date are required.",
1226
1349
  "saveSuccess": "Time-off request submitted successfully.",
@@ -1238,6 +1361,10 @@
1238
1361
  "description": "Share the days and hours you want to change. Your supervisor will compare this request with your current weekly schedule.",
1239
1362
  "reasonPlaceholder": "Briefly explain why this schedule change is needed."
1240
1363
  },
1364
+ "details": {
1365
+ "title": "Adjustment details",
1366
+ "description": "Compare the current and requested schedule and review the context sent for approval."
1367
+ },
1241
1368
  "cards": {
1242
1369
  "submitted": "Awaiting review",
1243
1370
  "submittedDescription": "Adjustment requests sent and waiting for approval.",
@@ -1261,7 +1388,8 @@
1261
1388
  },
1262
1389
  "table": {
1263
1390
  "currentSchedule": "Current schedule",
1264
- "requestedSchedule": "Requested schedule"
1391
+ "requestedSchedule": "Requested schedule",
1392
+ "scope": "Scope"
1265
1393
  },
1266
1394
  "scheduleEditor": {
1267
1395
  "summaryLabel": "Requested weekly summary",
@@ -1276,6 +1404,12 @@
1276
1404
  "approved": "Approved and kept in your history.",
1277
1405
  "rejected": "Check the manager notes for next steps."
1278
1406
  },
1407
+ "viewMode": "View mode",
1408
+ "viewModeTable": "Table",
1409
+ "viewModeCards": "Grid",
1410
+ "actions": {
1411
+ "viewDetails": "View details"
1412
+ },
1279
1413
  "messages": {
1280
1414
  "requiredFields": "An effective start date is required.",
1281
1415
  "saveSuccess": "Schedule adjustment submitted successfully.",