mirror of
https://github.com/openclassify/openclassify.git
synced 2026-02-10 07:16:06 -06:00
Merge pull request #391 from openclassify/dia
#1059 GSM filter in admin user panel
This commit is contained in:
commit
654a9359d1
@ -7,4 +7,7 @@ return [
|
|||||||
'view_site' => 'View Site',
|
'view_site' => 'View Site',
|
||||||
'title' => 'Control Panel',
|
'title' => 'Control Panel',
|
||||||
'search_placeholder' => 'Type to search',
|
'search_placeholder' => 'Type to search',
|
||||||
|
|
||||||
|
// Users Module
|
||||||
|
'search_by_gsm_number' => 'Search By GSM Number',
|
||||||
];
|
];
|
||||||
|
|||||||
@ -2,9 +2,11 @@
|
|||||||
|
|
||||||
use Anomaly\Streams\Platform\Addon\AddonServiceProvider;
|
use Anomaly\Streams\Platform\Addon\AddonServiceProvider;
|
||||||
use Anomaly\Streams\Platform\Ui\ControlPanel\Component\Navigation\Event\SortNavigation;
|
use Anomaly\Streams\Platform\Ui\ControlPanel\Component\Navigation\Event\SortNavigation;
|
||||||
|
use Anomaly\Streams\Platform\Ui\Table\Event\TableIsQuerying;
|
||||||
use Illuminate\Pagination\AbstractPaginator;
|
use Illuminate\Pagination\AbstractPaginator;
|
||||||
use Visiosoft\DefaultadminTheme\Http\Controller\Admin\PreferencesController;
|
use Visiosoft\DefaultadminTheme\Http\Controller\Admin\PreferencesController;
|
||||||
use Visiosoft\DefaultadminTheme\Http\Controller\Admin\SettingsController;
|
use Visiosoft\DefaultadminTheme\Http\Controller\Admin\SettingsController;
|
||||||
|
use Visiosoft\DefaultadminTheme\Listener\AddGsmFilter;
|
||||||
use Visiosoft\DefaultadminTheme\Listener\ApplySorting;
|
use Visiosoft\DefaultadminTheme\Listener\ApplySorting;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -26,6 +28,9 @@ class DefaultadminThemeServiceProvider extends AddonServiceProvider
|
|||||||
SortNavigation::class => [
|
SortNavigation::class => [
|
||||||
ApplySorting::class,
|
ApplySorting::class,
|
||||||
],
|
],
|
||||||
|
TableIsQuerying::class => [
|
||||||
|
AddGsmFilter::class
|
||||||
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,67 @@
|
|||||||
|
<?php namespace Visiosoft\DefaultadminTheme\Listener;
|
||||||
|
|
||||||
|
use Anomaly\Streams\Platform\Ui\Table\Component\Filter\Type\SearchFilter;
|
||||||
|
use Anomaly\Streams\Platform\Ui\Table\Event\TableIsQuerying;
|
||||||
|
use Anomaly\UsersModule\User\Contract\UserRepositoryInterface;
|
||||||
|
use Anomaly\UsersModule\User\Table\UserTableBuilder;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
|
class AddGsmFilter
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var UserRepositoryInterface
|
||||||
|
*/
|
||||||
|
protected $userRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AddGsmFilter constructor.
|
||||||
|
* @param UserRepositoryInterface $userRepository
|
||||||
|
*/
|
||||||
|
public function __construct(UserRepositoryInterface $userRepository)
|
||||||
|
{
|
||||||
|
$this->userRepository = $userRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param TableIsQuerying $event
|
||||||
|
*/
|
||||||
|
public function handle(TableIsQuerying $event)
|
||||||
|
{
|
||||||
|
$builder = $event->getBuilder();
|
||||||
|
$query = $event->getQuery();
|
||||||
|
|
||||||
|
if (get_class($builder) == UserTableBuilder::class) {
|
||||||
|
$this->addGsmFilter($builder);
|
||||||
|
$this->getFilteredQuery($query);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a filter for gsm phone.
|
||||||
|
*
|
||||||
|
* @param UserTableBuilder $builder
|
||||||
|
*/
|
||||||
|
protected function addGsmFilter(UserTableBuilder $builder)
|
||||||
|
{
|
||||||
|
$filter = new SearchFilter();
|
||||||
|
$filter->setPlaceholder(trans('visiosoft.theme.defaultadmin::control_panel.search_by_gsm_number'));
|
||||||
|
$filter->setSlug('gsm_phone');
|
||||||
|
|
||||||
|
$builder->getTable()->addFilter($filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter by gsm phone if present in request.
|
||||||
|
*
|
||||||
|
* @param Builder $query
|
||||||
|
* @return Builder
|
||||||
|
*/
|
||||||
|
protected function getFilteredQuery(Builder $query)
|
||||||
|
{
|
||||||
|
if ($filterGsmPhone = request('filter_gsm_phone')) {
|
||||||
|
$query->where('gsm_phone', 'LIKE', '%' . preg_replace('/\s+/', '', $filterGsmPhone) . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user