Version bump v1.6.46

This commit is contained in:
advplyr 2021-12-20 20:21:25 -06:00
parent 43668cfe03
commit f4ee2889fe
4 changed files with 64 additions and 7 deletions

View File

@ -3,14 +3,14 @@
<p class="px-1 text-sm font-semibold">{{ label }}</p>
<div ref="wrapper" class="relative">
<form @submit.prevent="submitForm">
<div ref="inputWrapper" style="min-height: 40px" class="flex-wrap relative w-full shadow-sm flex items-center bg-primary border border-gray-600 rounded-md px-2 py-1 cursor-text" @click.stop.prevent="clickWrapper" @mouseup.stop.prevent @mousedown.prevent>
<div ref="inputWrapper" style="min-height: 40px" class="flex-wrap relative w-full shadow-sm flex items-center border border-gray-600 rounded-md px-2 py-1 cursor-text" :class="disabled ? 'bg-black-300' : 'bg-primary'" @click.stop.prevent="clickWrapper" @mouseup.stop.prevent @mousedown.prevent>
<div v-for="item in selected" :key="item" class="rounded-full px-2 py-1 ma-0.5 text-xs bg-bg flex flex-nowrap whitespace-nowrap items-center relative">
<div class="w-full h-full rounded-full absolute top-0 left-0 opacity-0 hover:opacity-100 px-1 bg-bg bg-opacity-75 flex items-center justify-end cursor-pointer">
<span class="material-icons text-white hover:text-error" style="font-size: 1.1rem" @click.stop="removeItem(item)">close</span>
</div>
{{ item }}
</div>
<input ref="input" v-model="textInput" style="min-width: 40px; width: 40px" class="h-full bg-primary focus:outline-none px-1" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" />
<input ref="input" v-model="textInput" :disabled="disabled" style="min-width: 40px; width: 40px" class="h-full bg-primary focus:outline-none px-1" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" />
</div>
</form>
@ -46,7 +46,8 @@ export default {
type: Array,
default: () => []
},
label: String
label: String,
disabled: Boolean
},
data() {
return {
@ -182,6 +183,7 @@ export default {
})
},
clickWrapper() {
if (this.disabled) return
if (this.showMenu) {
return this.blur()
}
@ -233,4 +235,14 @@ export default {
if (this.menu) this.menu.remove()
}
}
</script>
</script>
<style scoped>
input {
border-style: inherit !important;
}
input:read-only {
color: #aaa;
background-color: #444;
}
</style>

View File

@ -1,6 +1,6 @@
{
"name": "audiobookshelf-client",
"version": "1.6.45",
"version": "1.6.46",
"description": "Audiobook manager and player",
"main": "index.js",
"scripts": {

View File

@ -1,5 +1,32 @@
<template>
<div ref="page" id="page-wrapper" class="page px-6 pt-6 pb-52 overflow-y-auto" :class="streamAudiobook ? 'streaming' : ''">
<!-- <div class="flex justify-center max-w-3xl mx-auto border border-black-300 p-6 mb-2">
<div class="flex-grow">
<p class="text-xl mb-4">Batch edit {{ audiobooks.length }} books</p>
<div class="flex items-center px-1">
<ui-checkbox v-model="selectedBatchUsage.author" />
<ui-text-input-with-label v-model="batchBook.author" :disabled="!selectedBatchUsage.author" label="Author" class="mb-4 ml-4" />
</div>
<div class="flex items-center px-1">
<ui-checkbox v-model="selectedBatchUsage.series" />
<ui-input-dropdown v-model="batchBook.series" :disabled="!selectedBatchUsage.series" label="Series" :items="seriesItems" @input="seriesChanged" @newItem="newSeriesItem" class="mb-4 ml-4" />
</div>
<div class="flex items-center px-1">
<ui-checkbox v-model="selectedBatchUsage.genres" />
<ui-multi-select v-model="batchBook.genres" :disabled="!selectedBatchUsage.genres" label="Genres" :items="genreItems" @newItem="newGenreItem" @removedItem="removedGenreItem" class="mb-4 ml-4" />
</div>
<div class="flex items-center px-1">
<ui-checkbox v-model="selectedBatchUsage.narrator" />
<ui-text-input-with-label v-model="batchBook.narrator" :disabled="!selectedBatchUsage.narrator" label="Narrator" class="mb-4 ml-4" />
</div>
<div class="flex items-center px-1">
<ui-checkbox v-model="selectedBatchUsage.tags" />
<ui-multi-select v-model="batchTags" label="Tags" :disabled="!selectedBatchUsage.tags" :items="tagItems" @newItem="newTagItem" @removedItem="removedTagItem" class="mb-4 ml-4" />
</div>
</div>
</div> -->
<div class="flex justify-center flex-wrap">
<template v-for="audiobook in audiobookCopies">
<div :key="audiobook.id" class="w-full max-w-3xl border border-black-300 p-6 -ml-px -mt-px flex">
@ -82,7 +109,20 @@ export default {
isScrollable: false,
newSeriesItems: [],
newTagItems: [],
newGenreItems: []
newGenreItems: [],
batchBook: {
author: null,
genres: [],
series: null,
narrator: null
},
selectedBatchUsage: {
author: false,
genres: false,
series: false,
narrator: false
},
batchTags: []
}
},
computed: {
@ -243,6 +283,11 @@ export default {
this.$toast.error('Failed to batch update')
this.isProcessing = false
})
},
applyBatchUpdates() {
this.audiobookCopies = this.audiobookCopies.map((ab) => {
if (this.batchBook.series) ab.book.series = this.batchBook.series
})
}
},
mounted() {

View File

@ -1,6 +1,6 @@
{
"name": "audiobookshelf",
"version": "1.6.45",
"version": "1.6.46",
"description": "Self-hosted audiobook server for managing and playing audiobooks",
"main": "index.js",
"scripts": {