feat: 個人宛てお知らせ機能 (#107)

* feat: 個人宛てお知らせ機能

* Remove unused import

* Update packages/backend/src/server/api/endpoints/admin/announcements/create.ts

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>

* Update packages/frontend/src/pages/announcements.vue

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>

* Restore breakline

* 一般向けAPIにはuserオブジェクトを提供しない

* fix

* Fix

* Update packages/misskey-js/src/entities.ts

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>

* Fix

* Update misskey-js.api.md

* Fix lint

* 他のテーブルに合わせて character varying(32) にした

* count クエリを1つにまとめた

* user を pack するようにした

* いろいろ修正

* 個人宛てのお知らせの表示を改善

* Update misskey-js.api.md

* Merge migration scripts

* Fix

* Update packages/backend/migration/1688647797135-userannouncement.js

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>

* Update packages/backend/src/models/entities/Announcement.ts

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Fix

* Update migration script

---------

Co-authored-by: CyberRex <hspwinx86@gmail.com>
Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
This commit is contained in:
riku6460 2023-07-24 13:08:39 +09:00 committed by GitHub
parent 6d3f64f606
commit 7b1efd6b97
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 374 additions and 18 deletions

View file

@ -3,8 +3,8 @@
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :contentMax="800">
<MkPagination v-slot="{items}" :pagination="pagination" class="ruryvtyk _gaps_m">
<section v-for="(announcement, i) in items" :key="announcement.id" class="announcement _panel">
<div class="header"><span v-if="$i && !announcement.isRead">🆕 </span>{{ announcement.title }}</div>
<section v-for="(announcement, i) in items" :key="announcement.id" :class="{ announcement: true, _panel: true, private: announcement.isPrivate }">
<div class="header"><span v-if="$i && !announcement.isRead"><span class="ti ti-speakerphone"></span></span><Mfm :text="announcement.title"/></div>
<div class="content">
<Mfm :text="announcement.text"/>
<img v-if="announcement.imageUrl" :src="announcement.imageUrl"/>
@ -53,6 +53,11 @@ definePageMetadata({
<style lang="scss" scoped>
.ruryvtyk {
> .private {
border-left: 4px solid olivedrab;
}
> .announcement {
padding: 16px;
@ -74,4 +79,16 @@ definePageMetadata({
}
}
}
@keyframes fade {
0% {
opacity: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
}
}
</style>