mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2024-12-20 19:06:06 +01:00
53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
|
|
export const state = () => ({
|
|
tasks: [],
|
|
queuedEmbedLIds: []
|
|
})
|
|
|
|
export const getters = {
|
|
getTasksByLibraryItemId: (state) => (libraryItemId) => {
|
|
return state.tasks.filter(t => t.data?.libraryItemId === libraryItemId)
|
|
},
|
|
getRunningLibraryScanTask: (state) => (libraryId) => {
|
|
const libraryScanActions = ['library-scan', 'library-match-all']
|
|
return state.tasks.find(t => libraryScanActions.includes(t.action) && t.data?.libraryId === libraryId && !t.isFinished)
|
|
}
|
|
}
|
|
|
|
export const actions = {
|
|
|
|
}
|
|
|
|
export const mutations = {
|
|
setTasks(state, tasks) {
|
|
state.tasks = tasks
|
|
},
|
|
addUpdateTask(state, task) {
|
|
const index = state.tasks.findIndex(d => d.id === task.id)
|
|
if (index >= 0) {
|
|
state.tasks.splice(index, 1, task)
|
|
} else {
|
|
// Remove duplicate (only have one library item per action)
|
|
state.tasks = state.tasks.filter(_task => {
|
|
if (!_task.data?.libraryItemId || _task.action !== task.action) return true
|
|
return _task.data.libraryItemId !== task.data.libraryItemId
|
|
})
|
|
|
|
state.tasks.push(task)
|
|
}
|
|
},
|
|
removeTask(state, task) {
|
|
state.tasks = state.tasks.filter(d => d.id !== task.id)
|
|
},
|
|
setQueuedEmbedLIds(state, libraryItemIds) {
|
|
state.queuedEmbedLIds = libraryItemIds
|
|
},
|
|
addQueuedEmbedLId(state, libraryItemId) {
|
|
if (!state.queuedEmbedLIds.some(lid => lid === libraryItemId)) {
|
|
state.queuedEmbedLIds.push(libraryItemId)
|
|
}
|
|
},
|
|
removeQueuedEmbedLId(state, libraryItemId) {
|
|
state.queuedEmbedLIds = state.queuedEmbedLIds.filter(lid => lid !== libraryItemId)
|
|
}
|
|
} |