fabrica

hanna/fabrica

style(web): flatten the push-mirror authorization and actions row

bba0601 · hanna committed on 2026-07-26

Authorization is now two plain optional fields (username, token) instead
of a collapsible dropdown, and the "Sync when commits are pushed"
checkbox sits to the right of the Add push mirror button.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed by hannaSSH key fingerprint: SHA256:4g9cWhkAAw8gwqhJUcVbSnGEvdGwklW+1Aa/fMUu59k
18 files changed · +38 −17UnifiedSplit
assets/base.css +1 −9
@@ -1056,15 +1056,7 @@ body.drawer-open .drawer-backdrop {
10561056 .empty-note {
10571057 margin: 0 0 0.75rem;
10581058 }
1059-/* Mirror settings: the collapsible Authorization block and error text. */
1060-.mirror-auth {
1061- margin: 0.4rem 0 0.6rem;
1062-}
1063-.mirror-auth summary {
1064- cursor: pointer;
1065- color: var(--fb-fg-muted);
1066- margin-bottom: 0.4rem;
1067-}
1059+/* Mirror settings: the last-error text on a configured mirror. */
10681060 .mirror-error {
10691061 color: var(--fb-danger);
10701062 }
crates/web/src/repo.rs +8 −8
@@ -1148,18 +1148,18 @@ fn mirror_section(id: &str, csrf: &str, mirrors: &[store::Mirror]) -> Markup {
11481148 label for="m-filter" { "Branch filter (optional)" }
11491149 input type="text" id="m-filter" name="branch_filter" placeholder="main release/*";
11501150 p class="muted field-hint" { "Space- or comma-separated branch patterns. Leave blank to mirror all branches. Tags are always mirrored." }
1151- details class="mirror-auth" {
1152- summary { "Authorization" }
1153- div class="admin-form-row" {
1154- input type="text" name="username" placeholder="username (optional)" autocomplete="off";
1155- input type="password" name="secret" placeholder="password or access token" autocomplete="off";
1156- }
1151+ label { "Authorization (optional)" }
1152+ div class="admin-form-row" {
1153+ input type="text" name="username" placeholder="username" autocomplete="off";
1154+ input type="password" name="secret" placeholder="password or access token" autocomplete="off";
11571155 }
1158- label class="checkbox" { input type="checkbox" name="sync_on_push" value="1"; " Sync when commits are pushed" }
11591156 label for="m-interval" { "Mirror interval" }
11601157 input type="text" id="m-interval" name="interval" value="1h0m0s";
11611158 p class="muted field-hint" { "Time units are “h”, “m”, “s”. 0 disables periodic sync (minimum 10m)." }
1162- button class="btn btn-primary inline-btn" type="submit" { "Add push mirror" }
1159+ div class="admin-form-actions" {
1160+ button class="btn btn-primary inline-btn" type="submit" { "Add push mirror" }
1161+ label class="checkbox" { input type="checkbox" name="sync_on_push" value="1"; " Sync when commits are pushed" }
1162+ }
11631163 }
11641164 }
11651165 }
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/FETCH_HEAD +2 −0
@@ -0,0 +1,2 @@
1+eb0238991c5e8cded8232343b4000884094a1b1a branch 'darwin' of https://github.com/hqnna/dots
2+37157e7f0e8a390c3579e4bfc14dbbbf1d06a711 branch 'main' of https://github.com/hqnna/dots
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/HEAD +1 −0
@@ -0,0 +1 @@
1+ref: refs/heads/main
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/config +9 −0
@@ -0,0 +1,9 @@
1+[core]
2+ bare = true
3+ repositoryformatversion = 0
4+ filemode = true
5+ logallrefupdates = true
6+[receive]
7+ denyNonFastForwards = false
8+[gc]
9+ auto = 0
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/description +1 −0
@@ -0,0 +1 @@
1+Unnamed repository; edit this file 'description' to name the repository.
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/hooks/README.sample +5 −0
@@ -0,0 +1,5 @@
1+#!/bin/sh
2+#
3+# Place appropriately named executable hook scripts into this directory
4+# to intercept various actions that git takes. See `git help hooks` for
5+# more information.
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/hooks/post-receive +2 −0
@@ -0,0 +1,2 @@
1+#!/bin/sh
2+exec "/nix/store/qjxn42ipy5vbbqz0a260yyni78zkxj9w-fabrica-0.1.0/bin/.fabrica-wrapped" hook post-receive
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/hooks/pre-receive +2 −0
@@ -0,0 +1,2 @@
1+#!/bin/sh
2+exit 0
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/info/exclude +2 −0
@@ -0,0 +1,2 @@
1+# File patterns to ignore; see `git help ignore` for more information.
2+# Lines that start with '#' are comments.
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/logs/HEAD +1 −0
@@ -0,0 +1 @@
1+0000000000000000000000000000000000000000 37157e7f0e8a390c3579e4bfc14dbbbf1d06a711 hanna <me@hanna.lol> 1785034144 -0400 fetch --prune --quiet https://github.com/hqnna/dots +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/*: storing head
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/logs/refs/heads/darwin +1 −0
@@ -0,0 +1 @@
1+0000000000000000000000000000000000000000 eb0238991c5e8cded8232343b4000884094a1b1a hanna <me@hanna.lol> 1785034144 -0400 fetch --prune --quiet https://github.com/hqnna/dots +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/*: storing head
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/logs/refs/heads/main +1 −0
@@ -0,0 +1 @@
1+0000000000000000000000000000000000000000 37157e7f0e8a390c3579e4bfc14dbbbf1d06a711 hanna <me@hanna.lol> 1785034144 -0400 fetch --prune --quiet https://github.com/hqnna/dots +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/*: storing head
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/objects/pack/pack-2d54248c7887b3f612ba16762309f1f7032c936f.idx +0 −0

Binary file not shown.

data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/objects/pack/pack-2d54248c7887b3f612ba16762309f1f7032c936f.pack +0 −0

Binary file not shown.

data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/objects/pack/pack-2d54248c7887b3f612ba16762309f1f7032c936f.rev +0 −0

Binary file not shown.

data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/refs/heads/darwin +1 −0
@@ -0,0 +1 @@
1+eb0238991c5e8cded8232343b4000884094a1b1a
data/repos/01/01kye56ybp94wrec3fm02e9ge8.git/refs/heads/main +1 −0
@@ -0,0 +1 @@
1+37157e7f0e8a390c3579e4bfc14dbbbf1d06a711