mirror of
https://github.com/gotson/komga.git
synced 2025-12-28 03:15:33 +01:00
feat(webui): move all libraries action to 3-dots menu in sidebar
This commit is contained in:
parent
169c47e701
commit
8706048a71
2 changed files with 41 additions and 36 deletions
|
|
@ -75,6 +75,26 @@
|
|||
<v-icon>mdi-plus</v-icon>
|
||||
</v-btn>
|
||||
</v-list-item-action>
|
||||
<v-list-item-action v-if="isAdmin" class="ma-0">
|
||||
<v-menu offset-y>
|
||||
<template v-slot:activator="{ on }">
|
||||
<v-btn icon v-on="on" @click.prevent="">
|
||||
<v-icon>mdi-dots-vertical</v-icon>
|
||||
</v-btn>
|
||||
</template>
|
||||
<v-list dense>
|
||||
<v-list-item @click="scanAllLibraries(false)">
|
||||
<v-list-item-title>{{ $t('server.server_management.button_scan_libraries') }}</v-list-item-title>
|
||||
</v-list-item>
|
||||
<v-list-item @click="scanAllLibraries(true)" class="list-warning">
|
||||
<v-list-item-title>{{ $t('server.server_management.button_scan_libraries_deep') }}</v-list-item-title>
|
||||
</v-list-item>
|
||||
<v-list-item @click="confirmEmptyTrash = true">
|
||||
<v-list-item-title>{{ $t('server.server_management.button_empty_trash') }}</v-list-item-title>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
</v-list-item-action>
|
||||
</v-list-item>
|
||||
|
||||
<v-list-item v-for="(l, index) in libraries"
|
||||
|
|
@ -313,6 +333,14 @@
|
|||
</template>
|
||||
</v-navigation-drawer>
|
||||
|
||||
<confirmation-dialog
|
||||
v-model="confirmEmptyTrash"
|
||||
:title="$t('dialog.empty_trash.title')"
|
||||
:body="$t('dialog.empty_trash.body')"
|
||||
:button-confirm="$t('dialog.empty_trash.button_confirm')"
|
||||
@confirm="emptyTrash"
|
||||
/>
|
||||
|
||||
<v-main class="fill-height">
|
||||
<reusable-dialogs/>
|
||||
<toaster-notification/>
|
||||
|
|
@ -332,10 +360,11 @@ import ToasterNotification from '@/components/ToasterNotification.vue'
|
|||
import {MediaStatus} from '@/types/enum-books'
|
||||
import {LibraryDto} from '@/types/komga-libraries'
|
||||
import {BookSearch, SearchConditionAnyOfBook, SearchConditionMediaStatus, SearchOperatorIs} from '@/types/komga-search'
|
||||
import ConfirmationDialog from '@/components/dialogs/ConfirmationDialog.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'HomeView',
|
||||
components: {ToasterNotification, LibraryActionsMenu, SearchBox, ReusableDialogs},
|
||||
components: {ConfirmationDialog, ToasterNotification, LibraryActionsMenu, SearchBox, ReusableDialogs},
|
||||
data: function () {
|
||||
return {
|
||||
LIBRARIES_ALL,
|
||||
|
|
@ -346,6 +375,7 @@ export default Vue.extend({
|
|||
expandMediaManagement: false,
|
||||
expandImport: false,
|
||||
expandAccount: false,
|
||||
confirmEmptyTrash: false,
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
|
|
@ -442,6 +472,16 @@ export default Vue.extend({
|
|||
addLibrary() {
|
||||
this.$store.dispatch('dialogAddLibrary')
|
||||
},
|
||||
emptyTrash() {
|
||||
this.libraries.forEach(library => {
|
||||
this.$komgaLibraries.emptyTrash(library)
|
||||
})
|
||||
},
|
||||
scanAllLibraries(scanDeep: boolean) {
|
||||
this.libraries.forEach(library => {
|
||||
this.$komgaLibraries.scanLibrary(library, scanDeep)
|
||||
})
|
||||
},
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -10,22 +10,6 @@
|
|||
</v-btn>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col cols="auto">
|
||||
<v-btn @click="scanAllLibraries(false)">{{ $t('server.server_management.button_scan_libraries') }}</v-btn>
|
||||
</v-col>
|
||||
<v-col cols="auto">
|
||||
<v-btn @click="scanAllLibraries(true)"
|
||||
color="warning"
|
||||
>{{ $t('server.server_management.button_scan_libraries_deep') }}
|
||||
</v-btn>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col cols="auto">
|
||||
<v-btn @click="confirmEmptyTrash = true">{{ $t('server.server_management.button_empty_trash') }}</v-btn>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col cols="auto">
|
||||
<v-btn @click="cancelAllTasks"
|
||||
|
|
@ -43,14 +27,6 @@
|
|||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<confirmation-dialog
|
||||
v-model="confirmEmptyTrash"
|
||||
:title="$t('dialog.empty_trash.title')"
|
||||
:body="$t('dialog.empty_trash.body')"
|
||||
:button-confirm="$t('dialog.empty_trash.button_confirm')"
|
||||
@confirm="emptyTrash"
|
||||
/>
|
||||
|
||||
<confirmation-dialog
|
||||
v-model="modalStopServer"
|
||||
:title="$t('dialog.server_stop.dialog_title')"
|
||||
|
|
@ -76,7 +52,6 @@ export default Vue.extend({
|
|||
components: {ConfirmationDialog},
|
||||
data: () => ({
|
||||
modalStopServer: false,
|
||||
confirmEmptyTrash: false,
|
||||
}),
|
||||
computed: {
|
||||
libraries(): LibraryDto[] {
|
||||
|
|
@ -84,16 +59,6 @@ export default Vue.extend({
|
|||
},
|
||||
},
|
||||
methods: {
|
||||
emptyTrash() {
|
||||
this.libraries.forEach(library => {
|
||||
this.$komgaLibraries.emptyTrash(library)
|
||||
})
|
||||
},
|
||||
scanAllLibraries(scanDeep: boolean) {
|
||||
this.libraries.forEach(library => {
|
||||
this.$komgaLibraries.scanLibrary(library, scanDeep)
|
||||
})
|
||||
},
|
||||
async cancelAllTasks() {
|
||||
const count = await this.$komgaTasks.deleteAllTasks()
|
||||
this.$eventHub.$emit(NOTIFICATION, {
|
||||
|
|
|
|||
Loading…
Reference in a new issue