From 52fe01e4d8c6b9c783f8606ac1ece6a66371508a Mon Sep 17 00:00:00 2001 From: Hakaba Hitoyo Date: Mon, 3 Sep 2018 14:43:10 +0900 Subject: mock features panel --- src/components/features_panel/features_panel.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/components/features_panel/features_panel.js (limited to 'src/components/features_panel/features_panel.js') diff --git a/src/components/features_panel/features_panel.js b/src/components/features_panel/features_panel.js new file mode 100644 index 00000000..19018fb4 --- /dev/null +++ b/src/components/features_panel/features_panel.js @@ -0,0 +1,6 @@ +const FeaturesPanel = { + computed: { + } +} + +export default FeaturesPanel -- cgit v1.2.3-70-g09d2 From 049e2397b156534add9472d3c16cf92ca5a88326 Mon Sep 17 00:00:00 2001 From: Hakaba Hitoyo Date: Mon, 3 Sep 2018 15:23:09 +0900 Subject: update --- src/components/features_panel/features_panel.js | 5 +++++ src/components/features_panel/features_panel.vue | 11 +++++------ src/main.js | 2 ++ 3 files changed, 12 insertions(+), 6 deletions(-) (limited to 'src/components/features_panel/features_panel.js') diff --git a/src/components/features_panel/features_panel.js b/src/components/features_panel/features_panel.js index 19018fb4..75a671f2 100644 --- a/src/components/features_panel/features_panel.js +++ b/src/components/features_panel/features_panel.js @@ -1,5 +1,10 @@ const FeaturesPanel = { computed: { + mediaProxy: function () { return this.$store.state.config.mediaProxyAvailable }, + whoToFollow: function () { return this.$store.state.config.suggestionsEnabled }, + scopeOptions: function () { return this.$store.state.config.scopeOptionsEnabled }, + formattingOptions: function () { return this.$store.state.config.formattingOptionsEnabled }, + textlimit: function () { return this.$store.state.config.textlimit } } } diff --git a/src/components/features_panel/features_panel.vue b/src/components/features_panel/features_panel.vue index bcb700ed..92fdb1ff 100644 --- a/src/components/features_panel/features_panel.vue +++ b/src/components/features_panel/features_panel.vue @@ -8,12 +8,11 @@
    -
  • Media proxy
  • -
  • Local chat
  • -
  • Who to follow
  • -
  • Scope options
  • -
  • Formatting options
  • -
  • Text limit=
  • +
  • Media proxy
  • +
  • Who to follow
  • +
  • Scope options
  • +
  • Formatting options
  • +
  • Text limit={{textlimit}}
diff --git a/src/main.js b/src/main.js index debd8703..64b223aa 100644 --- a/src/main.js +++ b/src/main.js @@ -225,4 +225,6 @@ window.fetch('/nodeinfo/2.0.json') const suggestions = data.metadata.suggestions store.dispatch('setOption', { name: 'suggestionsEnabled', value: suggestions.enabled }) store.dispatch('setOption', { name: 'suggestionsWeb', value: suggestions.web }) + + store.dispatch('setOption', { name: 'mediaProxyAvailable', value: data.metadata.mediaProxy }) }) -- cgit v1.2.3-70-g09d2 From 65115bfc7f991b9203724eab67f73a34259cf6b2 Mon Sep 17 00:00:00 2001 From: Hakaba Hitoyo Date: Tue, 4 Sep 2018 10:44:25 +0900 Subject: features panes supports chat & gopher --- src/components/features_panel/features_panel.js | 6 +++++- src/components/features_panel/features_panel.vue | 4 +++- src/main.js | 9 ++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) (limited to 'src/components/features_panel/features_panel.js') diff --git a/src/components/features_panel/features_panel.js b/src/components/features_panel/features_panel.js index 75a671f2..21d78e19 100644 --- a/src/components/features_panel/features_panel.js +++ b/src/components/features_panel/features_panel.js @@ -1,7 +1,11 @@ const FeaturesPanel = { computed: { - mediaProxy: function () { return this.$store.state.config.mediaProxyAvailable }, + chat: function () { + return this.$store.state.config.chatAvailable && (!this.$store.state.chatDisabled) + }, + gopher: function () { return this.$store.state.config.gopherAvailable }, whoToFollow: function () { return this.$store.state.config.suggestionsEnabled }, + mediaProxy: function () { return this.$store.state.config.mediaProxyAvailable }, scopeOptions: function () { return this.$store.state.config.scopeOptionsEnabled }, formattingOptions: function () { return this.$store.state.config.formattingOptionsEnabled }, textlimit: function () { return this.$store.state.config.textlimit } diff --git a/src/components/features_panel/features_panel.vue b/src/components/features_panel/features_panel.vue index 5ec4d255..5c532f1a 100644 --- a/src/components/features_panel/features_panel.vue +++ b/src/components/features_panel/features_panel.vue @@ -8,8 +8,10 @@
    -
  • Media proxy
  • +
  • Chat
  • +
  • Gopher
  • Who to follow
  • +
  • Media proxy
  • Scope options
  • Formatting options
  • Text limit = {{textlimit}}
  • diff --git a/src/main.js b/src/main.js index 64b223aa..58f520db 100644 --- a/src/main.js +++ b/src/main.js @@ -222,9 +222,12 @@ window.fetch('/instance/panel.html') window.fetch('/nodeinfo/2.0.json') .then((res) => res.json()) .then((data) => { - const suggestions = data.metadata.suggestions + const metadata = data.metadata + store.dispatch('setOption', { name: 'mediaProxyAvailable', value: data.metadata.mediaProxy }) + store.dispatch('setOption', { name: 'chatAvailable', value: data.metadata.chat }) + store.dispatch('setOption', { name: 'gopherAvailable', value: data.metadata.gopher }) + + const suggestions = metadata.suggestions store.dispatch('setOption', { name: 'suggestionsEnabled', value: suggestions.enabled }) store.dispatch('setOption', { name: 'suggestionsWeb', value: suggestions.web }) - - store.dispatch('setOption', { name: 'mediaProxyAvailable', value: data.metadata.mediaProxy }) }) -- cgit v1.2.3-70-g09d2 From 8b94ea28eceb33e1f3f594f5d99ec0f4111b21ab Mon Sep 17 00:00:00 2001 From: hakabahitoyo Date: Tue, 4 Sep 2018 14:50:02 +0900 Subject: remove formatting options --- src/components/features_panel/features_panel.js | 1 - src/components/features_panel/features_panel.vue | 1 - src/i18n/messages.js | 2 -- 3 files changed, 4 deletions(-) (limited to 'src/components/features_panel/features_panel.js') diff --git a/src/components/features_panel/features_panel.js b/src/components/features_panel/features_panel.js index 21d78e19..80f5c966 100644 --- a/src/components/features_panel/features_panel.js +++ b/src/components/features_panel/features_panel.js @@ -7,7 +7,6 @@ const FeaturesPanel = { whoToFollow: function () { return this.$store.state.config.suggestionsEnabled }, mediaProxy: function () { return this.$store.state.config.mediaProxyAvailable }, scopeOptions: function () { return this.$store.state.config.scopeOptionsEnabled }, - formattingOptions: function () { return this.$store.state.config.formattingOptionsEnabled }, textlimit: function () { return this.$store.state.config.textlimit } } } diff --git a/src/components/features_panel/features_panel.vue b/src/components/features_panel/features_panel.vue index c191d66b..445143e9 100644 --- a/src/components/features_panel/features_panel.vue +++ b/src/components/features_panel/features_panel.vue @@ -13,7 +13,6 @@
  • {{$t('features_panel.who_to_follow')}}
  • {{$t('features_panel.media_proxy')}}
  • {{$t('features_panel.scope_options')}}
  • -
  • {{$t('features_panel.formatting_options')}}
  • {{$t('features_panel.text_limit')}} = {{textlimit}}
diff --git a/src/i18n/messages.js b/src/i18n/messages.js index 76c093a3..f1dcfa46 100644 --- a/src/i18n/messages.js +++ b/src/i18n/messages.js @@ -427,7 +427,6 @@ const en = { who_to_follow: 'Who to follow', media_proxy: 'Media proxy', scope_options: 'Scope options', - formatting_options: 'Formatting options', text_limit: 'Text limit' } } @@ -961,7 +960,6 @@ const ja = { who_to_follow: 'おすすめユーザー', media_proxy: 'メディアプロクシ', scope_options: 'こうかいはんい', - formatting_options: 'リッチテキスト', text_limit: 'もじのかず' } } -- cgit v1.2.3-70-g09d2 From 82fa5d08c4f441fa9df20edab214b99ecb7776b3 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Sun, 9 Sep 2018 21:21:23 +0300 Subject: more refactoring --- src/App.js | 6 +-- src/components/features_panel/features_panel.js | 10 ++--- src/components/login_form/login_form.js | 2 +- .../post_status_form/post_status_form.js | 8 ++-- src/components/registration/registration.js | 6 +-- src/components/settings/settings.js | 35 ++++++++-------- src/components/settings/settings.vue | 2 +- src/components/user_settings/user_settings.js | 4 +- src/main.js | 44 ++++++++++---------- src/modules/instance.js | 47 ++++++++++++++++++++++ src/modules/interface.js | 21 +--------- 11 files changed, 109 insertions(+), 76 deletions(-) create mode 100644 src/modules/instance.js (limited to 'src/components/features_panel/features_panel.js') diff --git a/src/App.js b/src/App.js index 251fdfca..a58a2bc5 100644 --- a/src/App.js +++ b/src/App.js @@ -60,10 +60,10 @@ export default { }, logo () { return this.$store.state.config.logo }, style () { return { 'background-image': `url(${this.background})` } }, - sitename () { return this.$store.state.interface.name }, + sitename () { return this.$store.state.instance.name }, chat () { return this.$store.state.chat.channel.state === 'joined' }, - suggestionsEnabled () { return this.$store.state.interface.suggestionsEnabled }, - showInstanceSpecificPanel () { return this.$store.state.interface.showInstanceSpecificPanel } + suggestionsEnabled () { return this.$store.state.instance.suggestionsEnabled }, + showInstanceSpecificPanel () { return this.$store.state.instance.showInstanceSpecificPanel } }, methods: { activatePanel (panelName) { diff --git a/src/components/features_panel/features_panel.js b/src/components/features_panel/features_panel.js index 80f5c966..945165bb 100644 --- a/src/components/features_panel/features_panel.js +++ b/src/components/features_panel/features_panel.js @@ -3,11 +3,11 @@ const FeaturesPanel = { chat: function () { return this.$store.state.config.chatAvailable && (!this.$store.state.chatDisabled) }, - gopher: function () { return this.$store.state.config.gopherAvailable }, - whoToFollow: function () { return this.$store.state.config.suggestionsEnabled }, - mediaProxy: function () { return this.$store.state.config.mediaProxyAvailable }, - scopeOptions: function () { return this.$store.state.config.scopeOptionsEnabled }, - textlimit: function () { return this.$store.state.config.textlimit } + gopher: function () { return this.$store.state.instance.gopherAvailable }, + whoToFollow: function () { return this.$store.state.instance.suggestionsEnabled }, + mediaProxy: function () { return this.$store.state.instance.mediaProxyAvailable }, + scopeOptions: function () { return this.$store.state.instance.scopeOptionsEnabled }, + textlimit: function () { return this.$store.state.instance.textlimit } } } diff --git a/src/components/login_form/login_form.js b/src/components/login_form/login_form.js index 12144324..4405fb92 100644 --- a/src/components/login_form/login_form.js +++ b/src/components/login_form/login_form.js @@ -5,7 +5,7 @@ const LoginForm = { }), computed: { loggingIn () { return this.$store.state.users.loggingIn }, - registrationOpen () { return this.$store.state.interface.registrationOpen } + registrationOpen () { return this.$store.state.instance.registrationOpen } }, methods: { submit () { diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index 7babe236..dc92f009 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -120,10 +120,10 @@ const PostStatusForm = { return this.$store.state.users.users }, emoji () { - return this.$store.state.config.emoji || [] + return this.$store.state.instance.emoji || [] }, customEmoji () { - return this.$store.state.config.customEmoji || [] + return this.$store.state.instance.customEmoji || [] }, statusLength () { return this.newStatus.status.length @@ -141,10 +141,10 @@ const PostStatusForm = { return this.hasStatusLengthLimit && (this.statusLength > this.statusLengthLimit) }, scopeOptionsEnabled () { - return this.$store.state.config.scopeOptionsEnabled + return this.$store.state.instance.scopeOptionsEnabled }, formattingOptionsEnabled () { - return this.$store.state.config.formattingOptionsEnabled + return this.$store.state.instance.formattingOptionsEnabled } }, methods: { diff --git a/src/components/registration/registration.js b/src/components/registration/registration.js index e53fa4e5..8f59878d 100644 --- a/src/components/registration/registration.js +++ b/src/components/registration/registration.js @@ -5,16 +5,16 @@ const registration = { registering: false }), created () { - if ((!this.$store.state.interface.registrationOpen && !this.token) || !!this.$store.state.users.currentUser) { + if ((!this.$store.state.instance.registrationOpen && !this.token) || !!this.$store.state.users.currentUser) { this.$router.push('/main/all') } // Seems like this doesn't work at first page open for some reason - if (this.$store.state.interface.registrationOpen && this.token) { + if (this.$store.state.instance.registrationOpen && this.token) { this.$router.push('/registration') } }, computed: { - termsofservice () { return this.$store.state.config.tos }, + termsofservice () { return this.$store.state.instance.tos }, token () { return this.$route.params.token } }, methods: { diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js index 6d481820..856ca40e 100644 --- a/src/components/settings/settings.js +++ b/src/components/settings/settings.js @@ -6,25 +6,26 @@ import { filter, trim } from 'lodash' const settings = { data () { - const config = this.$store.state.config + const user = this.$store.state.config + const instance = this.$store.state.instance return { - hideAttachmentsLocal: config.hideAttachments, - hideAttachmentsInConvLocal: config.hideAttachmentsInConv, - hideNsfwLocal: config.hideNsfw, - notificationVisibilityLocal: config.notificationVisibility, - replyVisibilityLocal: config.replyVisibility, - loopVideoLocal: config.loopVideo, - loopVideoSilentOnlyLocal: config.loopVideoSilentOnly, - muteWordsString: config.muteWords.join('\n'), - autoLoadLocal: config.autoLoad, - streamingLocal: config.streaming, - pauseOnUnfocusedLocal: config.pauseOnUnfocused, - hoverPreviewLocal: config.hoverPreview, - collapseMessageWithSubjectLocal: typeof config.collapseMessageWithSubject === 'undefined' - ? config.defaultCollapseMessageWithSubject - : config.collapseMessageWithSubject, - stopGifs: config.stopGifs, + hideAttachmentsLocal: user.hideAttachments, + hideAttachmentsInConvLocal: user.hideAttachmentsInConv, + hideNsfwLocal: user.hideNsfw, + 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, + stopGifs: user.stopGifs, loopSilentAvailable: // Firefox Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'mozHasAudio') || diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue index 481cdf09..55ffa591 100644 --- a/src/components/settings/settings.vue +++ b/src/components/settings/settings.vue @@ -7,7 +7,7 @@