56 lines
1.6 KiB
Vue
56 lines
1.6 KiB
Vue
<template>
|
|
<div class="w-full h-full px-1 md:px-4 py-1 mb-4">
|
|
<div class="flex items-center justify-between mb-4">
|
|
<p class="text-base md:text-xl font-semibold">{{ $strings.HeaderScheduleLibraryScans }}</p>
|
|
<ui-checkbox v-model="enableAutoScan" @input="toggleEnableAutoScan" :label="$strings.LabelEnable" medium checkbox-bg="bg" label-class="pl-2 text-base md:text-lg" />
|
|
</div>
|
|
<widgets-cron-expression-builder ref="cronExpressionBuilder" v-if="enableAutoScan" v-model="cronExpression" @input="updatedCron" />
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
props: {
|
|
library: {
|
|
type: Object,
|
|
default: () => null
|
|
},
|
|
processing: Boolean
|
|
},
|
|
data() {
|
|
return {
|
|
cronExpression: null,
|
|
enableAutoScan: false
|
|
}
|
|
},
|
|
computed: {},
|
|
methods: {
|
|
checkBlurExpressionInput() {
|
|
// returns true if advanced cron input is focused
|
|
if (!this.$refs.cronExpressionBuilder) return false
|
|
return this.$refs.cronExpressionBuilder.checkBlurExpressionInput()
|
|
},
|
|
toggleEnableAutoScan(v) {
|
|
if (!v) this.updatedCron(null)
|
|
else if (!this.cronExpression) {
|
|
this.cronExpression = '0 0 * * 1'
|
|
this.updatedCron(this.cronExpression)
|
|
}
|
|
},
|
|
updatedCron(expression) {
|
|
this.$emit('update', {
|
|
settings: {
|
|
autoScanCronExpression: expression
|
|
}
|
|
})
|
|
},
|
|
init() {
|
|
this.cronExpression = this.library.settings.autoScanCronExpression
|
|
this.enableAutoScan = !!this.cronExpression
|
|
}
|
|
},
|
|
mounted() {
|
|
this.init()
|
|
}
|
|
}
|
|
</script> |