Commit Graph

35 Commits

Author SHA1 Message Date
Mike Dalessio 16745e89d1 Add card reactions to API docs and reactions_url to card JSON (#2427)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 16:55:50 -05:00
Mike Dalessio c822639260 Remove unnecessary claude plan 2026-01-23 13:27:04 -05:00
Mike Dalessio cb61b36715 Allow boosts on cards (#2411)
* Add reactions association to Card model

Adds `has_many :reactions` to Card, matching the implementation in Comment.
This allows cards to be reacted to directly with emoji reactions.

The association:
- Orders reactions chronologically
- Uses polymorphic `:reactable` interface
- Deletes reactions when card is destroyed

Includes test coverage for the new association.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add reactions UI to card detail view

- Create Cards::ReactionsController with turbo stream responses
- Add card reactions views (reactions list, new form, menu partial)
- Position reaction button flush-right when no reactions exist
- Show reactions on bottom-left when present, with button inline
- Handle narrow viewports by flowing button below meta section
- Add controller tests for card reactions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add boost count to card preview

Display reaction count alongside comment count on card tiles in board
columns. Introduces a .card__counts wrapper to group both counts with
proper positioning on all viewport sizes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Consolidate reaction views for cards and comments

Extract shared views to app/views/reactions/ using polymorphic routing.
Both card and comment reactions now render the same partials, with a
helper to compute the correct path prefix for nested routes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix emoji picker width in card reactions

Override .card .popup { inline-size: 260px } for the reaction popup
so the emoji grid displays without horizontal scrollbar.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Hide boost count where comment count is hidden

Add .card__boosts alongside .card__comments in:
- Tray view (display: none)
- Cards with background images (opacity toggle on hover)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix reactions button overlap with zoom button in card footer

When a card has a background image, the footer contains both a reactions
button and a zoom button. Previously they would overlap because the
reactions button was absolutely positioned to the bottom-right.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Tighten up previews

* Move card reactions from meta partial to container

Fixes two issues:

1. Reactions were duplicated each time a card was assigned because the
   turbo stream replaced the meta div with the full perma/meta partial,
   which included reactions outside the replaced element.

2. Draft cards incorrectly showed the boost button because the meta
   partial was shared between published and draft containers.

Moving reactions to _container.html.erb (published cards only) fixes
both issues and keeps the meta partial focused on meta content.

Fixes https://app.fizzy.do/5986089/cards/3837
Fixes https://app.fizzy.do/5986089/cards/3835

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* WIP adjust perma page

* Position and style the footer

* Render the stamp in the card body instead of the footer

* Fix undefined local variable in public cards view

Changed `card` to `@card` when rendering the stamp partial.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Preload card reactions to avoid N+1 queries

Include reactions and their reacters in the preloaded scope, matching
what we already do for comments.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add model tests for card and comment reaction cleanup

Test that:
- Creating a card reaction touches the card's last_active_at
- Reactions are deleted when their parent comment is destroyed
- Reactions are deleted when their parent card is destroyed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Minor improvements to reactions code

- Use size instead of count in boosts partial to avoid extra SQL query
  on already-loaded collection
- Add else clause to reaction_path_prefix_for to raise ArgumentError
  for unknown reactable types instead of silently returning nil

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Bump specificity of reaction popup in the card perma

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Andy Smith <andy@37signals.com>
2026-01-23 13:25:55 -05:00
Stanko Krtalić 2067d76e62 Merge pull request #2308 from robzolkos/api-docs-update
API Documentation updates
2026-01-12 13:17:02 +01:00
Rob Zolkos 562d340b84 Document DELETE endpoint for removing card header image 2026-01-07 10:17:34 -05:00
Jorge Manrubia bf615819f3 Merge pull request #2236 from wood-brandon/patch-1
fix(docs): docker run uses `--env`
2026-01-07 16:16:28 +01:00
Rob Zolkos 7de65be756 Document goldness endpoints for marking cards as golden
Add POST and DELETE endpoints for /:account_slug/cards/:card_number/goldness
2026-01-07 10:12:03 -05:00
Rob Zolkos 9b47269349 Document closed and column fields in card API response
Add missing fields to the GET card endpoint documentation:
- closed: indicates whether the card is in "Done" state
- column: present only when card is triaged into a column
2026-01-07 10:05:46 -05:00
Stanko K.R. 21fa6ba458 Update documentation 2025-12-24 08:47:38 +01:00
Brandon e861e149c0 fix: docker run uses --env 2025-12-23 15:48:04 +13:00
Stanko K.R. 0cb4822ae0 Document the new sign in method 2025-12-19 19:21:58 +01:00
Kevin McConnell 407f2a3a6a Add BASE_URL environment variable
When running a Docker deployment, we need a way to set the app's base
URL. Otherwise links in emails, or generated in jobs etc., can not be
correctly constructed.
2025-12-19 12:21:37 +00:00
Jorge Manrubia f9409c15a0 Merge pull request #2202 from gchp/doc-fix
Fix fizzy-saas link to point to the vendored gem instead of the archived repo
2025-12-19 12:17:40 +01:00
Jorge Manrubia b5ca348eb9 Merge pull request #2195 from Heliem/patch-1
Update API documentation for card retrieval
2025-12-19 12:15:25 +01:00
Greg Chapple d892438359 Fix fizzy-saas link to point to the vendored gem instead of the archived repo 2025-12-19 09:42:38 +00:00
Heliem 54139ffcbb Update API documentation for card retrieval
Changed the response to reflect that getting a specific card includes the steps
2025-12-18 13:47:04 +00:00
Francisco Merino-Casallo 440b8a7dbf Clarify S3 storage wording in Docker deployment guide 2025-12-18 11:30:59 +01:00
hiendinhngoc 8a0180da40 Fix conflict and move the update from README to docs/kamal-deployment.md 2025-12-14 14:22:34 +07:00
nu-wa 472dbeee8c SMTP: support SMTPS on port 465 (#2132)
* Add more configuration options for the SMTP connection

* Add SMTP_TLS option for implicit TLS connections

For SMTPS servers (typically port 465), set SMTP_TLS=true.
Port auto-defaults to 465 when TLS is enabled, 587 otherwise.
STARTTLS is used by default and automatically disabled when TLS is on.

Fixes boolean conversion bug in original PR (string "false" is truthy)
and removes insecure default for certificate verification.

---------

Co-authored-by: Jeremy Daer <jeremy@37signals.com>
2025-12-13 10:57:08 -08:00
Kevin McConnell 4218f2e161 Document Docker image deployment
Also split the README a bit, to move the details under /docs.
2025-12-12 17:26:50 +00:00
Jankees van Woezik 78fc80cf35 API: Allow updates to last_active_at (#2076)
* Allow Card#last_updated_at to be set

This is useful when doing an import from another system. I'm currently
working on a script to import our Github issues into Fizzy.

This is discussed in
https://github.com/basecamp/fizzy/pull/2056#discussion_r2609560246

* Add nil fallback and expand test coverage for last_active_at

Adds a safety fallback to Time.current if created_at is unexpectedly nil
during card creation.

Test coverage to verify:
* last_active_at defaults to created_at when not provided
* last_active_at can be updated via API on existing cards
* import workflow where last_active_at is restored after comments
* publishing doesn't overwrite explicit last_active_at values

---------

Co-authored-by: Jeremy Daer <jeremy@37signals.com>
2025-12-11 19:06:03 -08:00
Stanko K.R. fb77d85b0d Explain that the upload URL is account-scope 2025-12-11 12:00:51 +01:00
Jankees van Woezik 477b4d65f2 API: Support created_at for API card and comment creation (#2056)
* Add support to set `created_at`

Discussed in
https://github.com/basecamp/fizzy/pull/1766#issuecomment-3637846074,
this allows users to import cards from another system with entries from
the past. For instance I'm importing all our Github issues (including
the closed onces) to Fizzy.

* Iron out published state tracking

---------

Co-authored-by: Jeremy Daer <jeremy@37signals.com>
2025-12-10 19:57:38 -08:00
Stanko K.R. 3f2e3e6b62 Improve phrasing 2025-12-10 20:49:36 +01:00
Stanko K.R. b0b90cef66 Fix status and filter mistakes 2025-12-10 18:42:23 +01:00
Stanko K.R. 714f7642b2 Rename /identity to /my/identity in docs 2025-12-10 15:32:50 +01:00
Stanko K.R. 79e77a3780 Handle user update failures 2025-12-10 09:23:53 +01:00
Stanko K.R. 462470ed1d Remove endpoints section
It was too easy to get lost in the ### sections for each resource. With rescources being ## sections I hope it will be easier to find things.
2025-12-10 09:23:53 +01:00
Stanko K.R. a7ca41e548 Move the tags section close to the cards 2025-12-10 09:23:53 +01:00
Stanko K.R. 7b30ca203e Add index actions for Comments and Columns
Also, fix crash when a deactivated user is serialized (they don't have
an identity).
2025-12-10 09:23:52 +01:00
Stanko K.R. bea8e60fd0 Document Card-related APIs 2025-12-10 09:23:52 +01:00
Stanko K.R. 86aed7b7b7 Add detailed guide for creating access tokens 2025-12-10 09:23:52 +01:00
Stanko K.R. d655074685 Document users API endpoints 2025-12-10 09:23:52 +01:00
Stanko K.R. 0c75712e83 Document notifications endpoints 2025-12-10 09:23:52 +01:00
Stanko K.R. bf51950007 Add API for reading notifications 2025-12-10 09:23:52 +01:00