Fix add-form JS: name→sort-name sync and related-game disable
Two bugs in the add forms, both root-caused via the e2e harness: 1. add_game Name → Sort name never synced. syncSelectInputUntilChanged was scoped to "form", but the first <form> on every page is the navbar logout form — the add-form fields live in a later form, so the delegated listener never heard their events. Scope to "#add-form" (the add-form wrapper). Also switch the sync from the "change" event to "input" so Sort name mirrors Name live as you type, not only on blur. 2. add_purchase Related game not disabled when Type == Game. disableElementsWhenTrue set `.disabled` on #id_related_game, which is the SearchSelect wrapper <div> (a <div> ignores `disabled`). Target the inner [data-search-select-search] input instead, so the widget is actually disabled. Adds two e2e regression tests (live sync; type-game disables the related-game search input and re-enables it for other types). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+6
-1
@@ -53,7 +53,12 @@ onSwap("#id_separate_prices", (checkbox) => {
|
||||
});
|
||||
|
||||
function setupElementHandlers(): void {
|
||||
disableElementsWhenTrue("#id_type", "game", ["#id_name", "#id_related_game"]);
|
||||
// related_game is a SearchSelect: its #id_related_game wrapper is a <div>
|
||||
// (ignores `disabled`), so target the inner search <input> instead.
|
||||
disableElementsWhenTrue("#id_type", "game", [
|
||||
"#id_name",
|
||||
"#id_related_game [data-search-select-search]",
|
||||
]);
|
||||
}
|
||||
|
||||
onSwap("#id_type", (typeSelect) => {
|
||||
|
||||
Reference in New Issue
Block a user