From 3fb142b39d619dd9248cf10662310e836193e983 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 2 Sep 2018 19:21:49 -0600 Subject: [PATCH 1/5] Add admin user edit view --- resources/views/admin/users/edit.blade.php | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 resources/views/admin/users/edit.blade.php diff --git a/resources/views/admin/users/edit.blade.php b/resources/views/admin/users/edit.blade.php new file mode 100644 index 00000000..29148e9d --- /dev/null +++ b/resources/views/admin/users/edit.blade.php @@ -0,0 +1,101 @@ +@extends('admin.partial.template') + +@section('section') +
+

Edit User

+ Back +
+
+ +
+
+
+
+

{{$profile->statusCount()}}

+

Posts

+
+
+
+
+
+
+

{{$profile->likes()->count()}}

+

Likes

+
+
+
+
+
+
+

{{$profile->reports()->count()}}

+

Reports

+
+
+
+
+
+
+

{{PrettyNumber::size($profile->media()->sum('size'))}}

+

Storage Used

+
+
+
+
+ +
+
+
+
+ +
+ +
+
+
+
+
+
+

+ {{$profile->username}} +

+

+ {{$profile->emailUrl()}} +

+

+ Member Since: {{$profile->created_at->format('M Y')}} +

+
+
+
+
+
+
+
+
+ Account Settings +
+
+
+ + +
+
+ + +
+
+ + +

+ @if($user->email_verified_at) + Verified for {{$user->email_verified_at->diffForHumans()}} + @else + Unverified email. + @endif +

+
+
+
+@endsection \ No newline at end of file From 1cb0c030a8aa17066b1b2e9060fcdff924051e0f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 2 Sep 2018 19:23:59 -0600 Subject: [PATCH 2/5] Update admin user list view --- resources/views/admin/users/home.blade.php | 206 +++++++++++++++++++-- 1 file changed, 188 insertions(+), 18 deletions(-) diff --git a/resources/views/admin/users/home.blade.php b/resources/views/admin/users/home.blade.php index 304f0506..7eb47f5e 100644 --- a/resources/views/admin/users/home.blade.php +++ b/resources/views/admin/users/home.blade.php @@ -4,31 +4,157 @@

Users

- -
+
+
+
+
+
+ Total Users + {{-- + + --}} +
+
+

{{$stats['total']['count']}}

+
+
+
+
+
+
+
+
+
+ New Users + {{-- + + --}} +
+
+

{{$stats['new']['count']}}

+
+
+
+
+
+
+
+
+
+ Local +
+
+

{{$stats['profile']['local']}}

+
+
+
+
+
+
+
+
+ Remote +
+
+

{{$stats['profile']['remote']}}

+
+
+
+
+
+
+
+
+ Avg Age +
+
+

{{$stats['avg']['age']}}

+
+
+
+
+
+
+
+
+ Avg Posts +
+
+

{{$stats['avg']['posts']}}

+
+
+
+
+
- - - - - - - + + + + + + + + - @foreach($users as $user) - + - - - - + + + + + @endforeach @@ -39,14 +165,58 @@ @endsection +@push('styles') + +@endpush @push('scripts') + @endpush From 582c922f9579370fe8be3a8b3e431991b71322ef Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 2 Sep 2018 19:24:38 -0600 Subject: [PATCH 3/5] Fix font weight in admin reports view --- resources/views/admin/reports/home.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/admin/reports/home.blade.php b/resources/views/admin/reports/home.blade.php index 3a48393a..644c32ae 100644 --- a/resources/views/admin/reports/home.blade.php +++ b/resources/views/admin/reports/home.blade.php @@ -2,7 +2,7 @@ @section('section')
-

Reports

+

Reports

Open: From 4ea205491ce30547e0e525464ebd32aeb5d36391 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 2 Sep 2018 19:25:08 -0600 Subject: [PATCH 4/5] Update AdminController --- app/Http/Controllers/AdminController.php | 41 +++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index d2f0b067..a94793fc 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -3,9 +3,11 @@ namespace App\Http\Controllers; use App\Media; +use App\Profile; use App\Report; use App\Status; use App\User; +use Carbon\Carbon; use Illuminate\Http\Request; use App\Http\Controllers\Admin\{ AdminReportController @@ -27,9 +29,17 @@ class AdminController extends Controller public function users(Request $request) { + $stats = $this->collectUserStats($request); $users = User::orderBy('id', 'desc')->paginate(10); + return view('admin.users.home', compact('users', 'stats')); + } - return view('admin.users.home', compact('users')); + + public function editUser(Request $request, $id) + { + $user = User::find($id); + $profile = $user->profile; + return view('admin.users.edit', compact('user', 'profile')); } public function statuses(Request $request) @@ -64,4 +74,33 @@ class AdminController extends Controller $report = Report::findOrFail($id); return view('admin.reports.show', compact('report')); } + + + protected function collectUserStats($request) + { + $total_duration = $request->query('total_duration') ?? '30'; + $new_duration = $request->query('new_duration') ?? '7'; + $stats = []; + $stats['total'] = [ + 'count' => User::where('created_at', '>', Carbon::now()->subDays($total_duration))->count(), + 'points' => User::selectRaw('day(created_at) day, count(*) as count')->where('created_at','>', Carbon::now()->subDays($total_duration))->groupBy('day')->pluck('count') + ]; + $stats['new'] = [ + 'count' => User::where('created_at', '>', Carbon::now()->subDays($new_duration))->count(), + 'points' => User::selectRaw('day(created_at) day, count(*) as count')->where('created_at','>', Carbon::now()->subDays($new_duration))->groupBy('day')->pluck('count') + ]; + $stats['active'] = [ + 'count' => Status::groupBy('profile_id')->count() + ]; + $stats['profile'] = [ + 'local' => Profile::whereNull('remote_url')->count(), + 'remote' => Profile::whereNotNull('remote_url')->count() + ]; + $stats['avg'] = [ + 'age' => Carbon::parse(substr(User::avg('created_at'),0,8))->diffForHumans(null,true,true), + 'posts' => floor(Status::avg('profile_id')) + ]; + return $stats; + + } } From 710d1ef409ee7f61e5c5e22be248bdb33ba64c4b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 2 Sep 2018 19:25:33 -0600 Subject: [PATCH 5/5] Update web routes --- routes/web.php | 1 + 1 file changed, 1 insertion(+) diff --git a/routes/web.php b/routes/web.php index 0ea06101..ae5365f2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -13,6 +13,7 @@ Route::domain(config('pixelfed.domain.admin'))->prefix('i/admin')->group(functio Route::get('statuses/show/{id}', 'AdminController@showStatus'); Route::redirect('users', '/users/list'); Route::get('users/list', 'AdminController@users')->name('admin.users'); + Route::get('users/edit/{id}', 'AdminController@editUser'); Route::redirect('media', '/media/list'); Route::get('media/list', 'AdminController@media')->name('admin.media'); });

UsernameStatusesStorageRoleCreated
+ ID + + Avatar + + Username + + Status Count + + Storage Used + + Actions +
- - {{$user->username}} - + {{$user->id}} {{$user->profile->statuses->count()}}

{!!$user->is_admin ? 'admin' : 'member'!!}{{$user->created_at->diffForHumans(null, true, true)}} + + + + {{$user->username}} + @if($user->is_admin) + + @endif + + + {{$user->profile->statusCount()}} + +

+
+ + + + + + + + + + + +