From 6ac7b5fbf02a92f29aa9cd958e5588c4e0802881 Mon Sep 17 00:00:00 2001 From: Conkley Date: Sat, 16 Jul 2022 23:08:06 +1000 Subject: [PATCH] mutual friends --- app/Http/Controllers/PageController.php | 21 +++++++- .../views/pages/mutual_friends.blade.php | 51 +++++++++++++++++++ resources/views/pages/profile.blade.php | 6 ++- .../views/pages/profile_friends.blade.php | 9 +++- routes/web.php | 1 + 5 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 resources/views/pages/mutual_friends.blade.php diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 451dd01..1699259 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -47,12 +47,12 @@ class PageController extends Controller public function profile_friends($id) { $user = User::find($id); - $friends = $user->getFriends($perPage = 10); - if (!$user) { abort(404); } + $friends = $user->getFriends($perPage = 10); + $data = [ 'user' => $user, 'friends' => $friends @@ -61,6 +61,23 @@ class PageController extends Controller return view('pages.profile_friends')->with('data', $data); } + public function mutual_friends($id) + { + $user = User::find($id); + if (!$user || $user->id == Auth::id()) { + abort(404); + } + + $friends = Auth::user()->getMutualFriends($user, $perPage = 10); + + $data = [ + 'user' => $user, + 'friends' => $friends + ]; + + return view('pages.mutual_friends')->with('data', $data); + } + public function users(Request $request) { if ($request->has('q')) { diff --git a/resources/views/pages/mutual_friends.blade.php b/resources/views/pages/mutual_friends.blade.php new file mode 100644 index 0000000..991cfe1 --- /dev/null +++ b/resources/views/pages/mutual_friends.blade.php @@ -0,0 +1,51 @@ +@extends('layouts.app') +@section('title') + {{ $data['user']->name }}'s Friends (Mutual) - {{ env('APP_NAME') }} +@endsection + +@section('content') +

Your Mutual Friends with {{ $data['user']->name }} ({{ Auth::user()->getMutualFriendsCount($data['user']) }})

+ All Friends + @auth + Mutual Friends ({{ Auth::user()->getMutualFriendsCount($data['user']) }}) + @endauth +
+
+
+ @foreach ($data['friends'] as $friend) +
+
+ Profile Image +
+
+ {{ $friend->name }} + @if (!empty($friend->feedposts->last()->status)) +

"{{ $friend->feedposts->last()->status }}"

+ @else +

"I'm new to ARCHBLOX!"

+ @endif + @if (Cache::has('is_online_' . $friend->id)) + Website + @else + Offline - Last Online + {{ Carbon\Carbon::parse($friend->last_seen)->diffForHumans() }} + @endif +
+ @if (Auth::id() == $data['user']->id) +
+ @csrf + +
+ @endif +
+
+ @endforeach + @if (!Auth::user()->getMutualFriendsCount($data['user'])) +

You don't have any mutual friends with {{ $data['user']->name }}.

+ @endif + {{ $data['friends']->links() }} +
+
+@endsection diff --git a/resources/views/pages/profile.blade.php b/resources/views/pages/profile.blade.php index ab7724e..14454d5 100644 --- a/resources/views/pages/profile.blade.php +++ b/resources/views/pages/profile.blade.php @@ -46,7 +46,8 @@
@if (!empty($data['user']->feedposts->last()->status)) -
"{{ $data['user']->feedposts->last()->status }}"
+
"{{ $data['user']->feedposts->last()->status }}" +
@else
"I'm new to ARCHBLOX!"
@endif @@ -91,6 +92,9 @@
+ @if (Auth::check() && Auth::id() != $data['user']->id && Auth::user()->getMutualFriendsCount($data['user']) > 0) + {{ Auth::user()->getMutualFriendsCount($data['user'])}} Mutual Friends + @endif
@foreach ($data['friends'] as $friend) diff --git a/resources/views/pages/profile_friends.blade.php b/resources/views/pages/profile_friends.blade.php index d250aa6..7d31f11 100644 --- a/resources/views/pages/profile_friends.blade.php +++ b/resources/views/pages/profile_friends.blade.php @@ -5,6 +5,13 @@ @section('content')

{{ $data['user']->name }}'s Friends ({{ $data['user']->getFriendsCount() }})

+ All Friends + @auth + @if ($data['user']->id != Auth::id()) + Mutual Friends ({{ Auth::user()->getMutualFriendsCount($data['user']) }}) + @endif + @endauth +

@foreach ($data['friends'] as $friend) @@ -38,7 +45,7 @@
@endforeach @if (!$data['user']->getFriendsCount()) -

You haven't made friends with anyone yet.

+

{{ $data['user']->name }} hasn't made friends with anyone yet.

@endif {{ $data['friends']->links() }}
diff --git a/routes/web.php b/routes/web.php index f3f5ff3..5de0dce 100644 --- a/routes/web.php +++ b/routes/web.php @@ -32,6 +32,7 @@ Route::middleware(['auth'])->group(function () { Route::post('/home', [App\Http\Controllers\HomeController::class, 'feed_post'])->name('feed_post'); }); + Route::get('/user/{id}/friends/mutual', [App\Http\Controllers\PageController::class, 'mutual_friends'])->name('mutual_friends'); Route::get('/users', [App\Http\Controllers\PageController::class, 'users'])->name('users'); Route::post('/users', [App\Http\Controllers\PageController::class, 'users'])->name('users'); Route::get('/my/settings', [App\Http\Controllers\PageController::class, 'settings'])->name('settings');