diff --git a/content_script.js b/content_script.js index 50b0cd7..15486e2 100644 --- a/content_script.js +++ b/content_script.js @@ -32,7 +32,7 @@ let disruption = ""; const ensureSettingsProp = (prop, existCallback, noExistCallback) => { return settings.get(prop).then(foundKeys => { console.debug("storage returned", foundKeys); - if (prop in foundKeys){ + if (prop in foundKeys) { return existCallback(foundKeys[prop]); } else { return noExistCallback(); @@ -84,7 +84,7 @@ function processSingleAddedNode(n) { if (currentStage.match(n)) { console.info(currentStage.name, "matched: ", n); genericExecute(currentStage, n); - + } else { console.debug(currentStage.name, "did not match: ", n); } @@ -99,9 +99,9 @@ function processMutations(mutationList, observer) { if (currentStage === undefined) { currentStage = stages.shift(); } - if (!("name" in currentStage)){ + if (!("name" in currentStage)) { // stages always have a `name`, so this must be the disruption type split - if (disruption in currentStage){ + if (disruption in currentStage) { stages.unshift(...currentStage[disruption]); currentStage = stages.shift(); } else if (disruption == "") { @@ -285,7 +285,7 @@ const iDidntTravel = { match: node => node.classList.contains("antrags-typ-auswahl"), execute: node => { const noTravel = $$(node, "input#antragstyp-nicht-angetreten"); - if (noTravel instanceof HTMLInputElement){ + if (noTravel instanceof HTMLInputElement) { noTravel.dispatchEvent(new Event("change")); return true; } @@ -298,7 +298,7 @@ const iWentBack = { match: node => node.classList.contains("antrags-typ-auswahl"), execute: node => { const wentBack = $$(node, "input#antragstyp-abgebrochen"); - if (wentBack instanceof HTMLInputElement){ + if (wentBack instanceof HTMLInputElement) { wentBack.dispatchEvent(new Event("change")); return true; } @@ -481,7 +481,13 @@ const continueToPayout = { /** @type Stage */ const enterPaymentDetails = { name: "enterPaymentDetails", - match: node => node.querySelector(".entschaedigung"), + match: node => { + // Did not travel + if (node.classList.contains("Entschaedigung")) return true; + // Delayed + if (node.querySelector(".Entschaedigung__description")) return true; + return false; + }, execute: node => { if (!hasConfiguredBankDetails) return true; const xfrRadio = node.querySelector('#ueberweisung'); @@ -505,8 +511,10 @@ const enterPaymentDetails = { } const defaultStages = [ startClaim, fillData, clickContinue, - {"delay": [iWasDelayed, moreThan60Minutes, continueToForm, - focusDepartureInput, jumpToTimeInput], "nodep": [iDidntTravel, focusDepartureInput], "abort": [iWentBack, focusDepartureInput, focusTurnaroundStationInput]}, + { + "delay": [iWasDelayed, moreThan60Minutes, continueToForm, + focusDepartureInput, jumpToTimeInput], "nodep": [iDidntTravel, focusDepartureInput], "abort": [iWentBack, focusDepartureInput, focusTurnaroundStationInput] + }, activateAppellationDropdown, enterAppellationAndActivateTitleDropdown, enterTitleAndActivateCountryDropdown, enterCountry, enterTextPersonalData, /* continueToPayout, */ enterPaymentDetails