diff --git a/modules/helpdesk/i18n/default_de.json b/modules/helpdesk/i18n/default_de.json index 4339423..b7bf96c 100644 --- a/modules/helpdesk/i18n/default_de.json +++ b/modules/helpdesk/i18n/default_de.json @@ -595,5 +595,8 @@ "Create and assign": "Erstellen & zuweisen", "Handover created and assigned": "Übergabe erstellt und zugewiesen", "No active employees found.": "Keine aktiven Mitarbeiter gefunden.", - "Please select an employee to assign": "Bitte wählen Sie einen Mitarbeiter aus" + "Please select an employee to assign": "Bitte wählen Sie einen Mitarbeiter aus", + "Delete handover": "Übergabe löschen", + "Delete this handover?": "Diese Übergabe löschen?", + "Handover deleted": "Übergabe gelöscht" } diff --git a/modules/helpdesk/i18n/default_en.json b/modules/helpdesk/i18n/default_en.json index f5a067f..0e0d0b6 100644 --- a/modules/helpdesk/i18n/default_en.json +++ b/modules/helpdesk/i18n/default_en.json @@ -595,5 +595,8 @@ "Create and assign": "Create and assign", "Handover created and assigned": "Handover created and assigned", "No active employees found.": "No active employees found.", - "Please select an employee to assign": "Please select an employee to assign" + "Please select an employee to assign": "Please select an employee to assign", + "Delete handover": "Delete handover", + "Delete this handover?": "Delete this handover?", + "Handover deleted": "Handover deleted" } diff --git a/modules/helpdesk/pages/helpdesk/handovers/create().php b/modules/helpdesk/pages/helpdesk/handovers/create().php index 9261517..a76eed1 100644 --- a/modules/helpdesk/pages/helpdesk/handovers/create().php +++ b/modules/helpdesk/pages/helpdesk/handovers/create().php @@ -186,7 +186,7 @@ if ($step === $formStep) { $sessionStore->remove($sessionKey); $listUrl = lurl('helpdesk/handovers'); - Flash::success(t('Handover created and assigned'), $listUrl, 'handover_created'); + Flash::success(t('Handover created and assigned'), null, 'handover_created'); Router::redirect($listUrl); return; } diff --git a/modules/helpdesk/pages/helpdesk/handovers/edit($id).php b/modules/helpdesk/pages/helpdesk/handovers/edit($id).php index 8e4a033..60ea2ce 100644 --- a/modules/helpdesk/pages/helpdesk/handovers/edit($id).php +++ b/modules/helpdesk/pages/helpdesk/handovers/edit($id).php @@ -61,6 +61,30 @@ if (!is_array($fieldValues)) { $errorBag = formErrors(); +// Handle delete POST +if ($request->isMethod('POST') && (string) $request->body('action', '') === 'delete') { + if (!Session::checkCsrfToken()) { + Flash::error(t('Form expired, please try again'), $editTarget, 'csrf_expired'); + Router::redirect($editTarget); + return; + } + + if (!$canManage) { + Flash::error(t('Only managers can delete handovers'), $closeTarget, 'delete_denied'); + Router::redirect($closeTarget); + return; + } + + $deleteResult = $service->deleteByIds($tenantId, [$handoverId], HandoverService::PERMISSION_MANAGE); + if ($deleteResult['ok']) { + Flash::success(t('Handover deleted'), null, 'handover_deleted'); + } else { + Flash::error($deleteResult['error'] ?? t('Failed to delete handovers'), null, 'delete_failed'); + } + Router::redirect($closeTarget); + return; +} + // Handle submit-for-review POST if ($request->isMethod('POST') && (string) $request->body('action', '') === 'submit_for_review') { if (!Session::checkCsrfToken()) { diff --git a/modules/helpdesk/pages/helpdesk/handovers/edit(default).phtml b/modules/helpdesk/pages/helpdesk/handovers/edit(default).phtml index 67e0c72..0e79622 100644 --- a/modules/helpdesk/pages/helpdesk/handovers/edit(default).phtml +++ b/modules/helpdesk/pages/helpdesk/handovers/edit(default).phtml @@ -201,6 +201,23 @@ $editBasePath = $editBasePath ?? ('helpdesk/handovers/edit/' . ($handover['id'] + +
+
+ + + +
+ +