no message

This commit is contained in:
StudioTem committed 2026-02-04 11:19:04 +01:00
1 parent 253d02c167
commit da05ab44da
2 files changed
+37 -12

No files matched your search

+25 -11
View File
@@ -1051,6 +1051,13 @@ export default {
return timesheet; return timesheet;
}); });
// Filter out existing attachments (from backend) and keep only new File objects
// Existing attachments have 'path' property, new files are File instances
const newFiles = (this.subtask.files || []).filter(
(file) => file instanceof File,
);
this.subtask.files = newFiles;
// Convert timeblocks from internal format to BE format for update // Convert timeblocks from internal format to BE format for update
// Filter out completely empty timeblocks AND timeblocks without all required fields // Filter out completely empty timeblocks AND timeblocks without all required fields
// Pre draft s multiple employees preskočiť - timeblocks sú v employees array // Pre draft s multiple employees preskočiť - timeblocks sú v employees array
@@ -1210,21 +1217,28 @@ export default {
}, },
_mergeDeadlineTimeDate() { _mergeDeadlineTimeDate() {
// Override for concept tasks which may not have a deadline time set (check for invalid date) // Check if deadline date is valid
if ( const isValidDate = !isNaN(new Date(this.subtask.deadline).getTime());
isNaN(new Date(this.subtask.deadline).getTime()) ||
!this.subtask._deadline_time
) {
this.subtask.deadline = null;
} else {
const date = new Date(this.subtask.deadline);
const timeParts = this.subtask._deadline_time.split(':');
if (!isValidDate) {
this.subtask.deadline = null;
return;
}
const date = new Date(this.subtask.deadline);
// If time is set, use it; otherwise use default time (23:59) for concepts
if (this.subtask._deadline_time) {
const timeParts = this.subtask._deadline_time.split(':');
date.setHours(parseInt(timeParts[0])); date.setHours(parseInt(timeParts[0]));
date.setMinutes(parseInt(timeParts[1])); date.setMinutes(parseInt(timeParts[1]));
} else {
this.subtask.deadline = date; // Default time for concepts without time specified
date.setHours(23);
date.setMinutes(59);
} }
this.subtask.deadline = date;
}, },
_filterValidEmployees(employees, isConcept) { _filterValidEmployees(employees, isConcept) {
+12 -1
View File
@@ -381,7 +381,18 @@ class SubTaskController extends Controller
} }
$data['data']['title'] = isset($request->all()['data']['title']) ? $request->all()['data']['title'] : null; $data['data']['title'] = isset($request->all()['data']['title']) ? $request->all()['data']['title'] : null;
$data['data']['deadline'] = isset($request->all()['data']['deadline']) ? $request->all()['data']['deadline'] : null; $data['data']['deadline'] = isset($request->all()['data']['deadline']) ? $request->all()['data']['deadline'] : null;
$data['data']['estimated_time'] = $request->all()['data']['duration'] ?? $subtask->estimated_time;
// Pre drafty s viacerými zamestnancami: prepočítaj estimated_time zo všetkých employees
if ($isDraftWithMultipleEmployees && $employeesData) {
$totalEstimatedTime = 0;
foreach ($employeesData as $employee) {
$totalEstimatedTime += $employee['duration'] ?? 0;
}
$data['data']['estimated_time'] = $totalEstimatedTime;
} else {
$data['data']['estimated_time'] = $request->all()['data']['duration'] ?? $subtask->estimated_time;
}
$data['data']['updated_by'] = User::getUserIdFromBearerToken($request->bearerToken()); $data['data']['updated_by'] = User::getUserIdFromBearerToken($request->bearerToken());
// publikovanie draftu // publikovanie draftu