Backend for songs.zachdecook.com
* Transpose Widget: Make user-friendly
Zach DeCook 2020-07-15
parent 9221a0e · commit 7fc2e9b
-rw-r--r--laravel/app/Http/Controllers/SongController.php4
-rw-r--r--laravel/resources/views/song.blade.php6
2 files changed, 8 insertions, 2 deletions
diff --git a/laravel/app/Http/Controllers/SongController.php b/laravel/app/Http/Controllers/SongController.php
index 2074104..8e043ac 100644
--- a/laravel/app/Http/Controllers/SongController.php
+++ b/laravel/app/Http/Controllers/SongController.php
@@ -19,8 +19,8 @@ class SongController extends Controller
$lines = explode( "\n", $song['text'] );
$newText = '';
$transp = $request->transp ?? 0;
- if ($request->key && $song->plain_key){
- $try = $this->keydiff($song->plain_key, $request->key);
+ if (($request->key||$request->transp) && $song->plain_key){
+ $try = $this->keydiff($song->plain_key, $request->key ?? $request->transp);
if ($try !== null){
$transp = $try;
}
diff --git a/laravel/resources/views/song.blade.php b/laravel/resources/views/song.blade.php
index 865ece4..a8e31c0 100644
--- a/laravel/resources/views/song.blade.php
+++ b/laravel/resources/views/song.blade.php
@@ -44,6 +44,11 @@
<select name="transp" id="transp"
value = "<?php echo $transp;?>"
>
+ @if($song->key)
+ @foreach(['C','Db','D','E','F','F#','G','G#','A','Bb','B'] as $kay)
+ <option {{$kay == ($_GET['transp'] ?? $song->key) ? 'selected' : ''}} value='{{$kay}}'>{{$kay}}</option>
+ @endforeach
+ @else
<?php
for ($i=-6; $i < 12; $i++) {
if (($transp + 24)%12 == $i) $selected = 'selected';
@@ -52,6 +57,7 @@
echo "<option value='$i' $selected>$dir $i semitones</option>";
}
?>
+ @endif
</select>
<noscript>
<button>Transpose</button>