mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-08 23:33:09 +02:00
delete pollVote notification
This commit is contained in:
parent
49f3090edd
commit
2e2ed1385f
8 changed files with 37 additions and 72 deletions
|
@ -30,6 +30,7 @@ You should also include the user name that made the change.
|
||||||
|
|
||||||
#### For users
|
#### For users
|
||||||
- ノートのウォッチ機能が削除されました
|
- ノートのウォッチ機能が削除されました
|
||||||
|
- アンケートに投票された際に通知が作成されなくなりました
|
||||||
- 新たに動的なPagesを作ることはできなくなりました
|
- 新たに動的なPagesを作ることはできなくなりました
|
||||||
- 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。
|
- 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。
|
||||||
- AiScriptが0.12.2にアップデートされました
|
- AiScriptが0.12.2にアップデートされました
|
||||||
|
|
|
@ -1550,7 +1550,6 @@ _notification:
|
||||||
youGotReply: "{name}からのリプライ"
|
youGotReply: "{name}からのリプライ"
|
||||||
youGotQuote: "{name}による引用"
|
youGotQuote: "{name}による引用"
|
||||||
youRenoted: "{name}がRenoteしました"
|
youRenoted: "{name}がRenoteしました"
|
||||||
youGotPoll: "{name}が投票しました"
|
|
||||||
youGotMessagingMessageFromUser: "{name}からのチャットがあります"
|
youGotMessagingMessageFromUser: "{name}からのチャットがあります"
|
||||||
youGotMessagingMessageFromGroup: "{name}のチャットがあります"
|
youGotMessagingMessageFromGroup: "{name}のチャットがあります"
|
||||||
youWereFollowed: "フォローされました"
|
youWereFollowed: "フォローされました"
|
||||||
|
@ -1569,7 +1568,6 @@ _notification:
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
quote: "引用"
|
quote: "引用"
|
||||||
reaction: "リアクション"
|
reaction: "リアクション"
|
||||||
pollVote: "アンケートに投票された"
|
|
||||||
pollEnded: "アンケートが終了"
|
pollEnded: "アンケートが終了"
|
||||||
receiveFollowRequest: "フォロー申請を受け取った"
|
receiveFollowRequest: "フォロー申請を受け取った"
|
||||||
followRequestAccepted: "フォローが受理された"
|
followRequestAccepted: "フォローが受理された"
|
||||||
|
|
|
@ -92,13 +92,6 @@ export class PollService {
|
||||||
choice: choice,
|
choice: choice,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Notify
|
|
||||||
this.createNotificationService.createNotification(note.userId, 'pollVote', {
|
|
||||||
notifierId: user.id,
|
|
||||||
noteId: note.id,
|
|
||||||
choice: choice,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
|
|
|
@ -98,7 +98,7 @@ export class NotificationEntityService implements OnModuleInit {
|
||||||
}),
|
}),
|
||||||
reaction: notification.reaction,
|
reaction: notification.reaction,
|
||||||
} : {}),
|
} : {}),
|
||||||
...(notification.type === 'pollVote' ? {
|
...(notification.type === 'pollVote' ? { // TODO: そのうち消す
|
||||||
note: this.noteEntityService.pack(notification.note ?? notification.noteId!, { id: notification.notifieeId }, {
|
note: this.noteEntityService.pack(notification.note ?? notification.noteId!, { id: notification.notifieeId }, {
|
||||||
detail: true,
|
detail: true,
|
||||||
_hint_: options._hintForEachNotes_,
|
_hint_: options._hintForEachNotes_,
|
||||||
|
|
|
@ -55,11 +55,11 @@ export class Notification {
|
||||||
* 通知の種類。
|
* 通知の種類。
|
||||||
* follow - フォローされた
|
* follow - フォローされた
|
||||||
* mention - 投稿で自分が言及された
|
* mention - 投稿で自分が言及された
|
||||||
* reply - (自分または自分がWatchしている)投稿が返信された
|
* reply - 投稿に返信された
|
||||||
* renote - (自分または自分がWatchしている)投稿がRenoteされた
|
* renote - 投稿がRenoteされた
|
||||||
* quote - (自分または自分がWatchしている)投稿が引用Renoteされた
|
* quote - 投稿が引用Renoteされた
|
||||||
* reaction - (自分または自分がWatchしている)投稿にリアクションされた
|
* reaction - 投稿にリアクションされた
|
||||||
* pollVote - (自分または自分がWatchしている)投稿のアンケートに投票された
|
* pollVote - 投稿のアンケートに投票された (廃止)
|
||||||
* pollEnded - 自分のアンケートもしくは自分が投票したアンケートが終了した
|
* pollEnded - 自分のアンケートもしくは自分が投票したアンケートが終了した
|
||||||
* receiveFollowRequest - フォローリクエストされた
|
* receiveFollowRequest - フォローリクエストされた
|
||||||
* followRequestAccepted - 自分の送ったフォローリクエストが承認された
|
* followRequestAccepted - 自分の送ったフォローリクエストが承認された
|
||||||
|
|
|
@ -162,13 +162,6 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
userId: me.id,
|
userId: me.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Notify
|
|
||||||
this.createNotificationService.createNotification(note.userId, 'pollVote', {
|
|
||||||
notifierId: me.id,
|
|
||||||
noteId: note.id,
|
|
||||||
choice: ps.choice,
|
|
||||||
});
|
|
||||||
|
|
||||||
// リモート投票の場合リプライ送信
|
// リモート投票の場合リプライ送信
|
||||||
if (note.userHost != null) {
|
if (note.userHost != null) {
|
||||||
const pollOwner = await this.usersRepository.findOneByOrFail({ id: note.userId }) as IRemoteUser;
|
const pollOwner = await this.usersRepository.findOneByOrFail({ id: note.userId }) as IRemoteUser;
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
<i v-else-if="notification.type === 'reply'" class="ti ti-arrow-back-up"></i>
|
<i v-else-if="notification.type === 'reply'" class="ti ti-arrow-back-up"></i>
|
||||||
<i v-else-if="notification.type === 'mention'" class="ti ti-at"></i>
|
<i v-else-if="notification.type === 'mention'" class="ti ti-at"></i>
|
||||||
<i v-else-if="notification.type === 'quote'" class="ti ti-quote"></i>
|
<i v-else-if="notification.type === 'quote'" class="ti ti-quote"></i>
|
||||||
<i v-else-if="notification.type === 'pollVote'" class="ti ti-chart-arrows"></i>
|
|
||||||
<i v-else-if="notification.type === 'pollEnded'" class="ti ti-chart-arrows"></i>
|
<i v-else-if="notification.type === 'pollEnded'" class="ti ti-chart-arrows"></i>
|
||||||
<!-- notification.reaction が null になることはまずないが、ここでoptional chaining使うと一部ブラウザで刺さるので念の為 -->
|
<!-- notification.reaction が null になることはまずないが、ここでoptional chaining使うと一部ブラウザで刺さるので念の為 -->
|
||||||
<XReactionIcon
|
<XReactionIcon
|
||||||
|
@ -51,11 +50,6 @@
|
||||||
<MkA v-if="notification.type === 'quote'" class="text" :to="notePage(notification.note)" :title="getNoteSummary(notification.note)">
|
<MkA v-if="notification.type === 'quote'" class="text" :to="notePage(notification.note)" :title="getNoteSummary(notification.note)">
|
||||||
<Mfm :text="getNoteSummary(notification.note)" :plain="true" :nowrap="!full"/>
|
<Mfm :text="getNoteSummary(notification.note)" :plain="true" :nowrap="!full"/>
|
||||||
</MkA>
|
</MkA>
|
||||||
<MkA v-if="notification.type === 'pollVote'" class="text" :to="notePage(notification.note)" :title="getNoteSummary(notification.note)">
|
|
||||||
<i class="ti ti-quote"></i>
|
|
||||||
<Mfm :text="getNoteSummary(notification.note)" :plain="true" :nowrap="!full"/>
|
|
||||||
<i class="ti ti-quote"></i>
|
|
||||||
</MkA>
|
|
||||||
<MkA v-if="notification.type === 'pollEnded'" class="text" :to="notePage(notification.note)" :title="getNoteSummary(notification.note)">
|
<MkA v-if="notification.type === 'pollEnded'" class="text" :to="notePage(notification.note)" :title="getNoteSummary(notification.note)">
|
||||||
<i class="ti ti-quote"></i>
|
<i class="ti ti-quote"></i>
|
||||||
<Mfm :text="getNoteSummary(notification.note)" :plain="true" :nowrap="!full"/>
|
<Mfm :text="getNoteSummary(notification.note)" :plain="true" :nowrap="!full"/>
|
||||||
|
@ -239,12 +233,6 @@ useTooltip(reactionRef, (showing) => {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.pollVote {
|
|
||||||
padding: 3px;
|
|
||||||
background: #88a6b7;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.pollEnded {
|
&.pollEnded {
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
background: #88a6b7;
|
background: #88a6b7;
|
||||||
|
|
|
@ -51,8 +51,8 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
actions: userDetail.isFollowing ? [] : [
|
actions: userDetail.isFollowing ? [] : [
|
||||||
{
|
{
|
||||||
action: 'follow',
|
action: 'follow',
|
||||||
title: t('_notification._actions.followBack')
|
title: t('_notification._actions.followBack'),
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
@ -66,8 +66,8 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
actions: [
|
actions: [
|
||||||
{
|
{
|
||||||
action: 'reply',
|
action: 'reply',
|
||||||
title: t('_notification._actions.reply')
|
title: t('_notification._actions.reply'),
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
@ -80,8 +80,8 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
actions: [
|
actions: [
|
||||||
{
|
{
|
||||||
action: 'reply',
|
action: 'reply',
|
||||||
title: t('_notification._actions.reply')
|
title: t('_notification._actions.reply'),
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
@ -94,8 +94,8 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
actions: [
|
actions: [
|
||||||
{
|
{
|
||||||
action: 'showUser',
|
action: 'showUser',
|
||||||
title: getUserName(data.body.user)
|
title: getUserName(data.body.user),
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
@ -108,14 +108,14 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
actions: [
|
actions: [
|
||||||
{
|
{
|
||||||
action: 'reply',
|
action: 'reply',
|
||||||
title: t('_notification._actions.reply')
|
title: t('_notification._actions.reply'),
|
||||||
},
|
},
|
||||||
...((data.body.note.visibility === 'public' || data.body.note.visibility === 'home') ? [
|
...((data.body.note.visibility === 'public' || data.body.note.visibility === 'home') ? [
|
||||||
{
|
{
|
||||||
action: 'renote',
|
action: 'renote',
|
||||||
title: t('_notification._actions.renote')
|
title: t('_notification._actions.renote'),
|
||||||
}
|
},
|
||||||
] : [])
|
] : []),
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
const dummy = `${encodeURIComponent(`${u.host}${u.pathname}`)}.png`;
|
const dummy = `${encodeURIComponent(`${u.host}${u.pathname}`)}.png`;
|
||||||
badge = `${origin}/proxy/${dummy}?${url.query({
|
badge = `${origin}/proxy/${dummy}?${url.query({
|
||||||
url: u.href,
|
url: u.href,
|
||||||
badge: '1'
|
badge: '1',
|
||||||
})}`;
|
})}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,20 +162,12 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
actions: [
|
actions: [
|
||||||
{
|
{
|
||||||
action: 'showUser',
|
action: 'showUser',
|
||||||
title: getUserName(data.body.user)
|
title: getUserName(data.body.user),
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'pollVote':
|
|
||||||
return [t('_notification.youGotPoll', { name: getUserName(data.body.user) }), {
|
|
||||||
body: data.body.note.text || '',
|
|
||||||
icon: data.body.user.avatarUrl,
|
|
||||||
badge: iconUrl('poll-h'),
|
|
||||||
data,
|
|
||||||
}];
|
|
||||||
|
|
||||||
case 'pollEnded':
|
case 'pollEnded':
|
||||||
return [t('_notification.pollEnded'), {
|
return [t('_notification.pollEnded'), {
|
||||||
body: data.body.note.text || '',
|
body: data.body.note.text || '',
|
||||||
|
@ -192,12 +184,12 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
actions: [
|
actions: [
|
||||||
{
|
{
|
||||||
action: 'accept',
|
action: 'accept',
|
||||||
title: t('accept')
|
title: t('accept'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
action: 'reject',
|
action: 'reject',
|
||||||
title: t('reject')
|
title: t('reject'),
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
@ -217,21 +209,21 @@ async function composeNotification<K extends keyof pushNotificationDataMap>(data
|
||||||
actions: [
|
actions: [
|
||||||
{
|
{
|
||||||
action: 'accept',
|
action: 'accept',
|
||||||
title: t('accept')
|
title: t('accept'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
action: 'reject',
|
action: 'reject',
|
||||||
title: t('reject')
|
title: t('reject'),
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
|
|
||||||
case 'app':
|
case 'app':
|
||||||
return [data.body.header || data.body.body, {
|
return [data.body.header || data.body.body, {
|
||||||
body: data.body.header && data.body.body,
|
body: data.body.header && data.body.body,
|
||||||
icon: data.body.icon,
|
icon: data.body.icon,
|
||||||
data
|
data,
|
||||||
}];
|
}];
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
|
@ -279,7 +271,7 @@ export async function createEmptyNotification() {
|
||||||
silent: true,
|
silent: true,
|
||||||
badge: iconUrl('null'),
|
badge: iconUrl('null'),
|
||||||
tag: 'read_notification',
|
tag: 'read_notification',
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
res();
|
res();
|
||||||
|
@ -288,7 +280,7 @@ export async function createEmptyNotification() {
|
||||||
for (const n of
|
for (const n of
|
||||||
[
|
[
|
||||||
...(await self.registration.getNotifications({ tag: 'user_visible_auto_notification' })),
|
...(await self.registration.getNotifications({ tag: 'user_visible_auto_notification' })),
|
||||||
...(await self.registration.getNotifications({ tag: 'read_notification' }))
|
...(await self.registration.getNotifications({ tag: 'read_notification' })),
|
||||||
]
|
]
|
||||||
) {
|
) {
|
||||||
n.close();
|
n.close();
|
||||||
|
|
Loading…
Reference in a new issue