mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <modals-modal v-model="show" name="player-settings" :width="500" :height="'unset'">
 | |
|     <div ref="container" class="w-full rounded-lg bg-bg box-shadow-md overflow-y-auto overflow-x-hidden p-4" style="max-height: 80vh; min-height: 40vh">
 | |
|       <h3 class="text-xl font-semibold mb-8">{{ $strings.HeaderPlayerSettings }}</h3>
 | |
|       <div class="flex items-center mb-4">
 | |
|         <ui-toggle-switch v-model="useChapterTrack" @input="setUseChapterTrack" />
 | |
|         <div class="pl-4">
 | |
|           <span>{{ $strings.LabelUseChapterTrack }}</span>
 | |
|         </div>
 | |
|       </div>
 | |
|       <div class="flex items-center mb-4">
 | |
|         <ui-select-input v-model="jumpForwardAmount" :label="$strings.LabelJumpForwardAmount" menuMaxHeight="250px" :items="jumpValues" @input="setJumpForwardAmount" />
 | |
|       </div>
 | |
|       <div class="flex items-center">
 | |
|         <ui-select-input v-model="jumpBackwardAmount" :label="$strings.LabelJumpBackwardAmount" menuMaxHeight="250px" :items="jumpValues" @input="setJumpBackwardAmount" />
 | |
|       </div>
 | |
|     </div>
 | |
|   </modals-modal>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| export default {
 | |
|   props: {
 | |
|     value: Boolean
 | |
|   },
 | |
|   data() {
 | |
|     return {
 | |
|       useChapterTrack: false,
 | |
|       jumpValues: [
 | |
|         { text: this.$getString('LabelTimeDurationXSeconds', ['10']), value: 10 },
 | |
|         { text: this.$getString('LabelTimeDurationXSeconds', ['15']), value: 15 },
 | |
|         { text: this.$getString('LabelTimeDurationXSeconds', ['30']), value: 30 },
 | |
|         { text: this.$getString('LabelTimeDurationXSeconds', ['60']), value: 60 },
 | |
|         { text: this.$getString('LabelTimeDurationXMinutes', ['2']), value: 120 },
 | |
|         { text: this.$getString('LabelTimeDurationXMinutes', ['5']), value: 300 }
 | |
|       ],
 | |
|       jumpForwardAmount: 10,
 | |
|       jumpBackwardAmount: 10
 | |
|     }
 | |
|   },
 | |
|   computed: {
 | |
|     show: {
 | |
|       get() {
 | |
|         return this.value
 | |
|       },
 | |
|       set(val) {
 | |
|         this.$emit('input', val)
 | |
|       }
 | |
|     }
 | |
|   },
 | |
|   methods: {
 | |
|     setUseChapterTrack() {
 | |
|       this.$store.dispatch('user/updateUserSettings', { useChapterTrack: this.useChapterTrack })
 | |
|     },
 | |
|     setJumpForwardAmount(val) {
 | |
|       this.jumpForwardAmount = val
 | |
|       this.$store.dispatch('user/updateUserSettings', { jumpForwardAmount: val })
 | |
|     },
 | |
|     setJumpBackwardAmount(val) {
 | |
|       this.jumpBackwardAmount = val
 | |
|       this.$store.dispatch('user/updateUserSettings', { jumpBackwardAmount: val })
 | |
|     },
 | |
|     settingsUpdated() {
 | |
|       this.useChapterTrack = this.$store.getters['user/getUserSetting']('useChapterTrack')
 | |
|       this.jumpForwardAmount = this.$store.getters['user/getUserSetting']('jumpForwardAmount')
 | |
|       this.jumpBackwardAmount = this.$store.getters['user/getUserSetting']('jumpBackwardAmount')
 | |
|     }
 | |
|   },
 | |
|   mounted() {
 | |
|     this.settingsUpdated()
 | |
|     this.$eventBus.$on('user-settings', this.settingsUpdated)
 | |
|   },
 | |
|   beforeDestroy() {
 | |
|     this.$eventBus.$off('user-settings', this.settingsUpdated)
 | |
|   }
 | |
| }
 | |
| </script>
 |