refs #948 Add other options in prefereces
This commit is contained in:
parent
b990229cc1
commit
337012c2ef
|
@ -14,6 +14,9 @@ const state = (): GeneralState => {
|
||||||
cw: false,
|
cw: false,
|
||||||
nfsw: false,
|
nfsw: false,
|
||||||
hideAllAttachments: false
|
hideAllAttachments: false
|
||||||
|
},
|
||||||
|
other: {
|
||||||
|
launch: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
loading: false
|
loading: false
|
||||||
|
@ -31,7 +34,7 @@ const initStore = () => {
|
||||||
const app = {
|
const app = {
|
||||||
namespaced: true,
|
namespaced: true,
|
||||||
actions: {
|
actions: {
|
||||||
loadPreferences (_) {
|
loadPreferences(_) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,9 @@ describe('Preferences/General', () => {
|
||||||
cw: false,
|
cw: false,
|
||||||
nfsw: false,
|
nfsw: false,
|
||||||
hideAllAttachments: false
|
hideAllAttachments: false
|
||||||
|
},
|
||||||
|
other: {
|
||||||
|
launch: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
loading: false
|
loading: false
|
||||||
|
|
|
@ -127,6 +127,10 @@
|
||||||
"cw": "Always ignore contents warnings",
|
"cw": "Always ignore contents warnings",
|
||||||
"nfsw": "Always ignore NFSW of medias",
|
"nfsw": "Always ignore NFSW of medias",
|
||||||
"hideAllAttachments": "Hide all medias"
|
"hideAllAttachments": "Hide all medias"
|
||||||
|
},
|
||||||
|
"other": {
|
||||||
|
"title": "Other options",
|
||||||
|
"launch": "Launch app on login"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"appearance": {
|
"appearance": {
|
||||||
|
|
|
@ -473,7 +473,6 @@ ipcMain.on('change-auto-launch', (event: Event, enable: boolean) => {
|
||||||
launcher.disable()
|
launcher.disable()
|
||||||
}
|
}
|
||||||
event.sender.send('response-change-auto-launch', enable)
|
event.sender.send('response-change-auto-launch', enable)
|
||||||
return
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ import { Timeline } from '~/src/types/timeline'
|
||||||
import { Notify } from '~/src/types/notify'
|
import { Notify } from '~/src/types/notify'
|
||||||
import { Appearance } from '~/src/types/appearance'
|
import { Appearance } from '~/src/types/appearance'
|
||||||
import { Language as LanguageSet } from '~/src/types/language'
|
import { Language as LanguageSet } from '~/src/types/language'
|
||||||
import { General, State, Notification, BaseConfig } from '~/src/types/preference'
|
import { General, State, Notification, BaseConfig, Other } from '~/src/types/preference'
|
||||||
|
|
||||||
const sound: Sound = {
|
const sound: Sound = {
|
||||||
fav_rb: true,
|
fav_rb: true,
|
||||||
|
@ -24,9 +24,14 @@ const timeline: Timeline = {
|
||||||
hideAllAttachments: false
|
hideAllAttachments: false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const other: Other = {
|
||||||
|
launch: false
|
||||||
|
}
|
||||||
|
|
||||||
const general: General = {
|
const general: General = {
|
||||||
sound: sound,
|
sound: sound,
|
||||||
timeline: timeline
|
timeline: timeline,
|
||||||
|
other: other
|
||||||
}
|
}
|
||||||
|
|
||||||
const state: State = {
|
const state: State = {
|
||||||
|
|
|
@ -1,50 +1,36 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="general" v-loading="loading">
|
<div id="general" v-loading="loading">
|
||||||
<h2>{{ $t('preferences.general.title') }}</h2>
|
<h2>{{ $t('preferences.general.title') }}</h2>
|
||||||
<el-form class="sounds section" label-position="right" label-width="250px" size="small">
|
<el-form class="sounds section" label-position="right" label-width="250px" size="small">
|
||||||
<h3>{{ $t('preferences.general.sounds.title') }}</h3>
|
<h3>{{ $t('preferences.general.sounds.title') }}</h3>
|
||||||
<p class="description">{{ $t('preferences.general.sounds.description') }}</p>
|
<p class="description">{{ $t('preferences.general.sounds.description') }}</p>
|
||||||
<el-form-item for="fav_rb" :label="$t('preferences.general.sounds.fav_rb')">
|
<el-form-item for="fav_rb" :label="$t('preferences.general.sounds.fav_rb')">
|
||||||
<el-switch
|
<el-switch id="fav_rb" v-model="sound_fav_rb" active-color="#13ce66"> </el-switch>
|
||||||
id="fav_rb"
|
|
||||||
v-model="sound_fav_rb"
|
|
||||||
active-color="#13ce66">
|
|
||||||
</el-switch>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item for="sound_toot" :label="$t('preferences.general.sounds.toot')">
|
<el-form-item for="sound_toot" :label="$t('preferences.general.sounds.toot')">
|
||||||
<el-switch
|
<el-switch id="sound_toot" v-model="sound_toot" active-color="#13ce66"> </el-switch>
|
||||||
id="sound_toot"
|
|
||||||
v-model="sound_toot"
|
|
||||||
active-color="#13ce66">
|
|
||||||
</el-switch>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-form class="timeline section" label-potision="right" label-width="250px" size="samll">
|
<el-form class="timeline section" label-potision="right" label-width="250px" size="samll">
|
||||||
<h3>{{ $t('preferences.general.timeline.title') }}</h3>
|
<h3>{{ $t('preferences.general.timeline.title') }}</h3>
|
||||||
<p class="description">{{ $t('preferences.general.timeline.description') }}</p>
|
<p class="description">{{ $t('preferences.general.timeline.description') }}</p>
|
||||||
<el-form-item for="cw" :label="$t('preferences.general.timeline.cw')">
|
<el-form-item for="cw" :label="$t('preferences.general.timeline.cw')">
|
||||||
<el-switch
|
<el-switch id="cw" v-model="timeline_cw" active-color="#13ce66"> </el-switch>
|
||||||
id="cw"
|
|
||||||
v-model="timeline_cw"
|
|
||||||
active-color="#13ce66">
|
|
||||||
</el-switch>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item for="nfsw" :label="$t('preferences.general.timeline.nfsw')">
|
<el-form-item for="nfsw" :label="$t('preferences.general.timeline.nfsw')">
|
||||||
<el-switch
|
<el-switch id="nfsw" v-model="timeline_nfsw" active-color="#13ce66"> </el-switch>
|
||||||
id="nfsw"
|
|
||||||
v-model="timeline_nfsw"
|
|
||||||
active-color="#13ce66">
|
|
||||||
</el-switch>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item for="hideAllAttachments" :label="$t('preferences.general.timeline.hideAllAttachments')">
|
<el-form-item for="hideAllAttachments" :label="$t('preferences.general.timeline.hideAllAttachments')">
|
||||||
<el-switch
|
<el-switch id="hideAllAttachments" v-model="timeline_hide_attachments" active-color="#13ce66"> </el-switch>
|
||||||
id="hideAllAttachments"
|
|
||||||
v-model="timeline_hide_attachments"
|
|
||||||
active-color="#13ce66">
|
|
||||||
</el-switch>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
<el-form class="other section" label-position="right" label-width="250px" size="small">
|
||||||
|
<h3>{{ $t('preferences.general.other.title') }}</h3>
|
||||||
|
<el-form-item for="launch" :label="$t('preferences.general.other.launch')">
|
||||||
|
<el-switch id="launch" v-model="other_launch" active-color="#13ce66"> </el-switch>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -57,59 +43,68 @@ export default {
|
||||||
loading: state => state.Preferences.General.loading
|
loading: state => state.Preferences.General.loading
|
||||||
}),
|
}),
|
||||||
sound_fav_rb: {
|
sound_fav_rb: {
|
||||||
get () {
|
get() {
|
||||||
return this.$store.state.Preferences.General.general.sound.fav_rb
|
return this.$store.state.Preferences.General.general.sound.fav_rb
|
||||||
},
|
},
|
||||||
set (value) {
|
set(value) {
|
||||||
this.$store.dispatch('Preferences/General/updateSound', {
|
this.$store.dispatch('Preferences/General/updateSound', {
|
||||||
fav_rb: value
|
fav_rb: value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sound_toot: {
|
sound_toot: {
|
||||||
get () {
|
get() {
|
||||||
return this.$store.state.Preferences.General.general.sound.toot
|
return this.$store.state.Preferences.General.general.sound.toot
|
||||||
},
|
},
|
||||||
set (value) {
|
set(value) {
|
||||||
this.$store.dispatch('Preferences/General/updateSound', {
|
this.$store.dispatch('Preferences/General/updateSound', {
|
||||||
toot: value
|
toot: value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
timeline_cw: {
|
timeline_cw: {
|
||||||
get () {
|
get() {
|
||||||
return this.$store.state.Preferences.General.general.timeline.cw
|
return this.$store.state.Preferences.General.general.timeline.cw
|
||||||
},
|
},
|
||||||
set (value) {
|
set(value) {
|
||||||
this.$store.dispatch('Preferences/General/updateTimeline', {
|
this.$store.dispatch('Preferences/General/updateTimeline', {
|
||||||
cw: value
|
cw: value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
timeline_nfsw: {
|
timeline_nfsw: {
|
||||||
get () {
|
get() {
|
||||||
return this.$store.state.Preferences.General.general.timeline.nfsw
|
return this.$store.state.Preferences.General.general.timeline.nfsw
|
||||||
},
|
},
|
||||||
set (value) {
|
set(value) {
|
||||||
this.$store.dispatch('Preferences/General/updateTimeline', {
|
this.$store.dispatch('Preferences/General/updateTimeline', {
|
||||||
nfsw: value
|
nfsw: value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
timeline_hide_attachments: {
|
timeline_hide_attachments: {
|
||||||
get () {
|
get() {
|
||||||
return this.$store.state.Preferences.General.general.timeline.hideAllAttachments
|
return this.$store.state.Preferences.General.general.timeline.hideAllAttachments
|
||||||
},
|
},
|
||||||
set (value) {
|
set(value) {
|
||||||
this.$store.dispatch('Preferences/General/updateTimeline', {
|
this.$store.dispatch('Preferences/General/updateTimeline', {
|
||||||
hideAllAttachments: value
|
hideAllAttachments: value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
other_launch: {
|
||||||
|
get() {
|
||||||
|
return this.$store.state.Preferences.General.general.other.launch
|
||||||
|
},
|
||||||
|
set(value) {
|
||||||
|
this.$store.dispatch('Preferences/General/updateOther', {
|
||||||
|
launch: value
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created() {
|
||||||
this.$store.dispatch('Preferences/General/loadGeneral')
|
this.$store.dispatch('Preferences/General/loadGeneral').catch(() => {
|
||||||
.catch(() => {
|
|
||||||
this.$message({
|
this.$message({
|
||||||
message: this.$t('message.preferences_load_error'),
|
message: this.$t('message.preferences_load_error'),
|
||||||
type: 'error'
|
type: 'error'
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { Module, MutationTree, ActionTree } from 'vuex'
|
||||||
import { RootState } from '@/store'
|
import { RootState } from '@/store'
|
||||||
import { Sound } from '~/src/types/sound'
|
import { Sound } from '~/src/types/sound'
|
||||||
import { Timeline } from '~/src/types/timeline'
|
import { Timeline } from '~/src/types/timeline'
|
||||||
import { BaseConfig, General } from '~/src/types/preference'
|
import { BaseConfig, General, Other } from '~/src/types/preference'
|
||||||
|
|
||||||
export type GeneralState = {
|
export type GeneralState = {
|
||||||
general: General
|
general: General
|
||||||
|
@ -20,6 +20,9 @@ const state = (): GeneralState => ({
|
||||||
cw: false,
|
cw: false,
|
||||||
nfsw: false,
|
nfsw: false,
|
||||||
hideAllAttachments: false
|
hideAllAttachments: false
|
||||||
|
},
|
||||||
|
other: {
|
||||||
|
launch: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
loading: false
|
loading: false
|
||||||
|
@ -105,6 +108,32 @@ const actions: ActionTree<GeneralState, RootState> = {
|
||||||
})
|
})
|
||||||
ipcRenderer.send('update-preferences', config)
|
ipcRenderer.send('update-preferences', config)
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
updateOther: ({ commit, state, dispatch }, other: {}) => {
|
||||||
|
commit(MUTATION_TYPES.CHANGE_LOADING, true)
|
||||||
|
const newOther: Other = Object.assign({}, state.general.other, other)
|
||||||
|
const newGeneral: General = Object.assign({}, state.general, {
|
||||||
|
other: newOther
|
||||||
|
})
|
||||||
|
const config = {
|
||||||
|
general: newGeneral
|
||||||
|
}
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
// TODO: call change settings
|
||||||
|
ipcRenderer.once('error-update-preferences', (_, err: Error) => {
|
||||||
|
ipcRenderer.removeAllListeners('response-update-preferences')
|
||||||
|
commit(MUTATION_TYPES.CHANGE_LOADING, false)
|
||||||
|
reject(err)
|
||||||
|
})
|
||||||
|
ipcRenderer.once('response-update-preferences', (_, conf: BaseConfig) => {
|
||||||
|
ipcRenderer.removeAllListeners('error-update-preferences')
|
||||||
|
commit(MUTATION_TYPES.UPDATE_GENERAL, conf.general as General)
|
||||||
|
commit(MUTATION_TYPES.CHANGE_LOADING, false)
|
||||||
|
dispatch('App/loadPreferences', null, { root: true })
|
||||||
|
resolve(conf)
|
||||||
|
})
|
||||||
|
ipcRenderer.send('update-preferences', config)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,14 @@ import { Notify } from '~/src/types/notify'
|
||||||
import { Appearance } from '~/src/types/appearance'
|
import { Appearance } from '~/src/types/appearance'
|
||||||
import { Language } from '~/src/types/language'
|
import { Language } from '~/src/types/language'
|
||||||
|
|
||||||
|
export type Other = {
|
||||||
|
launch: boolean
|
||||||
|
}
|
||||||
|
|
||||||
export type General = {
|
export type General = {
|
||||||
sound: Sound
|
sound: Sound
|
||||||
timeline: Timeline
|
timeline: Timeline
|
||||||
|
other: Other
|
||||||
}
|
}
|
||||||
|
|
||||||
export type State = {
|
export type State = {
|
||||||
|
|
Loading…
Reference in New Issue