From e889c5f9ef5b81dc3a82b823c6d9881d14cd647d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Jaussoin?= Date: Wed, 29 Apr 2020 17:57:03 +0200 Subject: [PATCH] Add Accounts search feature in admin panel --- .../Controllers/Admin/AccountController.php | 16 ++++++++++++-- .../resources/views/account/index.blade.php | 8 ++----- .../views/admin/account/index.blade.php | 21 +++++++++++++++++-- flexiapi/routes/web.php | 5 +++-- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/flexiapi/app/Http/Controllers/Admin/AccountController.php b/flexiapi/app/Http/Controllers/Admin/AccountController.php index 36319d8..5f68fb7 100644 --- a/flexiapi/app/Http/Controllers/Admin/AccountController.php +++ b/flexiapi/app/Http/Controllers/Admin/AccountController.php @@ -10,13 +10,25 @@ use App\Admin; class AccountController extends Controller { - public function index(Request $request) + public function index(Request $request, $search = '') { + $accounts = Account::orderBy('creation_time', 'desc'); + + if (!empty($search)) { + $accounts = $accounts->where('username', 'like', '%'.$search.'%'); + } + return view('admin.account.index', [ - 'accounts' => Account::orderBy('creation_time', 'desc')->paginate(30) + 'search' => $search, + 'accounts' => $accounts->paginate(30)->appends($request->query()) ]); } + public function search(Request $request) + { + return redirect()->route('admin.account.index', $request->get('search')); + } + public function show(Request $request, $id) { return view('admin.account.show', [ diff --git a/flexiapi/resources/views/account/index.blade.php b/flexiapi/resources/views/account/index.blade.php index b441910..83ba531 100644 --- a/flexiapi/resources/views/account/index.blade.php +++ b/flexiapi/resources/views/account/index.blade.php @@ -36,13 +36,9 @@
-
Change my current account email
+
Accounts
- @if (!empty($account->email)) -

{{ $account->email }}

- @else -

No email yet

- @endif +

Manage the FlexiSIP accounts

@endif diff --git a/flexiapi/resources/views/admin/account/index.blade.php b/flexiapi/resources/views/admin/account/index.blade.php index d127cec..48ed090 100644 --- a/flexiapi/resources/views/admin/account/index.blade.php +++ b/flexiapi/resources/views/admin/account/index.blade.php @@ -6,9 +6,26 @@ @section('content') -

Accounts

+
+
+

Accounts

+
+
+ {!! Form::open(['route' => 'admin.account.search']) !!} +
+
+ {!! Form::text('search', $search, ['class' => 'form-control', 'placeholder' => 'Search by username: +1234, foo_bar…']) !!} +
+
+ +
+
+ {!! Form::close() !!} +
+
- + +
diff --git a/flexiapi/routes/web.php b/flexiapi/routes/web.php index fcf8ac9..9fc721e 100644 --- a/flexiapi/routes/web.php +++ b/flexiapi/routes/web.php @@ -48,8 +48,9 @@ Route::group(['middleware' => 'auth'], function () { }); Route::group(['middleware' => 'auth.admin'], function () { - Route::get('admin/accounts', 'Admin\AccountController@index')->name('admin.account.index'); - Route::get('admin/accounts/{id}', 'Admin\AccountController@show')->name('admin.account.show'); + Route::get('admin/accounts/{search?}', 'Admin\AccountController@index')->name('admin.account.index'); + Route::post('admin/search', 'Admin\AccountController@search')->name('admin.account.search'); + Route::get('admin/accounts/show/{id}', 'Admin\AccountController@show')->name('admin.account.show'); Route::get('admin/accounts/{id}/activate', 'Admin\AccountController@activate')->name('admin.account.activate'); Route::get('admin/accounts/{id}/deactivate', 'Admin\AccountController@deactivate')->name('admin.account.deactivate'); Route::get('admin/accounts/{id}/admin', 'Admin\AccountController@admin')->name('admin.account.admin');
#