mirror of
https://github.com/gotson/komga.git
synced 2026-05-09 05:10:19 +02:00
feat(webui): add library action menu item to empty trash
This commit is contained in:
parent
4dac73ea9f
commit
31fbf2a829
3 changed files with 34 additions and 1 deletions
|
|
@ -16,6 +16,9 @@
|
||||||
<v-list-item @click="confirmRefreshMetadataModal = true">
|
<v-list-item @click="confirmRefreshMetadataModal = true">
|
||||||
<v-list-item-title>{{ $t('menu.refresh_metadata') }}</v-list-item-title>
|
<v-list-item-title>{{ $t('menu.refresh_metadata') }}</v-list-item-title>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
|
<v-list-item @click="confirmEmptyTrash = true">
|
||||||
|
<v-list-item-title>{{ $t('menu.empty_trash') }}</v-list-item-title>
|
||||||
|
</v-list-item>
|
||||||
<v-list-item @click="edit">
|
<v-list-item @click="edit">
|
||||||
<v-list-item-title>{{ $t('menu.edit') }}</v-list-item-title>
|
<v-list-item-title>{{ $t('menu.edit') }}</v-list-item-title>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
|
|
@ -41,6 +44,14 @@
|
||||||
:button-confirm="$t('dialog.refresh_library_metadata.button_confirm')"
|
:button-confirm="$t('dialog.refresh_library_metadata.button_confirm')"
|
||||||
@confirm="refreshMetadata"
|
@confirm="refreshMetadata"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<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"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
@ -60,6 +71,7 @@ export default Vue.extend({
|
||||||
return {
|
return {
|
||||||
confirmAnalyzeModal: false,
|
confirmAnalyzeModal: false,
|
||||||
confirmRefreshMetadataModal: false,
|
confirmRefreshMetadataModal: false,
|
||||||
|
confirmEmptyTrash: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
@ -77,6 +89,9 @@ export default Vue.extend({
|
||||||
refreshMetadata() {
|
refreshMetadata() {
|
||||||
this.$komgaLibraries.refreshMetadata(this.library)
|
this.$komgaLibraries.refreshMetadata(this.library)
|
||||||
},
|
},
|
||||||
|
emptyTrash() {
|
||||||
|
this.$komgaLibraries.emptyTrash(this.library)
|
||||||
|
},
|
||||||
edit() {
|
edit() {
|
||||||
this.$store.dispatch('dialogEditLibrary', this.library)
|
this.$store.dispatch('dialogEditLibrary', this.library)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -455,6 +455,11 @@
|
||||||
"page_of_pages": "{page} / {pages}",
|
"page_of_pages": "{page} / {pages}",
|
||||||
"title": "Inspect Book",
|
"title": "Inspect Book",
|
||||||
"title_comparison": "Book Comparison"
|
"title_comparison": "Book Comparison"
|
||||||
|
},
|
||||||
|
"empty_trash": {
|
||||||
|
"title": "Empty trash for library",
|
||||||
|
"body": "By default the media server doesn't remove information for media right away. This helps if a drive is temporarily disconnected. When you empty the trash for a library, all information about missing media is deleted.",
|
||||||
|
"button_confirm": "Empty"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"enums": {
|
"enums": {
|
||||||
|
|
@ -558,6 +563,7 @@
|
||||||
"download_series": "Download series",
|
"download_series": "Download series",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"edit_metadata": "Edit metadata",
|
"edit_metadata": "Edit metadata",
|
||||||
|
"empty_trash": "Empty trash",
|
||||||
"mark_read": "Mark as read",
|
"mark_read": "Mark as read",
|
||||||
"mark_unread": "Mark as unread",
|
"mark_unread": "Mark as unread",
|
||||||
"refresh_metadata": "Refresh metadata",
|
"refresh_metadata": "Refresh metadata",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { AxiosInstance } from 'axios'
|
import {AxiosInstance} from 'axios'
|
||||||
|
|
||||||
const API_LIBRARIES = '/api/v1/libraries'
|
const API_LIBRARIES = '/api/v1/libraries'
|
||||||
|
|
||||||
|
|
@ -104,4 +104,16 @@ export default class KomgaLibrariesService {
|
||||||
throw new Error(msg)
|
throw new Error(msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async emptyTrash (library: LibraryDto) {
|
||||||
|
try {
|
||||||
|
await this.http.post(`${API_LIBRARIES}/${library.id}/empty-trash`)
|
||||||
|
} catch (e) {
|
||||||
|
let msg = `An error occurred while trying to empty trash for library '${library.name}'`
|
||||||
|
if (e.response.data.message) {
|
||||||
|
msg += `: ${e.response.data.message}`
|
||||||
|
}
|
||||||
|
throw new Error(msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue