diff --git a/app/Helpers/MiscHelper.php b/app/Helpers/MiscHelper.php index 582f630..4f2b49c 100644 --- a/app/Helpers/MiscHelper.php +++ b/app/Helpers/MiscHelper.php @@ -96,6 +96,16 @@ class MiscHelper ]; } + public static function ensureHasTrailingSlash($string) + { + if (strlen($string) > 0 && substr($string, strlen($string) - 1, 1) != '/') + { + $string .= '/'; + } + + return $string; + } + public static function getEnvironmentFilePath() { return sprintf('%s/.env', dirname(dirname(__DIR__))); diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 257bee4..f123724 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Auth; use App\Facade\Theme; use App\Facade\UserConfig; +use App\Helpers\MiscHelper; use App\Http\Controllers\Controller; use App\User; use Illuminate\Contracts\Routing\UrlGenerator; @@ -30,6 +31,9 @@ class LoginController extends Controller use AuthenticatesUsers; + /** + * @var UrlGenerator + */ protected $generator; /** @@ -37,7 +41,7 @@ class LoginController extends Controller * * @var string */ - protected $redirectTo = '/'; + protected $redirectTo = '/me'; /** * Create a new controller instance. @@ -101,7 +105,15 @@ class LoginController extends Controller */ public function showLoginForm(Request $request) { - $request->getSession()->put('url.intended', $this->generator->previous(false)); + $previousUrl = MiscHelper::ensureHasTrailingSlash($this->generator->previous(false)); + $homeUrl = MiscHelper::ensureHasTrailingSlash(route('home')); + + if (UserConfig::get('social_user_feeds') && (empty($previousUrl) || $previousUrl == $homeUrl)) + { + $previousUrl = route('userActivityFeed'); + } + + $request->getSession()->put('url.intended', $previousUrl); return Theme::render('auth.v2_unified', [ 'active_tab' => 'login', diff --git a/app/Http/Controllers/Gallery/ExploreController.php b/app/Http/Controllers/Gallery/ExploreController.php new file mode 100644 index 0000000..217e562 --- /dev/null +++ b/app/Http/Controllers/Gallery/ExploreController.php @@ -0,0 +1,41 @@ + true, + 'enable_profile_page' => true + ]) + ->orderBy('name') + ->paginate(UserConfig::get('items_per_page')); + + $usersFollowing = UserFollower::where('user_id', $this->getUser()->id) + ->select('following_user_id') + ->get() + ->map(function($f) + { + return $f->following_user_id; + }) + ->toArray(); + + return Theme::render('gallery.explore_users', [ + 'users' => $users, + 'users_following' => $usersFollowing + ]); + } +} \ No newline at end of file diff --git a/app/UserFollower.php b/app/UserFollower.php new file mode 100644 index 0000000..1a6fe03 --- /dev/null +++ b/app/UserFollower.php @@ -0,0 +1,9 @@ + 'more album|more albums', 'date_taken' => 'Date taken:', 'date_uploaded' => 'Date uploaded:', + 'explore_users' => [ + 'follow_button' => 'Follow', + 'following_button' => 'Following', + 'intro_p1' => 'The users listed below have registered on this site and enabled their public profile.', + 'intro_p2' => 'Click a name to view their profile, or click the Follow button to follow them and see their activity in your activity feed.', + 'title' => 'Explore Photographers' + ], 'file_name' => 'File name:', 'focal_length' => 'Focal length:', 'focal_length_units' => ':valuemm', @@ -78,9 +85,10 @@ return [ 'uploaded_12_months' => 'Photos uploaded in the last 12 months', ], 'user_activity_feed' => [ + 'explore_photographers_link' => 'Explore Photographers', 'no_activity_p1' => 'Nothing to see here', 'no_activity_p2' => 'There is no recent activity to show you.', - 'no_activity_p3' => 'Find someone new to follow on the :l_explore_startPhotographer Explorer:l_explore_end page.', + 'no_activity_p3' => 'Find someone new to follow on the :l_explore_startExplore Photographers:l_explore_end page.', 'title' => 'My Activity Feed' ], 'user_feed_type' => [ diff --git a/resources/lang/en/navigation.php b/resources/lang/en/navigation.php index 59bb398..7cea6ab 100644 --- a/resources/lang/en/navigation.php +++ b/resources/lang/en/navigation.php @@ -23,6 +23,7 @@ return [ 'edit_storage' => 'Edit storage location', 'edit_user' => 'Edit user', 'exif_data' => 'Exif Data', + 'explore_users' => 'Explore Photographers', 'groups' => 'Groups', 'home' => 'Gallery', 'labels' => 'Labels', diff --git a/resources/views/themes/base/gallery/explore_users.blade.php b/resources/views/themes/base/gallery/explore_users.blade.php new file mode 100644 index 0000000..fda541b --- /dev/null +++ b/resources/views/themes/base/gallery/explore_users.blade.php @@ -0,0 +1,74 @@ +@extends(Theme::viewName('layout')) +@section('title', trans('gallery.explore_users.title')) + +@section('breadcrumb') + + +@endsection + +@section('content') +
+
+
+ @if ($users->count() > 0) +

@yield('title')

+

@lang('gallery.explore_users.intro_p1')

+

@lang('gallery.explore_users.intro_p2')

+
+ + @foreach ($users as $user) +
+
+ +
+
+ @if ($user->id != Auth::user()->id) + @if (in_array($user->id, $users_following)) + + @else + + @endif + @endif +

{{ $user->name }}

+

{{ $user->profile_alias }}

+
+
+ @if (!$loop->last) +
+ @endif + @endforeach + +
+
+ {{ $users->links() }} +
+
+ @else +
+

@lang('gallery.user_activity_feed.no_activity_p1')

+

@lang('gallery.user_activity_feed.no_activity_p2')

+

@lang('gallery.user_activity_feed.no_activity_p3', [ + 'l_explore_start' => sprintf('', route('exploreUsers')), + 'l_explore_end' => '' + ])

+

@lang('gallery.user_activity_feed.explore_photographers_link')

+
+ @endif +
+
+
+@endsection + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/themes/base/gallery/user_activity_feed.blade.php b/resources/views/themes/base/gallery/user_activity_feed.blade.php index f0858d5..175b69d 100644 --- a/resources/views/themes/base/gallery/user_activity_feed.blade.php +++ b/resources/views/themes/base/gallery/user_activity_feed.blade.php @@ -35,9 +35,10 @@

@lang('gallery.user_activity_feed.no_activity_p1')

@lang('gallery.user_activity_feed.no_activity_p2')

@lang('gallery.user_activity_feed.no_activity_p3', [ - 'l_explore_start' => sprintf('', route('userExplore')), + 'l_explore_start' => sprintf('', route('exploreUsers')), 'l_explore_end' => '' ])

+

@lang('gallery.user_activity_feed.explore_photographers_link')

diff --git a/routes/web.php b/routes/web.php index da48ace..39d713a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -152,14 +152,14 @@ Route::post('u/{idOrAlias}/unfollow', 'Gallery\UserController@unFollowUser', ['m Route::get('u/{idOrAlias}', 'Gallery\UserController@show') ->name('viewUser') ->where('idOrAlias', '.*'); -Route::get('me', 'Gallery\UserController@activityFeed') +Route::get('activity', 'Gallery\UserController@activityFeed') ->name('userActivityFeed') ->middleware('auth'); -Route::get('explore', 'Gallery\UserController@exploreProfiles') - ->name('userExplore'); -Route::get('me.json', 'Gallery\UserController@activityFeedJson') +Route::get('activity.json', 'Gallery\UserController@activityFeedJson') ->name('userActivityFeedJson') ->middleware('auth'); +Route::get('explore/users', 'Gallery\ExploreController@users') + ->name('exploreUsers'); Route::get('me/confirm-email-change', 'Gallery\UserController@confirmEmailChangeState') ->name('userSettings.confirmEmailChangeState') ->middleware('auth');