diff --git a/changes/changelog.d/585.enhancement b/changes/changelog.d/585.enhancement new file mode 100644 index 0000000000000000000000000000000000000000..51c6aa8214ad787657e53d9c0c62e8f47d1d5dcc --- /dev/null +++ b/changes/changelog.d/585.enhancement @@ -0,0 +1 @@ +Now start radios immediatly, skipping any existing tracks in queue (#585) diff --git a/front/src/components/radios/Card.vue b/front/src/components/radios/Card.vue index 20300f7ec67ed2e59489d084540cada456b30990..ba612f50e7d702019994a636a1e2519770e739a6 100644 --- a/front/src/components/radios/Card.vue +++ b/front/src/components/radios/Card.vue @@ -14,7 +14,7 @@ </div> </div> <div class="extra content"> - <user-link :user="radio.user" class="left floated" /> + <user-link v-if="radio.user" :user="radio.user" class="left floated" /> <radio-button class="right floated button" :type="type" :custom-radio-id="customRadioId"></radio-button> <router-link class="ui basic yellow button right floated" diff --git a/front/src/store/queue.js b/front/src/store/queue.js index 0435c867ee1137c308f997bd2442a330fa0ffcf8..b6edb2242a3d09092baacf3b5b3af817bc9695dd 100644 --- a/front/src/store/queue.js +++ b/front/src/store/queue.js @@ -135,6 +135,9 @@ export default { } } }, + last ({state, dispatch}) { + dispatch('currentIndex', state.tracks.length - 1) + }, currentIndex ({commit, state, rootState, dispatch}, index) { commit('ended', false) commit('player/currentTime', 0, {root: true}) diff --git a/front/src/store/radios.js b/front/src/store/radios.js index 49bbd4f9410dff015721f57073c4d95c58d7146a..c27421ed06ca4fbbd6b8c0926c226e7099550165 100644 --- a/front/src/store/radios.js +++ b/front/src/store/radios.js @@ -48,7 +48,7 @@ export default { logger.default.info('Successfully started radio ', type) commit('current', {type, objectId, session: response.data.id, customRadioId}) commit('running', true) - dispatch('populateQueue') + dispatch('populateQueue', true) }, (response) => { logger.default.error('Error while starting radio', type) }) @@ -57,7 +57,7 @@ export default { commit('current', null) commit('running', false) }, - populateQueue ({rootState, state, dispatch}) { + populateQueue ({rootState, state, dispatch}, playNow) { if (!state.running) { return } @@ -69,7 +69,12 @@ export default { } return axios.post('radios/tracks/', params).then((response) => { logger.default.info('Adding track to queue from radio') - dispatch('queue/append', {track: response.data.track}, {root: true}) + let append = dispatch('queue/append', {track: response.data.track}, {root: true}) + if (playNow) { + append.then(() => { + dispatch('queue/last', null, {root: true}) + }) + } }, (response) => { logger.default.error('Error while adding track to queue from radio') })