* tusooa/from/develop/tusooa/tree-threading: Add English translations for fading ancestor option Make fading ancestors optional Update English translation for tree view settings Split conversation display style into two different settings Make 'Show full conversation' button have left border in embbeded mode Fix showingLongSubject not correctly propagated Fix timeline jump when scrolling Make replying and mediaPlaying controlled Clean up debug code for tree threading Fix virtual scrolling for tree threading Fix controlled status display toggles Add English translations for other replies count Add other replies count for reply list link Do not display replies inside status as link if there are no other replies
82 lines
2.8 KiB
JavaScript
82 lines
2.8 KiB
JavaScript
import BooleanSetting from '../helpers/boolean_setting.vue'
|
|
import ChoiceSetting from '../helpers/choice_setting.vue'
|
|
import ScopeSelector from 'src/components/scope_selector/scope_selector.vue'
|
|
import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'
|
|
|
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
|
import ServerSideIndicator from '../helpers/server_side_indicator.vue'
|
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
import {
|
|
faGlobe
|
|
} from '@fortawesome/free-solid-svg-icons'
|
|
|
|
library.add(
|
|
faGlobe
|
|
)
|
|
|
|
const GeneralTab = {
|
|
data () {
|
|
return {
|
|
subjectLineOptions: ['email', 'noop', 'masto'].map(mode => ({
|
|
key: mode,
|
|
value: mode,
|
|
label: this.$t(`settings.subject_line_${mode === 'masto' ? 'mastodon' : mode}`)
|
|
})),
|
|
conversationDisplayOptions: ['tree', 'linear'].map(mode => ({
|
|
key: mode,
|
|
value: mode,
|
|
label: this.$t(`settings.conversation_display_${mode}`)
|
|
})),
|
|
conversationOtherRepliesButtonOptions: ['below', 'inside'].map(mode => ({
|
|
key: mode,
|
|
value: mode,
|
|
label: this.$t(`settings.conversation_other_replies_button_${mode}`)
|
|
})),
|
|
mentionLinkDisplayOptions: ['short', 'full_for_remote', 'full'].map(mode => ({
|
|
key: mode,
|
|
value: mode,
|
|
label: this.$t(`settings.mention_link_display_${mode}`)
|
|
})),
|
|
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: {
|
|
BooleanSetting,
|
|
ChoiceSetting,
|
|
InterfaceLanguageSwitcher,
|
|
ScopeSelector,
|
|
ServerSideIndicator
|
|
},
|
|
computed: {
|
|
postFormats () {
|
|
return this.$store.state.instance.postFormats || []
|
|
},
|
|
postContentOptions () {
|
|
return this.postFormats.map(format => ({
|
|
key: format,
|
|
value: format,
|
|
label: this.$t(`post_status.content_type["${format}"]`)
|
|
}))
|
|
},
|
|
instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel },
|
|
instanceWallpaperUsed () {
|
|
return this.$store.state.instance.background &&
|
|
!this.$store.state.users.currentUser.background_image
|
|
},
|
|
instanceShoutboxPresent () { return this.$store.state.instance.shoutAvailable },
|
|
...SharedComputedObject()
|
|
},
|
|
methods: {
|
|
changeDefaultScope (value) {
|
|
this.$store.dispatch('setServerSideOption', { name: 'defaultScope', value })
|
|
}
|
|
}
|
|
}
|
|
|
|
export default GeneralTab
|