mirror of
https://github.com/owntone/owntone-server.git
synced 2025-03-04 15:50:10 -05:00
72 lines
1.8 KiB
Vue
72 lines
1.8 KiB
Vue
<template>
|
|
<modal-dialog :actions="actions" :show="show" @close="$emit('close')">
|
|
<template #content>
|
|
<list-properties :buttons="buttons" :item="item" />
|
|
</template>
|
|
</modal-dialog>
|
|
</template>
|
|
|
|
<script>
|
|
import ListProperties from '@/components/ListProperties.vue'
|
|
import ModalDialog from '@/components/ModalDialog.vue'
|
|
import webapi from '@/webapi'
|
|
|
|
export default {
|
|
name: 'ModalDialogPlayable',
|
|
components: { ListProperties, ModalDialog },
|
|
props: {
|
|
buttons: { default: () => [], type: Array },
|
|
item: { required: true, type: Object },
|
|
show: Boolean
|
|
},
|
|
emits: ['close'],
|
|
computed: {
|
|
actions() {
|
|
return [
|
|
{
|
|
label: this.$t('dialog.playable.add'),
|
|
handler: this.queue_add,
|
|
icon: 'playlist-plus'
|
|
},
|
|
{
|
|
label: this.$t('dialog.playable.add-next'),
|
|
handler: this.queue_add_next,
|
|
icon: 'playlist-play'
|
|
},
|
|
{
|
|
label: this.$t('dialog.playable.play'),
|
|
handler: this.play,
|
|
icon: 'play'
|
|
}
|
|
]
|
|
}
|
|
},
|
|
methods: {
|
|
play() {
|
|
this.$emit('close')
|
|
if (this.item.expression) {
|
|
webapi.player_play_expression(this.item.expression, false)
|
|
} else {
|
|
webapi.player_play_uri(this.item.uris || this.item.item.uri, false)
|
|
}
|
|
},
|
|
queue_add() {
|
|
this.$emit('close')
|
|
if (this.item.expression) {
|
|
webapi.queue_expression_add(this.item.expression)
|
|
} else {
|
|
webapi.queue_add(this.item.uris || this.item.uri)
|
|
}
|
|
},
|
|
queue_add_next() {
|
|
this.$emit('close')
|
|
if (this.item.expression) {
|
|
webapi.queue_expression_add_next(this.item.expression)
|
|
} else {
|
|
webapi.queue_add_next(this.item.uris || this.item.uri)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|