Commit Graph

6118 Commits

Author SHA1 Message Date
Alexander Zaytsev fa4e77f35e Prevent page scrolling when modal dialog is open 2026-01-19 20:46:49 +01:00
Andy Smith 036768fede Create popup initial alignment classes 2026-01-16 14:30:47 -06:00
Andy Smith ac481d34ff Merge pull request #2366 from nqst/popup-disabled-buttons-no-pointer-events
Popups: remove hover styles from disabled menu items
2026-01-16 14:19:57 -06:00
Andy Smith df8f88f773 Fix class typo 2026-01-16 14:12:19 -06:00
Andy Smith 6a7ca930cf Hide the board selector button if card is closed 2026-01-16 14:07:00 -06:00
Andy Smith 19ce79965b Align board and tag picker dialogs without using math 2026-01-16 14:00:04 -06:00
Andy Smith e5eb1080f6 Add dialog manager to card perma 2026-01-16 13:24:23 -06:00
Andy Smith 6b7f9b0bac Merge pull request #2377 from robzolkos/webhook-select-all
Add Enable all/Disable all buttons to webhook event selection
2026-01-16 13:01:21 -06:00
Mike Dalessio 6b8a571fd3 Merge pull request #2383 from basecamp/flavorjones/3722-self-assign
Fix "M" hotkey to not use stale user ID from the fragment cache
2026-01-16 13:47:18 -05:00
Mike Dalessio 2527f07365 Fix "M" hotkey using stale user from fragment cache
Add a SelfAssignmentsController to resolve the current user at request
time, avoiding the use of an incorrect user id baked into a cached URL.

ref: #2211 originally added the "M" hotkey
ref: https://app.fizzy.do/5986089/cards/3722
2026-01-16 13:41:33 -05:00
Jorge Manrubia 99a8d12c9d Merge pull request #2382 from basecamp/attachment-take-2
Solve problem when Action Text raises on missing attachables
2026-01-16 17:36:10 +01:00
Jorge Manrubia 4ab1e3ff7d Solve problem when Action Text raises on missing attachables
Reverts the previous patch. The problem was that I hadn't update
 Lexxy in the saas version https://github.com/basecamp/lexxy/pull/596
2026-01-16 17:32:41 +01:00
Mike Dalessio 8ada756f33 Merge pull request #2380 from basecamp/flavorjones/3688-step-status
Completing a step removes stalled status from UI
2026-01-16 10:48:44 -05:00
Jorge Manrubia c8d5c38e4c Solve problem when Action Text raises on missing attachables
I created this https://github.com/basecamp/lexxy/pull/596 to address this for good but
it is still happening in production.

Locally I don't manage to reproduce the issue.

This will be solved for good once we go back to vanilla action text with the new
Rails adapter, so I will go with this is a temporary patch for now.
2026-01-16 16:38:40 +01:00
Mike Dalessio 9c76002bc1 Completing a step removes stalled status from UI
Add `updatedAt` to stalled bubble options so JS can check if the card
was recently updated, matching the `Card::Stallable#stalled?`
logic. Refresh the bubble via Turbo Stream when a step is updated.

This should have been part of #1625

Fixes https://app.fizzy.do/5986089/cards/3668
2026-01-16 09:58:21 -05:00
Rob Zolkos 4321ed86aa Add Enable all/Disable all buttons to webhook event selection
Makes it easier to quickly select or deselect all webhook event types when configuring a webhook. Uses the existing toggle-class Stimulus controller.
2026-01-15 21:09:23 -05:00
Andy Smith ff050505d5 Use correct class selectors to target cards with background images 2026-01-15 12:27:29 -06:00
Jorge Manrubia f9d85570e6 Hide table button for now 2026-01-15 16:37:27 +01:00
Zoltan Hosszu b28a88c185 Table CSS tweaks 2026-01-15 16:34:56 +01:00
Zoltan Hosszu 1a9b59ebb1 Revert "Wrap tables in div"
This reverts commit 2a2feb469eac7fe8b3957d11c6bc147cb63be51a.
2026-01-15 16:34:56 +01:00
Zoltan Hosszu 21d6316daf Wrap tables in div
This prevents overflow of huge tables
2026-01-15 16:34:56 +01:00
Zoltan Hosszu a5a24d0085 CSS updates for <table> support 2026-01-15 16:34:56 +01:00
Rosa Gutierrez 832e63f99a Keep URLs in webhook events absolute
Follow-up to #2318

These are sent to other apps, so they need to be absolute. I changed
this too eagerly when I was moving calls to `polymorphic_url`.
2026-01-14 21:15:42 +01:00
Rosa Gutierrez ee636f1994 Delete orphaned watches and pins when a card is moved to a private board
For watchers and users with pins that don't have access to the private
board where the card was moved to.
2026-01-14 19:38:15 +01:00
Alexander Zaytsev 44d9df0e8a Merge branch 'main' into popup-disabled-buttons-no-pointer-events 2026-01-14 17:25:24 +01:00
Rosa Gutierrez 527ffc42b9 Use relative URLs where possible across all the app
Skipping API responses, where we need absolute URLs, and those that are
intended for sharing or external use:

- account/join_codes/show.html.erb - Join code URL for sharing
- boards/edit/_publication.html.erb - Publication URL for sharing
- public/* views - Public page URLs and og:url meta tags
- pwa/manifest.json.erb - PWA manifest needs absolute URLs

For this, we had to replace `url_for` used with Active Storage variants
and previews with the specific path helper (for Active Storage
representations).
2026-01-14 11:01:42 +01:00
Rosa Gutierrez 235890e666 Use relative URLs for avatars and rich text attachments
These URLs can be problematic or inconsistent, as we might end up with
rich text content with beta URLs for attachments being used in
production, or viceversa. It'll also be problematic when importing or
exporting data between a self-hosted instance and the SaaS version.
2026-01-14 11:01:42 +01:00
Andy Smith c8059dea90 Disable card column buttons when active 2026-01-13 16:15:33 -06:00
Andy Smith fe57d9d013 Prevent comment content from overlapping with reaction button 2026-01-13 11:55:01 -06:00
Andy Smith 819864b756 Merge pull request #2355 from nqst/txt-balance
Add `.txt-balance` utility and use it for Magic Link instructions
2026-01-13 10:32:11 -06:00
Andy Smith d79ffced89 Merge pull request #2351 from basecamp/improve-board-loading
Move handleDesktop inside restoreColumnsDisablingTransitions
2026-01-13 10:25:22 -06:00
Rosa Gutierrez 5e099c4c06 Delete pins belonging to cards in a board with revoked access
As part of cleaning up inaccessible data in the board after revoking
access.
2026-01-13 16:25:59 +01:00
Stanko Krtalić 829dd345f6 Merge pull request #2322 from drjayvee/locals-only-partial
Replace use of instance variable with local
2026-01-13 13:26:53 +01:00
Alexander Zaytsev 671ce573c8 Remove whitespace 2026-01-13 11:48:04 +01:00
Alexander Zaytsev e658e71977 Remove hover styles from disabled menu items 2026-01-13 11:47:44 +01:00
Alexander Zaytsev 6c6a7be607 Balance magic link instructions 2026-01-13 09:51:35 +01:00
Alexander Zaytsev 603e4d10b3 Add .txt-balance utility 2026-01-13 09:50:37 +01:00
Stanko Krtalić ceff6ea4df Merge pull request #2344 from secretpray/fix/deprecation-warnings-only
Fix deprecation warnings for skip_before_action :verify_authenticity_token
2026-01-13 08:59:15 +01:00
Andy Smith 589ae1ab36 Move handleDesktop inside restoreColumnsDisablingTransitions 2026-01-12 16:23:20 -06:00
Andy Smith f428bfaa7c Adjust border radius 2026-01-12 15:43:59 -06:00
Andy Smith 64fdbf6b8f Clean up blank slates 2026-01-12 15:37:06 -06:00
Andy Smith 4dedfce39f Add dialog manager to events page 2026-01-12 14:00:37 -06:00
Andy Smith 8288e85df6 More sturated mini bubbles in light mode 2026-01-12 13:34:30 -06:00
Andy Smith df7df74752 Brighten mini bubbles in dark mode 2026-01-12 13:31:36 -06:00
Andy Smith ca5bca9796 Bump boost size up a tick on mobile 2026-01-12 13:18:39 -06:00
Andy Smith 8bb043bef8 Move Undo form inside closure message element 2026-01-12 13:14:37 -06:00
secretpray 6895135977 Fix deprecation warnings for skip_before_action :verify_authenticity_token
Replace deprecated `skip_before_action :verify_authenticity_token` with
`skip_forgery_protection` to resolve Rails deprecation warnings.

Changes:
- app/controllers/notifications/unsubscribes_controller.rb
- saas/app/controllers/stripe/webhooks_controller.rb
2026-01-12 18:44:35 +02:00
Stanko Krtalić eceb6c9b43 Add self-service account deletion (#2246)
* Add self-service account deletion

* Disable access to cancelled accounts & implement Stripe interactions

* Add tests

* Fix failing tests

* Remove cancelled accounts from lists

* Fix incorrect redirect

* Use _path instead of _url for consistency

* Don't track how far the inicieration job got

We still want the step tracking so that the job can be interrupted. But, since the scope is idempotent, we don't need to track how far it got.

* Specify the exact time when the data will be deleted

* Fix crash due to unadvancable cursor

* Rename up_for_incineration to due_for_incineration

* Regenrate the schema

* Fix incorrect path check

* Migrate the SQLite schema

* Only show the cancel button on cancellable accounts

* Check that a subscirption method exists before calling it

* Ignore job failures due to missing records when an account gets deleted

* Skip sending notifications on cancelled accounts

* Use collbacks to integrate

* Add a blank line between queue_as and discard_on

* Break checks into methods

* Inline methods

* Rename Account::IncinerateJob

* Run migrations

* Migrate SQLite
2026-01-12 14:21:05 +01:00
Andy Smith 509f0ca305 Consolidate footer text into a shared partial 2026-01-09 11:57:45 -06:00
Andy Smith 641e94fc72 Merge pull request #2314 from afurm/fix/noopener-links
Add rel noopener/noreferrer to external links opened in new tabs
2026-01-09 11:42:14 -06:00