Added ability to do full name search in user dropdown selectlist

This commit is contained in:
snipe 2019-03-05 20:40:05 -08:00
parent 1393f44070
commit f065bd7784
2 changed files with 20 additions and 2 deletions

View file

@ -148,8 +148,7 @@ class UsersController extends Controller
$users = Company::scopeCompanyables($users); $users = Company::scopeCompanyables($users);
if ($request->has('search')) { if ($request->has('search')) {
$users = $users->where('first_name', 'LIKE', '%'.$request->get('search').'%') $users = $users->SimpleNameSearch($request->get('search'))
->orWhere('last_name', 'LIKE', '%'.$request->get('search').'%')
->orWhere('username', 'LIKE', '%'.$request->get('search').'%') ->orWhere('username', 'LIKE', '%'.$request->get('search').'%')
->orWhere('employee_num', 'LIKE', '%'.$request->get('search').'%'); ->orWhere('employee_num', 'LIKE', '%'.$request->get('search').'%');
} }

View file

@ -413,6 +413,25 @@ class User extends SnipeModel implements AuthenticatableContract, CanResetPasswo
return json_decode($this->permissions, true); 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. * Run additional, advanced searches.
* *