Commit Graph

5266 Commits

Author SHA1 Message Date
Stanko K.R. a7df8260c3 Fix cards getting stuck in edit mode 2025-11-25 15:36:13 +01:00
Stanko K.R. f64a49dcc0 Determine staff members based on flag
This replaces the old system based on email addresses, the aim is to make it more generic and thus appropriate for OSS/self-hosting

See: https://3.basecamp.com/2914079/buckets/37331921/todos/9302705265#__recording_9320051455
2025-11-25 14:09:31 +01:00
Stanko K.R. 4e52f9b9a9 Show tags the card is tagged with first 2025-11-25 11:24:21 +01:00
Stanko Krtalić c8169c1972 Merge pull request #1712 from basecamp/fix-background-image-previews
Fix background images not showing up after upload
2025-11-25 08:15:20 +01:00
Stanko K.R. c11a13dc20 Replace the whole card on update 2025-11-25 08:13:18 +01:00
Jason Zimdars 3e0d2d8b4d Include bottom inset on the modal and footer, too
Makes sure everything moves together on mobile
2025-11-24 21:28:48 -06:00
Jason Zimdars 5215c5ccb9 Attempt to fix expanded search input 2025-11-24 21:24:09 -06:00
Jason Zimdars b45554966f Lose the second close button 2025-11-24 17:48:21 -06:00
Jason Zimdars 0c05694a3c This seems to have caused the unwanted effect of not focusing the field in Mobile Safari
Looks like it regressed in
https://github.com/basecamp/fizzy/commit/250935530f86eb628d6b54ec6b7212dac9e76f8b.
Let's see if we can get focus in Safari without sacrificing select in
other browsers by simply moving the nextFrame() call
2025-11-24 17:48:02 -06:00
Jason Zimdars 74cd88d626 Always display the cancel button, esc isn't obvious 2025-11-24 17:19:01 -06:00
Jason Zimdars cfc61c318d Nothing should cover the bar, trays or search results 2025-11-24 17:18:44 -06:00
Jason Zimdars 789c00b87f Dark theme color isn't black
I *think* we don't need the theme color in the manifest since it doesn't
have dark mode support anyway
2025-11-24 16:37:50 -06:00
Jason Zimdars a1fcabf01e Add env constaints for mobile layout
In theory, this prevents overlapping device elements like the dynamic
island in landscape
2025-11-24 16:33:32 -06:00
Jason Zimdars b93224b45c Smaller on mobile
It really takes up a lot of space in landscape
2025-11-24 16:22:33 -06:00
Jason Zimdars 4e14c0df27 Reasonalbe max heights
Use all the available space above the search/trays footer. On mobile use
the full viewport height
2025-11-24 16:16:09 -06:00
Jason Zimdars ed19e6d494 Remove top orientation (it doesn't work well), make right and left classes exclusive
In certain cases (board picker) both classes would be applied making a
mess
2025-11-24 15:49:42 -06:00
Jason Zimdars 9cc63c6dce This is too fancy, remove it 2025-11-24 15:48:08 -06:00
Jason Zimdars 2f6f4cd3f5 Set reasonable maxes 2025-11-24 15:47:57 -06:00
Jason Zimdars 3a2b347aba Restore bubble to Maybe
Stalled cards in Maybe are often out of view
2025-11-24 15:17:45 -06:00
Mike Dalessio e0aa1d257e Drop User.system and replace with Account#system_user 2025-11-24 13:23:57 -05:00
Jason Zimdars a9da44b575 Merge pull request #1663 from basecamp/not-now-polish
Not now polish
2025-11-24 10:33:25 -06:00
Jason Zimdars dd2b067e98 Add properties for Lexxy's built-in styles
Usually, `<b>`, `<i>`, etc are enough but when you attempt a combo like
bold-italic, Lexxy applies two classes to a single element instead of
rendering tags like in the output
2025-11-24 10:04:12 -06:00
Kevin McConnell bd259f7795 Add optimistic pausing to avoid stale reads
Instead of writer pinning, we'll track the last transaction ID of each
write in the session. Then on each read we'll wait for the replica to
report that this transaction is available.

If it doesn't become available within a reasonable timeout, we'll
proceed anyway, and accept the possibility of a stale read.

The hope here is that most of the time, the replica is caught up in the
time between a write request and the following read request. If it's
not, we now have a little tolerance to wait for it, which hopefully
proves enough to stale reads are not encountered in normal use.

We also disable the writer affinity opt-out mechanism that we had
before, since we will no longer be using writer affinity at the load
balancer.
2025-11-24 13:29:52 +00:00
Stanko K.R. 46d80f2ca2 Serve system user avatar as an asset 2025-11-24 13:16:14 +01:00
Stanko K.R. e85c5736c9 Render system user avatars using redirects 2025-11-24 12:05:32 +01:00
Jason Zimdars 433a19e103 Add an avatar for the System user 2025-11-24 12:04:33 +01:00
Jason Zimdars 0c49d3c2a6 Use "Done" for consistency
Closed is domain language
2025-11-24 12:04:33 +01:00
Jason Zimdars 2f3d602deb No longer used
These are for the old closed section at the bottom of the screen and are
no longer relevant
2025-11-24 12:04:33 +01:00
Jason Zimdars 87c2428d47 Differentiate, even though they share some properties 2025-11-24 12:04:33 +01:00
Jason Zimdars 6af569ddd8 Use move icon here, too 2025-11-24 12:03:34 +01:00
Jason Zimdars 31d3aea3fa More copy edits 2025-11-24 12:03:34 +01:00
Jason Zimdars 86932803e4 Clarify not now move actions copy 2025-11-24 12:03:34 +01:00
Jason Zimdars 5fac18d01f Restore auto-postponed events to the timeline 2025-11-24 12:03:34 +01:00
Mike Dalessio 26ccbf6968 Merge pull request #1695 from basecamp/flavorjones/better-card-edit-form-behavior
Update card buttons dynamically
2025-11-23 23:36:10 -05:00
Mike Dalessio 09e6a15c6e Merge pull request #1696 from basecamp/flavorjones/avoid-overlapping-bundles
Prevent overlapping bundles from being created
2025-11-23 10:20:17 -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
Mike Dalessio db51b616bb Handle notifs created before the current bundle starts_at 2025-11-22 22:38:23 -05:00
Mike Dalessio a29dd89683 Make sure Bundle#ends_at is set before validation
otherwise we risk creating overlapping bundles and not catching it.
2025-11-22 22:19:05 -05:00
Jason Zimdars a66b40ba51 Display this full size on mobile
Just the icon isn't clear enough
2025-11-22 17:59:33 -06:00
Mike Dalessio b05ecb7809 Update card buttons dynamically
User flows when editing a card look like:
- Click "Edit" → the closure buttons are replaced by "Save changes"
- Submit card form → Saves and restores closure buttons
- Press ESC while editing → Cancels and restores closure buttons

Also, renamed for clarity:
- _title.html.erb → _content.html.erb

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 12:14:39 -05:00
Mike Dalessio 4e6a053ff2 Make sure the card edit button targets the turbo frame
Related to 5aaaeab5
2025-11-22 10:15:11 -05:00
Mike Dalessio 4dc28943da Don't let cloudflare cache avatars
The issue here is that anyone else who views my avatar will cause it
to be cached, and then I can't easily bust the cache if I change my
avatar.
2025-11-22 09:48:28 -05:00
Jason Zimdars 805c505f8d Fussy padding tweaks on boosts 2025-11-21 16:48:40 -06:00
Jason Zimdars d3365e4ac2 Typo 2025-11-21 16:37:06 -06:00
Jason Zimdars 2141dfc9b8 Copy edits 2025-11-21 16:31:07 -06:00
Andy Smith 3399b00139 Ability to close search when input is empty 2025-11-21 16:08:52 -06:00
Andy Smith ec0681bbed Better focus and clearing when searching 2025-11-21 16:08:52 -06:00
Mike Dalessio ec8974640f User avatar responses have cache-control "public"
ref: https://app.fizzy.do/5986089/cards/3125
2025-11-21 16:08:52 -06:00
Mike Dalessio af0e2488d0 Improve avatar image handling
- redirect avatar image requests to the rails_blob_url, instead of
  streaming them through the web app
- use a thumbnail variant for avatar images
- only put avatar initials behind the stale? check (not the image
  redirect, which would result in browsers rendering broken images when
  an avatar is changed, until max-age expires)
2025-11-21 16:08:52 -06:00
Jason Zimdars a9bbd9d539 Special handling on mobile 2025-11-21 16:07:36 -06:00