diff --git a/CHANGELOG.md b/CHANGELOG.md index 48cd121042..09d56d8920 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 +- Fix: サーバー情報が非公開のサーバーで「サーバーメトリクス」ウィジェットが利用できる問題を修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました diff --git a/locales/index.d.ts b/locales/index.d.ts index fbe8c30c94..9023bb8abb 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -9598,6 +9598,12 @@ export interface Locale extends ILocale { * サーバーメトリクス */ "serverMetric": string; + "_serverMetric": { + /** + * このサーバーではメトリクスが利用できません + */ + "notAvailable": string; + }; /** * AiScriptコンソール */ diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index d21df5d5e1..7b31b8532d 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -2523,6 +2523,8 @@ _widgets: onlineUsers: "オンラインユーザー" jobQueue: "ジョブキュー" serverMetric: "サーバーメトリクス" + _serverMetric: + notAvailable: "このサーバーではメトリクスが利用できません" aiscript: "AiScriptコンソール" aiscriptApp: "AiScript App" aichan: "藍" diff --git a/packages/backend/src/core/entities/MetaEntityService.ts b/packages/backend/src/core/entities/MetaEntityService.ts index 2da614a120..e7af9b9f4e 100644 --- a/packages/backend/src/core/entities/MetaEntityService.ts +++ b/packages/backend/src/core/entities/MetaEntityService.ts @@ -135,6 +135,7 @@ export class MetaEntityService { noteSearchableScope: (this.config.meilisearch == null || this.config.meilisearch.scope !== 'local') ? 'global' : 'local', maxFileSize: this.config.maxFileSize, federation: this.meta.federation, + enableServerMachineStats: instance.enableServerMachineStats, }; return packed; diff --git a/packages/backend/src/models/json-schema/meta.ts b/packages/backend/src/models/json-schema/meta.ts index a0e7d490b3..115cc6f51a 100644 --- a/packages/backend/src/models/json-schema/meta.ts +++ b/packages/backend/src/models/json-schema/meta.ts @@ -310,6 +310,10 @@ export const packedMetaLiteSchema = { enum: ['all', 'specified', 'none'], optional: false, nullable: false, }, + enableServerMachineStats: { + type: 'boolean', + optional: false, nullable: false, + }, }, } as const; diff --git a/packages/frontend/src/components/MkWidgets.vue b/packages/frontend/src/components/MkWidgets.vue index cf7c2cda80..3f007ed647 100644 --- a/packages/frontend/src/components/MkWidgets.vue +++ b/packages/frontend/src/components/MkWidgets.vue @@ -68,11 +68,17 @@ const props = defineProps<{ }>(); const _widgetDefs = computed(() => { + let wd = widgetDefs; + if (instance.federation === 'none') { - return widgetDefs.filter(x => !federationWidgets.includes(x)); - } else { - return widgetDefs; + wd = wd.filter(x => !federationWidgets.includes(x)); } + + if (!instance.enableServerMachineStats) { + wd = wd.filter(x => x !== 'serverMetric'); + } + + return wd; }); const _widgets = computed(() => props.widgets.filter(x => _widgetDefs.value.includes(x.name))); diff --git a/packages/frontend/src/widgets/server-metric/index.vue b/packages/frontend/src/widgets/server-metric/index.vue index f52b6fd12e..99836d18ce 100644 --- a/packages/frontend/src/widgets/server-metric/index.vue +++ b/packages/frontend/src/widgets/server-metric/index.vue @@ -10,7 +10,8 @@ SPDX-License-Identifier: AGPL-3.0-only