mirror of
https://github.com/owntone/owntone-server.git
synced 2025-07-20 14:01:17 -04:00
103 lines
2.7 KiB
Vue
103 lines
2.7 KiB
Vue
<template>
|
|
<modal-dialog
|
|
:actions="actions"
|
|
:show="show"
|
|
:title="$t('dialog.update.title')"
|
|
@close="$emit('close')"
|
|
>
|
|
<template #content>
|
|
<div v-if="!libraryStore.updating">
|
|
<div
|
|
v-if="servicesStore.isSpotifyActive || rss.tracks > 0"
|
|
class="field"
|
|
>
|
|
<label class="label" v-text="$t('dialog.update.info')" />
|
|
<div class="control">
|
|
<div class="select is-small">
|
|
<select v-model="libraryStore.update_dialog_scan_kind">
|
|
<option value="" v-text="$t('dialog.update.all')" />
|
|
<option value="files" v-text="$t('dialog.update.local')" />
|
|
<option
|
|
v-if="servicesStore.isSpotifyActive"
|
|
value="spotify"
|
|
v-text="$t('dialog.update.spotify')"
|
|
/>
|
|
<option
|
|
v-if="rss.tracks > 0"
|
|
value="rss"
|
|
v-text="$t('dialog.update.feeds')"
|
|
/>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<control-switch v-model="rescanMetadata">
|
|
<template #label>
|
|
<span v-text="$t('dialog.update.rescan-metadata')" />
|
|
</template>
|
|
</control-switch>
|
|
</div>
|
|
<div v-else>
|
|
<div class="mb-3" v-text="$t('dialog.update.progress')" />
|
|
</div>
|
|
</template>
|
|
</modal-dialog>
|
|
</template>
|
|
|
|
<script>
|
|
import ControlSwitch from '@/components/ControlSwitch.vue'
|
|
import ModalDialog from '@/components/ModalDialog.vue'
|
|
import { useLibraryStore } from '@/stores/library'
|
|
import { useServicesStore } from '@/stores/services'
|
|
import webapi from '@/webapi'
|
|
|
|
export default {
|
|
name: 'ModalDialogUpdate',
|
|
components: { ControlSwitch, ModalDialog },
|
|
props: { show: Boolean },
|
|
emits: ['close'],
|
|
setup() {
|
|
return {
|
|
libraryStore: useLibraryStore(),
|
|
servicesStore: useServicesStore()
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
rescanMetadata: false
|
|
}
|
|
},
|
|
computed: {
|
|
actions() {
|
|
const actions = [
|
|
{ handler: this.cancel, icon: 'cancel', key: 'actions.cancel' }
|
|
]
|
|
if (!this.libraryStore.updating) {
|
|
actions.push({
|
|
handler: this.analyse,
|
|
icon: 'check',
|
|
key: 'actions.rescan'
|
|
})
|
|
}
|
|
return actions
|
|
},
|
|
rss() {
|
|
return this.libraryStore.rss
|
|
}
|
|
},
|
|
methods: {
|
|
analyse() {
|
|
if (this.rescanMetadata) {
|
|
webapi.library_rescan(this.libraryStore.update_dialog_scan_kind)
|
|
} else {
|
|
webapi.library_update(this.libraryStore.update_dialog_scan_kind)
|
|
}
|
|
},
|
|
cancel() {
|
|
this.$emit('close')
|
|
this.libraryStore.update_dialog_scan_kind = ''
|
|
}
|
|
}
|
|
}
|
|
</script>
|