invoiceninja/app/Http/Controllers/BaseController.php

54 lines
1.5 KiB
PHP
Raw Normal View History

2017-01-30 21:40:43 +02:00
<?php
namespace App\Http\Controllers;
2015-03-17 07:45:25 +10:00
2016-04-25 21:53:39 -04:00
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
2017-01-30 21:40:43 +02:00
use Illuminate\Foundation\Bus\DispatchesJobs;
use Request;
use Utils;
2015-10-28 21:22:07 +02:00
2015-03-17 07:45:25 +10:00
class BaseController extends Controller
{
2016-04-25 21:53:39 -04:00
use DispatchesJobs, AuthorizesRequests;
2016-05-15 13:58:11 +03:00
2016-04-28 15:16:33 +03:00
protected $entityType;
2015-10-28 21:22:07 +02:00
2015-03-17 07:45:25 +10:00
/**
* Setup the layout used by the controller.
*
* @return void
*/
protected function setupLayout()
{
if (! is_null($this->layout)) {
$this->layout = View::make($this->layout);
}
}
2016-09-19 16:30:46 +03:00
protected function returnBulk($entityType, $action, $ids)
{
2017-01-30 18:05:31 +02:00
if (! is_array($ids)) {
$ids = [$ids];
}
2016-11-25 12:53:35 +02:00
2016-09-19 16:30:46 +03:00
$isDatatable = filter_var(request()->datatable, FILTER_VALIDATE_BOOLEAN);
2016-11-25 12:53:35 +02:00
$referer = Request::server('HTTP_REFERER');
2016-09-19 16:30:46 +03:00
$entityTypes = Utils::pluralizeEntityType($entityType);
2016-11-25 12:53:35 +02:00
// when restoring redirect to entity
2016-11-25 16:02:39 +02:00
if ($action == 'restore' && count($ids) == 1) {
return redirect("{$entityTypes}/" . $ids[0]);
2016-11-25 12:53:35 +02:00
// when viewing from a datatable list
2017-12-25 12:39:00 +02:00
} elseif (strpos($referer, '/clients/') || strpos($referer, '/projects/')) {
2016-11-25 16:02:39 +02:00
return redirect($referer);
2016-09-19 16:30:46 +03:00
} elseif ($isDatatable || ($action == 'archive' || $action == 'delete')) {
return redirect("{$entityTypes}");
2016-11-25 12:53:35 +02:00
// when viewing individual entity
2016-09-19 16:30:46 +03:00
} elseif (count($ids)) {
return redirect("{$entityTypes}/" . $ids[0] . '/edit');
2016-09-19 16:30:46 +03:00
} else {
return redirect("{$entityTypes}");
}
}
2015-03-17 07:45:25 +10:00
}