Merge pull request #1376 from basecamp/jz/10/22/25

Jz/10/22/25
This commit is contained in:
Jason Zimdars
2025-10-23 07:58:00 -07:00
committed by GitHub
14 changed files with 30 additions and 23 deletions
+1
View File
@@ -0,0 +1 @@
<svg height="37" viewBox="0 0 37 37" width="37" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m35.4812 22.164c2.0248-2.0239 2.0248-5.3007-.0003-7.3248-2.0198-2.0258-5.301-2.0258-7.319.0007-2.0281 2.0232-2.0292 5.3012 0 7.3241 2.017 2.0215 5.2989 2.0221 7.3193 0z"></path><path d="m22.1611 8.84334c2.0249-2.02387 2.0249-5.30008-.0002-7.32415-2.0198-2.02571-5.301-2.025711-7.319.00075-2.0281 2.02309-2.0292 5.30112 0 7.32404 2.017 2.02152 5.2989 2.02152 7.3192-.00064z"></path><path d="m14.8417 35.4878c-2.0004-1.9957-1.9608-5.2847 0-7.3054 1.6632-1.6643 1.6633-4.3568 0-6.0182-1.6514-1.6494-4.3462-1.6166-6.01902 0-2.01326 2.0137-5.29117 2.0138-7.30726 0-2.000628-1.9982-1.960613-5.3031.00011-7.3247 1.64664-1.6469 1.614-4.3531 0-6.02035-2.020627-2.01857-2.020787-5.2857 0-7.30443 2.01572-2.019741 5.29428-2.019741 7.30798.00069 2.00119 1.99779 1.96109 5.28187-.0009 7.30374-1.6608 1.66305-1.6608 4.35645.00061 6.02035 1.65198 1.6478 4.34698 1.6154 6.01848 0 2.0158-2.0162 5.3064-2.0167 7.3201 0 2.004 1.9963 1.9646 5.3019 0 7.3247-1.6606 1.661-1.6615 4.354 0 6.0188 2.0241 2.0154 2.0252 5.2892 0 7.3055-2.0128 2.0155-5.3039 2.0155-7.3201-.0007z"></path></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+1 -1
View File
@@ -188,7 +188,7 @@
.card-field__description {
lexxy-toolbar {
border-block-start: 1px solid var(--color-ink-light);
margin-block-start: var(--block-margin) !important;
margin-block-start: var(--block-space-half) !important;
}
}
+1
View File
@@ -18,6 +18,7 @@
background: none;
}
.icon--37signals { --svg: url("37signals.svg"); }
.icon--add { --svg: url("add.svg "); }
.icon--add--meta { --svg: url("add--meta.svg "); }
.icon--arrow-left { --svg: url("arrow-left.svg "); }
@@ -5,7 +5,6 @@
:where(h1, h2, h3, h4, h5, h6) {
display: block;
font-weight: 800;
hyphens: auto;
letter-spacing: -0.02ch;
line-height: 1.1;
margin-block: var(--block-margin);
@@ -34,7 +33,6 @@
}
:where(p, blockquote) {
hyphens: auto;
letter-spacing: -0.005ch;
}
@@ -79,7 +77,6 @@
&[data-language] {
border-radius: 0.5em;
display: block;
hyphens: none;
overflow-x: auto;
padding: 0.5lh 2ch;
tab-size: 2;
@@ -7,7 +7,7 @@ class Cards::PublishesController < ApplicationController
if add_another_param?
redirect_to @collection.cards.create!, notice: "Card added"
else
redirect_to @card
redirect_to @card.collection
end
end
+1 -1
View File
@@ -38,7 +38,7 @@ class CardsController < ApplicationController
def destroy
@card.destroy!
redirect_to cards_path(collection_ids: [ @card.collection ]), notice: ("Card deleted" unless @card.creating?)
redirect_to @card.collection, notice: ("Card deleted" unless @card.creating?)
end
private
+14 -11
View File
@@ -32,17 +32,20 @@ module AccessesHelper
displayed_watchers = watchers.limit(MAX_DISPLAYED_WATCHERS)
overflow_count = watchers.count - MAX_DISPLAYED_WATCHERS
tag.div(class: "collection-tools__watching") do
safe_join([
safe_join(displayed_watchers.map { |watcher| avatar_tag(watcher) }),
(tag.div(data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside" }) do
concat tag.button("+#{overflow_count}", class: "overflow-count btn btn--circle borderless", data: { action: "dialog#open" }, aria: { label: "Show #{overflow_count} more watchers" })
concat(tag.dialog(class: "collection-tools__watching-dialog dialog panel", data: { dialog_target: "dialog" }, aria: { hidden: "true" }) do
safe_join(watchers.map { |watcher| avatar_tag(watcher) })
end)
end if overflow_count > 0)
].compact)
end
safe_join([
tag.strong(displayed_watchers.any? ? "Watching for new cards" : "No one is watching for new cards", class: "txt-uppercase"),
tag.div(class: "collection-tools__watching") do
safe_join([
safe_join(displayed_watchers.map { |watcher| avatar_tag(watcher) }),
(tag.div(data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside" }) do
concat tag.button("+#{overflow_count}", class: "overflow-count btn btn--circle borderless", data: { action: "dialog#open" }, aria: { label: "Show #{overflow_count} more watchers" })
concat(tag.dialog(class: "collection-tools__watching-dialog dialog panel", data: { dialog_target: "dialog" }, aria: { hidden: "true" }) do
safe_join(watchers.map { |watcher| avatar_tag(watcher) })
end)
end if overflow_count > 0)
].compact)
end
])
end
def involvement_button(collection, access, show_watchers, icon_only)
+1 -1
View File
@@ -33,7 +33,7 @@
<span>Save changes</span>
</button>
<%= link_to "Cancel and go back", cards_path(collection_ids: [ @collection ]), data: { form_target: "cancel", turbo_frame: "_top" }, hidden: true %>
<%= link_to "Cancel and go back", @collection, data: { form_target: "cancel", turbo_frame: "_top" }, hidden: true %>
<% end %>
</div>
+1 -1
View File
@@ -1,7 +1,7 @@
<div class="flex align-center gap">
<label class="flex-item-grow">
<strong><%= form.text_field :name, name: "collection[name]", class: "input full-width txt-medium",
required: true, autofocus: true, placeholder: "Give it a name…",
required: true, autofocus: false, placeholder: "Give it a name…",
data: { action: "keydown.enter->form#submit:prevent, keydown.esc->form#cancel" } %></strong>
</label>
</div>
@@ -7,7 +7,6 @@
<hr class="separator--horizontal full-width" aria-hidden="true">
<footer>
<strong class="txt-uppercase">Watching for new cards</strong>
<%= access_involvement_advance_button(collection, Current.user, show_watchers: true) %>
</footer>
</div>
+6
View File
@@ -22,6 +22,12 @@
</div>
<%= render "filters/menu/hotkeys" %>
<div class="margin-block-start-half txt-x-small flex-inline align-center gap-half justify-center txt-subtle">
<span>Boxcar is designed, built, and backed by</span>
<strong><%= icon_tag "37signals" %> <a href="https://37signals.com" target="_blank" class="txt-subtle">37signals</a>.</strong>
</div>
<%= render "filters/menu/custom", filters: @user_filtering.filters %>
<%= render "filters/menu/collections", user_filtering: @user_filtering %>
<%= render "filters/menu/tags", user_filtering: @user_filtering %>
+1 -1
View File
@@ -3,7 +3,7 @@
<% content_for :header do %>
<%= render "filters/menu" %>
<div class="header__actions header__actions--start">
<%= link_to cards_path(collection_ids: [ @collection ]), class: "btn borderless txt-medium", data: { controller: "hotkey", action: "keydown.esc@document->hotkey#click" } do %>
<%= link_to @collection, class: "btn borderless txt-medium", data: { controller: "hotkey", action: "keydown.esc@document->hotkey#click" } do %>
<span class="overflow-ellipsis">
&larr;
<strong><%= @collection.name %></strong>
@@ -13,7 +13,7 @@ class Cards::PublishesControllerTest < ActionDispatch::IntegrationTest
post card_publish_path(card)
end
assert_redirected_to card
assert_redirected_to card.collection
end
test "create and add another" do
+1 -1
View File
@@ -10,7 +10,7 @@ class SmokeTest < ApplicationSystemTestCase
fill_in_lexxy with: "I am editing this thing"
click_on "Create card"
assert_selector "h1", text: "Hello, world!"
assert_selector "h3", text: "Hello, world!"
end
test "active storage attachments" do