diff --git a/changes/changelog.d/99.enhancement b/changes/changelog.d/99.enhancement new file mode 100644 index 0000000000000000000000000000000000000000..3b5666ac44a56cbf8147f9f4f7415d5948ebe0d8 --- /dev/null +++ b/changes/changelog.d/99.enhancement @@ -0,0 +1 @@ +Play button now play tracks immediately instead of appending them to the queue (#99, #156) diff --git a/front/src/components/audio/PlayButton.vue b/front/src/components/audio/PlayButton.vue index 14d381ca19517efa6641e047fc94cd6aed4f1795..2662f30b33a5321a1e2d0121c3930c46b5f66097 100644 --- a/front/src/components/audio/PlayButton.vue +++ b/front/src/components/audio/PlayButton.vue @@ -2,7 +2,7 @@ <div :class="['ui', {'tiny': discrete}, 'buttons']"> <button :title="$t('Add to current queue')" - @click="add" + @click="addNext(true)" :class="['ui', {loading: isLoading}, {'mini': discrete}, {disabled: !playable}, 'button']"> <i class="ui play icon"></i> <template v-if="!discrete"><slot><i18next path="Play"/></slot></template> @@ -42,9 +42,7 @@ export default { } }, mounted () { - if (!this.discrete) { - jQuery(this.$el).find('.ui.dropdown').dropdown() - } + jQuery(this.$el).find('.ui.dropdown').dropdown() }, computed: { playable () { @@ -98,9 +96,11 @@ export default { addNext (next) { let self = this this.triggerLoad() + let wasEmpty = this.$store.state.queue.tracks.length === 0 this.getPlayableTracks().then((tracks) => { self.$store.dispatch('queue/appendMany', {tracks: tracks, index: self.$store.state.queue.currentIndex + 1}) - if (next) { + let goNext = next && !wasEmpty + if (goNext) { self.$store.dispatch('queue/next') } })