From 698ea36cc2326029480e6b0e0d1275ead8bfc209 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 21 Feb 2018 05:09:40 -0800 Subject: [PATCH] Added - Order location by manager --- app/Http/Controllers/Api/LocationsController.php | 3 +++ app/Models/Location.php | 13 +++++++++++++ app/Presenters/LocationPresenter.php | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/LocationsController.php b/app/Http/Controllers/Api/LocationsController.php index 5e8b73b086..e1578aef82 100644 --- a/app/Http/Controllers/Api/LocationsController.php +++ b/app/Http/Controllers/Api/LocationsController.php @@ -60,6 +60,9 @@ class LocationsController extends Controller case 'parent': $locations->OrderParent($order); break; + case 'manager': + $locations->OrderManager($order); + break; default: $locations->orderBy($sort, $order); break; diff --git a/app/Models/Location.php b/app/Models/Location.php index 1ef5fe8cd6..75b1b86289 100755 --- a/app/Models/Location.php +++ b/app/Models/Location.php @@ -205,4 +205,17 @@ class Location extends SnipeModel // Left join here, or it will only return results with parents return $query->leftJoin('locations as parent_loc', 'locations.parent_id', '=', 'parent_loc.id')->orderBy('parent_loc.name', $order); } + + /** + * Query builder scope to order on manager name + * + * @param \Illuminate\Database\Query\Builder $query Query builder instance + * @param text $order Order + * + * @return \Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeOrderManager($query, $order) + { + return $query->leftJoin('users as location_user', 'locations.manager_id', '=', 'location_user.id')->orderBy('location_user.first_name', $order)->orderBy('location_user.last_name', $order); + } } diff --git a/app/Presenters/LocationPresenter.php b/app/Presenters/LocationPresenter.php index 8d3d27f501..3fc225514a 100644 --- a/app/Presenters/LocationPresenter.php +++ b/app/Presenters/LocationPresenter.php @@ -128,7 +128,7 @@ class LocationPresenter extends Presenter ],[ "field" => "manager", "searchable" => false, - "sortable" => false, + "sortable" => true, "switchable" => true, "title" => trans('admin/users/table.manager'), "visible" => false,