Logic changes for confirmation dialog

This commit changes the deletion mechanism for forms. Currently, it sets the wanted deletion ID to the session, and redirects the user to the previous page, to open a confirmation dialog for deletion.
This commit is contained in:
Miguel N 2021-01-27 02:23:30 +00:00
parent 9c597eeb65
commit d234415d38
1 changed files with 20 additions and 0 deletions

View File

@ -82,6 +82,23 @@ class FormController extends Controller
public function destroy(Request $request, Form $form) public function destroy(Request $request, Form $form)
{ {
$this->authorize('delete', $form); $this->authorize('delete', $form);
$request->session()->put('pendingObjectID', $form->id);
$request->session()->put('openConfirmationDialog', true);
return redirect()->back();
}
public function performConfirmedDeletion(Request $request, Form $form)
{
$this->authorize('delete', $form);
if (!$request->has('confirmed') && $request->confirmed !== 'yes')
{
$request->session()->flash('error', 'You must confirm this action.');
return redirect()->back();
}
$deletable = true; $deletable = true;
if (! is_null($form) && ! is_null($form->vacancies) && $form->vacancies->count() !== 0 || ! is_null($form->responses)) { if (! is_null($form) && ! is_null($form->vacancies) && $form->vacancies->count() !== 0 || ! is_null($form->responses)) {
@ -96,6 +113,9 @@ class FormController extends Controller
$request->session()->flash('error', 'You cannot delete this form because it\'s tied to one or more applications and ranks, or because it doesn\'t exist.'); $request->session()->flash('error', 'You cannot delete this form because it\'s tied to one or more applications and ranks, or because it doesn\'t exist.');
} }
$request->session()->forget('pendingObjectID');
$request->session()->forget('openConfirmationDialog');
return redirect()->back(); return redirect()->back();
} }