Implement ng-controllers for cached track downloads

This commit is contained in:
Kelvin Zhang 2015-10-29 14:37:00 +00:00
parent a5bc7491e0
commit 58e49cc2f5
2 changed files with 33 additions and 4 deletions

View file

@ -21,8 +21,8 @@ window.pfm.preloaders['album'] = [
] ]
angular.module('ponyfm').controller "album", [ angular.module('ponyfm').controller "album", [
'$scope', 'albums', '$state', 'playlists', 'auth', '$dialog' '$scope', 'albums', '$state', 'playlists', 'auth', '$dialog', 'download-cached', '$window', '$timeout'
($scope, albums, $state, playlists, auth, $dialog) -> ($scope, albums, $state, playlists, auth, $dialog, cachedAlbum, $window, $timeout) ->
album = null album = null
albums.fetch($state.params.id).done (albumResponse) -> albums.fetch($state.params.id).done (albumResponse) ->
@ -40,4 +40,18 @@ angular.module('ponyfm').controller "album", [
if auth.data.isLogged if auth.data.isLogged
playlists.refreshOwned().done (lists) -> playlists.refreshOwned().done (lists) ->
$scope.playlists.push list for list in lists $scope.playlists.push list for list in lists
$scope.getCachedAlbum = (id, format) ->
$scope.isEncoding = true
cachedAlbum.download('albums', id, format).then (response) ->
albumUrl = response
$scope.albumUrl = albumUrl
if albumUrl == 'error'
$scope.isEncoding = false
else if albumUrl == 'pending'
$timeout $scope.getCachedAlbum(id, format), 5000
else
$scope.isEncoding = false
$window.open albumUrl, '_blank'
] ]

View file

@ -21,8 +21,8 @@ window.pfm.preloaders['track'] = [
] ]
angular.module('ponyfm').controller "track", [ angular.module('ponyfm').controller "track", [
'$scope', 'tracks', '$state', 'playlists', 'auth', 'favourites', '$dialog' '$scope', 'tracks', '$state', 'playlists', 'auth', 'favourites', '$dialog', 'download-cached', '$window', '$timeout'
($scope, tracks, $state, playlists, auth, favourites, $dialog) -> ($scope, tracks, $state, playlists, auth, favourites, $dialog, cachedTrack, $window, $timeout) ->
track = null track = null
tracks.fetch($state.params.id).done (trackResponse) -> tracks.fetch($state.params.id).done (trackResponse) ->
@ -72,4 +72,19 @@ angular.module('ponyfm').controller "track", [
playlists.addTrackToPlaylist(playlist.id, $scope.track.id).done (res) -> playlists.addTrackToPlaylist(playlist.id, $scope.track.id).done (res) ->
playlist.message = res.message playlist.message = res.message
$scope.getCachedTrack = (id, format) ->
$scope.isEncoding = true
cachedTrack.download('tracks', id, format).then (response) ->
trackUrl = response
$scope.trackUrl = trackUrl
console.log(trackUrl);
if trackUrl == 'error'
$scope.isEncoding = false
else if trackUrl == 'pending'
$timeout $scope.getCachedTrack(id, format), 5000
else
$scope.isEncoding = false
$window.open trackUrl, '_blank'
] ]