implement country setting

This commit is contained in:
iw0 2024-04-10 18:47:48 +02:00
parent 2d0b884c0d
commit 37a04c2155

View File

@ -258,8 +258,8 @@ const activateAppellationDropdown = {
match: node => node.classList.contains("persoenlicheangaben") && hasConfiguredPersonalData, match: node => node.classList.contains("persoenlicheangaben") && hasConfiguredPersonalData,
execute: node => { execute: node => {
return ensureSettingsProp("addr__appellation", () => { return ensureSettingsProp("addr__appellation", () => {
const selectList = node.querySelector('.test-name-anrede.db-web-select'); const selectList = node.querySelector('.test-name-anrede.db-web-select');
selectList.querySelector('button').dispatchEvent(_clickEv()); selectList.querySelector('button').dispatchEvent(_clickEv());
}, () => true); }, () => true);
} }
} }
@ -269,44 +269,49 @@ const enterAppellationAndActivateTitleDropdown = {
match: node => node.classList.contains("db-web-dropdown-outer-container") && node.querySelector(".db-web-select-list") !== null, match: node => node.classList.contains("db-web-dropdown-outer-container") && node.querySelector(".db-web-select-list") !== null,
execute: node => { execute: node => {
ensureSettingsProp("addr__appellation", v => { ensureSettingsProp("addr__appellation", v => {
const selectList = $$(node, "ul"); const selectList = $$(node, "ul");
selectList.querySelector(`[data-value=${foundKeys.addr__appellation}]`).dispatchEvent(_clickEv()); selectList.querySelector(`[data-value=${foundKeys.addr__appellation}]`).dispatchEvent(_clickEv());
}, () => { }, () => {
node.parentElement.parentElement.parentElement.querySelector("button").dispatchEvent(_clickEv()); node.parentElement.parentElement.parentElement.querySelector("button").dispatchEvent(_clickEv());
}); });
$('.test-name-titel.db-web-select button').dispatchEvent(_clickEv()); $('.test-name-titel.db-web-select button').dispatchEvent(_clickEv());
return true; return true;
} }
} }
const enterTitle = { const enterTitleAndActivateCountryDropdown = {
name: "enterTitle", name: "enterTitle",
/**@param {Element} node */ /**@param {Element} node */
match: node => node.classList.contains("db-web-dropdown-outer-container") && node.querySelector(".db-web-select-list") !== null, match: node => node.classList.contains("db-web-dropdown-outer-container") && node.querySelector(".db-web-select-list") !== null,
/**@param {Element} node */ /**@param {Element} node */
execute: node => { execute: node => {
settings.get("addr__title").then(foundKeys => { ensureSettingsProp("addr__title", v => {
console.log("storage returned", foundKeys);
ensureSettingsProp("addr__title", v => {
const selectList = $$(node, "ul"); const selectList = $$(node, "ul");
selectList.querySelector(`[data-value=${foundKeys.addr__title}]`).dispatchEvent(_clickEv()); selectList.querySelector(`[data-value=${foundKeys.addr__title}]`).dispatchEvent(_clickEv());
}, () => { node.parentElement.parentElement.parentElement.querySelector("button").dispatchEvent(_clickEv()); }) }, () => {
}); node.parentElement.parentElement.parentElement.querySelector("button").dispatchEvent(_clickEv());
}
);
document.querySelector(".test-adresse-land.db-web-select button").dispatchEvent(_clickEv());
return true; return true;
} }
} }
const enterFirstName = {
name: "enterFirstName", const enterCountry = {
name: "enterCountry",
expects: "mutation", expects: "mutation",
match: mutation => { match: mutation => {
return mutation.target.parentNode.parentNode.classList.contains("test-name-titel") && return mutation.target.parentNode.parentNode.classList.contains("test-adresse-land") &&
Array.from(mutation.removedNodes).some( Array.from(mutation.addedNodes).some(
n => n.nodeType === Node.ELEMENT_NODE && n => n.nodeType === Node.ELEMENT_NODE &&
n.classList.contains("db-web-dropdown-outer-container")) n.classList.contains("db-web-dropdown-outer-container"))
}, },
execute: () => { execute: () => {
let node = document; ensureSettingsProp("addr__country", v => {
settings.get() const selectList = $(".test-adresse-land ul");
selectList.querySelector(`[data-value=${v}]`).dispatchEvent(_clickEv());
}, () => $(".test-adresse-land.db-web-select button").dispatchEvent(_clickEv()));
return true;
} }
} }
@ -354,7 +359,7 @@ const enterTextPersonalData = {
continueBtn.dispatchEvent(_clickEv()); continueBtn.dispatchEvent(_clickEv());
}, delay); }, delay);
}); });
return true; return true;
}, },
} }
@ -371,7 +376,7 @@ const continueToPayout = {
const enterPaymentDetails = { const enterPaymentDetails = {
name: "enterPaymentDetails", name: "enterPaymentDetails",
match: node => node.querySelector(".entschaedigung") && match: node => node.querySelector(".entschaedigung") &&
hasConfiguredBankDetails, hasConfiguredBankDetails,
execute: node => { execute: node => {
const xfrRadio = node.querySelector('#ueberweisung'); const xfrRadio = node.querySelector('#ueberweisung');
xfrRadio.dispatchEvent(new Event('change')); xfrRadio.dispatchEvent(new Event('change'));
@ -393,9 +398,11 @@ const enterPaymentDetails = {
} }
const defaultStages = [ const defaultStages = [
startClaim, fillData, clickContinue, startClaim, fillData, clickContinue,
iWasDelayed, moreThan60Minutes, continueToForm, focusDepartureInput, jumpToTimeInput, iWasDelayed, moreThan60Minutes, continueToForm,
activateAppellationDropdown, enterAppellationAndActivateTitleDropdown, enterTitle, focusDepartureInput, jumpToTimeInput,
enterTextPersonalData, /* continueToPayout */, enterPaymentDetails activateAppellationDropdown, enterAppellationAndActivateTitleDropdown,
enterTitleAndActivateCountryDropdown, enterCountry,
enterTextPersonalData, /* continueToPayout, */ enterPaymentDetails
]; ];
/** @type Stage[] */ /** @type Stage[] */
stages = defaultStages; stages = defaultStages;