Commit Graph

4219 Commits

Author SHA1 Message Date
Mike Dalessio 3e54b7e655 backups: sweep them into "/backups" if it exists
and delete any backups older than our data retention policy

ref: https://3.basecamp.com/2914079/buckets/37331921/todos/9175385847
2025-10-14 16:07:49 -04:00
Jason Zimdars a0520d34fc Merge pull request #1306 from basecamp/fix-postpones-copy
"Postpones" -> "Closes in"
2025-10-14 12:08:32 -05:00
Jason Zimdars 040c8a92c2 "Postpones" -> "Closes in" 2025-10-14 12:05:21 -05:00
Jorge Manrubia 690ba7e655 Merge pull request #1303 from basecamp/card-broadcasts
Improve page refreshes
2025-10-14 15:43:12 +02:00
Jorge Manrubia b177f92ec1 Prevent view transition animations on page refreshes
View transitions don't play great with page refreshes as they can make those
very noticeable
2025-10-14 15:38:35 +02:00
Jason Zimdars 99d7f62dbc Merge pull request #1299 from basecamp/order-stream-by-activity
Activity bumps cards to the top
2025-10-14 08:14:42 -05:00
Jorge Manrubia 956faaa67d More fine-grained approach to listen for broadcasted refresh signals
Only listen for collections actually involved in the view
2025-10-14 11:10:49 +02:00
Jorge Manrubia 6d434ec467 Reuse existing cache invalidation logic that replaced this helper 2025-10-14 11:02:15 +02:00
Jorge Manrubia d2838fc3d8 Show completed cards when filtering cards by creator 2025-10-14 10:35:18 +02:00
Jason Zimdars 940db09063 Refactor to remove workflows styles 2025-10-13 18:06:14 -05:00
Jason Zimdars 9fb583e21c Display column when viewing cards in a grid (filtering) 2025-10-13 18:06:14 -05:00
Jason Zimdars 109822d57a Dial back title size on perma 2025-10-13 18:06:14 -05:00
Jason Zimdars 1bb3b50fe6 Add bubble when The Stream has bubbled cards 2025-10-13 18:06:14 -05:00
Jason Zimdars 5256c2fa86 This got too wide in the collapsed state 2025-10-13 18:06:14 -05:00
Jason Zimdars 8d82a1557b Allow selecting default color
- Adjust swatch layout to be more resilliant and space efficient
- Select text on focus
- Update placeholder
2025-10-13 18:06:14 -05:00
Jason Zimdars 03dcfe8964 Style 2025-10-13 18:04:12 -05:00
Jason Zimdars 679b4d2c94 Focus filter input with a hotkey, adjust sizing 2025-10-13 18:04:01 -05:00
Jason Zimdars b49275508d esc clears filters 2025-10-13 18:03:42 -05:00
Jason Zimdars 94b5b6fc9e Activity bumps cards to the top of triaged columns, too 2025-10-13 15:51:35 -05:00
Jason Zimdars fb865effac Activity bumps cards to the top of the stream 2025-10-13 15:39:14 -05:00
Mike Dalessio 63458ceb87 Fix SQLiteBackupsJob to work with AR::Tenanted v0.5.0
ref: https://github.com/basecamp/activerecord-tenanted/pull/215
2025-10-13 08:47:16 -04:00
Andy Smith 424a7795a9 Hide column list when creating a new card 2025-10-10 16:53:34 -05:00
Andy Smith cafb17d21f Tray toggle height should match card size 2025-10-10 16:38:38 -05:00
Andy Smith fe842723b6 Nevermind about the default reason :) 2025-10-10 15:07:17 -05:00
Andy Smith 5ff50fd352 Change default reason from Completed to Done 2025-10-10 15:04:47 -05:00
Andy Smith 81ce61aa9e Match the column name in workflows 2025-10-10 14:56:25 -05:00
Andy Smith 8085509cfd Use stable scrollbar gutters for the Fizzy menu 2025-10-10 13:22:06 -05:00
Mike Dalessio ec119b774a Remove the caching around Identity-related fragments
The Identity table read should be OK given the menu is etagged
and the untenanted page should be a rarity.
2025-10-10 11:53:36 -04:00
Mike Dalessio b7abf33c29 Bump identity cache fragments 2025-10-10 11:08:39 -04:00
Mike Dalessio 04be825609 Fix identities for existing sessions 2025-10-10 10:58:30 -04:00
Mike Dalessio 3399e45130 Introduce an "Identity" model to ease login
- New untenanted Identity and Membership models
- New `identity_token` cookie with path "/" holds state across tenants

We're not sure whether the untenanted database will be sqlite or
MySQL, and so I've been careful to minimize

- database reads, placing them behind etags and caching
- database writes, only writing when a new Session is created (login)

Note that we track two things in the identity_token cookie: a signed
id, and the updated_at for the underlying Identity object. This allows
us to effectively cache on the Identity without having to hit the
database, by using an Identity::Mock object that is compatible with
etag and cache methods.

The new integration test shows the desired user-facing behavior, which
is to make it easy to login without a tenanted URL and to jump between
tenants.

- the untenanted "login_help" page shows all linked memberships
- the jump menu shows all linked memberships (except the current)

Also introduced a utility script to populate existing employee
Identities, grouping accounts by email address.
2025-10-10 10:12:25 -04:00
Andy Smith 9ead1d82ac Merge branch 'main' into public-description-lists
* main: (21 commits)
  Ruby 3.4.7 (#1274)
  bin/setup: enpurple step headings
  bin/setup: ensure PATH is prepared after a new Ruby is installed
  Drop defunct bin/bundle that interferes with Bundler's own version management
  bin/setup: use Bash so we can bootstrap Ruby (#1273)
  Don't try to wrap with a download link, every file already has one in the caption
  bundle lock --normalize-platforms
  Show column title on public collections
  Docker: explicit libssl dep
  Ruby 3.4.6 (#1272)
  Check the selected color
  Style
  Add column color to cache keys
  Make the edit form the same dimensions as the add form
  Don't let the column button effect apply to buttons in the picker
  Set and change column colors
  Prom metrics in dev (#1269)
  Cleanup prototyping
  Properly scroll and center content
  Sorta working x-scroll
  ...
2025-10-09 16:08:16 -05:00
Jason Zimdars 094c2c056b Don't try to wrap with a download link, every file already has one in the caption 2025-10-08 21:54:25 -05:00
Jason Zimdars 8c3f0c66b7 Show column title on public collections 2025-10-08 17:55:35 -05:00
Jason Zimdars 4bc304f762 Check the selected color 2025-10-08 17:37:10 -05:00
Jason Zimdars 3390cd95af Style 2025-10-08 17:11:42 -05:00
Jason Zimdars fcba8b6acb Add column color to cache keys
So cards change colors when you change the column color
2025-10-08 17:08:32 -05:00
Andy Smith 24eaf9ff1f Make lists in public description less weird 2025-10-08 16:52:22 -05:00
Jason Zimdars 7d8564996f Make the edit form the same dimensions as the add form 2025-10-08 16:49:16 -05:00
Jason Zimdars 7fd8cb2297 Don't let the column button effect apply to buttons in the picker 2025-10-08 16:48:44 -05:00
Jason Zimdars d7cf5c9348 Set and change column colors 2025-10-08 16:47:36 -05:00
Andy Smith 4638237889 Cleanup prototyping 2025-10-08 14:45:02 -05:00
Andy Smith 64175f040a Properly scroll and center content 2025-10-08 14:34:56 -05:00
Andy Smith 86b458bad0 Sorta working x-scroll 2025-10-08 13:54:24 -05:00
Andy Smith a701cf4324 WIP 2025-10-08 12:59:08 -05:00
Andy Smith c87dce0e7f Add gap 2025-10-08 10:57:07 -05:00
Jorge Manrubia 245823ad1c Don't cache the whole stream column
It can result in serving the wrong watch button, causing trouble like https://fizzy.37signals.com/5986089/cards/2157

The list of cards is already cached.
2025-10-08 12:18:31 +02:00
Jorge Manrubia 509464778f Format 2025-10-08 11:21:49 +02:00
Jason Zimdars 6f73c6a729 Fix squashed users lists
Regressed in 9b1cd84f96 cc: @andyra
2025-10-07 20:27:55 -05:00
Andy Smith 42aa213312 Remove aside and toolbar role from perma actions 2025-10-07 10:48:05 -05:00