mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-11-03 19:07:00 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { checkForUpdate } from '@/plugins/version'
 | 
						|
 | 
						|
export const state = () => ({
 | 
						|
  versionData: null,
 | 
						|
  serverSettings: null,
 | 
						|
  streamAudiobook: null,
 | 
						|
  editModalTab: 'details',
 | 
						|
  showEditModal: false,
 | 
						|
  selectedAudiobook: null,
 | 
						|
  playOnLoad: false,
 | 
						|
  isScanning: false,
 | 
						|
  isScanningCovers: false,
 | 
						|
  scanProgress: null,
 | 
						|
  coverScanProgress: null,
 | 
						|
  developerMode: false,
 | 
						|
  selectedAudiobooks: [],
 | 
						|
  processingBatch: false
 | 
						|
})
 | 
						|
 | 
						|
export const getters = {
 | 
						|
  getIsAudiobookSelected: state => audiobookId => {
 | 
						|
    return !!state.selectedAudiobooks.includes(audiobookId)
 | 
						|
  },
 | 
						|
  getNumAudiobooksSelected: state => state.selectedAudiobooks.length
 | 
						|
}
 | 
						|
 | 
						|
export const actions = {
 | 
						|
  updateServerSettings({ commit }, payload) {
 | 
						|
    var updatePayload = {
 | 
						|
      ...payload
 | 
						|
    }
 | 
						|
    return this.$axios.$patch('/api/serverSettings', updatePayload).then((result) => {
 | 
						|
      if (result.success) {
 | 
						|
        commit('setServerSettings', result.settings)
 | 
						|
        return true
 | 
						|
      } else {
 | 
						|
        return false
 | 
						|
      }
 | 
						|
    }).catch((error) => {
 | 
						|
      console.error('Failed to update server settings', error)
 | 
						|
      return false
 | 
						|
    })
 | 
						|
  },
 | 
						|
  checkForUpdate({ commit }) {
 | 
						|
    return checkForUpdate()
 | 
						|
      .then((res) => {
 | 
						|
        commit('setVersionData', res)
 | 
						|
        return res
 | 
						|
      })
 | 
						|
      .catch((error) => {
 | 
						|
        console.error('Update check failed', error)
 | 
						|
        return false
 | 
						|
      })
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
export const mutations = {
 | 
						|
  setVersionData(state, versionData) {
 | 
						|
    state.versionData = versionData
 | 
						|
  },
 | 
						|
  setServerSettings(state, settings) {
 | 
						|
    state.serverSettings = settings
 | 
						|
  },
 | 
						|
  setStreamAudiobook(state, audiobook) {
 | 
						|
    state.playOnLoad = true
 | 
						|
    state.streamAudiobook = audiobook
 | 
						|
  },
 | 
						|
  setStream(state, stream) {
 | 
						|
    state.playOnLoad = false
 | 
						|
    state.streamAudiobook = stream ? stream.audiobook : null
 | 
						|
  },
 | 
						|
  clearStreamAudiobook(state, audiobookId) {
 | 
						|
    if (state.streamAudiobook && state.streamAudiobook.id === audiobookId) {
 | 
						|
      state.playOnLoad = false
 | 
						|
      state.streamAudiobook = null
 | 
						|
    }
 | 
						|
  },
 | 
						|
  setPlayOnLoad(state, val) {
 | 
						|
    state.playOnLoad = val
 | 
						|
  },
 | 
						|
  showEditModal(state, audiobook) {
 | 
						|
    state.editModalTab = 'details'
 | 
						|
    state.selectedAudiobook = audiobook
 | 
						|
    state.showEditModal = true
 | 
						|
  },
 | 
						|
  showEditModalOnTab(state, { audiobook, tab }) {
 | 
						|
    state.editModalTab = tab
 | 
						|
    state.selectedAudiobook = audiobook
 | 
						|
    state.showEditModal = true
 | 
						|
  },
 | 
						|
  setEditModalTab(state, tab) {
 | 
						|
    state.editModalTab = tab
 | 
						|
  },
 | 
						|
  setShowEditModal(state, val) {
 | 
						|
    state.showEditModal = val
 | 
						|
  },
 | 
						|
  setIsScanning(state, isScanning) {
 | 
						|
    state.isScanning = isScanning
 | 
						|
  },
 | 
						|
  setScanProgress(state, scanProgress) {
 | 
						|
    if (scanProgress && scanProgress.progress > 0) state.isScanning = true
 | 
						|
    state.scanProgress = scanProgress
 | 
						|
  },
 | 
						|
  setIsScanningCovers(state, isScanningCovers) {
 | 
						|
    state.isScanningCovers = isScanningCovers
 | 
						|
  },
 | 
						|
  setCoverScanProgress(state, coverScanProgress) {
 | 
						|
    if (coverScanProgress && coverScanProgress.progress > 0) state.isScanningCovers = true
 | 
						|
    state.coverScanProgress = coverScanProgress
 | 
						|
  },
 | 
						|
  setDeveloperMode(state, val) {
 | 
						|
    state.developerMode = val
 | 
						|
  },
 | 
						|
  setSelectedAudiobooks(state, audiobooks) {
 | 
						|
    state.selectedAudiobooks = audiobooks
 | 
						|
  },
 | 
						|
  toggleAudiobookSelected(state, audiobookId) {
 | 
						|
    if (state.selectedAudiobooks.includes(audiobookId)) {
 | 
						|
      state.selectedAudiobooks = state.selectedAudiobooks.filter(a => a !== audiobookId)
 | 
						|
    } else {
 | 
						|
      state.selectedAudiobooks.push(audiobookId)
 | 
						|
    }
 | 
						|
  },
 | 
						|
  setProcessingBatch(state, val) {
 | 
						|
    state.processingBatch = val
 | 
						|
  }
 | 
						|
} |