Commit Graph

9552 Commits

Author SHA1 Message Date
Jirka Hutárek 7702e49afa Handle collection change the same as board change 2026-02-27 18:42:49 +01:00
Jirka Hutárek 566dd8ded2 Update default message 2026-02-27 18:30:12 +01:00
Jirka Hutárek 856d17c510 Handle missing fields 2026-02-27 18:26:50 +01:00
Jirka Hutárek 9678bdbd24 Add more specific messages to event push payload body 2026-02-27 18:17:56 +01:00
Jirka Hutárek b93752dbb5 Mention column name and creator in push event body when card is moved between columns 2026-02-27 18:10:37 +01:00
Jay Ohms e685d68dec Merge pull request #2620 from basecamp/identity-accounts
Only return identity accounts that are active with an active user
2026-02-27 09:48:06 -05:00
Jay Ohms 1ebd706d9a Merge pull request #2625 from basecamp/mobile/hide-subscriptions
Mobile: Hide the subscription panel in the mobile apps
2026-02-27 09:47:28 -05:00
Jay Ohms d758d9913e Hide the subscription panel in the mobile apps 2026-02-27 09:40:05 -05:00
Jay Ohms 74eac289ee Improve the structure so users_with_active_accounts is available on identity 2026-02-27 09:17:12 -05:00
Zoltán Hosszú 11e81a255f Merge pull request #2624 from basecamp/remove-lexxy-content-class
Remove lexxy-content class on comment editor
2026-02-27 12:13:15 +01:00
Zoltan Hosszu 41cc5467c6 Remove lexxy-content class on comment editor 2026-02-27 12:09:46 +01:00
Zoltán Hosszú cd49d4d2cc Merge pull request #2622 from basecamp/ui-regression-fixes
UI regression fixes
2026-02-27 11:01:09 +01:00
Zoltan Hosszu 295b5dd94d Tweak for ... icon to prevent Safari clipping 2026-02-27 10:49:03 +01:00
Zoltan Hosszu f727afdabb Stamp z-index issue fix 2026-02-27 10:37:32 +01:00
Silvia Uberti 0a83a2db73 Restore sc-chi cache after maintenance.
This reverts commit 4d2e111b01.
2026-02-27 10:30:08 +01:00
Zoltan Hosszu dea9e3e353 Button underline fix 2026-02-27 10:29:35 +01:00
Silvia Uberti 4d2e111b01 Temporarily disable sc-chi cache for maintenance. (#2618) 2026-02-27 10:14:50 +01:00
Jay Ohms 42900cf170 Only return identity accounts that are active with an active user 2026-02-26 16:45:16 -05:00
Jay Ohms e7241204eb Merge pull request #2615 from basecamp/card-perma-editing
Mobile: card perma improvements
2026-02-26 08:15:18 -05:00
Jay Ohms 867267890b Update app/javascript/controllers/bridge/buttons_controller.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-26 08:05:48 -05:00
Jay Ohms 7427675fc8 PR feedback 2026-02-26 07:53:02 -05:00
Jay Ohms 84c650ab25 Fix beforeunload event listeners 2026-02-26 07:41:51 -05:00
Jay Ohms 2d41463074 Merge branch 'main' into card-perma-editing
* main: (56 commits)
  Update app/views/cards/container/_closure_buttons.html.erb
  Update app/views/columns/show/_add_card_button.html.erb
  Update app/views/events/index/_add_card_button.html.erb
  Just return the object
  Rename is-main-action to display-as-primary-action
  Remove debug line
  Rename show-label to display-title
  Include path in web push payload for backwards compatibility
  Add base_url to native push notification payload
  Use internal account ID as `account_id` and add `account_slug`
  Make APNS and FCM env vars available
  Fix devices_path route helper in native devices partial
  Fix tests for renamed fixtures and new stacked notifications
  Add creator_familiar_name to push notification payload
  Add creator initials and avatar color to push notification payload
  Add avatar_url so we always get an avatar even when the user hasn't set one
  Document --push flag for testing native push notifications
  Don't read APNS_TEAM_ID from 1Password
  Simplify push.yml to only use B64 encryption keys
  Rename apns-dev to push-dev and unify 1Password credentials
  ...
2026-02-26 07:32:18 -05:00
Adrien Maston 1505ed7783 Merge pull request #2611 from basecamp/mobile/tweak-bridge-buttons 2026-02-26 13:23:39 +01:00
Adrien Maston c4cea3d5db Update app/views/cards/container/_closure_buttons.html.erb
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-26 12:14:37 +01:00
Adrien Maston 7f6351ea41 Update app/views/columns/show/_add_card_button.html.erb
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-26 12:14:28 +01:00
Adrien Maston 3f7b33889b Update app/views/events/index/_add_card_button.html.erb
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-26 12:14:13 +01:00
Adrien Maston a62defb570 Just return the object 2026-02-26 11:48:01 +01:00
Adrien Maston 047e8efad3 Rename is-main-action to display-as-primary-action 2026-02-26 11:33:24 +01:00
Adrien Maston fc1ee616c8 Remove debug line 2026-02-26 11:13:39 +01:00
Adrien Maston 158e95de42 Rename show-label to display-title 2026-02-26 11:12:01 +01:00
Jay Ohms 339a37576c Try adding turbo:before-visit event listener to test refreshing on iOS 2026-02-26 05:04:14 -05:00
Jay Ohms 2095848d32 Remove the ability to add/remove background images for now in the apps, since it's buggy 2026-02-25 15:40:37 -05:00
Jay Ohms 6ceb5ef7c3 Notify the form/buttons components of a disconnect before a page reload. This gives the native components an opportunity to reset their state before the fresh page loads. 2026-02-25 15:32:00 -05:00
Jay Ohms 91aa806b72 Don't show the bridged button to the board when editing a card 2026-02-25 14:40:31 -05:00
Rosa Gutierrez fc0e477141 Include path in web push payload for backwards compatibility
Old service workers cached in browsers still read `data.path` from the
push notification payload. Include it alongside `data.url` so notification
clicks keep working until those service workers update.

Currently we only register the service worker in the notification
settings screen, so this won't happen very often. Once we introduce
offline mode, we'll register the service worker in more places, so we
should be able to remove this.
2026-02-25 20:17:16 +01:00
Rosa Gutierrez 5b689dfac7 Merge pull request #2511 from basecamp/native-push-notifications
Support native push notifications
2026-02-25 19:55:04 +01:00
Rosa Gutierrez 13268ef668 Add base_url to native push notification payload
Include the server's base URL so native apps can identify which Fizzy
instance (SaaS or self-hosted) a notification originated from.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00
Rosa Gutierrez 6fb24118ea Use internal account ID as account_id and add account_slug
In native push payload, to be consistent about how we refer to
this in other endpoints.
2026-02-25 19:31:13 +01:00
Rosa Gutierrez 5bea9633d0 Make APNS and FCM env vars available
To beta and production deploys.
2026-02-25 19:31:13 +01:00
Rosa Gutierrez abef50c503 Fix devices_path route helper in native devices partial
The manage devices link used `devices_path` but the route is defined in
the saas engine, so it needs `saas.devices_path`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00
Rosa Gutierrez 92cb749e16 Fix tests for renamed fixtures and new stacked notifications
Clear assignee's existing notifications in setup since Notifier now
uses create_or_find_by instead of create, and reload the association
to avoid caching after destroy_all.

Update fixture references after rebase: use `logo_assignment_kevin`
as base notification and `logo_mentioned_david` for mention tests.
Update source to `logo_published` in tests that need generic card events.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00
Fernando Olivares cefc20612a Add creator_familiar_name to push notification payload
Include the shortened familiar name format (e.g., "Salvador D.")
for display in iOS notification titles.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00
Fernando Olivares b1cdb72381 Add creator initials and avatar color to push notification payload
Move avatar_background_color logic from helper to User::Avatar concern
so it can be accessed from models. Include creator_id, creator_initials,
and creator_avatar_color in native push notifications for local avatar
rendering on iOS.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00
Fernando Olivares 113e61d418 Add avatar_url so we always get an avatar even when the user hasn't set one 2026-02-25 19:31:13 +01:00
Rosa Gutierrez 6ec3cc6f2c Document --push flag for testing native push notifications
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00
Rosa Gutierrez 9c165e1e89 Don't read APNS_TEAM_ID from 1Password
It's a public value like the APNs topic, so just fallback to this value
in push.yml. In this way we have one fewer field we need to maintain
consistently across multiple 1Password items.
2026-02-25 19:31:13 +01:00
Rosa Gutierrez 5ad1e8cee7 Simplify push.yml to only use B64 encryption keys
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00
Rosa Gutierrez d1500ad4ec Rename apns-dev to push-dev and unify 1Password credentials
- Rename script from apns-dev to push-dev (handles both APNs and FCM)
- Fetch credentials from Deploy/Fizzy Production (same as Kamal)
- Use _B64 env vars to avoid escaping issues with multiline keys
- Update bin/dev flag from --apns to --push

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00
Rosa Gutierrez dbfb141b6f Restore PushNotificationJob as shim for in-flight jobs during deploy
In-flight jobs queued before deploy would fail if the old class is
missing. This shim delegates to the new notification.push method.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00