68 lines
1.8 KiB
PHP
68 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Flash;
|
|
use App\Models\Site;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Kwaadpepper\CrudPolicies\Traits\CrudController;
|
|
|
|
class FlashesController extends Controller
|
|
{
|
|
use CrudController;
|
|
|
|
/** @var Flash */
|
|
public static $modelClass = Flash::class;
|
|
|
|
// BO
|
|
|
|
// Eloquent callbacks
|
|
public function indexQuery(Builder $query): Builder
|
|
{
|
|
/** @var \App\Models\User */
|
|
$user = auth()->user();
|
|
$flashesID = \collect([]);
|
|
Site::whereId($user->selected_site_id)->with('flashes')
|
|
->get()->map(function (Site $site) use (&$flashesID) {
|
|
$flashesID = $flashesID->merge($site->flashes->pluck('id')->all());
|
|
});
|
|
return $query->whereIn('id', $flashesID->unique());
|
|
}
|
|
|
|
public function storeModel(Model &$model)
|
|
{
|
|
/** @var \App\Models\User */
|
|
$user = auth()->user();
|
|
$model->site_id = $user->selected_site_id;
|
|
$model->content = clean($model->content);
|
|
}
|
|
|
|
public function updateModel(Model &$model)
|
|
{
|
|
/** @var \App\Models\User */
|
|
$user = auth()->user();
|
|
$model->site_id = $user->selected_site_id;
|
|
$model->content = clean($model->content);
|
|
}
|
|
|
|
// FO
|
|
|
|
public function inform()
|
|
{
|
|
$flashes = $this->getEmployee()->getFlashes()
|
|
->filter(function (Flash $flash) {
|
|
return $flash->status;
|
|
});
|
|
return view('front.flashes.index', compact('flashes'));
|
|
}
|
|
|
|
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
|
|
public function informShow(Flash $flash)
|
|
{
|
|
if (!$flash->status) {
|
|
abort(404);
|
|
}
|
|
return view('front.flashes.show', compact('flash'));
|
|
}
|
|
}
|