From d2fc9908f30c3bec6ca8576dd2b5f31fa75ddba2 Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Thu, 27 Dec 2018 22:50:36 -0500 Subject: * Song View: Add links to previous and next songs --- laravel/app/Http/Controllers/SongController.php | 15 ++++++++++++--- laravel/resources/views/song.blade.php | 17 +++++++++++++---- laravel/routes/web.php | 2 +- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/laravel/app/Http/Controllers/SongController.php b/laravel/app/Http/Controllers/SongController.php index 1ab6b9e..64b3d75 100644 --- a/laravel/app/Http/Controllers/SongController.php +++ b/laravel/app/Http/Controllers/SongController.php @@ -37,11 +37,20 @@ class SongController extends Controller } } $song['escapedText'] = $newText; + + + $params = [ + 'song' => $song, + 'transp' => $transp, + ]; + $playlist = NULL; - if ( $_GET['playlist'] ?? FALSE ){ - $playlist = Playlist::find($_GET['playlist'] ) ?? NULL; + if ( isset($_GET['playlist']) && $playlist = Playlist::find($_GET['playlist'] ) ){ + $params['playlist'] = $playlist; } - return view('song', ['song' => $song, 'transp' => $transp, 'playlist' => $playlist ] ); + $params['back'] = Song::where('id', '<', $song->id)->orderBy('id', 'desc')->first(); + $params['next'] = Song::where('id', '>', $song->id)->orderBy('id', 'asc' )->first(); + return view('song', $params ); } /** diff --git a/laravel/resources/views/song.blade.php b/laravel/resources/views/song.blade.php index 89abfdd..412e53d 100644 --- a/laravel/resources/views/song.blade.php +++ b/laravel/resources/views/song.blade.php @@ -3,11 +3,20 @@ @section('content') - @if( $playlist) - $playlist->name ] ) }}'> - Back to "{{$playlist->name}}" playlist - + @if( isset( $back ) ) + $back])}}'>{{$back->title}} @endif + @if( $playlist ?? FALSE) + $playlist->name])}}'> + Back to {{$playlist->name}} + + @else + Go home + @endif + @if( isset( $next ) ) + $next])}}'>{{$next->title}} + @endif +

{{$song['title']}}

{{$song->author}}

@if($song->key) diff --git a/laravel/routes/web.php b/laravel/routes/web.php index 6493350..f978467 100644 --- a/laravel/routes/web.php +++ b/laravel/routes/web.php @@ -13,7 +13,7 @@ Route::get('/', function () { return view('welcome'); -}); +})->name('song.list'); Route::post('/new/song', 'SongController@post')->name('song.postnew')/*->middleware('can:create,App\Song')*/; Route::get('/playlist/{playlist}', 'PlaylistController@show')->name('playlist.show'); Route::get('/s/{song}', 'SongController@show')->name('song.show'); -- cgit 1.4.1