Rename Fizzy, Boxcar

This commit is contained in:
Jason Zimdars
2025-10-22 13:42:41 -07:00
parent 60b48145c4
commit 49e87310d7
24 changed files with 35 additions and 39 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
module ApplicationHelper
def page_title_tag
tag.title @page_title || "Fizzy"
tag.title @page_title || "Boxcar"
end
def icon_tag(name, **options)
@@ -9,7 +9,7 @@ class Conversation::Message::ResponseGeneratorJob < ApplicationJob
retry_on RubyLLM::RateLimitError, RubyLLM::ServiceUnavailableError, wait: 2.seconds, attempts: 3 do |job, error|
message = job.arguments.first
message.conversation.respond("Fizzy is very busy at the moment. Please try again in a minute.")
message.conversation.respond("Boxcar is very busy at the moment. Please try again in a minute.")
end
def perform(message)
+1 -1
View File
@@ -1,5 +1,5 @@
class ApplicationMailer < ActionMailer::Base
default from: "The Fizzy team <support@37signals.com>"
default from: "The Boxcar team <support@37signals.com>"
layout "mailer"
append_view_path Rails.root.join("app/views/mailers")
+1 -1
View File
@@ -11,6 +11,6 @@ class Notification::BundleMailer < ApplicationMailer
mail \
to: bundle.user.email_address,
subject: "Latest Activity in Fizzy"
subject: "Latest Activity in Boxcar"
end
end
@@ -1,5 +1,5 @@
<div class="settings__panel settings__panel--entropy panel shadow center">
<h2 class="divider txt-large">Auto close</h2>
<p class="margin-none-block-start">Fizzy doesnt let stale cards stick around forever. Cards automatically close as “Not Now” without activity for specific period of time. <em>This is the default, global setting — you can override it on each Board.</em></p>
<p class="margin-none-block-start">Boxcar doesnt let stale cards stick around forever. Cards automatically close as “Not Now” without activity for specific period of time. <em>This is the default, global setting — you can override it on each Board.</em></p>
<%= render "entropy/auto_close", model: account.default_entropy_configuration, url: account_entropy_configuration_path %>
</div>
@@ -1,7 +1,7 @@
<%= turbo_frame_tag @collection, :entropy_configuration do %>
<div class="margin-block-end">
<h2 class="divider txt-large">Auto close</h2>
<p class="margin-none-block-start">Fizzy doesnt let stale cards stick around forever. Cards automatically close as “Not now” if no one updates, comments, or moves a card for…</p>
<p class="margin-none-block-start">Boxcar doesnt let stale cards stick around forever. Cards automatically close as “Not now” if no one updates, comments, or moves a card for…</p>
<%= render "entropy/auto_close", model: collection, url: collection_entropy_configuration_path(collection) %>
</div>
<% end %>
@@ -1,7 +1,7 @@
<%= turbo_frame_tag @collection, :publication do %>
<header>
<h2 class="divider txt-large">Public link</h2>
<div>Turn on the Public link to share this Board with anyone in the world. They wont need to log in and they wont be able to see anything else in Fizzy.</div>
<div>Turn on the Public link to share this board with anyone in the world. They wont need to log in and they wont be able to see anything else in Boxcar.</div>
</header>
<% if collection.published? %>
+1 -1
View File
@@ -8,7 +8,7 @@
<%= render "conversations/composer/thinking_indicator", conversation: nil %>
<%= form.hidden_field :client_message_id, data: { conversation__composer_target: "clientMessageIdInput" } %>
<%= form.label :content, "Ask Fizzy", class: "font-weight-black txt-nowrap" %>
<%= form.label :content, "Ask Boxcar", class: "font-weight-black txt-nowrap" %>
<%= form.text_field :content,
autofocus: true,
autocomplete: "off",
+1 -1
View File
@@ -29,7 +29,7 @@
<iframe
frameborder="0"
src="https://www.youtube.com/embed/kAgUQbD9Wc0?si=IIjKjUIk5PchL0-a"
title="Fizzy Beta orientation"
title="Boxcar Beta orientation"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen></iframe>
+1 -1
View File
@@ -1,5 +1,5 @@
<%= collapsible_nav_section "Jump to…" do %>
<%= filter_place_menu_item "https://www.youtube.com/watch?v=rNKRdk7DLHM", "Fizzy beta orientation", "youtube", new_window: true %>
<%= filter_place_menu_item "https://www.youtube.com/watch?v=rNKRdk7DLHM", "Boxcar beta orientation", "youtube", new_window: true %>
<%= filter_place_menu_item account_settings_path, "Account Settings", "settings" %>
<%= filter_place_menu_item user_path(Current.user), "My Profile", "person" %>
<%= filter_place_menu_item notifications_path, "Notifications", "bell" %>
-4
View File
@@ -153,10 +153,6 @@
</style>
</head>
<body>
<figure class="error-page__logo">
<%= image_tag "fizzy-logo.png" %>
Fizzy
</figure>
<%= yield %>
<%= link_to "&larr; Back home".html_safe, root_url %>
</body>
+1 -1
View File
@@ -15,7 +15,7 @@
<footer id="footer">
<div class="justify-center center margin-block-double flex align-end gap">
<%= image_tag "fizzy-logo.png", size: 28 %>
<strong><a href="http://37signals.com" class="txt-ink">Made with Fizzy&trade;</a></strong>
<strong><a href="http://box-car.com" class="txt-ink">Made with Boxcar&trade;</a></strong>
</div>
</footer>
</body>
@@ -3,7 +3,7 @@
<h1 class="title">Everything since <%= @bundle.starts_at.strftime("%-l%P on %A, %B %-d") %></h1>
<p class="subtitle">You have <%= link_to pluralize(@notifications.count, "new notification"), notifications_url %>.</p>
<%= render partial: "notification/bundle_mailer/notification", collection: @notifications, as: :notification %>
<p class="footer">Fizzy emails you about new notifications every few hours. <br>
<p class="footer">Boxcar emails you about new notifications every few hours. <br>
<%= link_to "Change how often you get these", notifications_settings_url %>
or <%= link_to "unsubscribe from all email notifications", new_notifications_unsubscribe_url(access_token: @unsubscribe_token) %>.
</p>
@@ -4,7 +4,7 @@ You have <%= pluralize @notifications.count, "new notification" %>.
<%= render partial: "notification/bundle_mailer/notification", collection: @notifications, as: :notification %>
--------------------------------------------------------------------------------
Fizzy emails you about new notifications every few hours.
Boxcar emails you about new notifications every few hours.
Change how often you get these:
<%= notifications_settings_url %>
@@ -1,10 +1,10 @@
<% unless (platform.chrome? && !platform.ios?) || (platform.firefox? && !platform.android?) %>
<div class="notifications-help pwa__instructions hide-in-pwa">
<h2><%= platform.safari? && platform.desktop? ? "…or install" : "Install " -%> Fizzy as a web app.</h2>
<h2><%= platform.safari? && platform.desktop? ? "…or install" : "Install " -%> Boxcar as a web app.</h2>
<% case
when platform.edge? %>
<ol>
<li>Click <em><%= icon_tag "install-edge", alt: "the app available - install Fizzy button" %></em>in the address bar.</li>
<li>Click <em><%= icon_tag "install-edge", alt: "the app available - install Boxcar button" %></em>in the address bar.</li>
<li>Click <em>Install</em>.</li>
</ol>
<% when platform.chrome? && platform.android? %>
@@ -23,13 +23,13 @@
<li>Click <em>Add to Dock…</em>.</li>
</ol>
<% when (platform.safari? || platform.chrome?) && platform.ios? %>
<p>To receive push notifications in <%= platform.browser.capitalize %> for <%= platform.operating_system %>, you must first install Fizzy as a web app.</p>
<p>To receive push notifications in <%= platform.browser.capitalize %> for <%= platform.operating_system %>, you must first install Boxcar as a web app.</p>
<ol>
<li>Tap <em><%= icon_tag "share", alt: "the share button" %></em></li>
<li>Tap <em>Add to Home Screen</em>.</li>
</ol>
<% else %>
<p>Some platforms require you to install Fizzy as a web app to receive push notifications.</p>
<p>Some platforms require you to install Boxcar as a web app to receive push notifications.</p>
<% end %>
</div>
<% end %>
@@ -12,19 +12,19 @@
<ol>
<li>Click <em>Start</em>, then <em>Settings</em>.</li>
<li>Go to <em>System &gt; Notification</em>.</li>
<li>Click <em><%= icon_tag "switch", alt: "the toggle button" %></em> <em>ON</em> for Fizzy.</li>
<li>Click <em><%= icon_tag "switch", alt: "the toggle button" %></em> <em>ON</em> for Boxcar.</li>
</ol>
<% when (platform.firefox? || platform.chrome?) && platform.desktop? %>
<ol>
<% if platform.windows? %>
<li>Click <em>Start</em>, then <em>Settings</em>.</li>
<li>Go to <em>System &gt; Notification</em>.</li>
<li>Click <em><%= icon_tag "switch", alt: "the toggle button" %></em> <em>ON</em> for Fizzy.</li>
<li>Click <em><%= icon_tag "switch", alt: "the toggle button" %></em> <em>ON</em> for Boxcar.</li>
<% else %>
<li>Click <em aria-label="the Apple menu"></em> in the top left.</li>
<li>Click <em>System Settings…</em>.</li>
<li>Click <em>Notifications</em>.</li>
<li>Click <em>Fizzy</em>.</li>
<li>Click <em>Boxcar</em>.</li>
<li>Click <em><%= icon_tag "switch", alt: "the allow notifications switch" %></em> to <em>Allow notifications</em>.</li>
<% end %>
</ol>
@@ -33,13 +33,13 @@
<li>Click <em aria-label="the Apple menu"></em> in the top left.</li>
<li>Click <em>System Settings…</em>.</li>
<li>Click <em>Notifications</em>.</li>
<li>Click <em>Fizzy</em>.</li>
<li>Click <em>Boxcar</em>.</li>
<li>Click <em><%= icon_tag "switch", alt: "the allow notifications switch" %></em> to <em>Allow notifications</em>.</li>
</ol>
<% when (platform.safari? || platform.chrome?) && platform.ios? %>
<ol>
<li>Open the <em><%= icon_tag "gear", aria: { hidden: "true" } %></em> Settings app.</li>
<li>Scroll to and tap <em>Fizzy</em>.</li>
<li>Scroll to and tap <em>Boxcar</em>.</li>
<li>Tap <em>Notifications</em>.</li>
<li>Tap <em><%= icon_tag "switch", alt: "the allow notifications switch button" %></em> to <em>Allow Notifications</em>.</li>
</ol>
@@ -48,7 +48,7 @@
<li>Open the <em><%= icon_tag "gear", aria: { hidden: "true" } %></em> Settings app.</li>
<li>Tap <em>Notifications</em>.</li>
<li>Tap <em>App notifications</em>.</li>
<li>Scroll to <em>Fizzy</em>.</li>
<li>Scroll to <em>Boxcar</em>.</li>
<li>Tap <em><%= icon_tag "switch", alt: "the switch" %></em> to <em>Allow Notifications</em>.</li>
</ol>
<% else %>
@@ -1,9 +1,9 @@
<div class="panel margin-block-double center shadow">
<h1 class="font-black txt-x-large margin-none-block-end">Youre unsubscribed</h1>
<p class="margin-block-start-half">Thanks, <%= @user.first_name %>! Fizzy wont send you any more email notifications. If you change your mind you can turn them back on in <%= link_to "Notifications Settings", notifications_settings_path %>.</p>
<p class="margin-block-start-half">Thanks, <%= @user.first_name %>! Boxcar wont send you any more email notifications. If you change your mind you can turn them back on in <%= link_to "Notifications Settings", notifications_settings_path %>.</p>
<%= link_to root_path, class: "btn btn--link margin-block-start" do %>
<%= icon_tag "arrow-left" %>
<span>Back to Fizzy</span>
<span>Back to Boxcar</span>
<% end %>
</div>
+1 -1
View File
@@ -1,5 +1,5 @@
{
"name": "<%= [ Account.sole.name, "Fizzy", Rails.env.production? ? nil : Rails.env ].compact.join(" - ") %>",
"name": "<%= [ Account.sole.name, "Boxcar", Rails.env.production? ? nil : Rails.env ].compact.join(" - ") %>",
"icons": [
{
"src": "/app-icon-192.png",
+1 -1
View File
@@ -1,5 +1,5 @@
<%= form_with url: search_path, method: :get, class: "search__form flex align-center justify-center gap-half", data: { turbo_frame: "bar-content" } do |form| %>
<%= form.label :q, "Search Fizzy", class: "font-weight-black txt-nowrap" %>
<%= form.label :q, "Search Boxcar", class: "font-weight-black txt-nowrap" %>
<%= text_field_tag :q, query_terms,
class: "search__input input",
type: "search",
+3 -3
View File
@@ -1,12 +1,12 @@
<% @page_title = "Choose Account" %>
<div class="panel shadow center margin-block-double" style="--panel-size: 55ch;">
<h1 class="txt-xx-large margin-block-end-double">Fizzy</h1>
<h1 class="txt-xx-large margin-block-end-double">Boxcar</h1>
<% identity = Identity.find_signed(Current.identity_token.id) %>
<% memberships = identity&.memberships %>
<% if memberships.present? %>
<h2 class="txt-large margin-block-end">Your Fizzy Accounts</h2>
<h2 class="txt-large margin-block-end">Your Boxcar Accounts</h2>
<ul class="flex flex-column gap txt-large" style="list-style-type: none; padding: 0;">
<% memberships.each do |membership| %>
<li>
@@ -15,6 +15,6 @@
<% end %>
</ul>
<% else %>
<p class="txt-large txt-align-center txt-subtle">You don't have any existing Fizzy accounts.</p>
<p class="txt-large txt-align-center txt-subtle">You don't have any existing Boxcar accounts.</p>
<% end %>
</div>
+1 -1
View File
@@ -1,7 +1,7 @@
<% @page_title = "Sign in" %>
<div class="panel shadow center margin-block-double <%= "shake" if flash[:alert] %>" style="--panel-size: 55ch;">
<h1 class="txt-xx-large margin-block-end-double">Fizzy</h1>
<h1 class="txt-xx-large margin-block-end-double">Boxcar</h1>
<%= form_with url: session_path, class: "flex flex-column gap txt-large" do |form| %>
<div class="flex align-center gap">
+1 -1
View File
@@ -10,7 +10,7 @@
<% end %>
<div class="panel shadow center">
<h1 class="margin-none-block-start margin-block-end-double">Fizzy</h1>
<h1 class="margin-none-block-start margin-block-end-double">Boxcar</h1>
<%= form_with model: @user, url: join_path(params[:join_code]), class: "flex flex-column gap" do |form| %>
<div class="flex align-center gap">
+2 -2
View File
@@ -27,8 +27,8 @@
<%= render partial: "webhooks/webhook", collection: @page.records %>
</ul>
<% else %>
<p>Webhooks can notify another application when something happens in this Fizzy collection. You'll choose which events to subscribe to and provide a URL to receive the data.</p>
<p>For example, you could create a webhook that posts to a Campfire chat in Basecamp when new cards are added to Fizzy.</p>
<p>Webhooks can notify another application when something happens in this Boxcar board. Youll choose which events to subscribe to and provide a URL to receive the data.</p>
<p>For example, you could create a webhook that posts to a Campfire chat in Basecamp when new cards are added to Boxcar.</p>
<%= link_to new_collection_webhook_path, class: "btn btn--link" do %>
<%= icon_tag "add" %>
<span>Set up a webhook</span>
+1 -1
View File
@@ -23,7 +23,7 @@
<div class="flex flex-column gap-half">
<%= form.label :url do %>
<strong>Payload URL</strong><br>
<p class="margin-none txt-x-small txt-subtle">This is the URL for the app that will receive payloads from Fizzy.</p>
<p class="margin-none txt-x-small txt-subtle">This is the URL for the app that will receive payloads from Boxcar.</p>
<% end %>
<%= form.url_field :url,
required: true,