mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-01-08 00:08:14 +01:00
Version bump v1.6.46
This commit is contained in:
parent
43668cfe03
commit
f4ee2889fe
@ -3,14 +3,14 @@
|
|||||||
<p class="px-1 text-sm font-semibold">{{ label }}</p>
|
<p class="px-1 text-sm font-semibold">{{ label }}</p>
|
||||||
<div ref="wrapper" class="relative">
|
<div ref="wrapper" class="relative">
|
||||||
<form @submit.prevent="submitForm">
|
<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 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">
|
<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>
|
<span class="material-icons text-white hover:text-error" style="font-size: 1.1rem" @click.stop="removeItem(item)">close</span>
|
||||||
</div>
|
</div>
|
||||||
{{ item }}
|
{{ item }}
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
@ -46,7 +46,8 @@ export default {
|
|||||||
type: Array,
|
type: Array,
|
||||||
default: () => []
|
default: () => []
|
||||||
},
|
},
|
||||||
label: String
|
label: String,
|
||||||
|
disabled: Boolean
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -182,6 +183,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
clickWrapper() {
|
clickWrapper() {
|
||||||
|
if (this.disabled) return
|
||||||
if (this.showMenu) {
|
if (this.showMenu) {
|
||||||
return this.blur()
|
return this.blur()
|
||||||
}
|
}
|
||||||
@ -233,4 +235,14 @@ export default {
|
|||||||
if (this.menu) this.menu.remove()
|
if (this.menu) this.menu.remove()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
input {
|
||||||
|
border-style: inherit !important;
|
||||||
|
}
|
||||||
|
input:read-only {
|
||||||
|
color: #aaa;
|
||||||
|
background-color: #444;
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "audiobookshelf-client",
|
"name": "audiobookshelf-client",
|
||||||
"version": "1.6.45",
|
"version": "1.6.46",
|
||||||
"description": "Audiobook manager and player",
|
"description": "Audiobook manager and player",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -1,5 +1,32 @@
|
|||||||
<template>
|
<template>
|
||||||
<div ref="page" id="page-wrapper" class="page px-6 pt-6 pb-52 overflow-y-auto" :class="streamAudiobook ? 'streaming' : ''">
|
<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">
|
<div class="flex justify-center flex-wrap">
|
||||||
<template v-for="audiobook in audiobookCopies">
|
<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">
|
<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,
|
isScrollable: false,
|
||||||
newSeriesItems: [],
|
newSeriesItems: [],
|
||||||
newTagItems: [],
|
newTagItems: [],
|
||||||
newGenreItems: []
|
newGenreItems: [],
|
||||||
|
batchBook: {
|
||||||
|
author: null,
|
||||||
|
genres: [],
|
||||||
|
series: null,
|
||||||
|
narrator: null
|
||||||
|
},
|
||||||
|
selectedBatchUsage: {
|
||||||
|
author: false,
|
||||||
|
genres: false,
|
||||||
|
series: false,
|
||||||
|
narrator: false
|
||||||
|
},
|
||||||
|
batchTags: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -243,6 +283,11 @@ export default {
|
|||||||
this.$toast.error('Failed to batch update')
|
this.$toast.error('Failed to batch update')
|
||||||
this.isProcessing = false
|
this.isProcessing = false
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
applyBatchUpdates() {
|
||||||
|
this.audiobookCopies = this.audiobookCopies.map((ab) => {
|
||||||
|
if (this.batchBook.series) ab.book.series = this.batchBook.series
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "audiobookshelf",
|
"name": "audiobookshelf",
|
||||||
"version": "1.6.45",
|
"version": "1.6.46",
|
||||||
"description": "Self-hosted audiobook server for managing and playing audiobooks",
|
"description": "Self-hosted audiobook server for managing and playing audiobooks",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
Loading…
Reference in New Issue
Block a user