mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-25 15:09:29 +00:00
* Only display web push notifications after API call (fixes #7902) * Decode then truncate instead of truncating then decoding in webpush serializer
This commit is contained in:
parent
f9b23a5d62
commit
7786e1357b
|
@ -80,15 +80,7 @@ const handlePush = (event) => {
|
||||||
|
|
||||||
// Placeholder until more information can be loaded
|
// Placeholder until more information can be loaded
|
||||||
event.waitUntil(
|
event.waitUntil(
|
||||||
notify({
|
fetchFromApi(`/api/v1/notifications/${notification_id}`, 'get', access_token).then(notification => {
|
||||||
title,
|
|
||||||
body,
|
|
||||||
icon,
|
|
||||||
tag: notification_id,
|
|
||||||
timestamp: new Date(),
|
|
||||||
badge: '/badge.png',
|
|
||||||
data: { access_token, preferred_locale, url: '/web/notifications' },
|
|
||||||
}).then(() => fetchFromApi(`/api/v1/notifications/${notification_id}`, 'get', access_token)).then(notification => {
|
|
||||||
const options = {};
|
const options = {};
|
||||||
|
|
||||||
options.title = formatMessage(`notification.${notification.type}`, preferred_locale, { name: notification.account.display_name.length > 0 ? notification.account.display_name : notification.account.username });
|
options.title = formatMessage(`notification.${notification.type}`, preferred_locale, { name: notification.account.display_name.length > 0 ? notification.account.display_name : notification.account.username });
|
||||||
|
@ -112,6 +104,16 @@ const handlePush = (event) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
return notify(options);
|
return notify(options);
|
||||||
|
}).catch(() => {
|
||||||
|
return notify({
|
||||||
|
title,
|
||||||
|
body,
|
||||||
|
icon,
|
||||||
|
tag: notification_id,
|
||||||
|
timestamp: new Date(),
|
||||||
|
badge: '/badge.png',
|
||||||
|
data: { access_token, preferred_locale, url: '/web/notifications' },
|
||||||
|
});
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -33,7 +33,7 @@ class Web::NotificationSerializer < ActiveModel::Serializer
|
||||||
end
|
end
|
||||||
|
|
||||||
def body
|
def body
|
||||||
str = truncate(strip_tags(object.target_status&.spoiler_text&.presence || object.target_status&.text || object.from_account.note), length: 140)
|
str = strip_tags(object.target_status&.spoiler_text&.presence || object.target_status&.text || object.from_account.note)
|
||||||
HTMLEntities.new.decode(str.to_str) # Do not encode entities, since this value will not be used in HTML
|
truncate(HTMLEntities.new.decode(str.to_str), length: 140) # Do not encode entities, since this value will not be used in HTML
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue