0ca42bd3d6
* upstream/develop: (36 commits) remove deploy stage remove deploy stage updated and completed German translation minor modification of Chinese translation update Chinese translation Add Chinese language Fix posting. Count spoiler text in the character count. Fixes #135. Added Irish (Gaeilge) Language Copy-Paste too fast from the Catalan file apparently. Now it's in good Occitan. simplify code adapt to destructive change of api Adds Occitan locale Updated italian translation Update oc.json Update oc.json Update of the oc.json file Actualizacion del fichièr oc.json Sort messages object by language code so that it's easier from the UI to browse them. explicitly set collapseMessageWithSubject to undefined Fall back to instance settings consistently ...
134 lines
5.5 KiB
JavaScript
134 lines
5.5 KiB
JavaScript
/* eslint-env browser */
|
|
import TabSwitcher from '../tab_switcher/tab_switcher.jsx'
|
|
import StyleSwitcher from '../style_switcher/style_switcher.vue'
|
|
import InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'
|
|
import { filter, trim } from 'lodash'
|
|
|
|
const settings = {
|
|
data () {
|
|
const user = this.$store.state.config
|
|
const instance = this.$store.state.instance
|
|
|
|
return {
|
|
hideAttachmentsLocal: user.hideAttachments,
|
|
hideAttachmentsInConvLocal: user.hideAttachmentsInConv,
|
|
hideNsfwLocal: user.hideNsfw,
|
|
hidePostStatsLocal: typeof user.hidePostStats === 'undefined'
|
|
? instance.hidePostStats
|
|
: user.hidePostStats,
|
|
hidePostStatsDefault: this.$t('settings.values.' + instance.hidePostStats),
|
|
hideUserStatsLocal: typeof user.hideUserStats === 'undefined'
|
|
? instance.hideUserStats
|
|
: user.hideUserStats,
|
|
hideUserStatsDefault: this.$t('settings.values.' + instance.hideUserStats),
|
|
notificationVisibilityLocal: user.notificationVisibility,
|
|
replyVisibilityLocal: user.replyVisibility,
|
|
loopVideoLocal: user.loopVideo,
|
|
loopVideoSilentOnlyLocal: user.loopVideoSilentOnly,
|
|
muteWordsString: user.muteWords.join('\n'),
|
|
autoLoadLocal: user.autoLoad,
|
|
streamingLocal: user.streaming,
|
|
pauseOnUnfocusedLocal: user.pauseOnUnfocused,
|
|
hoverPreviewLocal: user.hoverPreview,
|
|
collapseMessageWithSubjectLocal: typeof user.collapseMessageWithSubject === 'undefined'
|
|
? instance.collapseMessageWithSubject
|
|
: user.collapseMessageWithSubject,
|
|
collapseMessageWithSubjectDefault: this.$t('settings.values.' + instance.collapseMessageWithSubject),
|
|
subjectLineBehaviorLocal: typeof user.subjectLineBehavior === 'undefined'
|
|
? instance.subjectLineBehavior
|
|
: user.subjectLineBehavior,
|
|
subjectLineBehaviorDefault: instance.subjectLineBehavior,
|
|
scopeCopyLocal: user.scopeCopy,
|
|
scopeCopyDefault: this.$t('settings.values.' + instance.scopeCopy),
|
|
stopGifs: user.stopGifs,
|
|
loopSilentAvailable:
|
|
// Firefox
|
|
Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'mozHasAudio') ||
|
|
// Chrome-likes
|
|
Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'webkitAudioDecodedByteCount') ||
|
|
// Future spec, still not supported in Nightly 63 as of 08/2018
|
|
Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'audioTracks')
|
|
}
|
|
},
|
|
components: {
|
|
TabSwitcher,
|
|
StyleSwitcher,
|
|
InterfaceLanguageSwitcher
|
|
},
|
|
computed: {
|
|
user () {
|
|
return this.$store.state.users.currentUser
|
|
},
|
|
currentSaveStateNotice () {
|
|
return this.$store.state.interface.settings.currentSaveStateNotice
|
|
}
|
|
},
|
|
watch: {
|
|
hideAttachmentsLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'hideAttachments', value })
|
|
},
|
|
hideAttachmentsInConvLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'hideAttachmentsInConv', value })
|
|
},
|
|
hidePostStatsLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'hidePostStats', value })
|
|
},
|
|
hideUserStatsLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'hideUserStats', value })
|
|
},
|
|
hideNsfwLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'hideNsfw', value })
|
|
},
|
|
'notificationVisibilityLocal.likes' (value) {
|
|
this.$store.dispatch('setOption', { name: 'notificationVisibility', value: this.$store.state.config.notificationVisibility })
|
|
},
|
|
'notificationVisibilityLocal.follows' (value) {
|
|
this.$store.dispatch('setOption', { name: 'notificationVisibility', value: this.$store.state.config.notificationVisibility })
|
|
},
|
|
'notificationVisibilityLocal.repeats' (value) {
|
|
this.$store.dispatch('setOption', { name: 'notificationVisibility', value: this.$store.state.config.notificationVisibility })
|
|
},
|
|
'notificationVisibilityLocal.mentions' (value) {
|
|
this.$store.dispatch('setOption', { name: 'notificationVisibility', value: this.$store.state.config.notificationVisibility })
|
|
},
|
|
replyVisibilityLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'replyVisibility', value })
|
|
},
|
|
loopVideoLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'loopVideo', value })
|
|
},
|
|
loopVideoSilentOnlyLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'loopVideoSilentOnly', value })
|
|
},
|
|
autoLoadLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'autoLoad', value })
|
|
},
|
|
streamingLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'streaming', value })
|
|
},
|
|
pauseOnUnfocusedLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'pauseOnUnfocused', value })
|
|
},
|
|
hoverPreviewLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'hoverPreview', value })
|
|
},
|
|
muteWordsString (value) {
|
|
value = filter(value.split('\n'), (word) => trim(word).length > 0)
|
|
this.$store.dispatch('setOption', { name: 'muteWords', value })
|
|
},
|
|
collapseMessageWithSubjectLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'collapseMessageWithSubject', value })
|
|
},
|
|
scopeCopyLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'scopeCopy', value })
|
|
},
|
|
subjectLineBehaviorLocal (value) {
|
|
this.$store.dispatch('setOption', { name: 'subjectLineBehavior', value })
|
|
},
|
|
stopGifs (value) {
|
|
this.$store.dispatch('setOption', { name: 'stopGifs', value })
|
|
}
|
|
}
|
|
}
|
|
|
|
export default settings
|