Backend for songs.zachdecook.com
* Song View: Add links to previous and next songs
Zach DeCook 2018-12-27
parent d0bc101 · commit d2fc990
-rw-r--r--laravel/app/Http/Controllers/SongController.php15
-rw-r--r--laravel/resources/views/song.blade.php17
-rw-r--r--laravel/routes/web.php2
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)
- <a href='{{ route('playlist.show', ['playlist' => $playlist->name ] ) }}'>
- Back to "<i>{{$playlist->name}}</i>" playlist
- </a>
+ @if( isset( $back ) )
+ <a href='{{route('song.show', ['song' => $back])}}'>{{$back->title}}</a>
@endif
+ @if( $playlist ?? FALSE)
+ <a href='{{route('playlist.show',['playlist' => $playlist->name])}}'>
+ Back to {{$playlist->name}}
+ </a>
+ @else
+ <a href='{{route('song.list')}}'>Go home</a>
+ @endif
+ @if( isset( $next ) )
+ <a href='{{route('song.show', ['song' => $next])}}'>{{$next->title}}</a>
+ @endif
+
<h2>{{$song['title']}}</h2>
<h3>{{$song->author}}</h3>
@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');