mirror of
https://github.com/owntone/owntone-server.git
synced 2025-01-08 21:43:22 -05:00
96 lines
2.4 KiB
Vue
96 lines
2.4 KiB
Vue
|
<template>
|
||
|
<modal-dialog
|
||
|
:show="show"
|
||
|
title="Update library"
|
||
|
:ok_action="library.updating ? '' : 'Rescan'"
|
||
|
close_action="Close"
|
||
|
@ok="update_library"
|
||
|
@close="close()">
|
||
|
<template slot="modal-content">
|
||
|
<div v-if="!library.updating">
|
||
|
<p class="mb-3">Scan for new, deleted and modified files</p>
|
||
|
<div class="field" v-if="spotify_enabled || rss.tracks > 0">
|
||
|
<div class="control">
|
||
|
<div class="select is-small">
|
||
|
<select v-model="update_dialog_scan_kind">
|
||
|
<option value="">Update everything</option>
|
||
|
<option value="files">Only update local library</option>
|
||
|
<option value="spotify" v-if="spotify_enabled">Only update Spotify</option>
|
||
|
<option value="rss" v-if="rss.tracks > 0">Only update RSS feeds</option>
|
||
|
</select>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="field">
|
||
|
<label class="checkbox is-size-7 is-small">
|
||
|
<input type="checkbox" v-model="rescan_metadata">
|
||
|
Rescan metadata for unmodified files
|
||
|
</label>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div v-else>
|
||
|
<p class="mb-3">Library update in progress ...</p>
|
||
|
</div>
|
||
|
</template>
|
||
|
</modal-dialog>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import ModalDialog from '@/components/ModalDialog'
|
||
|
import * as types from '@/store/mutation_types'
|
||
|
import webapi from '@/webapi'
|
||
|
|
||
|
export default {
|
||
|
name: 'ModalDialogUpdate',
|
||
|
components: { ModalDialog },
|
||
|
props: ['show'],
|
||
|
|
||
|
data () {
|
||
|
return {
|
||
|
rescan_metadata: false
|
||
|
}
|
||
|
},
|
||
|
|
||
|
computed: {
|
||
|
library () {
|
||
|
return this.$store.state.library
|
||
|
},
|
||
|
|
||
|
rss () {
|
||
|
return this.$store.state.rss_count
|
||
|
},
|
||
|
|
||
|
spotify_enabled () {
|
||
|
return this.$store.state.spotify.webapi_token_valid
|
||
|
},
|
||
|
|
||
|
update_dialog_scan_kind: {
|
||
|
get () {
|
||
|
return this.$store.state.update_dialog_scan_kind
|
||
|
},
|
||
|
set (value) {
|
||
|
this.$store.commit(types.UPDATE_DIALOG_SCAN_KIND, value)
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
methods: {
|
||
|
update_library () {
|
||
|
if (this.rescan_metadata) {
|
||
|
webapi.library_rescan(this.update_dialog_scan_kind)
|
||
|
} else {
|
||
|
webapi.library_update(this.update_dialog_scan_kind)
|
||
|
}
|
||
|
},
|
||
|
|
||
|
close () {
|
||
|
this.update_dialog_scan_kind = ''
|
||
|
this.$emit('close')
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style>
|
||
|
</style>
|