From 5519e2d4ae86615d39e1eb3a0f1b4d1e32a19390 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 18 Oct 2017 09:27:34 -0700 Subject: [PATCH] Fixes custom fields sorting on asset listings I need a silkwood shower :( --- app/Http/Controllers/Api/AssetsController.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Api/AssetsController.php b/app/Http/Controllers/Api/AssetsController.php index acc3eb022..c1501e216 100644 --- a/app/Http/Controllers/Api/AssetsController.php +++ b/app/Http/Controllers/Api/AssetsController.php @@ -196,11 +196,17 @@ class AssetsController extends Controller } + // This is kinda gross, but we need to do this because the Bootstrap Tables + // API passes custom field ordering as custom_fields.fieldname, and we have to strip + // that out to let the default sorter below order them correctly on the assets table. + $sort_override = str_replace('custom_fields.','', $request->input('sort')) ; - // This handles all of the pivot sorting (versus the assets.* fields in the allowed_columns array) - $column_sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'assets.created_at'; - - switch ($request->input('sort')) { + // This handles all of the pivot sorting (versus the assets.* fields + // in the allowed_columns array) + $column_sort = in_array($sort_override, $allowed_columns) ? $sort_override : 'assets.created_at'; + + + switch ($sort_override) { case 'model': $assets->OrderModels($order); break;