* 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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user