diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index c120661db7c7..20a7b39c2934 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -1,5 +1,6 @@ layout = View::make($this->layout); } } + + protected function returnBulk($entityType, $action, $ids) + { + $isDatatable = filter_var(request()->datatable, FILTER_VALIDATE_BOOLEAN); + $entityTypes = Utils::pluralizeEntityType($entityType); + + if ($action == 'restore' && count($ids) == 1) { + return redirect("{$entityTypes}/" . $ids[0]); + } elseif ($isDatatable || ($action == 'archive' || $action == 'delete')) { + return redirect("{$entityTypes}"); + } elseif (count($ids)) { + return redirect("{$entityTypes}/" . $ids[0]); + } else { + return redirect("{$entityTypes}"); + } + } } diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index b964f49206a3..c4d69f219c0f 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -221,10 +221,6 @@ class ClientController extends BaseController $message = Utils::pluralize($action.'d_client', $count); Session::flash('message', $message); - if ($action == 'restore' && $count == 1) { - return Redirect::to('clients/'.Utils::getFirst($ids)); - } else { - return Redirect::to('clients'); - } + return $this->returnBulk(ENTITY_CLIENT, $action, $ids); } } diff --git a/app/Http/Controllers/ExpenseController.php b/app/Http/Controllers/ExpenseController.php index 97ab3adb7b31..7c8459c051a9 100644 --- a/app/Http/Controllers/ExpenseController.php +++ b/app/Http/Controllers/ExpenseController.php @@ -245,7 +245,7 @@ class ExpenseController extends BaseController Session::flash('message', $message); } - return Redirect::to('expenses'); + return $this->returnBulk($this->entityType, $action, $ids); } private static function getViewModel() diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 4279a1cd6a45..da8ed5daad70 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -531,11 +531,7 @@ class InvoiceController extends BaseController Session::flash('message', $message); } - if ($action == 'restore' && $count == 1) { - return Redirect::to("{$entityType}s/".Utils::getFirst($ids)); - } else { - return Redirect::to("{$entityType}s"); - } + return $this->returnBulk($entityType, $action, $ids); } public function convertQuote(InvoiceRequest $request) @@ -615,7 +611,7 @@ class InvoiceController extends BaseController public function checkInvoiceNumber() { $invoiceNumber = request()->invoice_number; - + $count = Invoice::scope() ->whereInvoiceNumber($invoiceNumber) ->withTrashed() diff --git a/app/Http/Controllers/QuoteController.php b/app/Http/Controllers/QuoteController.php index a9719798a1b2..c8c952debe46 100644 --- a/app/Http/Controllers/QuoteController.php +++ b/app/Http/Controllers/QuoteController.php @@ -154,11 +154,7 @@ class QuoteController extends BaseController Session::flash('message', $message); } - if ($action == 'restore' && $count == 1) { - return Redirect::to('quotes/'.Utils::getFirst($ids)); - } else { - return Redirect::to('quotes'); - } + return $this->returnBulk(ENTITY_QUOTE, $action, $ids); } public function approve($invitationKey) diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php index 42099026eb67..b18fbc5c7a17 100644 --- a/app/Http/Controllers/TaskController.php +++ b/app/Http/Controllers/TaskController.php @@ -300,11 +300,7 @@ class TaskController extends BaseController $message = Utils::pluralize($action.'d_task', $count); Session::flash('message', $message); - if ($action == 'restore' && $count == 1) { - return Redirect::to('tasks/'.$ids[0].'/edit'); - } else { - return Redirect::to('tasks'); - } + return $this->returnBulk($this->entityType, $action, $ids); } } diff --git a/app/Http/Controllers/VendorController.php b/app/Http/Controllers/VendorController.php index 280f788b5282..f1bd21e98452 100644 --- a/app/Http/Controllers/VendorController.php +++ b/app/Http/Controllers/VendorController.php @@ -81,7 +81,7 @@ class VendorController extends BaseController public function show(VendorRequest $request) { $vendor = $request->entity(); - + $actionLinks = [ ['label' => trans('texts.new_vendor'), 'url' => URL::to('/vendors/create/' . $vendor->public_id)] ]; @@ -185,10 +185,6 @@ class VendorController extends BaseController $message = Utils::pluralize($action.'d_vendor', $count); Session::flash('message', $message); - if ($action == 'restore' && $count == 1) { - return Redirect::to('vendors/' . Utils::getFirst($ids)); - } else { - return Redirect::to('vendors'); - } + return $this->returnBulk($this->entityType, $action, $ids); } } diff --git a/resources/views/list.blade.php b/resources/views/list.blade.php index fb4fbcec2015..ca8bc2851879 100644 --- a/resources/views/list.blade.php +++ b/resources/views/list.blade.php @@ -7,6 +7,7 @@
@can('create', 'invoice') @@ -88,7 +89,7 @@ @endif {!! Former::close() !!} - +