feat: possibility to deactivate logs and saving this choice to localStorage

This commit is contained in:
Roberto Tonino 2021-06-04 23:16:19 +02:00
parent d12d18874e
commit 0f35bd5478
7 changed files with 59 additions and 13 deletions

File diff suppressed because one or more lines are too long

View file

@ -24,7 +24,7 @@ import { computed } from '@vue/composition-api'
export default {
name: 'Logs',
setup() {
const messages = useLogs()
const { messages } = useLogs()
const logMessages = computed(() => messages.value.slice(0, 50).reverse())
return {

View file

@ -52,6 +52,7 @@ import { formatSingleTrack, formatAlbums, formatArtist, formatPlaylist } from '@
import { standardizeData } from '@/data/standardize'
import { useMainSearch } from '@/use/main-search'
import { useSearch } from '@/use/search'
import { useLogs } from '@/use/logs'
const resetObj = { data: [], next: 0, total: 0, hasLoaded: false }

View file

@ -98,6 +98,20 @@
</ul>
</div>
<BaseAccordion class="settings-group">
<template #title>
<h3 class="settings-group__header">
<i class="material-icons">description</i>
{{ $t('settings.logs.title') }}
</h3>
</template>
<label class="with-checkbox">
<input v-model="areLogsActive" type="checkbox" />
<span class="checkbox-text">{{ $t('settings.logs.areLogsActive') }}</span>
</label>
</BaseAccordion>
<BaseAccordion class="settings-group">
<template #title>
<h3 class="settings-group__header">
@ -807,12 +821,18 @@ import BaseAccordion from '@/components/globals/BaseAccordion.vue'
import TemplateVariablesList from '@components/settings/TemplateVariablesList.vue'
import { fetchData, postToServer } from '@/utils/api'
import { getFormItem } from '@/utils/forms'
import { useLogs } from '@/use/logs'
export default {
components: {
BaseAccordion,
TemplateVariablesList
},
setup() {
const { areLogsActive, saveLogsSettings } = useLogs()
return { areLogsActive, saveLogsSettings }
},
data() {
return {
flags,
@ -951,6 +971,8 @@ export default {
localStorage.setItem('locale', newLocale)
},
saveSettings() {
this.saveLogsSettings()
this.lastSettings = JSON.parse(JSON.stringify(this.settings))
this.lastCredentials = JSON.parse(JSON.stringify(this.spotifyFeatures))

View file

@ -390,6 +390,10 @@ const en = {
update: 'Settings updated!',
reset: 'Settings reset to default!',
ARLcopied: 'ARL copied to clipboard'
},
logs: {
title: 'Logs',
areLogsActive: 'Active'
}
},
sidebar: {

View file

@ -393,6 +393,10 @@ const it = {
update: 'Impostazioni aggiornate!',
reset: 'Impostazioni di default ripristinate!',
ARLcopied: 'ARL copiato negli appunti'
},
logs: {
title: 'Log',
areLogsActive: 'Attivi'
}
},
sidebar: {

View file

@ -1,14 +1,27 @@
import { ref } from '@vue/composition-api'
import { ref, watch } from '@vue/composition-api'
import { socket } from '@/utils/socket'
const messages = ref([])
const cached = localStorage.getItem('areLogsActive')
const areLogsActive = ref(cached ? cached === 'true' : false)
const saveLogsSettings = () => {
localStorage.setItem('areLogsActive', areLogsActive.value)
}
socket.addEventListener('message', event => {
const newMessage = JSON.parse(event.data)
if (!areLogsActive.value) {
return
}
const newMessage = JSON.parse(event.data)
messages.value.push(Object.freeze(newMessage))
})
export const useLogs = () => {
return messages
return {
messages,
areLogsActive,
saveLogsSettings
}
}