From 6184c88ac70b33e66a87222142344f693406bd87 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Sun, 3 Mar 2019 15:15:41 +0200 Subject: Initial work on deprecating scopeModesEnabled in favor of minimalScopeMode --- src/components/settings/settings.vue | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/components/settings/settings.vue') diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 5041b3a3..d9b72ee0 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -122,6 +122,12 @@ +
  • + + +
  • -- cgit v1.2.3-70-g09d2 From 068c9724e45fe801ecedbea491234d0b95695629 Mon Sep 17 00:00:00 2001 From: Edijs Date: Sun, 10 Mar 2019 16:58:12 -0700 Subject: Added new tab to display versions of BE/FE --- src/boot/after_store.js | 6 ++++++ src/components/settings/settings.js | 17 +++++++++++++++-- src/components/settings/settings.vue | 22 ++++++++++++++++++++++ src/i18n/en.json | 5 +++++ src/modules/instance.js | 6 +++++- src/services/version/version.service.js | 10 ++++++++++ 6 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 src/services/version/version.service.js (limited to 'src/components/settings/settings.vue') diff --git a/src/boot/after_store.js b/src/boot/after_store.js index a8e2bf35..dfaf4d68 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -176,6 +176,12 @@ const afterStoreSetup = ({ store, i18n }) => { const suggestions = metadata.suggestions store.dispatch('setInstanceOption', { name: 'suggestionsEnabled', value: suggestions.enabled }) store.dispatch('setInstanceOption', { name: 'suggestionsWeb', value: suggestions.web }) + + const software = data.software + store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version }) + + const frontendVersion = window.___pleromafe_commit_hash + store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion }) }) } diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js index 979457a5..d208ee5a 100644 --- a/src/components/settings/settings.js +++ b/src/components/settings/settings.js @@ -1,8 +1,10 @@ /* eslint-env browser */ +import { filter, trim } from 'lodash' + import TabSwitcher from '../tab_switcher/tab_switcher.js' import StyleSwitcher from '../style_switcher/style_switcher.vue' import InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue' -import { filter, trim } from 'lodash' +import { parseBackendVersionString, parseFrontendVersionString } from '../../services/version/version.service' const settings = { data () { @@ -78,7 +80,10 @@ const settings = { // Future spec, still not supported in Nightly 63 as of 08/2018 Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'audioTracks'), playVideosInModal: user.playVideosInModal, - useContainFit: user.useContainFit + useContainFit: user.useContainFit, + + backendVersion: instance.backendVersion, + frontendVersion: instance.frontendVersion } }, components: { @@ -98,6 +103,14 @@ const settings = { }, instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel } }, + methods: { + parseBackendVersion (versionString) { + return parseBackendVersionString(versionString) + }, + parseFrontendVersion (versionString) { + return parseFrontendVersionString(versionString) + } + }, watch: { hideAttachmentsLocal (value) { this.$store.dispatch('setOption', { name: 'hideAttachments', value }) diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index d2346747..3ca7bdc0 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -261,6 +261,28 @@ +
    +
    +
      +
    • +

      {{$t('settings.version.backend_version')}}

      +
        +
      • +
        +
      • +
      +
    • +
    • +

      {{$t('settings.version.frontend_version')}}

      +
        +
      • +
        +
      • +
      +
    • +
    +
    +
    diff --git a/src/i18n/en.json b/src/i18n/en.json index 01fe2fba..1fe201a4 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -347,6 +347,11 @@ "checkbox": "I have skimmed over terms and conditions", "link": "a nice lil' link" } + }, + "version": { + "title": "Version", + "backend_version": "Backend Version", + "frontend_version": "Frontend Version" } }, "timeline": { diff --git a/src/modules/instance.js b/src/modules/instance.js index 24c52f9c..155aa2eb 100644 --- a/src/modules/instance.js +++ b/src/modules/instance.js @@ -48,7 +48,11 @@ const defaultState = { // Html stuff instanceSpecificPanelContent: '', - tos: '' + tos: '', + + // Version Information + backendVersion: '', + frontendVersion: '' } const instance = { diff --git a/src/services/version/version.service.js b/src/services/version/version.service.js new file mode 100644 index 00000000..6c5036c1 --- /dev/null +++ b/src/services/version/version.service.js @@ -0,0 +1,10 @@ + +export const parseBackendVersionString = versionString => { + const regex = /(-g)(\w+)$/i + const replacer = '$1$2' + return versionString.replace(regex, replacer) +} + +export const parseFrontendVersionString = versionString => { + return `#${versionString}` +} -- cgit v1.2.3-70-g09d2 From 8952761370a9fc08a3f931940050ccbdd8df9767 Mon Sep 17 00:00:00 2001 From: Edijs Date: Sun, 10 Mar 2019 18:06:51 -0700 Subject: Version links to BE/FE --- src/components/settings/settings.js | 17 +++++++++-------- src/components/settings/settings.vue | 4 ++-- src/services/version/version.service.js | 12 ++++-------- 3 files changed, 15 insertions(+), 18 deletions(-) (limited to 'src/components/settings/settings.vue') diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js index d208ee5a..3579f6db 100644 --- a/src/components/settings/settings.js +++ b/src/components/settings/settings.js @@ -4,7 +4,10 @@ import { filter, trim } from 'lodash' import TabSwitcher from '../tab_switcher/tab_switcher.js' import StyleSwitcher from '../style_switcher/style_switcher.vue' import InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue' -import { parseBackendVersionString, parseFrontendVersionString } from '../../services/version/version.service' +import { extractCommit } from '../../services/version/version.service' + +const pleromaFeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma-fe/commit/' +const pleromaBeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma/commit/' const settings = { data () { @@ -101,14 +104,12 @@ const settings = { postFormats () { return this.$store.state.instance.postFormats || [] }, - instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel } - }, - methods: { - parseBackendVersion (versionString) { - return parseBackendVersionString(versionString) + instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel }, + frontendVersionLink () { + return pleromaFeCommitUrl + this.$store.state.instance.frontendVersion }, - parseFrontendVersion (versionString) { - return parseFrontendVersionString(versionString) + backendVersionLink () { + return pleromaBeCommitUrl + extractCommit(this.$store.state.instance.backendVersion) } }, watch: { diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 3ca7bdc0..17f1f1a1 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -268,7 +268,7 @@

    {{$t('settings.version.backend_version')}}

    @@ -276,7 +276,7 @@

    {{$t('settings.version.frontend_version')}}

    diff --git a/src/services/version/version.service.js b/src/services/version/version.service.js index 6c5036c1..a750b0dd 100644 --- a/src/services/version/version.service.js +++ b/src/services/version/version.service.js @@ -1,10 +1,6 @@ -export const parseBackendVersionString = versionString => { - const regex = /(-g)(\w+)$/i - const replacer = '$1$2' - return versionString.replace(regex, replacer) -} - -export const parseFrontendVersionString = versionString => { - return `#${versionString}` +export const extractCommit = versionString => { + const regex = /-g(\w+)$/i + const matches = versionString.match(regex) + return matches ? matches[1] : '' } -- cgit v1.2.3-70-g09d2 From 9857002bf5dc902302644e981712b611124a5845 Mon Sep 17 00:00:00 2001 From: taehoon Date: Sat, 2 Mar 2019 08:07:14 -0500 Subject: Add hideMutedPosts setting and wire up to post-returning endpoints --- src/boot/after_store.js | 1 + src/components/settings/settings.js | 8 ++++++++ src/components/settings/settings.vue | 4 ++++ src/i18n/en.json | 1 + src/modules/config.js | 1 + src/modules/instance.js | 1 + src/services/api/api.service.js | 3 ++- src/services/timeline_fetcher/timeline_fetcher.service.js | 4 ++++ 8 files changed, 22 insertions(+), 1 deletion(-) (limited to 'src/components/settings/settings.vue') diff --git a/src/boot/after_store.js b/src/boot/after_store.js index a5f8c978..f5e84cbc 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -97,6 +97,7 @@ const setSettings = async ({ apiConfig, staticConfig, store }) => { copyInstanceOption('showInstanceSpecificPanel') copyInstanceOption('scopeOptionsEnabled') copyInstanceOption('formattingOptionsEnabled') + copyInstanceOption('hideMutedPosts') copyInstanceOption('collapseMessageWithSubject') copyInstanceOption('loginMethod') copyInstanceOption('scopeCopy') diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js index b77c5197..1d5f75ed 100644 --- a/src/components/settings/settings.js +++ b/src/components/settings/settings.js @@ -47,6 +47,11 @@ const settings = { pauseOnUnfocusedLocal: user.pauseOnUnfocused, hoverPreviewLocal: user.hoverPreview, + hideMutedPostsLocal: typeof user.hideMutedPosts === 'undefined' + ? instance.hideMutedPosts + : user.hideMutedPosts, + hideMutedPostsDefault: this.$t('settings.values.' + instance.hideMutedPosts), + collapseMessageWithSubjectLocal: typeof user.collapseMessageWithSubject === 'undefined' ? instance.collapseMessageWithSubject : user.collapseMessageWithSubject, @@ -177,6 +182,9 @@ const settings = { value = filter(value.split('\n'), (word) => trim(word).length > 0) this.$store.dispatch('setOption', { name: 'muteWords', value }) }, + hideMutedPostsLocal (value) { + this.$store.dispatch('setOption', { name: 'hideMutedPosts', value }) + }, collapseMessageWithSubjectLocal (value) { this.$store.dispatch('setOption', { name: 'collapseMessageWithSubject', value }) }, diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 17f1f1a1..33dad549 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -36,6 +36,10 @@

    {{$t('nav.timeline')}}

      +
    • + + +
    • - +
    • -- cgit v1.2.3-70-g09d2 From f7baa6e1901fd0c34c42724ea6a1be8460a4b936 Mon Sep 17 00:00:00 2001 From: taehoon Date: Thu, 18 Apr 2019 23:35:36 -0400 Subject: set max-width of textarea in settings page --- src/components/settings/settings.vue | 1 + 1 file changed, 1 insertion(+) (limited to 'src/components/settings/settings.vue') diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 6ee103c7..a2023a81 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -330,6 +330,7 @@ textarea { width: 100%; + max-width: 100%; height: 100px; } -- cgit v1.2.3-70-g09d2 From ae1496cfb4b0a432d9a30370df6825e0fc483eb8 Mon Sep 17 00:00:00 2001 From: eugenijm Date: Thu, 25 Apr 2019 19:32:21 +0300 Subject: Make floating post button configurable --- .../mobile_post_status_modal.js | 33 +++++++++++++++++++--- src/components/settings/settings.js | 4 +++ src/components/settings/settings.vue | 4 +++ src/i18n/en.json | 1 + src/i18n/ru.json | 1 + src/modules/config.js | 1 + 6 files changed, 40 insertions(+), 4 deletions(-) (limited to 'src/components/settings/settings.vue') diff --git a/src/components/mobile_post_status_modal/mobile_post_status_modal.js b/src/components/mobile_post_status_modal/mobile_post_status_modal.js index 2f24dd08..d9806ad9 100644 --- a/src/components/mobile_post_status_modal/mobile_post_status_modal.js +++ b/src/components/mobile_post_status_modal/mobile_post_status_modal.js @@ -1,5 +1,5 @@ import PostStatusForm from '../post_status_form/post_status_form.vue' -import { throttle } from 'lodash' +import { throttle, debounce } from 'lodash' const MobilePostStatusModal = { components: { @@ -16,11 +16,17 @@ const MobilePostStatusModal = { } }, created () { - window.addEventListener('scroll', this.handleScroll) + if (this.autohideFloatingPostButton) { + window.addEventListener('scroll', this.handleScroll) + window.addEventListener('scroll', this.handleScrollDown) + } window.addEventListener('resize', this.handleOSK) }, destroyed () { - window.removeEventListener('scroll', this.handleScroll) + if (this.autohideFloatingPostButton) { + window.removeEventListener('scroll', this.handleScroll) + window.removeEventListener('scroll', this.handleScrollDown) + } window.removeEventListener('resize', this.handleOSK) }, computed: { @@ -28,7 +34,21 @@ const MobilePostStatusModal = { return this.$store.state.users.currentUser }, isHidden () { - return this.hidden || this.inputActive + return this.autohideFloatingPostButton && (this.hidden || this.inputActive) + }, + autohideFloatingPostButton () { + return !!this.$store.state.config.autohideFloatingPostButton + } + }, + watch: { + autohideFloatingPostButton: function (isEnabled) { + if (isEnabled) { + window.addEventListener('scroll', this.handleScroll) + window.addEventListener('scroll', this.handleScrollDown) + } else { + window.removeEventListener('scroll', this.handleScroll) + window.removeEventListener('scroll', this.handleScrollDown) + } } }, methods: { @@ -84,6 +104,11 @@ const MobilePostStatusModal = { this.oldScrollPos = window.scrollY this.scrollingDown = scrollingDown + }, 100), + handleScrollDown: debounce(function () { + if (this.scrollingDown) { + this.hidden = false + } }, 100) } } diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js index a85ab674..c4aa45b2 100644 --- a/src/components/settings/settings.js +++ b/src/components/settings/settings.js @@ -46,6 +46,7 @@ const settings = { streamingLocal: user.streaming, pauseOnUnfocusedLocal: user.pauseOnUnfocused, hoverPreviewLocal: user.hoverPreview, + autohideFloatingPostButtonLocal: user.autohideFloatingPostButton, hideMutedPostsLocal: typeof user.hideMutedPosts === 'undefined' ? instance.hideMutedPosts @@ -183,6 +184,9 @@ const settings = { hoverPreviewLocal (value) { this.$store.dispatch('setOption', { name: 'hoverPreview', value }) }, + autohideFloatingPostButtonLocal (value) { + this.$store.dispatch('setOption', { name: 'autohideFloatingPostButton', value }) + }, muteWordsString (value) { value = filter(value.split('\n'), (word) => trim(word).length > 0) this.$store.dispatch('setOption', { name: 'muteWords', value }) diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 6890220f..920e6e12 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -122,6 +122,10 @@ {{$t('settings.minimal_scopes_mode')}} {{$t('settings.instance_default', { value: minimalScopesModeDefault })}}
    • +
    • + + +
    diff --git a/src/i18n/en.json b/src/i18n/en.json index 7dca05e3..d7d4821e 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -218,6 +218,7 @@ "reply_visibility_all": "Show all replies", "reply_visibility_following": "Only show replies directed at me or users I'm following", "reply_visibility_self": "Only show replies directed at me", + "autohide_floating_post_button": "Automatically hide New Post button (mobile)", "saving_err": "Error saving settings", "saving_ok": "Settings saved", "search_user_to_block": "Search whom you want to block", diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 5450f154..e02aa1a8 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -152,6 +152,7 @@ "reply_visibility_all": "Показывать все ответы", "reply_visibility_following": "Показывать только ответы мне и тех на кого я подписан", "reply_visibility_self": "Показывать только ответы мне", + "autohide_floating_post_button": "Автоматически скрывать кнопку постинга (в мобильной версии)", "saving_err": "Не удалось сохранить настройки", "saving_ok": "Сохранено", "security_tab": "Безопасность", diff --git a/src/modules/config.js b/src/modules/config.js index 1666a2c5..fea0e3cf 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -17,6 +17,7 @@ const defaultState = { autoLoad: true, streaming: false, hoverPreview: true, + autohideFloatingPostButton: false, pauseOnUnfocused: true, stopGifs: false, replyVisibility: 'all', -- cgit v1.2.3-70-g09d2 From 15b3651a3070cffeadeca83255e2052f519d5db8 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Sun, 19 May 2019 20:42:44 +0300 Subject: moved setting styles into common to avoid bug with shared styles --- src/App.scss | 64 +++++++++++++++++++++++++++++++++ src/components/settings/settings.vue | 68 ------------------------------------ 2 files changed, 64 insertions(+), 68 deletions(-) (limited to 'src/components/settings/settings.vue') diff --git a/src/App.scss b/src/App.scss index 2729e0b0..59e911a3 100644 --- a/src/App.scss +++ b/src/App.scss @@ -740,6 +740,70 @@ nav { } } +.setting-item { + border-bottom: 2px solid var(--fg, $fallback--fg); + margin: 1em 1em 1.4em; + padding-bottom: 1.4em; + + > div { + margin-bottom: .5em; + &:last-child { + margin-bottom: 0; + } + } + + &:last-child { + border-bottom: none; + padding-bottom: 0; + margin-bottom: 1em; + } + + select { + min-width: 10em; + } + + + textarea { + width: 100%; + max-width: 100%; + height: 100px; + } + + .unavailable, + .unavailable i { + color: var(--cRed, $fallback--cRed); + color: $fallback--cRed; + } + + .btn { + min-height: 28px; + min-width: 10em; + padding: 0 2em; + } + + .number-input { + max-width: 6em; + } +} +.select-multiple { + display: flex; + .option-list { + margin: 0; + padding-left: .5em; + } +} +.setting-list, +.option-list{ + list-style-type: none; + padding-left: 2em; + li { + margin-bottom: 0.5em; + } + .suboptions { + margin-top: 0.3em + } +} + .login-hint { text-align: center; diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 920e6e12..4cf6fae2 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -303,71 +303,3 @@ - - -- cgit v1.2.3-70-g09d2 From e3638af031abbd091f504611270c4545b98926c5 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Sun, 16 Jun 2019 20:16:52 +0300 Subject: Removed formattingOptionsEnabled in favor of relying on BE-provided list of accepted formatting options --- BREAKING_CHANGES.md | 3 +++ src/boot/after_store.js | 1 - src/components/post_status_form/post_status_form.js | 3 --- src/components/post_status_form/post_status_form.vue | 15 ++++++++++++++- src/components/settings/settings.vue | 2 +- src/modules/instance.js | 1 - static/config.json | 1 - 7 files changed, 18 insertions(+), 8 deletions(-) (limited to 'src/components/settings/settings.vue') diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md index 924c38da..505fec75 100644 --- a/BREAKING_CHANGES.md +++ b/BREAKING_CHANGES.md @@ -1,5 +1,8 @@ # v1.0 ## Removed features/radically changed behavior +### formattingOptionsEnabled +as of !xxx `formattingOptionsEnabled` is no longer available and instead FE check for available post formatting options and enables formatting control if there's more than one option. + ### minimalScopesMode As of !633, `scopeOptions` is no longer available and instead is changed for `minimalScopesMode` (default: `false`) diff --git a/src/boot/after_store.js b/src/boot/after_store.js index c271d413..7a1ae1f2 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -100,7 +100,6 @@ const setSettings = async ({ apiConfig, staticConfig, store }) => { copyInstanceOption('redirectRootLogin') copyInstanceOption('showInstanceSpecificPanel') copyInstanceOption('minimalScopesMode') - copyInstanceOption('formattingOptionsEnabled') copyInstanceOption('hideMutedPosts') copyInstanceOption('collapseMessageWithSubject') copyInstanceOption('scopeCopy') diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index cbd2024a..a2dbf736 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -174,9 +174,6 @@ const PostStatusForm = { return true } }, - formattingOptionsEnabled () { - return this.$store.state.instance.formattingOptionsEnabled - }, postFormats () { return this.$store.state.instance.postFormats || [] }, diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index 25c5284f..08ecd576 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -58,7 +58,7 @@ >
    -
    +