summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorXeltica <7106976+Xeltica@users.noreply.github.com>2020-07-26 11:05:26 +0900
committerGitHub <noreply@github.com>2020-07-26 11:05:26 +0900
commit4feccdfd92e6191a6d04320c4ea5f0632f69ba97 (patch)
tree333dd80915fa14d7a4d7f21563a46334aad593e4 /src
parentfeat(server): Fetch icon url of an instance (#6591) (diff)
downloadsharkey-4feccdfd92e6191a6d04320c4ea5f0632f69ba97.tar.gz
sharkey-4feccdfd92e6191a6d04320c4ea5f0632f69ba97.tar.bz2
sharkey-4feccdfd92e6191a6d04320c4ea5f0632f69ba97.zip
インスタンス設定の不足分を追加 (#6576)
* インスタンス設定の不足分を追加 * fix bug * Update ja-JP.yml * Update settings.vue * Update settings.vue Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'src')
-rw-r--r--src/client/pages/instance/settings.vue84
1 files changed, 81 insertions, 3 deletions
diff --git a/src/client/pages/instance/settings.vue b/src/client/pages/instance/settings.vue
index 0436e87804..dfd6cc6d4f 100644
--- a/src/client/pages/instance/settings.vue
+++ b/src/client/pages/instance/settings.vue
@@ -28,6 +28,9 @@
<mk-switch v-model="enableGlobalTimeline" @change="save()">{{ $t('enableGlobalTimeline') }}</mk-switch>
<mk-info>{{ $t('disablingTimelinesInfo') }}</mk-info>
</div>
+ <div class="_content">
+ <mk-switch v-model="useStarForReactionFallback" @change="save()">{{ $t('useStarForReactionFallback') }}</mk-switch>
+ </div>
</section>
<section class="_card info">
@@ -75,6 +78,29 @@
</section>
<section class="_card">
+ <div class="_title"><fa :icon="faEnvelope" /> {{ $t('emailConfig') }}</div>
+ <div class="_content">
+ <mk-switch v-model="enableEmail" @change="save()">{{ $t('enableEmail') }}<template #desc>{{ $t('emailConfigInfo') }}</template></mk-switch>
+ <mk-input v-model="email" type="email" :disabled="!enableEmail">{{ $t('email') }}</mk-input>
+ <div><b>{{ $t('smtpConfig') }}</b></div>
+ <div class="_inputs">
+ <mk-input v-model="smtpHost" :disabled="!enableEmail">{{ $t('smtpHost') }}</mk-input>
+ <mk-input v-model="smtpPort" type="number" :disabled="!enableEmail">{{ $t('smtpPort') }}</mk-input>
+ </div>
+ <div class="_inputs">
+ <mk-input v-model="smtpUser" :disabled="!enableEmail">{{ $t('smtpUser') }}</mk-input>
+ <mk-input v-model="smtpPass" type="password" :disabled="!enableEmail">{{ $t('smtpPass') }}</mk-input>
+ </div>
+ <mk-info>{{ $t('emptyToDisableSmtpAuth') }}</mk-info>
+ <mk-switch v-model="smtpSecure" :disabled="!enableEmail">{{ $t('smtpSecure') }}<template #desc>{{ $t('smtpSecureInfo') }}</template></mk-switch>
+ <div>
+ <mk-button :disabled="!enableEmail" inline @click="testEmail()">{{ $t('testEmail') }}</mk-button>
+ <mk-button :disabled="!enableEmail" primary inline @click="save(true)"><fa :icon="faSave"/> {{ $t('save') }}</mk-button>
+ </div>
+ </div>
+ </section>
+
+ <section class="_card">
<div class="_title"><fa :icon="faBolt"/> {{ $t('serviceworker') }}</div>
<div class="_content">
<mk-switch v-model="enableServiceWorker">{{ $t('enableServiceworker') }}<template #desc>{{ $t('serviceworkerInfo') }}</template></mk-switch>
@@ -195,12 +221,19 @@
<mk-button primary @click="save(true)"><fa :icon="faSave"/> {{ $t('save') }}</mk-button>
</div>
</section>
+ <section class="_card">
+ <div class="_title"><fa :icon="faArchway" /> Summaly Proxy</div>
+ <div class="_content">
+ <mk-input v-model="summalyProxy">URL</mk-input>
+ <mk-button primary @click="save(true)"><fa :icon="faSave"/> {{ $t('save') }}</mk-button>
+ </div>
+ </section>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
-import { faPencilAlt, faShareAlt, faGhost, faCog, faPlus, faCloud, faInfoCircle, faBan, faSave, faServer, faLink, faThumbtack, faUser, faShieldAlt, faKey, faBolt } from '@fortawesome/free-solid-svg-icons';
+import { faPencilAlt, faShareAlt, faGhost, faCog, faPlus, faCloud, faInfoCircle, faBan, faSave, faServer, faLink, faThumbtack, faUser, faShieldAlt, faKey, faBolt, faArchway } from '@fortawesome/free-solid-svg-icons';
import { faTrashAlt, faEnvelope } from '@fortawesome/free-regular-svg-icons';
import { faTwitter, faDiscord, faGithub } from '@fortawesome/free-brands-svg-icons';
import MkButton from '../../components/ui/button.vue';
@@ -243,7 +276,9 @@ export default Vue.extend({
maintainerEmail: null,
name: null,
description: null,
- tosUrl: null,
+ tosUrl: null as string | null,
+ enableEmail: false,
+ email: null,
bannerUrl: null,
iconUrl: null,
maxNoteTextLength: 0,
@@ -279,7 +314,14 @@ export default Vue.extend({
enableDiscordIntegration: false,
discordClientId: null,
discordClientSecret: null,
- faPencilAlt, faTwitter, faDiscord, faGithub, faShareAlt, faTrashAlt, faGhost, faCog, faPlus, faCloud, faInfoCircle, faBan, faSave, faServer, faLink, faEnvelope, faThumbtack, faUser, faShieldAlt, faKey, faBolt
+ useStarForReactionFallback: false,
+ smtpSecure: false,
+ smtpHost: '',
+ smtpPort: 0,
+ smtpUser: '',
+ smtpPass: '',
+ summalyProxy: '',
+ faPencilAlt, faTwitter, faDiscord, faGithub, faShareAlt, faTrashAlt, faGhost, faCog, faPlus, faCloud, faInfoCircle, faBan, faSave, faServer, faLink, faEnvelope, faThumbtack, faUser, faShieldAlt, faKey, faBolt, faArchway
}
},
@@ -295,6 +337,8 @@ export default Vue.extend({
this.tosUrl = this.meta.tosUrl;
this.bannerUrl = this.meta.bannerUrl;
this.iconUrl = this.meta.iconUrl;
+ this.enableEmail = this.meta.enableEmail;
+ this.email = this.meta.email;
this.maintainerName = this.meta.maintainerName;
this.maintainerEmail = this.meta.maintainerEmail;
this.maxNoteTextLength = this.meta.maxNoteTextLength;
@@ -337,6 +381,13 @@ export default Vue.extend({
this.enableDiscordIntegration = this.meta.enableDiscordIntegration;
this.discordClientId = this.meta.discordClientId;
this.discordClientSecret = this.meta.discordClientSecret;
+ this.useStarForReactionFallback = this.meta.useStarForReactionFallback;
+ this.smtpSecure = this.meta.smtpSecure;
+ this.smtpHost = this.meta.smtpHost;
+ this.smtpPort = this.meta.smtpPort;
+ this.smtpUser = this.meta.smtpUser;
+ this.smtpPass = this.meta.smtpPass;
+ this.summalyProxy = this.meta.summalyProxy;
if (this.proxyAccountId) {
this.$root.api('users/show', { userId: this.proxyAccountId }).then(proxyAccount => {
@@ -412,6 +463,24 @@ export default Vue.extend({
});
},
+ async testEmail() {
+ this.$root.api('admin/send-email', {
+ to: this.maintainerEmail,
+ subject: 'Test email',
+ text: 'Yo'
+ }).then(x => {
+ this.$root.dialog({
+ type: 'success',
+ splash: true
+ });
+ }).catch(e => {
+ this.$root.dialog({
+ type: 'error',
+ text: e
+ });
+ });
+ },
+
save(withDialog = false) {
this.$root.api('admin/update-meta', {
name: this.name,
@@ -461,6 +530,15 @@ export default Vue.extend({
enableDiscordIntegration: this.enableDiscordIntegration,
discordClientId: this.discordClientId,
discordClientSecret: this.discordClientSecret,
+ enableEmail: this.enableEmail,
+ email: this.email,
+ smtpSecure: this.smtpSecure,
+ smtpHost: this.smtpHost,
+ smtpPort: this.smtpPort,
+ smtpUser: this.smtpUser,
+ smtpPass: this.smtpPass,
+ summalyProxy: this.summalyProxy,
+ useStarForReactionFallback: this.useStarForReactionFallback,
}).then(() => {
this.$store.dispatch('instance/fetch');
if (withDialog) {