Commit Graph

40 Commits

Author SHA1 Message Date
Alp Keser a48c88cb5d Stabilize notifications tray test ordering via fixture updated_at timestamps 2026-02-16 18:33:32 +03:00
Alp Keser bcc0f93bb9 Preload notification card associations used by JSON responses 2026-02-16 17:58:33 +03:00
Alp Keser abcbb74ac8 Make notification ordering deterministic. 2026-02-12 15:32:10 +03:00
Stanko K.R. 36ee253a1a Stack notifications everywhere
We had client-side notification stacking in the tray since launch, but now we want to stack notifications in the notifications page, in API responses and in email bundles.
2026-02-12 10:29:50 +01:00
Mike Dalessio 79c9ea2ce1 Remove a bunch of N+1s
related to notification and comment rendering
2025-11-27 11:08:45 -05:00
Jorge Manrubia f0851988a2 Revert tentatively
Kevin got a bunch of dups, need to look into this more calmly https://3.basecamp.com/2914079/buckets/37331921/chats/9301300227
2025-11-23 10:18:39 +01:00
Jorge Manrubia 41905068c0 Bundle after notification is committed to mitigate reading stale data when bundling
Attempt to deal with overlapping bundles being created by notifications created immediately
one after the other.
2025-11-21 14:34:05 +01:00
Stanko K.R. 0b8c51c2e9 Preload cards for columns 2025-11-17 16:16:19 +01:00
Donal McBreen fc56ad9d7c Combine uuid-old and uuid branch changes
- Switch to binary 16 for UUID keys
- Remove AccountScopedRecord base class, all model use binary uuids now
- Fix the search sql to serialize uuids properly
- Patch the MySQL schema dumper to output binary lengths
2025-11-17 09:12:34 -05:00
Mike Dalessio e4011ef211 Update primary keys on customer data to UUIDs
- schema changes to primary and foreign keys
- fixture changes
- customer data models subclass AccountScopedRecord
- import script updated
2025-11-17 09:12:30 -05:00
Mike Dalessio b5197fe6d3 Fix notifications to use the user's account 2025-11-17 09:11:57 -05:00
Stanko K.R. ba3f6b188e Add account_id to everything 2025-11-17 09:11:42 -05:00
Jorge Manrubia 58c525e5a6 Broadcast notifications that are deleted
To prevent 404s when someone doesn't refresh the page
2025-09-10 09:50:22 +02:00
Jorge Manrubia 960f074b3f Don't bundle new notifications is bundling is disabled 2025-08-28 12:53:19 +02:00
Jorge Manrubia cfafc54a81 Deliver emails for bundled notifications (initial WIP) 2025-08-26 13:22:22 +02:00
Jason Zimdars 4276aad5a7 Mark notifications as unread from the index 2025-07-23 17:01:59 -05:00
Jason Zimdars 0afc738d19 Whitespace 2025-07-21 20:11:03 -05:00
Jason Zimdars 38d13f78a3 Add pusher models and job 2025-07-15 13:16:18 -05:00
Mike Dalessio 53ebb509d8 Broadcast when all notifications are cleared
Then make the turbo response to clearing all notifications a no-op.

This has the bonus side effect of properly clearing the notifications
try on all open pages.

ref: https://fizzy.37signals.com/5986089/collections/2/cards/796
2025-07-03 12:05:41 -04:00
Mike Dalessio ecbe040e3e Implement Notification#card
Models now know how to find their cards, rather than trying to
implement this logic in a view helper.
2025-05-21 16:30:18 -04:00
Mike Dalessio 822ec5b5bb Broadcast notification readings
so that the notification tray will be more consistent across open
browser tabs.
2025-05-08 10:40:10 -04:00
Jorge Manrubia f258b05b23 Delegate target to the notifiable objects 2025-04-23 16:19:50 +02:00
Jorge Manrubia 5dac14ab50 Move logic to the model 2025-04-23 16:06:20 +02:00
Jorge Manrubia 2eae58725a Remove notifications' resource relationship
Is confusing since "source" already captures the origin of the notifications. It's
needed to interpret things at rendering time, so we can query things as needed there.
2025-04-23 13:52:47 +02:00
Jorge Manrubia 8aa99e34b4 Persist notification's creator
Instead of delegating. With a polymorphic relationship, relying on a certain
attribute implies doing things like aliasing "mentioner" to "creator" or similar.
2025-04-22 13:48:43 +02:00
Jorge Manrubia aa3acfeaa8 Add plain text mentions 2025-04-22 11:26:56 +02:00
David Heinemeier Hansson 2ced8e643d Clarify a bit 2025-04-16 17:01:32 +02:00
David Heinemeier Hansson 2757cd8e62 Dont render inline 2025-04-16 16:49:16 +02:00
David Heinemeier Hansson 4bb9085737 Hide implementation detail of reading 2025-04-16 16:41:22 +02:00
David Heinemeier Hansson 397fc1d2bd Only broadcast creations 2025-04-16 16:21:54 +02:00
Jorge Manrubia 723e6d94f5 Rename bubbles => cards 2025-04-09 14:50:58 +02:00
Kevin McConnell 5d5dc8fb73 Wire up notifications "Mark all as read" button 2025-01-21 14:37:41 +00:00
Kevin McConnell 6706802b89 Add an index view for all notifications 2025-01-16 17:48:38 +00:00
Kevin McConnell ab154f2f35 Generate notification content in a helper 2025-01-14 13:08:12 +00:00
Kevin McConnell c62e800b08 Notifications are all related to a Bubble 2025-01-13 14:21:47 +00:00
Kevin McConnell df1225e58d Style 2025-01-13 14:21:47 +00:00
Kevin McConnell 876083c697 Broadcast new notifications 2025-01-13 14:21:47 +00:00
Kevin McConnell af5ac65116 Make notification target polymorphic 2025-01-13 14:21:47 +00:00
Kevin McConnell 952895ae67 WIP: show notifications in a tray 2025-01-13 14:21:47 +00:00
Kevin McConnell d0ae5b4bdc Add notification model 2025-01-13 14:21:47 +00:00