@hed-hog/operations 0.0.303 → 0.0.304
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 +200 -43
- package/dist/controllers/operations-approvals.controller.d.ts +9 -0
- package/dist/controllers/operations-approvals.controller.d.ts.map +1 -0
- package/dist/controllers/operations-approvals.controller.js +64 -0
- package/dist/controllers/operations-approvals.controller.js.map +1 -0
- package/dist/controllers/operations-collaborators.controller.d.ts +223 -0
- package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -0
- package/dist/controllers/operations-collaborators.controller.js +96 -0
- package/dist/controllers/operations-collaborators.controller.js.map +1 -0
- package/dist/controllers/operations-contracts.controller.d.ts +683 -0
- package/dist/controllers/operations-contracts.controller.d.ts.map +1 -0
- package/dist/controllers/operations-contracts.controller.js +198 -0
- package/dist/controllers/operations-contracts.controller.js.map +1 -0
- package/dist/controllers/operations-org-structure.controller.d.ts +108 -0
- package/dist/controllers/operations-org-structure.controller.d.ts.map +1 -0
- package/dist/controllers/operations-org-structure.controller.js +143 -0
- package/dist/controllers/operations-org-structure.controller.js.map +1 -0
- package/dist/controllers/operations-projects.controller.d.ts +169 -0
- package/dist/controllers/operations-projects.controller.d.ts.map +1 -0
- package/dist/controllers/operations-projects.controller.js +87 -0
- package/dist/controllers/operations-projects.controller.js.map +1 -0
- package/dist/controllers/operations-tasks.controller.d.ts +54 -0
- package/dist/controllers/operations-tasks.controller.d.ts.map +1 -0
- package/dist/controllers/operations-tasks.controller.js +79 -0
- package/dist/controllers/operations-tasks.controller.js.map +1 -0
- package/dist/controllers/operations-timesheets.controller.d.ts +99 -0
- package/dist/controllers/operations-timesheets.controller.d.ts.map +1 -0
- package/dist/controllers/operations-timesheets.controller.js +154 -0
- package/dist/controllers/operations-timesheets.controller.js.map +1 -0
- package/dist/dto/create-collaborator-type.dto.d.ts +10 -0
- package/dist/dto/create-collaborator-type.dto.d.ts.map +1 -0
- package/dist/dto/create-collaborator-type.dto.js +56 -0
- package/dist/dto/create-collaborator-type.dto.js.map +1 -0
- package/dist/dto/create-collaborator.dto.d.ts +42 -0
- package/dist/dto/create-collaborator.dto.d.ts.map +1 -0
- package/dist/dto/create-collaborator.dto.js +228 -0
- package/dist/dto/create-collaborator.dto.js.map +1 -0
- package/dist/dto/create-schedule-adjustment-request.dto.d.ts +17 -0
- package/dist/dto/create-schedule-adjustment-request.dto.d.ts.map +1 -0
- package/dist/dto/create-schedule-adjustment-request.dto.js +89 -0
- package/dist/dto/create-schedule-adjustment-request.dto.js.map +1 -0
- package/dist/dto/create-task.dto.d.ts +8 -0
- package/dist/dto/create-task.dto.d.ts.map +1 -0
- package/dist/dto/create-task.dto.js +50 -0
- package/dist/dto/create-task.dto.js.map +1 -0
- package/dist/dto/create-time-off-request.dto.d.ts +9 -0
- package/dist/dto/create-time-off-request.dto.d.ts.map +1 -0
- package/dist/dto/create-time-off-request.dto.js +54 -0
- package/dist/dto/create-time-off-request.dto.js.map +1 -0
- package/dist/dto/create-timesheet-entry.dto.d.ts +12 -0
- package/dist/dto/create-timesheet-entry.dto.d.ts.map +1 -0
- package/dist/dto/create-timesheet-entry.dto.js +75 -0
- package/dist/dto/create-timesheet-entry.dto.js.map +1 -0
- package/dist/dto/list-collaborator-types.dto.d.ts +4 -0
- package/dist/dto/list-collaborator-types.dto.d.ts.map +1 -0
- package/dist/dto/list-collaborator-types.dto.js +29 -0
- package/dist/dto/list-collaborator-types.dto.js.map +1 -0
- package/dist/dto/list-collaborators.dto.d.ts +8 -0
- package/dist/dto/list-collaborators.dto.d.ts.map +1 -0
- package/dist/dto/list-collaborators.dto.js +42 -0
- package/dist/dto/list-collaborators.dto.js.map +1 -0
- package/dist/dto/list-project-options.dto.d.ts +4 -0
- package/dist/dto/list-project-options.dto.d.ts.map +1 -0
- package/dist/dto/list-project-options.dto.js +8 -0
- package/dist/dto/list-project-options.dto.js.map +1 -0
- package/dist/dto/list-tasks.dto.d.ts +7 -0
- package/dist/dto/list-tasks.dto.d.ts.map +1 -0
- package/dist/dto/list-tasks.dto.js +38 -0
- package/dist/dto/list-tasks.dto.js.map +1 -0
- package/dist/dto/list-timesheet-entries.dto.d.ts +10 -0
- package/dist/dto/list-timesheet-entries.dto.d.ts.map +1 -0
- package/dist/dto/list-timesheet-entries.dto.js +54 -0
- package/dist/dto/list-timesheet-entries.dto.js.map +1 -0
- package/dist/dto/update-collaborator-type.dto.d.ts +4 -0
- package/dist/dto/update-collaborator-type.dto.d.ts.map +1 -0
- package/dist/dto/update-collaborator-type.dto.js +8 -0
- package/dist/dto/update-collaborator-type.dto.js.map +1 -0
- package/dist/dto/update-collaborator.dto.d.ts +4 -0
- package/dist/dto/update-collaborator.dto.d.ts.map +1 -0
- package/dist/dto/update-collaborator.dto.js +8 -0
- package/dist/dto/update-collaborator.dto.js.map +1 -0
- package/dist/dto/update-task.dto.d.ts +8 -0
- package/dist/dto/update-task.dto.d.ts.map +1 -0
- package/dist/dto/update-task.dto.js +51 -0
- package/dist/dto/update-task.dto.js.map +1 -0
- package/dist/operations.controller.d.ts +0 -1045
- package/dist/operations.controller.d.ts.map +1 -1
- package/dist/operations.controller.js +0 -429
- package/dist/operations.controller.js.map +1 -1
- package/dist/operations.module.d.ts.map +1 -1
- package/dist/operations.module.js +23 -2
- package/dist/operations.module.js.map +1 -1
- package/dist/operations.service.d.ts +373 -8
- package/dist/operations.service.d.ts.map +1 -1
- package/dist/operations.service.js +1598 -111
- package/dist/operations.service.js.map +1 -1
- package/dist/operations.service.spec.js +315 -1
- package/dist/operations.service.spec.js.map +1 -1
- package/dist/services/shared/operations-access.service.d.ts +16 -0
- package/dist/services/shared/operations-access.service.d.ts.map +1 -0
- package/dist/services/shared/operations-access.service.js +48 -0
- package/dist/services/shared/operations-access.service.js.map +1 -0
- package/hedhog/data/dashboard.yaml +20 -0
- package/hedhog/data/dashboard_component.yaml +274 -0
- package/hedhog/data/dashboard_component_role.yaml +174 -0
- package/hedhog/data/dashboard_item.yaml +299 -0
- package/hedhog/data/dashboard_role.yaml +20 -0
- package/hedhog/data/menu.yaml +30 -13
- package/hedhog/data/operations_collaborator_type.yaml +76 -0
- package/hedhog/data/route.yaml +183 -0
- package/hedhog/frontend/app/_components/async-options-combobox.tsx.ejs +231 -0
- package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +134 -49
- package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +772 -93
- package/hedhog/frontend/app/_components/department-select-with-create.tsx.ejs +38 -16
- package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +875 -632
- package/hedhog/frontend/app/_components/timesheet-task-create-sheet.tsx.ejs +213 -0
- package/hedhog/frontend/app/_lib/api.ts.ejs +30 -1
- package/hedhog/frontend/app/_lib/types.ts.ejs +142 -39
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +33 -2
- package/hedhog/frontend/app/approvals/page.tsx.ejs +116 -98
- package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +502 -0
- package/hedhog/frontend/app/collaborators/page.tsx.ejs +109 -68
- package/hedhog/frontend/app/contracts/templates/page.tsx.ejs +11 -9
- package/hedhog/frontend/app/departments/page.tsx.ejs +1 -1
- package/hedhog/frontend/app/projects/page.tsx.ejs +5 -1
- package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +244 -120
- package/hedhog/frontend/app/team/page.tsx.ejs +15 -2
- package/hedhog/frontend/app/time-off/page.tsx.ejs +158 -82
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +814 -357
- package/hedhog/frontend/messages/en.json +243 -51
- package/hedhog/frontend/messages/pt.json +458 -268
- package/hedhog/table/operations_collaborator.yaml +26 -13
- package/hedhog/table/operations_collaborator_equity_participation.yaml +43 -0
- package/hedhog/table/operations_collaborator_type.yaml +33 -0
- package/hedhog/table/operations_job_title.yaml +24 -0
- package/hedhog/table/operations_project_assignment.yaml +9 -0
- package/hedhog/table/operations_project_role.yaml +39 -0
- package/hedhog/table/operations_task.yaml +30 -0
- package/hedhog/table/operations_timesheet_entry.yaml +12 -0
- package/package.json +6 -6
- package/src/controllers/operations-approvals.controller.ts +24 -0
- package/src/controllers/operations-collaborators.controller.ts +60 -0
- package/src/controllers/operations-contracts.controller.ts +138 -0
- package/src/controllers/operations-org-structure.controller.ts +92 -0
- package/src/controllers/operations-projects.controller.ts +50 -0
- package/src/controllers/operations-tasks.controller.ts +52 -0
- package/src/controllers/operations-timesheets.controller.ts +100 -0
- package/src/dto/create-collaborator-type.dto.ts +43 -0
- package/src/dto/create-collaborator.dto.ts +223 -0
- package/src/dto/create-schedule-adjustment-request.dto.ts +91 -0
- package/src/dto/create-task.dto.ts +35 -0
- package/src/dto/create-time-off-request.dto.ts +53 -0
- package/src/dto/create-timesheet-entry.dto.ts +67 -0
- package/src/dto/list-collaborator-types.dto.ts +15 -0
- package/src/dto/list-collaborators.dto.ts +30 -0
- package/src/dto/list-project-options.dto.ts +3 -0
- package/src/dto/list-tasks.dto.ts +25 -0
- package/src/dto/list-timesheet-entries.dto.ts +40 -0
- package/src/dto/update-collaborator-type.dto.ts +3 -0
- package/src/dto/update-collaborator.dto.ts +3 -0
- package/src/dto/update-task.dto.ts +36 -0
- package/src/operations.controller.ts +1 -278
- package/src/operations.module.ts +23 -2
- package/src/operations.service.spec.ts +450 -0
- package/src/operations.service.ts +4641 -2163
- package/src/services/shared/operations-access.service.ts +52 -0
|
@@ -39,6 +39,9 @@ type DepartmentSelectWithCreateProps = {
|
|
|
39
39
|
value?: string | null;
|
|
40
40
|
options: DepartmentOption[];
|
|
41
41
|
onChange: (department: DepartmentOption) => void;
|
|
42
|
+
onCreate?: (
|
|
43
|
+
departmentName: string
|
|
44
|
+
) => Promise<DepartmentOption | null | void> | DepartmentOption | null | void;
|
|
42
45
|
selectPlaceholder: string;
|
|
43
46
|
createDescription?: string;
|
|
44
47
|
createPlaceholder?: string;
|
|
@@ -50,6 +53,7 @@ export function DepartmentSelectWithCreate({
|
|
|
50
53
|
value,
|
|
51
54
|
options,
|
|
52
55
|
onChange,
|
|
56
|
+
onCreate,
|
|
53
57
|
selectPlaceholder,
|
|
54
58
|
createDescription,
|
|
55
59
|
createPlaceholder,
|
|
@@ -60,6 +64,7 @@ export function DepartmentSelectWithCreate({
|
|
|
60
64
|
const [search, setSearch] = useState('');
|
|
61
65
|
const [createOpen, setCreateOpen] = useState(false);
|
|
62
66
|
const [newDepartment, setNewDepartment] = useState('');
|
|
67
|
+
const [isCreating, setIsCreating] = useState(false);
|
|
63
68
|
const [visibleCount, setVisibleCount] = useState(20);
|
|
64
69
|
const parentScrollContainerRef = useRef<HTMLElement | null>(null);
|
|
65
70
|
const parentScrollTopRef = useRef(0);
|
|
@@ -153,21 +158,38 @@ export function DepartmentSelectWithCreate({
|
|
|
153
158
|
setTimeout(restore, 120);
|
|
154
159
|
};
|
|
155
160
|
|
|
156
|
-
const saveDepartment = () => {
|
|
161
|
+
const saveDepartment = async () => {
|
|
157
162
|
const normalizedDepartment = newDepartment.trim();
|
|
158
163
|
|
|
159
|
-
if (!normalizedDepartment) {
|
|
164
|
+
if (!normalizedDepartment || isCreating) {
|
|
160
165
|
return;
|
|
161
166
|
}
|
|
162
167
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
168
|
+
setIsCreating(true);
|
|
169
|
+
|
|
170
|
+
try {
|
|
171
|
+
const nextOption = onCreate
|
|
172
|
+
? await onCreate(normalizedDepartment)
|
|
173
|
+
: {
|
|
174
|
+
id: null,
|
|
175
|
+
name: normalizedDepartment,
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
if (!nextOption?.name?.trim()) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
onChange({
|
|
183
|
+
...nextOption,
|
|
184
|
+
name: nextOption.name.trim(),
|
|
185
|
+
});
|
|
186
|
+
setNewDepartment('');
|
|
187
|
+
setSearch(nextOption.name.trim());
|
|
188
|
+
setCreateOpen(false);
|
|
189
|
+
setOpen(false);
|
|
190
|
+
} finally {
|
|
191
|
+
setIsCreating(false);
|
|
192
|
+
}
|
|
171
193
|
};
|
|
172
194
|
|
|
173
195
|
return (
|
|
@@ -189,7 +211,7 @@ export function DepartmentSelectWithCreate({
|
|
|
189
211
|
type="button"
|
|
190
212
|
variant="outline"
|
|
191
213
|
role="combobox"
|
|
192
|
-
disabled={disabled}
|
|
214
|
+
disabled={disabled || isCreating}
|
|
193
215
|
className="h-10 flex-1 min-w-0 justify-between overflow-hidden"
|
|
194
216
|
>
|
|
195
217
|
<span className="truncate text-left">
|
|
@@ -283,7 +305,7 @@ export function DepartmentSelectWithCreate({
|
|
|
283
305
|
variant="outline"
|
|
284
306
|
size="icon"
|
|
285
307
|
className="h-10 w-10 shrink-0"
|
|
286
|
-
disabled={disabled}
|
|
308
|
+
disabled={disabled || isCreating}
|
|
287
309
|
onClick={() => {
|
|
288
310
|
onChange({ id: null, name: '' });
|
|
289
311
|
setSearch('');
|
|
@@ -301,7 +323,7 @@ export function DepartmentSelectWithCreate({
|
|
|
301
323
|
variant="outline"
|
|
302
324
|
size="icon"
|
|
303
325
|
className="h-10 w-10 shrink-0"
|
|
304
|
-
disabled={disabled}
|
|
326
|
+
disabled={disabled || isCreating}
|
|
305
327
|
onClick={(event) => {
|
|
306
328
|
captureParentScrollPosition(event.currentTarget);
|
|
307
329
|
setNewDepartment(normalizedValue);
|
|
@@ -348,7 +370,7 @@ export function DepartmentSelectWithCreate({
|
|
|
348
370
|
onKeyDown={(event) => {
|
|
349
371
|
if (event.key === 'Enter') {
|
|
350
372
|
event.preventDefault();
|
|
351
|
-
saveDepartment();
|
|
373
|
+
void saveDepartment();
|
|
352
374
|
}
|
|
353
375
|
}}
|
|
354
376
|
/>
|
|
@@ -357,8 +379,8 @@ export function DepartmentSelectWithCreate({
|
|
|
357
379
|
<Button
|
|
358
380
|
type="button"
|
|
359
381
|
className="w-full"
|
|
360
|
-
disabled={!newDepartment.trim()}
|
|
361
|
-
onClick={saveDepartment}
|
|
382
|
+
disabled={!newDepartment.trim() || isCreating}
|
|
383
|
+
onClick={() => void saveDepartment()}
|
|
362
384
|
>
|
|
363
385
|
{commonT('actions.save')}
|
|
364
386
|
</Button>
|