Backend for songs.zachdecook.com
* Suggestions: Keep suggestions within the current playlist
Zach DeCook 2019-09-02
parent 13bdbf7 · commit 36b2005
-rw-r--r--laravel/app/Http/Controllers/SongController.php8
-rw-r--r--laravel/resources/views/song.blade.php4
2 files changed, 8 insertions, 4 deletions
diff --git a/laravel/app/Http/Controllers/SongController.php b/laravel/app/Http/Controllers/SongController.php
index 669ec3e..2074104 100644
--- a/laravel/app/Http/Controllers/SongController.php
+++ b/laravel/app/Http/Controllers/SongController.php
@@ -63,7 +63,11 @@ class SongController extends Controller
$params['back'] = Song::where('id', '<', $song->id)->orderBy('id', 'desc')->first();
$params['next'] = Song::where('id', '>', $song->id)->orderBy('id', 'asc' )->first();
}
- $params['suggestions'] = Song::inRandomOrder()->limit(5)->get();
+ if ($playlist){
+ $params['suggestions'] = $playlist->songs()->inRandomOrder()->limit(5)->get();
+ } else {
+ $params['suggestions'] = Song::inRandomOrder()->limit(5)->get();
+ }
foreach ($params['suggestions'] as $sugSong){
$sug = Suggestion::firstOrNew(['from' => $song->id, 'song' => $sugSong->id]);
$sug->shown++;
@@ -77,7 +81,7 @@ class SongController extends Controller
$sug->clicks++;
$sug->save();
//Suggestion::make(['song' => $song, 'from' => $from]);
- return redirect(route('song.show', ['song' => $song, 'key' => $request->key]));
+ return redirect(route('song.show', ['song' => $song, 'key' => $request->key, 'playlist' => $request->playlist]));
}
/**
diff --git a/laravel/resources/views/song.blade.php b/laravel/resources/views/song.blade.php
index c486ffc..dfc7f75 100644
--- a/laravel/resources/views/song.blade.php
+++ b/laravel/resources/views/song.blade.php
@@ -67,9 +67,9 @@
@foreach ($suggestions as $sug)
<div class='controlArea'>
- <a class='but' href='{{route('song.suggested', ['song' => $sug, 'from' => $song])}}'>{{$sug->name}}</a>
+ <a class='but' href='{{route('song.suggested', ['song' => $sug, 'from' => $song, 'playlist' => $playlist ?? ''])}}'>{{$sug->name}}</a>
@if ($key && $sug->key)
- <a class='but' data-words='transposed to ' data-key='{{$key}}' href='{{route('song.suggested', ['song' => $sug, 'from' => $song, 'key' => $key])}}'>
+ <a class='but' data-words='transposed to ' data-key='{{$key}}' href='{{route('song.suggested', ['song' => $sug, 'from' => $song, 'key' => $key, 'playlist' => $playlist ?? ''])}}'>
transposed to {{$key}}
</a>
@endif