From 98e4e2db54fa02d614cc9be92df76fa6f8c08e06 Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Mon, 20 Mar 2017 18:20:59 +1300 Subject: [PATCH] Moving can_edit on playlists to ui middleware, fixes #73 --- src/js/helpers.js | 6 ++++++ src/js/services/mopidy/middleware.js | 1 - src/js/services/spotify/middleware.js | 4 ---- src/js/services/ui/middleware.js | 22 ++++++++++++++++++++++ 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/js/helpers.js b/src/js/helpers.js index 3925d149..d830cb8e 100755 --- a/src/js/helpers.js +++ b/src/js/helpers.js @@ -186,6 +186,12 @@ export let getFromUri = function(element,uri){ } break + case 'playlistowner': + if (exploded[1] == 'user' && exploded[3] == 'playlist'){ + return exploded[2] + } + break + case 'trackid': if (exploded[1] == 'track'){ return exploded[2] diff --git a/src/js/services/mopidy/middleware.js b/src/js/services/mopidy/middleware.js index 3ec3cdce..318fc509 100755 --- a/src/js/services/mopidy/middleware.js +++ b/src/js/services/mopidy/middleware.js @@ -353,7 +353,6 @@ const MopidyMiddleware = (function(){ uri: response.uri, source: (source == 'spotify' ? 'local' : source), last_modified: response.last_modified, - can_edit: (response.uri.startsWith('m3u:')), tracks_total: ( response.tracks ? response.tracks.length : 0 ) } ) diff --git a/src/js/services/spotify/middleware.js b/src/js/services/spotify/middleware.js index 3d87faf1..f0bb8f8a 100755 --- a/src/js/services/spotify/middleware.js +++ b/src/js/services/spotify/middleware.js @@ -132,7 +132,6 @@ const SpotifyMiddleware = (function(){ {}, action.data.items[i], { - can_edit: (store.getState().spotify.authorized && store.getState().spotify.me && action.data.items[i].owner.id == store.getState().spotify.me.id), tracks_total: action.data.items[i].tracks.total } ) @@ -164,7 +163,6 @@ const SpotifyMiddleware = (function(){ {}, action.data.playlists.items[i], { - can_edit: (store.getState().spotify.authorized && store.getState().spotify.me && action.data.playlists.items[i].owner.id == store.getState().spotify.me.id), tracks_total: action.data.playlists.items[i].tracks.total } ) @@ -198,7 +196,6 @@ const SpotifyMiddleware = (function(){ { source: 'spotify', in_library: true, // assumed because we asked for library items - can_edit: (store.getState().spotify.authorized && store.getState().spotify.me && action.playlists[i].owner.id == store.getState().spotify.me.id), tracks_total: action.playlists[i].tracks.total } ) @@ -320,7 +317,6 @@ const SpotifyMiddleware = (function(){ {}, action.data.playlists.items[i], { - can_edit: (getState().spotify.me && action.data.playlists.items[i].owner.id == getState().spotify.me.id), tracks_total: action.data.playlists.items[i].tracks.total } )) diff --git a/src/js/services/ui/middleware.js b/src/js/services/ui/middleware.js index ac130b1d..fc0afc98 100755 --- a/src/js/services/ui/middleware.js +++ b/src/js/services/ui/middleware.js @@ -198,6 +198,28 @@ const UIMiddleware = (function(){ next(action) break + case 'PLAYLIST_LOADED': + var playlist = action.playlist + + switch (helpers.uriSource(playlist.uri)){ + + case 'm3u': + playlist.can_edit = true + break + + case 'spotify': + if (store.getState().spotify.authorized && store.getState().spotify.me){ + playlist.can_edit = (helpers.getFromUri('playlistowner',playlist.uri) == store.getState().spotify.me.id) + } else { + console.log('nah') + } + } + + // proceed as usual + action.playlist = playlist + next(action) + break + case 'MOPIDY_STATE': helpers.setWindowTitle(store.getState().ui.current_track, action.data)