diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index ed0da44d6..91edb82e0 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1187,7 +1187,6 @@ admin/views/index.vue:
users: "ユーザー"
federation: "連合"
announcements: "お知らせ"
- hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
logs: "ログ"
@@ -1230,6 +1229,8 @@ admin/views/instance.vue:
maintainer-config: "管理者情報"
maintainer-name: "管理者名"
maintainer-email: "管理者の連絡先"
+ advanced-config: "その他の設定"
+ note-and-tl: "投稿とタイムライン"
drive-config: "ドライブの設定"
cache-remote-files: "リモートのファイルをキャッシュする"
cache-remote-files-desc: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。そのためサーバーのストレージを節約できますが、プライバシー設定で直リンクを無効にしているユーザーにはファイルが見えなくなったり、サムネイルが生成されないので通信量が増加します。通常はこの設定をオンにしておくことをおすすめします。"
@@ -1241,6 +1242,9 @@ admin/views/instance.vue:
enable-recaptcha: "reCAPTCHAを有効にする"
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
+ hidden-tags: "非表示ハッシュタグ"
+ hidden-tags-info: "集計から除外するハッシュタグを改行で区切って記述します。"
+ external-service-integration-config: "外部サービス連携"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
diff --git a/src/client/app/admin/views/hashtags.vue b/src/client/app/admin/views/hashtags.vue
deleted file mode 100644
index e1cc4b494..000000000
--- a/src/client/app/admin/views/hashtags.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
- {{ $t('hided-tags') }}
-
-
-
-
-
-
diff --git a/src/client/app/admin/views/index.vue b/src/client/app/admin/views/index.vue
index 4bce197ed..43e47038f 100644
--- a/src/client/app/admin/views/index.vue
+++ b/src/client/app/admin/views/index.vue
@@ -28,7 +28,6 @@
@@ -48,7 +47,6 @@
-
@@ -68,7 +66,6 @@ import XLogs from "./logs.vue";
import XModerators from "./moderators.vue";
import XEmoji from "./emoji.vue";
import XAnnouncements from "./announcements.vue";
-import XHashtags from "./hashtags.vue";
import XUsers from "./users.vue";
import XDrive from "./drive.vue";
import XAbuse from "./abuse.vue";
@@ -91,7 +88,6 @@ export default Vue.extend({
XModerators,
XEmoji,
XAnnouncements,
- XHashtags,
XUsers,
XDrive,
XAbuse,
diff --git a/src/client/app/admin/views/instance.vue b/src/client/app/admin/views/instance.vue
index 5cdd22296..be9e56131 100644
--- a/src/client/app/admin/views/instance.vue
+++ b/src/client/app/admin/views/instance.vue
@@ -2,7 +2,7 @@
{{ $t('instance') }}
-
+
{{ $t('host') }}
{{ $t('instance-name') }}
{{ $t('instance-description') }}
@@ -11,49 +11,63 @@
{{ $t('banner-url') }}
{{ $t('error-image-url') }}
{{ $t('tos-url') }}
- {{ $t('repository-url') }}
- {{ $t('feedback-url') }}
{{ $t('languages') }}{{ $t('languages-desc') }}
+
+ {{ $t('advanced-config') }}
+ {{ $t('repository-url') }}
+ {{ $t('feedback-url') }}
+
{{ $t('maintainer-config') }}
{{ $t('maintainer-name') }}
{{ $t('maintainer-email') }}
+
+ {{ $t('disable-registration') }}
+ {{ $t('invite') }}
+
+
+
+
+
+ {{ $t('note-and-tl') }}
{{ $t('max-note-text-length') }}
- {{ $t('disable-registration') }}
{{ $t('disable-local-timeline') }}
{{ $t('disable-global-timeline') }}
{{ $t('disabling-timelines-info') }}
+
+
{{ $t('enable-emoji-reaction') }}
{{ $t('use-star-for-reaction-fallback') }}
-
+
+
+ {{ $t('drive-config') }}
+
{{ $t('cache-remote-files') }}{{ $t('cache-remote-files-desc') }}
+
+
{{ $t('local-drive-capacity-mb') }}MB{{ $t('mb') }}
{{ $t('remote-drive-capacity-mb') }}MB{{ $t('mb') }}
-
- {{ $t('recaptcha-config') }}
- {{ $t('enable-recaptcha') }}
- {{ $t('recaptcha-info') }}
-
- {{ $t('recaptcha-site-key') }}
- {{ $t('recaptcha-secret-key') }}
-
-
- {{ $t('proxy-account-config') }}
- {{ $t('proxy-account-info') }}
- @{{ $t('proxy-account-username') }}{{ $t('proxy-account-username-desc') }}
- {{ $t('proxy-account-warn') }}
+ {{ $t('save') }}
+
+
+
+ {{ $t('email-config') }}
-
{{ $t('enable-email') }}{{ $t('email-config-info') }}
{{ $t('email') }}
@@ -63,12 +77,30 @@
{{ $t('smtp-auth') }}
{{ $t('smtp-user') }}
- {{ $t('smtp-pass') }}
+ {{ $t('smtp-pass') }}
{{ $t('smtp-secure') }}{{ $t('smtp-secure-info') }}
- {{ $t('serviceworker-config') }}
+ {{ $t('save') }}
+
+
+
+
+ {{ $t('proxy-account-config') }}
+
+ {{ $t('proxy-account-info') }}
+ @{{ $t('proxy-account-username') }}{{ $t('proxy-account-username-desc') }}
+ {{ $t('proxy-account-warn') }}
+
+
+
+
+
+ {{ $t('serviceworker-config') }}
+
{{ $t('enable-serviceworker') }}{{ $t('serviceworker-info') }}
{{ $t('vapid-info') }}
npm i web-push -g
web-push generate-vapid-keys
@@ -77,11 +109,22 @@
-
- URL
+ {{ $t('save') }}
+
+
+
+
+ {{ $t('recaptcha-config') }}
+
+ {{ $t('enable-recaptcha') }}
+ {{ $t('recaptcha-info') }}
+
+ {{ $t('recaptcha-site-key') }}
+ {{ $t('recaptcha-secret-key') }}
+
- {{ $t('save') }}
+ {{ $t('save') }}
@@ -91,56 +134,67 @@
{{ $t('pinned-users-info') }}
-
{{ $t('save') }}
+
{{ $t('save') }}
- {{ $t('invite') }}
-
- {{ $t('invite') }}
- Code: {{ inviteCode }}
-
-
-
-
- {{ $t('twitter-integration-config') }}
+ {{ $t('external-service-integration-config') }}
+ {{ $t('twitter-integration-config') }}
{{ $t('enable-twitter-integration') }}
{{ $t('twitter-integration-consumer-key') }}
{{ $t('twitter-integration-consumer-secret') }}
{{ $t('twitter-integration-info', { url: `${url}/api/tw/cb` }) }}
- {{ $t('save') }}
-
-
-
- {{ $t('github-integration-config') }}
+ {{ $t('github-integration-config') }}
{{ $t('enable-github-integration') }}
{{ $t('github-integration-client-id') }}
{{ $t('github-integration-client-secret') }}
{{ $t('github-integration-info', { url: `${url}/api/gh/cb` }) }}
- {{ $t('save') }}
-
-
-
- {{ $t('discord-integration-config') }}
+ {{ $t('discord-integration-config') }}
{{ $t('enable-discord-integration') }}
{{ $t('discord-integration-client-id') }}
{{ $t('discord-integration-client-secret') }}
{{ $t('discord-integration-info', { url: `${url}/api/dc/cb` }) }}
- {{ $t('save') }}
+
+
+
+
+ {{ $t('advanced-config') }}
+
+
+ {{ $t('hidden-tags') }}
+
+
+ {{ $t('hidden-tags-info') }}
+
+ {{ $t('save') }}
+
+
+
+
+ summaly Proxy
+
+
+
+
@@ -149,8 +203,8 @@ import Vue from 'vue';
import i18n from '../../i18n';
import { url, host } from '../../config';
import { toUnicode } from 'punycode';
-import { faHeadset, faShieldAlt, faGhost, faUserPlus, faBolt, faThumbtack } from '@fortawesome/free-solid-svg-icons';
-import { faEnvelope as farEnvelope } from '@fortawesome/free-regular-svg-icons';
+import { faHeadset, faShieldAlt, faGhost, faUserPlus, faBolt, faThumbtack, faPencilAlt, faHashtag } from '@fortawesome/free-solid-svg-icons';
+import { faEnvelope as farEnvelope, faSave } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
i18n: i18n('admin/views/instance.vue'),
@@ -193,7 +247,6 @@ export default Vue.extend({
discordClientId: null,
discordClientSecret: null,
proxyAccount: null,
- inviteCode: null,
summalyProxy: null,
enableEmail: false,
email: null,
@@ -207,7 +260,8 @@ export default Vue.extend({
swPublicKey: null,
swPrivateKey: null,
pinnedUsers: '',
- faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope, faBolt, faThumbtack
+ hiddenTags: '',
+ faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope, faBolt, faThumbtack, faPencilAlt, faSave, faHashtag
};
},
@@ -260,13 +314,17 @@ export default Vue.extend({
this.swPublicKey = meta.swPublickey;
this.swPrivateKey = meta.swPrivateKey;
this.pinnedUsers = meta.pinnedUsers.join('\n');
+ this.hiddenTags = meta.hiddenTags.join('\n');
});
},
methods: {
invite() {
this.$root.api('admin/invite').then(x => {
- this.inviteCode = x.code;
+ this.$root.dialog({
+ type: 'info',
+ text: x.code
+ });
}).catch(e => {
this.$root.dialog({
type: 'error',
@@ -322,7 +380,8 @@ export default Vue.extend({
enableServiceWorker: this.enableServiceWorker,
swPublicKey: this.swPublicKey,
swPrivateKey: this.swPrivateKey,
- pinnedUsers: this.pinnedUsers.split('\n')
+ pinnedUsers: this.pinnedUsers.split('\n'),
+ hiddenTags: this.hiddenTags.split('\n'),
}).then(() => {
this.$root.dialog({
type: 'success',