From 28a450ea2557ea7d7179e15d51d56b80a90e448f Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 5 Mar 2019 21:13:39 -0800 Subject: [PATCH 1/2] Added ability to do full name search in user dropdown selectlist (#6784) --- app/Http/Controllers/Api/UsersController.php | 3 +-- app/Models/User.php | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 8783679b9b..e91ae8f676 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -148,8 +148,7 @@ class UsersController extends Controller $users = Company::scopeCompanyables($users); if ($request->has('search')) { - $users = $users->where('first_name', 'LIKE', '%'.$request->get('search').'%') - ->orWhere('last_name', 'LIKE', '%'.$request->get('search').'%') + $users = $users->SimpleNameSearch($request->get('search')) ->orWhere('username', 'LIKE', '%'.$request->get('search').'%') ->orWhere('employee_num', 'LIKE', '%'.$request->get('search').'%'); } diff --git a/app/Models/User.php b/app/Models/User.php index c783bdbba5..15e29657d7 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -413,6 +413,25 @@ class User extends SnipeModel implements AuthenticatableContract, CanResetPasswo return json_decode($this->permissions, true); } + /** + * Query builder scope to search user by name with spaces in it. + * We don't use the advancedTextSearch() scope because that searches + * all of the relations as well, which is more than what we need. + * + * @param \Illuminate\Database\Query\Builder $query Query builder instance + * @param array $terms The search terms + * @return \Illuminate\Database\Query\Builder + */ + public function scopeSimpleNameSearch($query, $search) { + + $query = $query->where('first_name', 'LIKE', '%'.$search.'%') + ->orWhere('last_name', 'LIKE', '%'.$search.'%') + ->orWhereRaw('CONCAT('.DB::getTablePrefix().'users.first_name," ",'.DB::getTablePrefix().'users.last_name) LIKE ?', ["%$search%", "%$search%"]); + return $query; + } + + + /** * Run additional, advanced searches. * From 3b41aa52c88da47e2a4734efa43fc9a21f551d91 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 5 Mar 2019 23:20:16 -0800 Subject: [PATCH 2/2] Added ability to search consumables by item number Fixes ch1086 --- app/Models/Consumable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Consumable.php b/app/Models/Consumable.php index 55bfb8aae6..0a310d77b1 100644 --- a/app/Models/Consumable.php +++ b/app/Models/Consumable.php @@ -76,7 +76,7 @@ class Consumable extends SnipeModel * * @var array */ - protected $searchableAttributes = ['name', 'order_number', 'purchase_cost', 'purchase_date']; + protected $searchableAttributes = ['name', 'order_number', 'purchase_cost', 'purchase_date', 'item_no']; /** * The relations and their attributes that should be included when searching the model.