Commit Graph

68 Commits

Author SHA1 Message Date
Jason Zimdars 13dce732b2 Fussy punctuation 2025-11-17 17:01:08 -06:00
Jason Fried 8534584052 Small copy adjustment on the new or sign in screen. 2025-11-17 13:14:12 -08:00
Mike Dalessio 6a3135b67a Introduce a simple stimulus controller for the magic link form
which avoids the double-submit problem from:

- https://app.fizzy.do/5986089/cards/2980
- https://app.fizzy.do/5986089/cards/2771
2025-11-17 14:48:20 -05:00
Stanko K.R. 8fa9566c07 Update sign up 2025-11-17 09:12:40 -05:00
Stanko K.R. edf837fed3 Drop memberships 2025-11-17 09:12:39 -05:00
Mike Dalessio d41d50d52b Account.sole → Current.account
and some other de-tenant changes, including removing the controller
tenanting concerns
2025-11-17 09:11:40 -05:00
Jason Zimdars 5668612287 Add icon to public footer 2025-11-12 09:31:06 -06:00
Jason Zimdars 776a8e3c0a Typo 2025-11-11 16:08:27 -06:00
Jason Zimdars bdde877de3 Apply the new hotkey and style to all back buttons
Also updates design for email address change screens
2025-11-11 15:13:30 -06:00
Jason Zimdars 90967374d3 Add for Fizzy and 37signals 2025-11-11 14:18:46 -06:00
Jason Zimdars 1190ae101d Ensure sign-in screens adapt on mobile 2025-11-11 14:14:49 -06:00
Jason Zimdars df02f48007 Update support email, fine-tune attribution lines 2025-11-10 13:43:35 -06:00
David Heinemeier Hansson fef9c2dab6 turbo_frame_tag has built-in dom_id expansion 2025-11-08 16:42:41 +01:00
Jason Zimdars e7646fab96 More copy and design edits 2025-11-07 07:08:24 +01:00
Stanko K.R. bbe74966a1 Extract saas helpers into a concern 2025-11-07 07:08:24 +01:00
Jason Zimdars 2fee728392 Copy and design 2025-11-07 07:08:24 +01:00
Jason Zimdars 7a58c23e55 Copy edits for unified flow 2025-11-07 07:06:28 +01:00
Mike Dalessio d6db4c930b Print the magic link code in the console in development 2025-11-06 14:51:25 -05:00
Jason Zimdars aaa24074f3 Fix magic link code input
Fix that paste action didn't work and hitting `enter` caused the form to
post twice
2025-11-04 13:18:14 -06:00
Jorge Manrubia 2bb90eab13 Use the sole collection as the root for a better onboarding experience for new accounts 2025-11-04 17:09:35 +01:00
Kevin McConnell 4146dc2b92 Disable Turbo prefetch on signup link
This is because we have basic auth enabled there, so prefetching will
trigger the popup.
2025-11-04 12:51:41 +00:00
Jason Zimdars 7d154b682e Rename 'BOXCAR' to 'Fizzy'
Missed files
2025-11-03 16:30:44 -06:00
Jason Zimdars 1f58cd11b0 Show busy state when submitting forms 2025-10-31 16:26:08 +01:00
Stanko Krtalić 98755844a1 Remove the internal API
* Bind sessions to identities
* Remove references to the identity token
* Move email changes to identity
* Move account menu into a turbo-frame
* Create tenants from a tenanted route
2025-10-31 16:26:08 +01:00
Jason Zimdars 5652e5699f Update design, logo, and copy 2025-10-31 16:26:08 +01:00
Mike Dalessio a429f05503 Fix logo references 2025-10-31 16:26:08 +01:00
Stanko K.R. 201c3e27d3 Update tests for the Internal API 2025-10-31 16:26:08 +01:00
Jason Zimdars c0b4205b3c Fix missing images 2025-10-31 16:24:30 +01:00
Stanko K.R. 79b012f319 Add Join Codes 2025-10-31 16:24:30 +01:00
Stanko K.R. c8843360fe Clean up and simplify magic links 2025-10-31 16:23:38 +01:00
Jason Zimdars eac5e1bef9 Bring back the shake effect if you get it wrong, bring back placeholder 2025-10-31 16:22:12 +01:00
Jason Zimdars 0e064fbcd5 Style code input 2025-10-31 16:22:12 +01:00
Jason Zimdars 6ae20f9a9b Style account menu 2025-10-31 16:22:12 +01:00
Jason Zimdars 193d8bd9b5 Style email and magic link code screens 2025-10-31 16:22:12 +01:00
Stanko K.R. 5cef4ffeb0 Add sign in flow using magic links 2025-10-31 16:22:12 +01:00
Mike Dalessio 1277cc065b Introduce untenanted Identity and Membership models
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.

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.
2025-10-31 16:22:12 +01:00
Jason Zimdars f5384baf63 Boxcar -> BOXCAR 2025-10-23 15:05:36 -07:00
Jason Zimdars 49e87310d7 Rename Fizzy, Boxcar 2025-10-22 13:42:41 -07: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 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
Mike Dalessio 2d327e6294 Render a helpful menu of tenants temporarily 2025-10-02 16:33:25 -04:00
Mike Dalessio 2630e4bd74 Extract 37id and QB controllers, models, and tests 2025-09-13 16:03:02 -04:00
Mike Dalessio 57269b1b9c Allow local authentication with LOCAL_AUTHENTICATION=1
You can touch `tmp/local-auth.txt` to persist this setting.
2025-08-06 17:05:35 -04:00
Mike Dalessio fa1c5f7279 Remove session controller actions other than delete
and do some general cleanup around sessions controllers and the
sign_in_as test helper
2025-07-02 15:03:28 -04:00
Mike Dalessio 2c18173f08 Trampoline the Launchpad auth redirect from a GET into a POST
to always route it to the writer.
2025-06-20 15:16:57 -04:00
Jason Zimdars 60890b10ee Remove translations feature 2025-04-09 14:11:32 -05:00
Andy Smith 51d907fca3 Replace stray image_tag instances and remove colorize class 2025-04-02 14:32:21 -05:00
David Heinemeier Hansson de6f782ca3 Extract icon_tag helper to reduce repetition 2025-03-29 17:22:51 +01:00
Mike Dalessio 1a4e2fdea4 Remove unnecessary "turbo: false" from forms
because the turbo responses have been moved from EventsController to
Events::PagesController, we can now redirect to the Events index page
within a turbo session.
2025-03-26 07:47:01 -04:00