LibraryItemWithoutLibrary

This commit is contained in:
Benjamin Takats
2023-01-22 12:33:54 +01:00
parent 19d9cfde22
commit 0216064035
2 changed files with 41 additions and 1 deletions

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Nova\Filters;
use Laravel\Nova\Filters\BooleanFilter;
use Laravel\Nova\Http\Requests\NovaRequest;
class LibraryItemWithoutLibrary extends BooleanFilter
{
/**
* Apply the filter to the given query.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
return $query->when($value['without'], fn($query) => $query->whereDoesntHave('libraries'));
}
/**
* Get the filter's available options.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
*
* @return array
*/
public function options(NovaRequest $request)
{
return [
'Library-Item without Library' => 'without',
];
}
}

View File

@@ -5,6 +5,7 @@ namespace App\Nova;
use App\Enums\LibraryItemType; use App\Enums\LibraryItemType;
use App\Notifications\ModelCreatedNotification; use App\Notifications\ModelCreatedNotification;
use App\Nova\Actions\SetStatusAction; use App\Nova\Actions\SetStatusAction;
use App\Nova\Filters\LibraryItemWithoutLibrary;
use Ebess\AdvancedNovaMediaLibrary\Fields\Files; use Ebess\AdvancedNovaMediaLibrary\Fields\Files;
use Ebess\AdvancedNovaMediaLibrary\Fields\Images; use Ebess\AdvancedNovaMediaLibrary\Fields\Images;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
@@ -196,7 +197,9 @@ class LibraryItem extends Resource
*/ */
public function filters(Request $request) public function filters(Request $request)
{ {
return []; return [
new LibraryItemWithoutLibrary()
];
} }
/** /**