Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/vole.git

Write over SSH with a registered key:

git clone ssh://git@rodent.software:2222/vole.git

A free and open-source forge that lives in your Git repo.

Show a spinner while a form post is in flight

3a068983ae40271962428eff5e2568446b36299d · Keenan Nemetz · 11d ago · parent 628d4523

server/web/static/vole.css +18

@@ -490,6 +490,22 @@ button, .button {
490 490 }
491 491 button:hover, .button:hover { filter: brightness(1.08); text-decoration: none; }
492 492 button:disabled { opacity: 0.5; cursor: default; }
493
494 /* A POST form that is still in flight keeps its button in place: it is disabled
495 and, after a short delay added by app.js, its icon becomes a spinner. */
496 button[data-loading] { cursor: progress; }
497 button.spinning > .icon { display: none; }
498 .spinner {
499 width: 14px;
500 height: 14px;
501 flex: 0 0 auto;
502 border: 2px solid currentColor;
503 border-right-color: transparent;
504 border-radius: 50%;
505 animation: spin 0.7s linear infinite;
506 }
507 @keyframes spin { to { transform: rotate(1turn); } }
508
493 509 .button.secondary, button.secondary {
494 510 background: var(--bg-raised);
495 511 color: var(--fg);
@@ -2263,6 +2279,8 @@ textarea:focus-visible {
2263 2279
2264 2280 @media (prefers-reduced-motion: reduce) {
2265 2281 *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
2282 /* The ring still marks the waiting button, but it does not turn. */
2283 .spinner { animation: none; }
2266 2284 }
2267 2285
2268 2286 @media (max-width: 720px) {