View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0012039 | Taler | libeufin-bank webui | public | 2026-11-10 23:42 | 2026-11-10 23:43 |
| Reporter | bot-cg [agent] | Assigned To | Resolution deadline | ||
| Implementer | Reviewer | ||||
| Release signed by | Deployed by | ||||
| Verifier | Communicator | CM_7 | |||
| Data protection authority notification required | No | ||||
| CSIRT notification required | No | ||||
| Estimated effort (hours) | Actual effort (hours) | 0 | |||
| Fast-track | No | ||||
| Work package | none | ||||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | new | Resolution | open | ||
| Summary | 0012039: Bank: 'Update password' page does not focus the password field | ||||
| Description | What happens: The redesign removed UpdateAccountPassword's `focus` prop together with the doAutoFocus on 'Current password' (the Routing call sites used to pass `focus`). #/my-password and the admin route #/profile/<account>/change-password now focus nothing. Measured activeElement: BODY in both. Expected: 'Current password' focused when changing your own password. 'New password' focused when an administrator resets another account (no current-password field there). Where: - packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx:206 - packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx:243 Measured in headless Chromium (document.activeElement): before: BODY after: INPUT#current-password (own account); INPUT#password 'New password' (admin for another account) Proposed fix: doAutoFocus ref on the current-password input, and on the new-password input when the account is not the signed-in user. The page has no other use, so no prop is needed. Patch against taler-typescript-core master attached; the same change is committed on branch dev/bots/autofocus (durian). Screenshots attached (focused element outlined in red): 'before' is master, 'after' is with the patch. Verified: tsc ok; unit tests 94/94; Chromium screenshots, own and admin (shots/bank--password-change-admin--{before,after}.png); also through the real Routing at #/my-password | ||||
| Tags | No tags attached. | ||||
| Attached Files | bank--password-change.diff (2,021 bytes)
diff --git a/packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx b/packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx
index fa2403bdf..f1fd6d1c9 100644
--- a/packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx
+++ b/packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx
@@ -35,6 +35,7 @@ import { useBankChallengeHandlerContext } from "../../context/challenge.js";
import { useSessionState } from "../../hooks/session.js";
import { OperationError } from "../../components/OperationError.js";
import { undefinedIfEmpty } from "../../utils.js";
+import { doAutoFocus } from "../PaytoWireTransferForm.js";
import { ProfileNavigation } from "../ProfileNavigation.js";
export function UpdateAccountPassword({
@@ -202,6 +203,7 @@ export function UpdateAccountPassword({
</label>
<div class="mt-2">
<input
+ ref={doAutoFocus}
type="password"
class="block w-full rounded-md border-0 py-1.5 text-onBackground shadow-sm ring-1 ring-inset ring-gray-300 data-[error=true]:ring-red-500 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary sm:text-sm sm:leading-6"
name="current"
@@ -236,6 +238,9 @@ export function UpdateAccountPassword({
</label>
<div class="mt-2">
<input
+ // An administrator resetting another account's password
+ // is not asked for the current one.
+ ref={accountIsTheCurrentUser ? undefined : doAutoFocus}
type="password"
class="block w-full rounded-md border-0 py-1.5 text-onBackground shadow-sm ring-1 ring-inset ring-gray-300 data-[error=true]:ring-red-500 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary sm:text-sm sm:leading-6"
name="password"
| ||||
| child of | 0012024 | new | Web UIs (bank, wallet, exchange AML/KYC, challenger, auditor, web-util forms): dialogs and single-purpose forms open without keyboard focus on the obvious field |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-11-10 23:42 | bot-cg | New Issue | |
| 2026-11-10 23:42 | bot-cg | Relationship added | child of 0012024 |
| 2026-11-10 23:43 | bot-cg | File Added: bank--password-change.diff | |
| 2026-11-10 23:43 | bot-cg | File Added: bank--password-change--before.png | |
| 2026-11-10 23:43 | bot-cg | File Added: bank--password-change--after.png |