This commit is contained in:
2025-09-25 03:03:31 +05:00
commit ae480cf2f6
2768 changed files with 1485826 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Nova\Filters;
use App\Models\System\Settings\OS;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;
class AppTypeFilter extends Filter
{
/**
* The filter's component.
*
* @var string
*/
public $component = 'select-filter';
/**
* Apply the filter to the given query.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
return $value
? $query->where('app', $value)
: $query;
}
/**
* Get the filter's available options.
*/
public function options(NovaRequest $request): array
{
return array_flip(OS::apps());
}
}

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Nova\Filters;
use App\Models\System\Settings\Location\Region;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;
class RegionFilter extends Filter
{
/**
* The filter's component.
*
* @var string
*/
public $component = 'select-filter';
/**
* Get the displayable name of the filter.
*/
public function name(): string
{
return __('Region');
}
/**
* Apply the filter to the given query.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
return $value ? $query->where('region', $value) : $query;
}
/**
* Get the filter's available options.
*
* @return array
*/
public function options(NovaRequest $request)
{
return array_flip(Region::values());
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Nova\Filters;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;
class ResourceLimitFilter extends Filter
{
/**
* The filter's component.
*
* @var string
*/
public $component = 'select-filter';
/**
* Resource
*/
public function __construct(
protected $resource
) {
//...
}
/**
* Apply the filter to the given query.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
return $query;
}
/**
* Get the filter's available options.
*/
public function options(NovaRequest $request): array
{
return $this->resource::perPageOptions();
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Nova\Filters;
use App\Models\Ecommerce\Product\Order\Status\OrderStatus;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;
class StatusFilter extends Filter
{
/**
* The filter's component.
*
* @var string
*/
public $component = 'select-filter';
/**
* Get the displayable name of the filter.
*/
public function name(): string
{
return __('Status');
}
/**
* Apply the filter to the given query.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
return $value ? $query->where('status', $value) : $query;
}
/**
* Get the filter's available options.
*/
public function options(NovaRequest $request): array
{
return array_flip(OrderStatus::values());
}
}

View File

@@ -0,0 +1,49 @@
<?php
namespace App\Nova\Filters;
use App\Models\System\Roles\Role;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;
class UserRoleFilter extends Filter
{
/**
* The filter's component.
*
* @var string
*/
public $component = 'select-filter';
/**
* Get the displayable name of the filter.
*/
public function name(): string
{
return __('Role');
}
/**
* Apply the filter to the given query.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
return $value
? $query->join('model_has_roles', 'id', '=', 'model_id')->where('role_id', $value)
: $query;
}
/**
* Get the filter's available options.
*
* @return array
*/
public function options(NovaRequest $request)
{
return Role::pluck('name', 'id')->map(fn ($data) => __($data))->flip();
}
}

View File

@@ -0,0 +1,49 @@
<?php
namespace App\Nova\Filters;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;
class VerifiedUsersFilter extends Filter
{
/**
* The filter's component.
*
* @var string
*/
public $component = 'select-filter';
/**
* Get the displayable name of the filter.
*/
public function name(): string
{
return __('Verified user');
}
/**
* Apply the filter to the given query.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
return $value
? $query->where('verified', $value)
: $query;
}
/**
* Get the filter's available options.
*/
public function options(NovaRequest $request): array
{
return [
__('Verified') => true,
__('Unverified') => false,
];
}
}

View File

@@ -0,0 +1,53 @@
<?php
namespace App\Nova\Filters;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;
class VisableFilter extends Filter
{
/**
* The filter's component.
*
* @var string
*/
public $component = 'select-filter';
/**
* Get the displayable name of the filter.
*/
public function name(): string
{
return __('Visability');
}
/**
* Apply the filter to the given query.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(NovaRequest $request, $query, $value)
{
if ($value) {
return $query->where('is_visible', $value);
}
return $query;
}
/**
* Get the filter's available options.
*
* @return array
*/
public function options(NovaRequest $request)
{
return [
__('Visible') => true,
__('Hidden') => false,
];
}
}