diff --git a/app/Domains/Contact/ManageContact/Web/Controllers/ContactController.php b/app/Domains/Contact/ManageContact/Web/Controllers/ContactController.php index 9e8a1ff69de..e453dcb987e 100644 --- a/app/Domains/Contact/ManageContact/Web/Controllers/ContactController.php +++ b/app/Domains/Contact/ManageContact/Web/Controllers/ContactController.php @@ -21,6 +21,8 @@ use Illuminate\Support\Facades\Gate; use Inertia\Inertia; +use function Safe\preg_replace; + class ContactController extends Controller { public function index(Request $request, Vault $vault) @@ -28,12 +30,14 @@ public function index(Request $request, Vault $vault) $contacts = $vault->contacts() ->where('listed', true); + $column_to_order = preg_replace('/^%([a-z_]+)%.*$/', '$1', Auth::user()->name_order); + switch (Auth::user()->contact_sort_order) { case User::CONTACT_SORT_ORDER_ASC: - $contacts = $contacts->orderBy('last_name', 'asc'); + $contacts = $contacts->orderBy($column_to_order, 'asc'); break; case User::CONTACT_SORT_ORDER_DESC: - $contacts = $contacts->orderBy('last_name', 'desc'); + $contacts = $contacts->orderBy($column_to_order, 'desc'); break; default: $contacts = $contacts->orderBy('last_updated_at', 'desc');