Commit Graph

683 Commits

Author SHA1 Message Date
Kevin McConnell 321384b573 Replace "editing" param with creating? state 2025-02-11 14:34:39 +00:00
Jason Zimdars 04844504f1 Move to plain checkboxes instead of combobox 2025-02-04 16:51:06 -06:00
Jason Zimdars 92cc2c8121 Just use plain checkboxes
- Style WIP
2025-01-29 21:25:43 -06:00
Kevin McConnell 4c63f88620 Merge pull request #206 from basecamp/latest-activity
Latest activity
2025-01-28 17:43:06 +00:00
Kevin McConnell 13080a5c36 Simplify the methods a bit 2025-01-28 17:27:56 +00:00
Kevin McConnell cc1051c968 Expire upload links after 5 minutes
By default the Active Storage URLs are valid for 5 minutes. We should
avoid caching the responses for longer than that.
2025-01-28 16:13:26 +00:00
Kevin McConnell e93acb0e38 Don't repeatedly mark notifications read 2025-01-28 11:54:11 +00:00
Kevin McConnell c213914af6 Remove conditional caching on bubble
This leads to us showing stale assets after deployments. Removing for
now, until we add a more consistent cache strategy.
2025-01-28 11:34:08 +00:00
Jason Zimdars a847a71a57 Merge branch 'main' into latest-activity
* main:
  Undo weird flash notices
  Redirect to bucket after deleting
  Fix layout issues in Safari
  Should match text
  Add production deploy config
  Add Kamal deploy config
  Remove old deploy config
2025-01-27 17:11:27 -06:00
Jason Zimdars 7364720e42 Redirect to bucket after deleting 2025-01-27 16:55:57 -06:00
Kevin McConnell 1184ea8cf8 Smoosh empty days together 2025-01-27 17:07:46 +00:00
Kevin McConnell 3f3b5f3a61 Only show unique bubble entries in each cluster 2025-01-27 15:41:01 +00:00
Kevin McConnell bfaac4bd44 Render activity directly into requested timezone 2025-01-27 15:41:01 +00:00
Kevin McConnell 94b2c256b9 Set request timezone to match browser 2025-01-27 14:16:15 +00:00
Jason Zimdars 881e1d07fc Merge branch 'main' into latest-activity
* main: (27 commits)
  Leave some space for the tray
  Let's not assume it's a due date
  Avoid overlap
  Let's try without the big drag button, extend beyond the column a touch
  Tighten labels
  Match notification dot
  Spacing
  Add more context
  Avoid leaving the tray open
  This shouldn't be here
  Paginate the read notifications
  Add a test case
  Split up a big view
  Allow filtering by stage
  Send beacon request on disconnect as well
  Wire up notifications "Mark all as read" button
  Add unread dot
  Set state for when there are no new notifications
  Move to right side, smooth transition
  Open tray on click, stub mark-as-read button
  ...
2025-01-24 15:07:17 -06:00
Kevin McConnell 1f3bc1134f Paginate the read notifications 2025-01-24 17:42:36 +00:00
Kevin McConnell 7f96475344 Each cluster of events should have a parent 2025-01-23 17:08:55 +00:00
Kevin McConnell 86cb627120 Include neighbouring events in paginated query
Since we're rendering according to the local timezone, we'll need to
include events that fall before or after the specific date on the
server, as they might get be inside the current day in the client's
timezone. So let's just grab a window of events either side of today,
and then hide anything that falls outside the client's day.
2025-01-22 16:44:30 +00:00
Kevin McConnell 5d5dc8fb73 Wire up notifications "Mark all as read" button 2025-01-21 14:37:41 +00:00
Kevin McConnell 3481d1f93e Show activity per day 2025-01-17 15:33:24 +00:00
Kevin McConnell 6706802b89 Add an index view for all notifications 2025-01-16 17:48:38 +00:00
Kevin McConnell c4f50fa634 Move notifications to tray controller 2025-01-16 17:48:38 +00:00
Jason Zimdars 410cc95396 Stub out basic design 2025-01-15 17:16:59 -06:00
Jose Farias e9a085f848 Simplify filters 2025-01-15 16:27:33 -06:00
Kevin McConnell 782259a678 Events should track published now
Previously when an item was `created`, we'd track the event, update the
summary text, and broadcast the notifications. But now that we have a
draft state, we shold do all of this when it's published instead.
2025-01-15 10:58:00 +00:00
Kevin McConnell cd1e6378d0 Add drafted and published states 2025-01-15 10:58:00 +00:00
Kevin McConnell b8ecfa0125 Replace notifications on read, instead of removing
Previously when a notification was read, we'd remove it from the list.
This will often be fine, but if there were more unread notifications
that hadn't been loaded yet (because there were too many for the initial
page) then the list could become empty when really there are still more
items to show.

So instead of removing the items when they're read, we can reload the
list with the new page of items. This should allow the older
notifications to come into view when necessary.
2025-01-14 14:23:46 +00:00
Kevin McConnell 46989f6ebe Mark notification read when viewing the Bubble 2025-01-13 14:21:47 +00:00
Kevin McConnell fd1789ed58 Mark notifications read when clicked on 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 c84926692e Never show login page to a logged in user 2025-01-13 14:20:42 +00:00
Kevin McConnell 93536c3e41 Don't reload entire page when creating comment 2025-01-07 14:47:31 +00:00
Kevin McConnell 4a4b4113c8 Don't use a new request for every comment 2025-01-07 14:14:12 +00:00
David Heinemeier Hansson 84a07343a4 Use stale_when_importmap_changes 2024-12-20 17:42:14 -08:00
Jason Zimdars 0a6b5571c0 Merge pull request #167 from basecamp/users
Account users
2024-12-19 11:11:41 -06:00
Jose Farias 5b83d0b5b2 Filter#persist! -> Filter#remember 2024-12-18 18:34:47 -06:00
Jose Farias 0d2e4ed604 Merge branch 'main' into house
* main:
  Add hotwire-spark
  Fix for Safari which doesn't support `field-sizing: content`
  Add button and action to delete a bubble
  Indicate draggable element
  Stub draggable collection size divider
  Make close and trash more distinct
2024-12-18 16:27:07 -06:00
Jason Zimdars 66640bbac0 Remove avatars 2024-12-18 16:24:39 -06:00
Jason Zimdars 295d8ce088 Upload user avatar 2024-12-18 14:44:05 -06:00
Jason Zimdars b323cd4e4c Edit user profile 2024-12-18 14:28:06 -06:00
Jason Zimdars 592c88e639 Add session transfer feature 2024-12-18 12:38:53 -06:00
Jason Zimdars b1cdee0022 Add user profile screen 2024-12-18 11:34:18 -06:00
Jason Zimdars bd35da79c3 Add button and action to delete a bubble 2024-12-17 15:58:12 -06:00
Jose Farias fdea6d4248 Merge branch 'main' into house
* main:
  Update test
  Wire up comment deletion
  Whitespace
  Wire up editing comments
  Open the title field for editing after creating a new bubble
2024-12-17 00:34:00 -06:00
Jason Zimdars 33d2d098f1 Wire up comment deletion 2024-12-16 17:46:01 -06:00
Jason Zimdars 4644fe43ee Wire up editing comments 2024-12-16 17:28:27 -06:00
Jason Zimdars 520bead27f Open the title field for editing after creating a new bubble 2024-12-16 16:59:31 -06:00
Jose Farias 326bdc74cf Merge branch 'main' into house
* main: (23 commits)
  Improve the flow for editing bubble titles
  Use path helpers in tests
  Revising access shouldn't do a replace turbo-action
  Split into new tests
  Update this test, too
  Adjust tests to match new behavior
  Reapply "Destroy equivalent filters upon resource removal"
  Revert "Destroy equivalent filters upon resource removal"
  Destroy equivalent filters upon resource removal
  Don't autocomplete
  Rework boosts form so you can enter any integer
  Pull out access_menu_tag
  Punt on removing filters for inaccessible buckets
  Can't see bubbles in buckets you've lost access to
  Users can remove themselves from buckets
  Fix redirect assertion
  Fix redirect assertion
  Submit form when toggling all-access + caching
  Unnecessary parens
  Can't revoke access to all-access bucket
  ...
2024-12-16 13:50:55 -06:00
Jose Farias d13d558a0b Merge branch 'main' into everyone
* main:
  Update this test, too
  Adjust tests to match new behavior
  Don't autocomplete
  Rework boosts form so you can enter any integer
2024-12-16 11:19:36 -06:00
Jason Zimdars 0b28a18c05 Rework boosts form so you can enter any integer 2024-12-13 16:54:11 -06:00