2017-08-13 22:46:05 +00:00
|
|
|
<template lang="pug">
|
2017-08-27 02:03:18 +00:00
|
|
|
v-container#downloader.container(fluid, fill-height)
|
2017-08-13 22:46:05 +00:00
|
|
|
.cute-char.left-pic
|
|
|
|
.cute-char.right-pic
|
2017-08-27 02:03:18 +00:00
|
|
|
v-layout(row, wrap, justify-center, align-center)
|
|
|
|
v-flex.form-container(xs8)
|
|
|
|
v-layout(row, wrap, justify-center)
|
|
|
|
v-flex(xs9)
|
|
|
|
v-flex(xs3)
|
|
|
|
v-switch#magnets-switch(
|
|
|
|
label='Get Magnets',
|
|
|
|
color='primary',
|
2017-09-17 18:55:24 +00:00
|
|
|
v-model='$store.state.config.config.magnets',
|
2017-08-27 02:03:18 +00:00
|
|
|
dark
|
|
|
|
)
|
|
|
|
v-flex.pt-3.pl-5.pr-5(xs7, @keydown.enter='next(1)')
|
|
|
|
v-text-field#name-input(
|
|
|
|
name='name-input',
|
|
|
|
type='text',
|
|
|
|
label='Name of the anime',
|
2017-09-19 08:50:02 +00:00
|
|
|
v-model='formValues.name',
|
2017-08-27 02:03:18 +00:00
|
|
|
autofocus,
|
|
|
|
dark
|
|
|
|
)
|
|
|
|
v-flex.pt-3.pl-5.pr-5(xs7, @keydown.enter='next(2)', @keydown.delete='previous(2)')
|
|
|
|
v-text-field(
|
|
|
|
name='from-ep-input',
|
|
|
|
type='number',
|
|
|
|
min='0',
|
|
|
|
label='From episode...',
|
2017-09-19 08:50:02 +00:00
|
|
|
v-model='formValues.fromEp',
|
2017-08-27 02:03:18 +00:00
|
|
|
dark
|
|
|
|
)
|
|
|
|
v-flex.pt-3.pl-5.pr-5(xs7, @keydown.enter='next(3)', @keydown.delete='previous(3)')
|
|
|
|
v-text-field(
|
|
|
|
name='until-ep-input',
|
|
|
|
type='number',
|
|
|
|
label='Until episode..',
|
2017-09-19 08:50:02 +00:00
|
|
|
v-model='formValues.untilEp',
|
2017-08-27 02:03:18 +00:00
|
|
|
dark
|
|
|
|
)
|
|
|
|
v-flex.pt-4(xs12)
|
|
|
|
v-radio-group(:isMandatory="true", row, v-model="quality")
|
|
|
|
v-radio.radio.primary--text(label='480p', value='480p')
|
|
|
|
v-radio.radio.primary--text(label='720p', value='720p')
|
|
|
|
v-radio.radio.primary--text(label='1080p', value='1080p')
|
|
|
|
v-flex.pt-4(xs12)
|
|
|
|
v-layout(justify-center, align-center)
|
|
|
|
v-flex(xs3)
|
|
|
|
v-btn#download-btn(
|
|
|
|
dark, block, secondary,
|
|
|
|
@click='isDownloadable()',
|
2017-09-19 08:50:02 +00:00
|
|
|
v-if='!$store.state.downloader.form.loading'
|
2017-08-27 02:03:18 +00:00
|
|
|
) Download!
|
|
|
|
v-btn(dark, block, secondary, loading, v-else)
|
2017-08-13 22:46:05 +00:00
|
|
|
v-snackbar(
|
|
|
|
:timeout='timeout',
|
2017-09-25 11:55:58 +00:00
|
|
|
top,
|
2017-08-13 22:46:05 +00:00
|
|
|
v-model='snackbar'
|
|
|
|
) Please, enter a valid name (at least 3 letters...)
|
|
|
|
v-btn.pink--text(flat, @click='snackbar = false') ok!
|
2017-04-15 14:16:14 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
export default {
|
2017-05-13 14:38:17 +00:00
|
|
|
data () {
|
2017-04-15 14:16:14 +00:00
|
|
|
return {
|
|
|
|
modalText: '',
|
2017-05-03 18:22:07 +00:00
|
|
|
snackbar: false,
|
|
|
|
timeout: 4000,
|
2017-09-17 22:06:33 +00:00
|
|
|
quality: this.$store.state.config.config.quality
|
2017-04-15 14:16:14 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
2017-07-26 08:19:51 +00:00
|
|
|
formValues () {
|
2017-09-19 08:50:02 +00:00
|
|
|
return this.$store.state.downloader.form
|
2017-04-15 14:16:14 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
isDownloadable () {
|
2017-09-19 08:50:02 +00:00
|
|
|
this.formValues.name.length >= 3
|
|
|
|
? this.download()
|
|
|
|
: this.snackbar = true
|
2017-04-15 14:16:14 +00:00
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
download () {
|
2017-04-15 14:16:14 +00:00
|
|
|
const quality = this.quality
|
|
|
|
|
2017-09-19 08:50:02 +00:00
|
|
|
this.$store.dispatch('downloader/download')
|
2017-09-20 13:04:27 +00:00
|
|
|
.then(() => {
|
|
|
|
this.$store.commit('downloader/setQuality', quality)
|
|
|
|
})
|
2017-04-15 14:16:14 +00:00
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
next (number) {
|
|
|
|
switch (number) {
|
2017-04-15 14:16:14 +00:00
|
|
|
case 1:
|
2017-05-30 10:26:35 +00:00
|
|
|
document.getElementsByName('from-ep-input')[0].focus()
|
2017-04-15 14:16:14 +00:00
|
|
|
break
|
|
|
|
|
|
|
|
case 2:
|
2017-05-30 10:26:35 +00:00
|
|
|
document.getElementsByName('until-ep-input')[0].focus()
|
2017-04-15 14:16:14 +00:00
|
|
|
break
|
|
|
|
|
|
|
|
case 3:
|
2017-05-13 14:38:17 +00:00
|
|
|
document.getElementById('download-btn').click()
|
2017-05-30 10:26:35 +00:00
|
|
|
document.getElementsByName('name-input')[0].focus()
|
2017-04-15 14:16:14 +00:00
|
|
|
break
|
|
|
|
|
|
|
|
default:
|
|
|
|
break
|
|
|
|
}
|
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
previous (number) {
|
|
|
|
switch (number) {
|
2017-04-15 14:16:14 +00:00
|
|
|
case 2:
|
2017-05-30 10:26:35 +00:00
|
|
|
if (!this.formValues.fromEp) document.getElementsByName('name-input')[0].focus()
|
2017-04-15 14:16:14 +00:00
|
|
|
break
|
|
|
|
|
|
|
|
case 3:
|
2017-05-30 10:26:35 +00:00
|
|
|
if (!this.formValues.untilEp) document.getElementsByName('from-ep-input')[0].focus()
|
2017-04-15 14:16:14 +00:00
|
|
|
break
|
|
|
|
|
|
|
|
default:
|
|
|
|
break
|
|
|
|
}
|
2017-05-03 18:22:07 +00:00
|
|
|
}
|
2017-04-15 14:16:14 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
2017-08-27 02:03:18 +00:00
|
|
|
.container
|
2017-07-11 07:44:55 +00:00
|
|
|
{
|
|
|
|
position: relative;
|
2017-08-27 02:03:18 +00:00
|
|
|
height: 100%;
|
|
|
|
width: 100%;
|
|
|
|
background-image: url('~static/images/downloader-back.jpg');
|
|
|
|
background-size: cover;
|
|
|
|
background-repeat: no-repeat;
|
2017-07-11 07:44:55 +00:00
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.cute-char
|
|
|
|
{
|
|
|
|
position: absolute;
|
|
|
|
bottom: 0;
|
|
|
|
height: 45%;
|
|
|
|
}
|
2017-04-15 14:16:14 +00:00
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.right-pic
|
|
|
|
{
|
|
|
|
content: url(~static/images/downloader-char-right.png);
|
|
|
|
right: 2%;
|
|
|
|
}
|
2017-04-15 14:16:14 +00:00
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.left-pic
|
|
|
|
{
|
|
|
|
content: url(~static/images/downloader-char-left.png);
|
|
|
|
left: 2%;
|
|
|
|
}
|
2017-04-15 14:16:14 +00:00
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.form-container
|
|
|
|
{
|
|
|
|
background-color: rgba(0, 0, 0, 0.4);
|
|
|
|
width: 65%;
|
|
|
|
margin-top: 4%;
|
|
|
|
padding-bottom: 4%;
|
|
|
|
padding-top: 3%;
|
|
|
|
}
|
2017-04-15 14:16:14 +00:00
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.radio
|
|
|
|
{
|
2017-08-27 02:03:18 +00:00
|
|
|
margin-left: 10%;
|
2017-05-13 14:38:17 +00:00
|
|
|
}
|
|
|
|
</style>
|