diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index ad53f97e7a..f344ebedd7 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -330,7 +330,7 @@ watch: "ウォッチ" unwatch: "ウォッチ解除" accept: "許可" reject: "拒否" -normal: "正常" +normal: "通常" instanceName: "サーバー名" instanceDescription: "サーバーの紹介" maintainerName: "管理者の名前" @@ -1095,6 +1095,7 @@ expired: "期限切れ" doYouAgree: "同意しますか?" beSureToReadThisAsItIsImportant: "重要ですので必ずお読みください。" iHaveReadXCarefullyAndAgree: "「{x}」の内容をよく読み、同意します。" +dialog: "ダイアログ" _announcement: forExistingUsers: "既存ユーザーのみ" diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/list.ts b/packages/backend/src/server/api/endpoints/admin/announcements/list.ts index 882f1ba7fe..24709843b6 100644 --- a/packages/backend/src/server/api/endpoints/admin/announcements/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/announcements/list.ts @@ -111,6 +111,8 @@ export default class extends Endpoint { display: announcement.display, isActive: announcement.isActive, forExistingUsers: announcement.forExistingUsers, + needConfirmationToRead: announcement.needConfirmationToRead, + userId: announcement.userId, reads: reads.get(announcement)!, })); }); diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index 944881aba5..058cb4144d 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -83,7 +83,7 @@ export async function mainBoot() { } }); - for (const announcement of $i.announcements.filter(x => x.display === 'dialog')) { + for (const announcement of ($i.unreadAnnouncements ?? []).filter(x => x.display === 'dialog')) { popup(defineAsyncComponent(() => import('@/components/MkAnnouncementDialog.vue')), { announcement, }, {}, 'closed'); diff --git a/packages/frontend/src/pages/admin/announcements.vue b/packages/frontend/src/pages/admin/announcements.vue index 5863b237fa..cf052f4143 100644 --- a/packages/frontend/src/pages/admin/announcements.vue +++ b/packages/frontend/src/pages/admin/announcements.vue @@ -19,6 +19,11 @@ SPDX-License-Identifier: AGPL-3.0-only + + + + + {{ i18n.ts._announcement.forExistingUsers }} @@ -46,6 +51,8 @@ import XHeader from './_header_.vue'; import MkButton from '@/components/MkButton.vue'; import MkInput from '@/components/MkInput.vue'; import MkTextarea from '@/components/MkTextarea.vue'; +import MkSwitch from '@/components/MkSwitch.vue'; +import MkRadios from '@/components/MkRadios.vue'; import * as os from '@/os'; import { i18n } from '@/i18n'; import { definePageMetadata } from '@/scripts/page-metadata'; diff --git a/packages/misskey-js/src/entities.ts b/packages/misskey-js/src/entities.ts index b4e98f8c64..50369867b9 100644 --- a/packages/misskey-js/src/entities.ts +++ b/packages/misskey-js/src/entities.ts @@ -104,7 +104,7 @@ export type MeDetailed = UserDetailed & { noCrawle: boolean; receiveAnnouncementEmail: boolean; usePasswordLessLogin: boolean; - announcements: Announcement[]; + unreadAnnouncements: Announcement[]; [other: string]: any; };