Merge branch '92-import-default' into 'develop'

Import form improvements

See merge request funkwhale/funkwhale!73
This commit is contained in:
Eliot Berriot 2018-02-28 18:23:58 +00:00
commit ffc77f9e89
3 changed files with 42 additions and 29 deletions

View File

@ -1,8 +1,8 @@
<template> <template>
<div> <div>
<div v-if="batch" class="ui two buttons"> <div v-if="batch" class="ui container">
<file-upload-widget <file-upload-widget
class="ui icon button" :class="['ui', 'icon', 'left', 'floated', 'button']"
:post-action="uploadUrl" :post-action="uploadUrl"
:multiple="true" :multiple="true"
:size="1024 * 1024 * 30" :size="1024 * 1024 * 30"
@ -19,16 +19,18 @@
<i class="upload icon"></i> <i class="upload icon"></i>
Select files to upload... Select files to upload...
</file-upload-widget> </file-upload-widget>
<button class="ui icon teal button" v-if="!$refs.upload || !$refs.upload.active" @click.prevent="$refs.upload.active = true"> <button
:class="['ui', 'right', 'floated', 'icon', {disabled: files.length === 0}, 'button']"
v-if="!$refs.upload || !$refs.upload.active" @click.prevent="$refs.upload.active = true">
<i class="play icon" aria-hidden="true"></i> <i class="play icon" aria-hidden="true"></i>
Start Upload Start Upload
</button> </button>
<button type="button" class="ui icon yellow button" v-else @click.prevent="$refs.upload.active = false"> <button type="button" class="ui right floated icon yellow button" v-else @click.prevent="$refs.upload.active = false">
<i class="pause icon" aria-hidden="true"></i> <i class="pause icon" aria-hidden="true"></i>
Stop Upload Stop Upload
</button> </button>
</div> </div>
<div class="ui hidden divider"></div> <div class="ui hidden clearing divider"></div>
<p v-if="batch"> <p v-if="batch">
Once all your files are uploaded, simply head over <router-link :to="{name: 'library.import.batches.detail', params: {id: batch.id }}">import detail page</router-link> to check the import status. Once all your files are uploaded, simply head over <router-link :to="{name: 'library.import.batches.detail', params: {id: batch.id }}">import detail page</router-link> to check the import status.
</p> </p>

View File

@ -23,6 +23,18 @@
</div> </div>
</a> </a>
</div> </div>
<div class="ui hidden divider"></div>
<div class="ui centered buttons">
<button @click="currentStep -= 1" :disabled="currentStep === 0" class="ui icon button"><i class="left arrow icon"></i> Previous step</button>
<button @click="currentStep += 1" v-if="currentStep < 2" class="ui icon button">Next step <i class="right arrow icon"></i></button>
<button
@click="$refs.import.launchImport()"
v-if="currentStep === 2"
:class="['ui', 'positive', 'icon', {'loading': isImporting}, 'button']"
:disabled="isImporting || importData.count === 0"
>Import {{ importData.count }} tracks <i class="check icon"></i></button>
</div>
<div class="ui hidden divider"></div>
<div class="ui attached segment"> <div class="ui attached segment">
<template v-if="currentStep === 0"> <template v-if="currentStep === 0">
<p>First, choose where you want to import the music from :</p> <p>First, choose where you want to import the music from :</p>
@ -101,17 +113,6 @@
@import-state-changed="updateImportState" @import-state-changed="updateImportState"
></component> ></component>
</div> </div>
<div class="ui hidden divider"></div>
<div class="ui buttons">
<button @click="currentStep -= 1" :disabled="currentStep === 0" class="ui icon button"><i class="left arrow icon"></i> Previous step</button>
<button @click="currentStep += 1" v-if="currentStep < 2" class="ui icon button">Next step <i class="right arrow icon"></i></button>
<button
@click="$refs.import.launchImport()"
v-if="currentStep === 2"
:class="['ui', 'positive', 'icon', {'loading': isImporting}, 'button']"
:disabled="isImporting || importData.count === 0"
>Import {{ importData.count }} tracks <i class="check icon"></i></button>
</div>
</div> </div>
</div> </div>
<div class="ui vertical stripe segment" v-if="currentRequest"> <div class="ui vertical stripe segment" v-if="currentRequest">

View File

@ -100,8 +100,10 @@ export default Vue.extend({
warnings: [ warnings: [
'live', 'live',
'full', 'full',
'cover' 'cover',
'mix'
], ],
customQuery: '',
time time
} }
}, },
@ -114,7 +116,7 @@ export default Vue.extend({
$('.ui.checkbox').checkbox() $('.ui.checkbox').checkbox()
}, },
methods: { methods: {
search () { search: function () {
let self = this let self = this
this.isLoading = true this.isLoading = true
let url = 'providers/' + this.currentBackendId + '/search/' let url = 'providers/' + this.currentBackendId + '/search/'
@ -144,7 +146,11 @@ export default Vue.extend({
source: this.importedUrl source: this.importedUrl
} }
}, },
query () { query: {
get: function () {
if (this.customQuery.length > 0) {
return this.customQuery
}
let queryMapping = [ let queryMapping = [
['artist', this.releaseMetadata['artist-credit'][0]['artist']['name']], ['artist', this.releaseMetadata['artist-credit'][0]['artist']['name']],
['album', this.releaseMetadata['title']], ['album', this.releaseMetadata['title']],
@ -155,6 +161,10 @@ export default Vue.extend({
query = query.split('$' + e[0]).join(e[1]) query = query.split('$' + e[0]).join(e[1])
}) })
return query return query
},
set: function (newValue) {
this.customQuery = newValue
}
} }
}, },
watch: { watch: {