1
1
<template >
2
2
<div >
3
- <v-menu offset-y v-if = " isAdmin " >
3
+ <v-menu offset-y >
4
4
<template v-slot :activator =" { on } " >
5
5
<v-btn icon v-on =" on" @click.prevent =" " >
6
6
<v-icon >mdi-dots-vertical</v-icon >
7
7
</v-btn >
8
8
</template >
9
9
<v-list dense >
10
- <v-list-item @click =" scan(false)" >
10
+ <v-list-item v-if =" !library.unpinned" @click =" unpin" >
11
+ <v-list-item-title >{{ $t('menu.unpin') }}</v-list-item-title >
12
+ </v-list-item >
13
+ <v-list-item v-if =" library.unpinned" @click =" pin" >
14
+ <v-list-item-title >{{ $t('menu.pin') }}</v-list-item-title >
15
+ </v-list-item >
16
+ <v-list-item @click =" scan(false)" v-if =" isAdmin" >
11
17
<v-list-item-title >{{ $t('menu.scan_library_files') }}</v-list-item-title >
12
18
</v-list-item >
13
- <v-list-item @click =" scan(true)" class =" list-warning" >
19
+ <v-list-item @click =" scan(true)" class =" list-warning" v-if = " isAdmin " >
14
20
<v-list-item-title >{{ $t('menu.scan_library_files_deep') }}</v-list-item-title >
15
21
</v-list-item >
16
- <v-list-item @click =" confirmAnalyzeModal = true" >
22
+ <v-list-item @click =" confirmAnalyzeModal = true" v-if = " isAdmin " >
17
23
<v-list-item-title >{{ $t('menu.analyze') }}</v-list-item-title >
18
24
</v-list-item >
19
- <v-list-item @click =" confirmRefreshMetadataModal = true" >
25
+ <v-list-item @click =" confirmRefreshMetadataModal = true" v-if = " isAdmin " >
20
26
<v-list-item-title >{{ $t('menu.refresh_metadata') }}</v-list-item-title >
21
27
</v-list-item >
22
- <v-list-item @click =" confirmEmptyTrash = true" >
28
+ <v-list-item @click =" confirmEmptyTrash = true" v-if = " isAdmin " >
23
29
<v-list-item-title >{{ $t('menu.empty_trash') }}</v-list-item-title >
24
30
</v-list-item >
25
- <v-list-item @click =" edit" >
31
+ <v-list-item @click =" edit" v-if = " isAdmin " >
26
32
<v-list-item-title >{{ $t('menu.edit') }}</v-list-item-title >
27
33
</v-list-item >
28
34
<v-list-item @click =" promptDeleteLibrary"
29
- class =" list-danger" >
35
+ class =" list-danger"
36
+ v-if =" isAdmin"
37
+ >
30
38
<v-list-item-title >{{ $t('menu.delete') }}</v-list-item-title >
31
39
</v-list-item >
32
40
</v-list >
61
69
import Vue from ' vue'
62
70
import ConfirmationDialog from ' @/components/dialogs/ConfirmationDialog.vue'
63
71
import {LibraryDto } from ' @/types/komga-libraries'
72
+ import {ClientSettingLibraryUpdate } from ' @/types/komga-clientsettings'
64
73
65
74
export default Vue .extend ({
66
75
name: ' LibraryActionsMenu' ,
@@ -84,6 +93,22 @@ export default Vue.extend({
84
93
},
85
94
},
86
95
methods: {
96
+ unpin() {
97
+ this .$store .dispatch (' updateLibrarySetting' , {
98
+ libraryId: this .library .id ,
99
+ patch: {
100
+ unpinned: true ,
101
+ },
102
+ } as ClientSettingLibraryUpdate )
103
+ },
104
+ pin() {
105
+ this .$store .dispatch (' updateLibrarySetting' , {
106
+ libraryId: this .library .id ,
107
+ patch: {
108
+ unpinned: false ,
109
+ },
110
+ } as ClientSettingLibraryUpdate )
111
+ },
87
112
scan(scanDeep : boolean ) {
88
113
this .$komgaLibraries .scanLibrary (this .library , scanDeep )
89
114
},
0 commit comments