From 99792d93ddf1d9632a38b6442c70878ac1699d73 Mon Sep 17 00:00:00 2001 From: Matthias Hochmeister Date: Mon, 20 Apr 2026 11:18:18 +0200 Subject: [PATCH] fix(sync): calculate G26 gueltig_bis (default 5y, override via Anmerkungen) and load all Untersuchungen via URL param --- sync/src/scraper.ts | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/sync/src/scraper.ts b/sync/src/scraper.ts index 71998f0..99a585a 100644 --- a/sync/src/scraper.ts +++ b/sync/src/scraper.ts @@ -967,7 +967,8 @@ async function scrapeMemberUntersuchungen( ): Promise { const url = `${BASE_URL}/fdisk/module/mgvw/untersuchungen/UntersuchungenList.aspx` + `?search=1&searchid_mitgliedschaften=${idMitgliedschaft}&id_personen=${idPersonen}` - + `&id_mitgliedschaften=${idMitgliedschaft}&searchid_personen=${idPersonen}&searchid_maskmode=`; + + `&id_mitgliedschaften=${idMitgliedschaft}&searchid_personen=${idPersonen}&searchid_maskmode=` + + `&anzeige_count=ALLE`; await frame_goto(frame, url); @@ -978,22 +979,9 @@ async function scrapeMemberUntersuchungen( return []; } - // The initial page load may only show a default number of rows. - // Set the dropdown to ALLE and submit the form (which includes ViewState) - // so ASP.NET returns all records. - const needsReload = await frame.evaluate(() => { - const sel = document.querySelector('select[name="anzeige_count"]') as HTMLSelectElement | null; - if (!sel) return false; - if (sel.value === 'ALLE') return false; - sel.value = 'ALLE'; - const form = sel.closest('form') as HTMLFormElement | null; - if (form) { form.submit(); return true; } - return false; - }).catch(() => false); - - if (needsReload) { - await frame.waitForNavigation({ waitUntil: 'networkidle', timeout: 15000 }).catch(() => {}); - } + // Belt-and-suspenders: if the URL param didn't stick, use Playwright's selectOption + // which properly triggers the ASP.NET change event + postback. + await selectAlleAnzeige(frame); // Parse the table using navigateAndGetTableRows logic (reuse existing page state) // Re-collect rows from the already-loaded page