diff --git a/mopidy_iris/frontend.py b/mopidy_iris/frontend.py index cc10c3a4..0732ecfb 100755 --- a/mopidy_iris/frontend.py +++ b/mopidy_iris/frontend.py @@ -192,10 +192,11 @@ class IrisFrontend(pykka.ThreadingActor, CoreListener): # get our config values def get_config( self ): - iris = self.config['iris'] + all_config = self.config config = { - "country": iris['country'], - "locale": iris['locale'] + "spotify_user": all_config['spotify']['username'], + "country": all_config['iris']['country'], + "locale": all_config['iris']['locale'] } return config diff --git a/src/js/services/pusher/middleware.js b/src/js/services/pusher/middleware.js index 0e4e9936..8811192c 100755 --- a/src/js/services/pusher/middleware.js +++ b/src/js/services/pusher/middleware.js @@ -116,19 +116,23 @@ const PusherMiddleware = (function(){ request({ action: 'get_config' }) .then( response => { - store.dispatch({ type: 'CONFIG', data: response.data }) + store.dispatch({ type: 'CONFIG', config: response.data.config }) + var spotify = store.getState().spotify + if (!spotify.country || !spotify.locale){ + store.dispatch({ type: 'SPOTIFY_SET_CONFIG', config: response.data.config }) + } } ) request({ action: 'get_version' }) .then( response => { - store.dispatch({ type: 'VERSION', data: response.data }) + store.dispatch({ type: 'VERSION', version: response.data.version }) } ) request({ action: 'get_radio' }) .then( response => { - store.dispatch({ type: 'RADIO', data: response.data }) + store.dispatch({ type: 'RADIO', radio: response.data.radio }) } ) return next(action); @@ -147,7 +151,7 @@ const PusherMiddleware = (function(){ }else{ store.dispatch( uiActions.createNotification('Upgrade failed, please upgrade manually','bad') ) } - store.dispatch({ type: 'VERSION', data: response.data }) + store.dispatch({ type: 'VERSION', version: response.data.version }) } ) return next(action); diff --git a/src/js/services/pusher/reducer.js b/src/js/services/pusher/reducer.js index 8335e1f1..462f68e4 100755 --- a/src/js/services/pusher/reducer.js +++ b/src/js/services/pusher/reducer.js @@ -39,7 +39,7 @@ export default function reducer(pusher = {}, action){ case 'VERSION': return Object.assign({}, pusher, { - version: action.data.version, + version: action.version, upgrading: false }); diff --git a/src/js/services/spotify/actions.js b/src/js/services/spotify/actions.js index cd7c02f1..7dd4cd4e 100755 --- a/src/js/services/spotify/actions.js +++ b/src/js/services/spotify/actions.js @@ -100,6 +100,7 @@ function refreshToken( dispatch, getState ){ }, error => { dispatch({ type: 'SPOTIFY_DISCONNECTED' }) + dispatch(uiActions.createNotification('Could not refresh token','bad')) console.error('Could not refresh token', error) reject(error) } @@ -126,6 +127,7 @@ function refreshToken( dispatch, getState ){ }, error => { dispatch({ type: 'SPOTIFY_DISCONNECTED' }) + dispatch(uiActions.createNotification('Could not refresh token','bad')) console.error('Could not refresh token', error) reject(error) } diff --git a/src/js/services/spotify/middleware.js b/src/js/services/spotify/middleware.js index a11ebbdf..acf81718 100755 --- a/src/js/services/spotify/middleware.js +++ b/src/js/services/spotify/middleware.js @@ -13,20 +13,10 @@ const SpotifyMiddleware = (function(){ switch(action.type){ - case 'CONFIG': - if (!state.spotify.country || !state.spotify.locale){ - store.dispatch( spotifyActions.setConfig(action.data.config) ) - } - break - case 'SPOTIFY_CONNECT': store.dispatch( spotifyActions.getMe() ) break - case 'SPOTIFY_DISCONNECTED': - store.dispatch( uiActions.createNotification('Spotify disconnected','bad') ) - break - case 'SPOTIFY_CREATE_PLAYLIST': if( !store.getState().spotify.authorized ){ store.dispatch( uiActions.createNotification( "Must be logged in to Spotify to do that", 'bad' ) ) @@ -103,8 +93,8 @@ const SpotifyMiddleware = (function(){ next(action) // only resolve if radio is enabled - if( action.data.radio.enabled ){ - store.dispatch(spotifyActions.resolveRadioSeeds(action.data.radio)) + if( action.radio.enabled ){ + store.dispatch(spotifyActions.resolveRadioSeeds(action.radio)) } break diff --git a/src/js/services/ui/middleware.js b/src/js/services/ui/middleware.js index 5d636799..031c48ce 100755 --- a/src/js/services/ui/middleware.js +++ b/src/js/services/ui/middleware.js @@ -202,9 +202,9 @@ const UIMiddleware = (function(){ next(action) break - case 'PUSHER_VERSION': - if( action.data.version.upgrade_available ) - store.dispatch( uiActions.createNotification( 'Version '+action.data.version.latest+' is available. See settings to upgrade.' ) ) + case 'VERSION': + if( action.version.upgrade_available ) + store.dispatch( uiActions.createNotification( 'Version '+action.version.latest+' is available. See settings to upgrade.' ) ) next( action ) break diff --git a/src/js/services/ui/reducer.js b/src/js/services/ui/reducer.js index 9730f6f3..32e969b2 100755 --- a/src/js/services/ui/reducer.js +++ b/src/js/services/ui/reducer.js @@ -13,6 +13,9 @@ export default function reducer(ui = {}, action){ case 'UI_SET': return Object.assign({}, ui, action.data) + case 'CONFIG': + return Object.assign({}, ui, { config: action.config }) + case 'TOGGLE_SIDEBAR': var new_state = !ui.sidebar_open if( typeof(action.new_state) !== 'undefined' ) new_state = action.new_state @@ -118,7 +121,7 @@ export default function reducer(ui = {}, action){ case 'RADIO': case 'START_RADIO': - return Object.assign({}, ui, { seeds_resolved: false }, { radio: action.data.radio }) + return Object.assign({}, ui, { seeds_resolved: false }, { radio: action.radio }) case 'RADIO_SEEDS_RESOLVED': var radio = Object.assign({}, ui.radio, { resolved_seeds: action.resolved_seeds }) diff --git a/src/js/views/Settings.js b/src/js/views/Settings.js index b2d60c12..167aa4b0 100755 --- a/src/js/views/Settings.js +++ b/src/js/views/Settings.js @@ -81,7 +81,7 @@ class Settings extends React.Component{ } renderSpotifyUser(){ - if( this.props.spotify.me && this.props.spotify.authorized ){ + if (this.props.spotify.me && this.props.spotify.authorized){ return ( @@ -90,7 +90,16 @@ class Settings extends React.Component{ ) - }else{ + } else if (this.props.ui.config && this.props.ui.config.spotify_user){ + return ( + + + + {this.props.ui.config.spotify_user} (As defined in mopidy.config) + + + ) + } else { return (