enhance(backend): 個人宛のお知らせはわかったを押すとアーカイブするように (#14762)
* enhance(backend): 個人宛のお知らせはわかったを押すとアーカイブするように
* Update Changelog
* enhance(frontend): アーカイブ済みのものを読み込めるように
* Update Changelog
* fix changelog
* 🎨
This commit is contained in:
parent
521d92014d
commit
8b7290d6b0
|
@ -9,10 +9,12 @@
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
- Enhance: l10nの更新
|
- Enhance: l10nの更新
|
||||||
|
- Enhance: アーカイブした個人宛のお知らせを表示・編集できるように
|
||||||
- Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正
|
- Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
- Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと移行するように ( #13437 )
|
- Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと移行するように ( #13437 )
|
||||||
|
- Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように
|
||||||
- Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正
|
- Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正
|
||||||
- Fix: RBT有効時、リノートのリアクションが反映されない問題を修正
|
- Fix: RBT有効時、リノートのリアクションが反映されない問題を修正
|
||||||
|
|
||||||
|
|
|
@ -209,6 +209,13 @@ export class AnnouncementService {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const announcement = await this.announcementsRepository.findOneBy({ id: announcementId });
|
||||||
|
if (announcement != null && announcement.userId === user.id) {
|
||||||
|
await this.announcementsRepository.update(announcementId, {
|
||||||
|
isActive: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if ((await this.getUnreadAnnouncements(user)).length === 0) {
|
if ((await this.getUnreadAnnouncements(user)).length === 0) {
|
||||||
this.globalEventService.publishMainStream(user.id, 'readAllAnnouncements');
|
this.globalEventService.publishMainStream(user.id, 'readAllAnnouncements');
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,6 +153,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div v-else-if="tab === 'announcements'" class="_gaps">
|
<div v-else-if="tab === 'announcements'" class="_gaps">
|
||||||
<MkButton primary rounded @click="createAnnouncement"><i class="ti ti-plus"></i> {{ i18n.ts.new }}</MkButton>
|
<MkButton primary rounded @click="createAnnouncement"><i class="ti ti-plus"></i> {{ i18n.ts.new }}</MkButton>
|
||||||
|
|
||||||
|
<MkSelect v-model="announcementsStatus">
|
||||||
|
<template #label>{{ i18n.ts.filter }}</template>
|
||||||
|
<option value="active">{{ i18n.ts.active }}</option>
|
||||||
|
<option value="archived">{{ i18n.ts.archived }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
|
||||||
<MkPagination :pagination="announcementsPagination">
|
<MkPagination :pagination="announcementsPagination">
|
||||||
<template #default="{ items }">
|
<template #default="{ items }">
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
|
@ -254,11 +260,15 @@ const filesPagination = {
|
||||||
userId: props.userId,
|
userId: props.userId,
|
||||||
})),
|
})),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const announcementsStatus = ref<'active' | 'archived'>('active');
|
||||||
|
|
||||||
const announcementsPagination = {
|
const announcementsPagination = {
|
||||||
endpoint: 'admin/announcements/list' as const,
|
endpoint: 'admin/announcements/list' as const,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
params: computed(() => ({
|
params: computed(() => ({
|
||||||
userId: props.userId,
|
userId: props.userId,
|
||||||
|
status: announcementsStatus.value,
|
||||||
})),
|
})),
|
||||||
};
|
};
|
||||||
const expandedRoles = ref([]);
|
const expandedRoles = ref([]);
|
||||||
|
|
Loading…
Reference in a new issue