diff --git a/app/routes/apiv1/music.php b/app/routes/apiv1/music.php index 3757026..06c2394 100644 --- a/app/routes/apiv1/music.php +++ b/app/routes/apiv1/music.php @@ -16,4 +16,23 @@ $app->get('/apiv1/music/album-info/:albumid', function($albumid) use($app) { $app->notFound(); } -})->name('apiv1.music.get-album'); +})->name('apiv1.music.album-info'); + +// retrieve an album's songs +$app->('/apiv1/music/album-songs/:albumid', function($albumid) use($app) { + + if (!ctype_digit($albumid)) { + echo 'Don\'t do that'; + return; + } + + $album = $app->album->where('id', $albumid)->first(); + + if ($album) { + $json = [songs => $album->songs()]; + echo json_encode($json); + } else { + $app->notFound(); + } + +})->name('apiv1.music.album-songs') diff --git a/public/js/music.js b/public/js/music.js index 1ee5975..1df9d00 100755 --- a/public/js/music.js +++ b/public/js/music.js @@ -45,6 +45,33 @@ function getAlbumInfo(albumElem) { }); } +function getAlbumSongs(albumElem) { + albumElem = $(albumElem); + + $.get('/apiv1/music/album-songs/' + albumElem.data('albumid'), function(data) { + var json = $.parseJSON(data); + var playlist = $('#now-playing-list'); + playlist.empty(); + + for (var i = 0; i < json.songs.length; i++) { + var song = json.songs[i]; + var classString = ''; + + if (i === 0) { + classString = 'music-track selected'; + } else { + classString = 'music-track'; + } + + var songElem = '
  • ' + + '' + song.track_order + '. ' + song.title + '' + + '
  • '; + + playlist.append(song); + } + }); +} + function changeSelectedTrack(trackElem) { var oldSelected = $('.now-playing-list .music-track.selected'); var newSelected = $(trackElem);