feat: preserve form values and show field errors on submit

- keep submitted values and API field violations across redirects
- reopen the failed modal and highlight invalid fields
- show inline HTML5 validation messages instead of browser bubbles
- keep content-admin errors on the originating page
This commit is contained in:
2026-10-22 22:41:35 +03:00
parent 3827955909
commit d287dd3119
20 changed files with 636 additions and 66 deletions

View File

@@ -143,6 +143,19 @@ p { margin-top: 0; }
.label { display: block; margin-bottom: 0.25rem; font-size: 0.875rem; font-weight: 500; }
.hint { margin-top: 0.25rem; font-size: 0.75rem; color: var(--c-text-muted); }
/* Ошибки формы: поле с ошибкой и сообщение под ним */
.input.is-invalid,
select.is-invalid,
textarea.is-invalid,
input.is-invalid { border-color: var(--c-tone-neg); box-shadow: 0 0 0 3px var(--c-accent-soft); }
input[type="checkbox"].is-invalid,
input[type="radio"].is-invalid { outline: 2px solid var(--c-tone-neg); outline-offset: 2px; }
.field-error { margin: 0.25rem 0 0; font-size: 0.75rem; line-height: 1.35; color: var(--c-tone-neg); }
.form-error-summary {
margin: 0 0 0.25rem; padding: 0.625rem 0.75rem; border: 1px solid var(--c-tone-neg);
background: var(--c-accent-soft); color: var(--c-tone-neg); font-size: 0.8125rem;
}
/* ===== B3-тема поверх Bootstrap: navbar, offcanvas, кнопки, ссылки ===== */