Feature / Configurable web search engine (#3406)
* configurable web search engine * add webSearchEngine config in mobile ui * add webSearchEngine config in desktop ui * add webSearchEngine config * add messages for web search engine config * correct locale
This commit is contained in:
parent
0ce64f8c33
commit
afdb23ff57
5 changed files with 29 additions and 1 deletions
|
@ -824,6 +824,8 @@ desktop/views/components/settings.vue:
|
||||||
note-visibility: "投稿の公開範囲"
|
note-visibility: "投稿の公開範囲"
|
||||||
default-note-visibility: "デフォルトの公開範囲"
|
default-note-visibility: "デフォルトの公開範囲"
|
||||||
remember-note-visibility: "投稿の公開範囲を記憶する"
|
remember-note-visibility: "投稿の公開範囲を記憶する"
|
||||||
|
web-search-engine: "ウェブ検索エンジン"
|
||||||
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "ウィンドウの自動ポップアウト"
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "詳細設定"
|
advanced: "詳細設定"
|
||||||
|
@ -1564,6 +1566,8 @@ mobile/views/pages/settings.vue:
|
||||||
note-visibility: "投稿の公開範囲"
|
note-visibility: "投稿の公開範囲"
|
||||||
default-note-visibility: "デフォルトの公開範囲"
|
default-note-visibility: "デフォルトの公開範囲"
|
||||||
remember-note-visibility: "投稿の公開範囲を記憶する"
|
remember-note-visibility: "投稿の公開範囲を記憶する"
|
||||||
|
web-search-engine: "ウェブ検索エンジン"
|
||||||
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
load-raw-images: "添付された画像を高画質で表示する"
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
load-remote-media: "リモートサーバーのメディアを表示する"
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
|
|
|
@ -22,7 +22,10 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
search() {
|
search() {
|
||||||
window.open(`https://www.google.com/?#q=${this.query}`, '_blank');
|
const engine = this.$store.state.settings.webSearchEngine ||
|
||||||
|
'https://www.google.com/?#q={{query}}';
|
||||||
|
const url = engine.replace('{{query}}', this.query)
|
||||||
|
window.open(url, '_blank');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -91,6 +91,11 @@
|
||||||
</ui-select>
|
</ui-select>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<header>{{ $t('web-search-engine') }}</header>
|
||||||
|
<ui-input v-model="webSearchEngine">{{ $t('web-search-engine') }}<span slot="desc">{{ $t('web-search-engine-desc') }}</span></ui-input>
|
||||||
|
</section>
|
||||||
</ui-card>
|
</ui-card>
|
||||||
|
|
||||||
<ui-card class="web" v-show="page == 'web'">
|
<ui-card class="web" v-show="page == 'web'">
|
||||||
|
@ -455,6 +460,11 @@ export default Vue.extend({
|
||||||
set(value) { this.$store.dispatch('settings/set', { key: 'defaultNoteVisibility', value }); }
|
set(value) { this.$store.dispatch('settings/set', { key: 'defaultNoteVisibility', value }); }
|
||||||
},
|
},
|
||||||
|
|
||||||
|
webSearchEngine: {
|
||||||
|
get() { return this.$store.state.settings.webSearchEngine; },
|
||||||
|
set(value) { this.$store.dispatch('settings/set', { key: 'webSearchEngine', value }); }
|
||||||
|
},
|
||||||
|
|
||||||
showReplyTarget: {
|
showReplyTarget: {
|
||||||
get() { return this.$store.state.settings.showReplyTarget; },
|
get() { return this.$store.state.settings.showReplyTarget; },
|
||||||
set(value) { this.$store.dispatch('settings/set', { key: 'showReplyTarget', value }); }
|
set(value) { this.$store.dispatch('settings/set', { key: 'showReplyTarget', value }); }
|
||||||
|
|
|
@ -86,6 +86,11 @@
|
||||||
</ui-select>
|
</ui-select>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<header>{{ $t('web-search-engine') }}</header>
|
||||||
|
<ui-input v-model="webSearchEngine">{{ $t('web-search-engine') }}<span slot="desc">{{ $t('web-search-engine-desc') }}</span></ui-input>
|
||||||
|
</section>
|
||||||
</ui-card>
|
</ui-card>
|
||||||
|
|
||||||
<x-drive-settings/>
|
<x-drive-settings/>
|
||||||
|
@ -365,6 +370,11 @@ export default Vue.extend({
|
||||||
get() { return this.$store.state.settings.defaultNoteVisibility; },
|
get() { return this.$store.state.settings.defaultNoteVisibility; },
|
||||||
set(value) { this.$store.dispatch('settings/set', { key: 'defaultNoteVisibility', value }); }
|
set(value) { this.$store.dispatch('settings/set', { key: 'defaultNoteVisibility', value }); }
|
||||||
},
|
},
|
||||||
|
|
||||||
|
webSearchEngine: {
|
||||||
|
get() { return this.$store.state.settings.webSearchEngine; },
|
||||||
|
set(value) { this.$store.dispatch('settings/set', { key: 'webSearchEngine', value }); }
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
|
@ -35,6 +35,7 @@ const defaultSettings = {
|
||||||
iLikeSushi: false,
|
iLikeSushi: false,
|
||||||
rememberNoteVisibility: false,
|
rememberNoteVisibility: false,
|
||||||
defaultNoteVisibility: 'public',
|
defaultNoteVisibility: 'public',
|
||||||
|
webSearchEngine: 'https://www.google.com/?#q={{query}}',
|
||||||
mutedWords: [],
|
mutedWords: [],
|
||||||
games: {
|
games: {
|
||||||
reversi: {
|
reversi: {
|
||||||
|
|
Loading…
Reference in a new issue