new configuration version

This commit is contained in:
haburger 2024-12-11 15:39:51 +00:00
parent 03c476d316
commit 8647bf96aa
58 changed files with 331 additions and 85 deletions

View File

@ -45,7 +45,7 @@ spec:
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-76669ce293c5840d6e2c23c16822ffd3c143c498"
tag: "r-bdd002acfcff73d836b81b83744f3ba618e236f8"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth"
credentials: "git-credentials"
keystores:

View File

@ -76,6 +76,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -194,10 +195,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -55,6 +55,7 @@ general.edit=&Auml;ndern
general.email=E-Mail
general.email.address=E-Mail-Adresse
general.entryCode=Code-Eingabe
general.fieldRequired=Erforderliches Feld.
general.getStarted=Get started
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
@ -65,6 +66,10 @@ general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.recovery=Wiederherstellung
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und fahren Sie dann mit der erneuten Eingabe fort.
general.recoveryCode.repeatCodeModal.description=Ein verlorener oder falsch gespeicherter Wiederherstellungscode kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihren Code richtig gespeichert haben, wiederholen Sie ihn bitte unten.
general.recoveryCode.repeatCodeModal.title=Wiederherstellungscode wiederholen
general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!

View File

@ -76,6 +76,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -194,10 +195,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -55,6 +55,7 @@ general.edit=Editer
general.email=E-mail
general.email.address=Adresse e-mail
general.entryCode=Entrer le code
general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
@ -65,6 +66,10 @@ general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&ea
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.recovery=R&eacute;cup&eacute;ration
general.recoveryCode.inputLabel=Code de r&eacute;cup&eacute;ration
general.recoveryCode.repeatCodeError=Le code que vous avez saisi est incorrect. Veuillez vous assurer que vous l'avez enregistr&eacute; correctement, puis essayer de le soumettre &agrave; nouveau.
general.recoveryCode.repeatCodeModal.description=Un code de r&eacute;cup&eacute;ration perdu ou mal enregistr&eacute; peut rendre la r&eacute;cup&eacute;ration de votre compte plus difficile. Pour vous assurer que vous avez correctement enregistr&eacute; votre code, veuillez le r&eacute;p&eacute;ter ci-dessous.
general.recoveryCode.repeatCodeModal.title=R&eacute;p&eacute;ter le code de r&eacute;cup&eacute;ration
general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!

View File

@ -55,6 +55,7 @@ general.edit=Modificare
general.email=e-mail
general.email.address=Indirizzo e-mail
general.entryCode=Codice
general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
@ -65,6 +66,10 @@ general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.or=O
general.otherOptions=ALTRE OPZIONI
general.recovery=Ripristino
general.recoveryCode.inputLabel=Codice di ripristino
general.recoveryCode.repeatCodeError=Il codice inserito non &egrave; corretto. Assicurati di averlo memorizzato correttamente, quindi riprova a inviarlo.
general.recoveryCode.repeatCodeModal.description=Un codice di ripristino perso o memorizzato in modo errato pu&ograve; rendere pi&ugrave; difficile il recupero del tuo account. Per assicurarti di aver registrato correttamente il codice, inseriscilo di nuovo qui sotto.
general.recoveryCode.repeatCodeModal.title=Ripeti il codice di ripristino
general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!

View File

@ -2173,7 +2173,7 @@
<!-- source: pattern://1d38203c48e017b5b3812385 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/recovery_ongoing.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Recovery_Recovery_Auth_IdmUserIdPasswordLogin" class="ch.nevis.idm.authstate.IdmPasswordVerifyState" final="true" resumeState="true">
<AuthState name="Auth_Realm_Recovery_Recovery_Auth_IdmUserIdPasswordLogin" class="ch.nevis.idm.authstate.IdmPasswordVerifyState" final="true" resumeState="false">
<!-- source: pattern://584964c837512845d7940809 -->
<ResultCond name="clientNotFound" next="Auth_Realm_Recovery_Recovery_Auth_IdmUserIdPasswordLogin"/>
<!-- source: pattern://584964c837512845d7940809 -->
@ -2185,11 +2185,13 @@
<!-- source: pattern://584964c837512845d7940809 -->
<ResultCond name="locked" next="Auth_Realm_Recovery_Recovery_Auth_codeLocked"/>
<!-- source: pattern://584964c837512845d7940809 -->
<ResultCond name="no_code-true" next="Auth_Realm_Recovery_Recovery_getCredentials"/>
<!-- source: pattern://584964c837512845d7940809 -->
<ResultCond name="nowLocked" next="Auth_Realm_Recovery_Recovery_Auth_codeLocked"/>
<!-- source: pattern://584964c837512845d7940809 -->
<ResultCond name="ok" next="Auth_Realm_Recovery_Recovery_getCredentials" authLevel="auth.weak"/>
<ResultCond name="ok" next="Auth_Realm_Recovery_Recovery_Auth_codeVerified"/>
<!-- source: pattern://584964c837512845d7940809 -->
<ResultCond name="pwChange" next="Auth_Realm_Recovery_Recovery_Auth_IdmUserIdPasswordLogin" authLevel="auth.weak"/>
<ResultCond name="pwChange" next="Auth_Realm_Recovery_Recovery_Auth_IdmUserIdPasswordLogin"/>
<!-- source: pattern://584964c837512845d7940809 -->
<ResultCond name="tmpLocked" next="Auth_Realm_Recovery_Recovery_Auth_codeLocked"/>
<!-- source: pattern://584964c837512845d7940809 -->
@ -2201,6 +2203,8 @@
<!-- source: pattern://584964c837512845d7940809 -->
<GuiElem name="code" type="pw-text" label="not-used" value="hide-input-in-logs" optional="true"/>
<!-- source: pattern://584964c837512845d7940809 -->
<GuiElem name="no_code" type="checkbox" label="not-used" value="true" optional="true"/>
<!-- source: pattern://584964c837512845d7940809 -->
<GuiElem name="authRequestId" type="hidden" value="${sess:ch.nevis.auth.saml.request.id}" optional="true"/>
</Gui>
</Response>
@ -2302,6 +2306,14 @@
<Gui name="recovery_check_noCode"/>
</Response>
</AuthState>
<AuthState name="Auth_Realm_Recovery_Recovery_Auth_codeVerified" class="ch.nevis.esauth.auth.states.standard.TransformAttributes" final="false" resumeState="false">
<!-- source: pattern://584964c837512845d7940809 -->
<ResultCond name="default" next="Auth_Realm_Recovery_Recovery_getCredentials"/>
<!-- source: pattern://584964c837512845d7940809 -->
<Response value="AUTH_CONTINUE"/>
<!-- source: pattern://584964c837512845d7940809 -->
<property name="sess:agov.recovery.authenticatedWith" value="urn:qa.agov.ch:names:tc:authfactor:emailAndCode"/>
</AuthState>
<AuthState name="Auth_Realm_Recovery_Recovery_fido2Login" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://54c1b68431bc2e03b61edcaa -->
<ResultCond name="cancel" next="Auth_Realm_Recovery_Auth_Failed"/>

View File

@ -94,6 +94,7 @@ if (session['ch.adnovum.nevisidm.userDto'] != null && notes['lasterror'] == null
if (userState == 'ACTIVE') {
session.setAttribute('agov.recovery.authnContextClassRef', 'urn:qa.agov.ch:names:tc:ac:classes:recovery')
session.setAttribute('agov.recovery.authenticatedWith', 'urn:qa.agov.ch:names:tc:authfactor:email')
def maxLoiList = userDto.'**'.findAll { node -> node.name() == 'roles' && node.applicationName.text() == 'AGOV-Loi' }.collect({ node -> node.name.text() })
maxLoi = (maxLoiList == null || maxLoiList.isEmpty()) ? null : maxLoiList.sort().last()
@ -139,12 +140,10 @@ if (session['ch.adnovum.nevisidm.userDto'] != null && notes['lasterror'] == null
if ((maxLoi == 'level100') && (mustRecover == null)) {
// mustRecover role not set, so code needs to be checked
LOG.debug("Recovery: emailAndCode")
response.setSessionAttribute('agov.recovery.authenticatedWith', 'urn:qa.agov.ch:names:tc:authfactor:emailAndCode')
response.setResult('needCode')
return
} else {
LOG.debug("Recovery: email")
response.setSessionAttribute('agov.recovery.authenticatedWith', 'urn:qa.agov.ch:names:tc:authfactor:email')
response.setResult('ok')
return
}

View File

@ -44,7 +44,7 @@ spec:
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-76669ce293c5840d6e2c23c16822ffd3c143c498"
tag: "r-bdd002acfcff73d836b81b83744f3ba618e236f8"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend"
credentials: "git-credentials"
podSecurity:

View File

@ -71,6 +71,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -144,10 +145,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -50,6 +50,7 @@ general.edit=&Auml;ndern
general.email=E-Mail
general.email.address=E-Mail-Adresse
general.entryCode=Code-Eingabe
general.fieldRequired=Erforderliches Feld.
general.getStarted=Get started
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.recovery=Wiederherstellung
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und fahren Sie dann mit der erneuten Eingabe fort.
general.recoveryCode.repeatCodeModal.description=Ein verlorener oder falsch gespeicherter Wiederherstellungscode kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihren Code richtig gespeichert haben, wiederholen Sie ihn bitte unten.
general.recoveryCode.repeatCodeModal.title=Wiederherstellungscode wiederholen
general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!

View File

@ -71,6 +71,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -144,10 +145,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -50,6 +50,7 @@ general.edit=Editer
general.email=E-mail
general.email.address=Adresse e-mail
general.entryCode=Entrer le code
general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&ea
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.recovery=R&eacute;cup&eacute;ration
general.recoveryCode.inputLabel=Code de r&eacute;cup&eacute;ration
general.recoveryCode.repeatCodeError=Le code que vous avez saisi est incorrect. Veuillez vous assurer que vous l'avez enregistr&eacute; correctement, puis essayer de le soumettre &agrave; nouveau.
general.recoveryCode.repeatCodeModal.description=Un code de r&eacute;cup&eacute;ration perdu ou mal enregistr&eacute; peut rendre la r&eacute;cup&eacute;ration de votre compte plus difficile. Pour vous assurer que vous avez correctement enregistr&eacute; votre code, veuillez le r&eacute;p&eacute;ter ci-dessous.
general.recoveryCode.repeatCodeModal.title=R&eacute;p&eacute;ter le code de r&eacute;cup&eacute;ration
general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!

View File

@ -50,6 +50,7 @@ general.edit=Modificare
general.email=e-mail
general.email.address=Indirizzo e-mail
general.entryCode=Codice
general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.or=O
general.otherOptions=ALTRE OPZIONI
general.recovery=Ripristino
general.recoveryCode.inputLabel=Codice di ripristino
general.recoveryCode.repeatCodeError=Il codice inserito non &egrave; corretto. Assicurati di averlo memorizzato correttamente, quindi riprova a inviarlo.
general.recoveryCode.repeatCodeModal.description=Un codice di ripristino perso o memorizzato in modo errato pu&ograve; rendere pi&ugrave; difficile il recupero del tuo account. Per assicurarti di aver registrato correttamente il codice, inseriscilo di nuovo qui sotto.
general.recoveryCode.repeatCodeModal.title=Ripeti il codice di ripristino
general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!

View File

@ -4,6 +4,7 @@ class ProvidePhoneNumber {
providePhoneNumberLaterButton;
phoneNumberInput;
agovInputPhoneNumberInput;
repeatPhoneNumberInput;
agovInputRepeatPhoneNumberInput;
constructor() {
@ -13,7 +14,11 @@ class ProvidePhoneNumber {
this.phoneNumberInput = document.querySelector('#phoneNumberInput');
this.agovInputPhoneNumberInput = document.querySelector('#agovInputPhoneNumberInput');
this.agovInputRepeatPhoneNumberInput = document.querySelector('#agovInputRepeatPhoneNumberInput');
this.repeatPhoneNumberInput = document.querySelector('#repeatPhoneNumberInput');
document.querySelector('#laterCheckbox').checked = true;
this.initializePhoneInput(this.phoneNumberInput);
this.addPhoneInputEventHandlers(this.phoneNumberInput);
this.providePhoneNumberLaterButton.addEventListener('click', () => {
this.setVisible(this.laterModal);
@ -23,16 +28,22 @@ class ProvidePhoneNumber {
this.setInvisible(this.laterModal);
});
document.querySelector('#repeatPhoneNumberModalBack').addEventListener('click', () => {
this.initializePhoneInput(this.phoneNumberInput);
this.addPhoneInputEventHandlers(this.phoneNumberInput);
this.setInvisible(this.modal);
});
document.querySelector('#repeatPhoneNumberModalContinue').addEventListener('click', () => {
if (this.validateInput(this.agovInputRepeatPhoneNumberInput)) {
this.evaluatePhoneNumbersAndSubmit();
this.initializePhoneInput(this.phoneNumberInput);
this.addPhoneInputEventHandlers(this.phoneNumberInput);
}
});
document.querySelector('#providePhoneNumberContinueButton').addEventListener('click', () => {
if (this.validateInput(this.agovInputPhoneNumberInput)) {
this.clearModalInput();
this.repeatPhoneNumberInput.value = '';
this.initializePhoneInput(this.repeatPhoneNumberInput);
this.addPhoneInputEventHandlers(this.repeatPhoneNumberInput);
this.resetValidation(this.agovInputRepeatPhoneNumberInput);
this.showErrorBanner(false);
this.setVisible(this.modal);
@ -40,6 +51,35 @@ class ProvidePhoneNumber {
});
}
addPhoneInputEventHandlers(phoneInputElement) {
phoneInputElement.addEventListener('input', () => {
this.formatAndEmitPhoneNumberValue(phoneInputElement);
});
phoneInputElement.addEventListener('countrychange', () => {
this.onPhoneNumberCountryChange(phoneInputElement);
});
}
initializePhoneInput(inputElement) {
window.phoneNumberUtils.initializePhoneNumberField(inputElement);
if (inputElement.value) {
window.phoneNumberUtils.setNumber(inputElement.value);
this.formatAndEmitPhoneNumberValue(inputElement);
}
else {
window.phoneNumberUtils.formatAfterCountryChange();
inputElement.value = window.phoneNumberUtils.getInputValue();
}
}
onPhoneNumberCountryChange(inputElement) {
inputElement.value = window.phoneNumberUtils.formatAfterCountryChange();
}
formatAndEmitPhoneNumberValue(inputElement) {
inputElement.value = window.phoneNumberUtils.formatUsingInputValue();
}
resetValidation(agovInput) {
agovInput.validity = true;
}
@ -52,6 +92,12 @@ class ProvidePhoneNumber {
agovInput.validity = false;
return false;
}
else if (!window.phoneNumberUtils.validatePhoneNumber(false, true)) {
agovInput.supportingText = 2;
agovInput.focus();
agovInput.validity = false;
return false;
}
return true;
}
@ -69,13 +115,14 @@ class ProvidePhoneNumber {
}
arePhoneNumbersEqual() {
const phoneNumber = document.getElementById('phoneNumberInput').value.trim();
const repeatedPhoneNumber = document.getElementById('mobile').value.trim();
const phoneNumber = this.phoneNumberInput.value.trim();
const repeatedPhoneNumber = this.repeatPhoneNumberInput.value.trim();
return phoneNumber === repeatedPhoneNumber;
}
evaluatePhoneNumbersAndSubmit() {
if (this.arePhoneNumbersEqual()) {
document.querySelector('#mobile').value = this.repeatPhoneNumberInput.value.trim().replaceAll(' ', '');
document.querySelector('#submit').click();
}
else {
@ -84,11 +131,6 @@ class ProvidePhoneNumber {
}
}
clearModalInput() {
const phoneNumberInput = document.getElementById('mobile');
phoneNumberInput.value = '';
}
showErrorBanner(visible) {
const errorBanner = document.getElementById('errorBanner');
if (visible) {
@ -101,6 +143,6 @@ class ProvidePhoneNumber {
}
document.addEventListener('DOMContentLoaded', () => {
document.dispatchEvent(new Event('initModal'));
document.dispatchEvent(new Event('initPhoneNumberUtils'));
window.providePhoneNumber = new ProvidePhoneNumber();
});

View File

@ -6,7 +6,7 @@
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
<div class="flex mb-6 items-baseline">
<div class="flex mb-8 items-baseline">
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">
$text.get("providePhoneNumber.title")
</h3>
@ -32,6 +32,8 @@
data-value=""
data-type="tel"
data-autofocus="true"
data-is_icon_padding_ignored="true"
data-email_invalid="$text.get("general.wrongPhoneNumber")"
data-email_required="$text.get("general.fieldRequired")">
</agov-input>
</div>
@ -94,22 +96,34 @@
$text.get("providePhoneNumber.modal.description")
</p>
</div>
<agov-input
id="agovInputRepeatPhoneNumberInput"
data-label="$text.get("providePhoneNumber.modal.inputLabel")"
data-id="repeatPhoneNumberInput"
data-name="repeatPhoneNumberInput"
data-placeholder=""
data-value=""
data-type="tel"
data-autofocus="true"
data-is_icon_padding_ignored="true"
data-email_invalid="$text.get("general.wrongPhoneNumber")"
data-email_required="$text.get("general.fieldRequired")">
</agov-input>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="flex flex-col flex-auto block">
class="hidden flex flex-col flex-auto block">
<agov-input
id="agovInputRepeatPhoneNumberInput"
id="agovInputMobile"
data-label="$text.get("providePhoneNumber.modal.inputLabel")"
data-id="mobile"
data-name="mobile"
data-placeholder=""
data-value=""
data-type="tel"
data-autofocus="true"
data-email_required="$text.get("general.fieldRequired")">
data-autofocus="true">
</agov-input>
<agov-button
class="hidden basis-full"
class="basis-full"
data-name="submit"
data-id="submit"
data-value="submit"
@ -159,12 +173,16 @@
$text.get("providePhoneNumber.laterModal.title")
</h4>
<div class="flex flex-col gap-[72px]">
<div class="flex flex-col gap-8">
<div id="modalDescription">
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("providePhoneNumber.laterModal.description")
</p>
</div>
<div class="flex flex-col gap-4" id="modalDescription">
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("providePhoneNumber.laterModal.description1")
</p>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("providePhoneNumber.laterModal.description2")
</p>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("providePhoneNumber.laterModal.description3")
</p>
</div>
<div class="w-full sm:static mt-auto sm:justify-items-end">
<div class="flex justify-end flex-col-reverse sm:flex-row gap-4">

View File

@ -3,7 +3,7 @@
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-dark-hyperlink underline' href='$text.get("footer.link")'>$text.get("footer.link.label")</a>
</div>
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="${login.appDataPath}/static/bundle.js"></script>
</body>

View File

@ -122,6 +122,7 @@
</agov-button>
</div>
</div>
<input id="noCodeCheckbox" class="hidden" type="checkbox" name="no_code" value="true">
<input class="hidden" name="authRequestId" type="hidden" value="$gui.getGuiElem('authRequestId').value"/>
</form>
</div>

View File

@ -71,6 +71,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -144,10 +145,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -50,6 +50,7 @@ general.edit=&Auml;ndern
general.email=E-Mail
general.email.address=E-Mail-Adresse
general.entryCode=Code-Eingabe
general.fieldRequired=Erforderliches Feld.
general.getStarted=Get started
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.recovery=Wiederherstellung
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und fahren Sie dann mit der erneuten Eingabe fort.
general.recoveryCode.repeatCodeModal.description=Ein verlorener oder falsch gespeicherter Wiederherstellungscode kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihren Code richtig gespeichert haben, wiederholen Sie ihn bitte unten.
general.recoveryCode.repeatCodeModal.title=Wiederherstellungscode wiederholen
general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!

View File

@ -71,6 +71,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -144,10 +145,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -50,6 +50,7 @@ general.edit=Editer
general.email=E-mail
general.email.address=Adresse e-mail
general.entryCode=Entrer le code
general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&ea
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.recovery=R&eacute;cup&eacute;ration
general.recoveryCode.inputLabel=Code de r&eacute;cup&eacute;ration
general.recoveryCode.repeatCodeError=Le code que vous avez saisi est incorrect. Veuillez vous assurer que vous l'avez enregistr&eacute; correctement, puis essayer de le soumettre &agrave; nouveau.
general.recoveryCode.repeatCodeModal.description=Un code de r&eacute;cup&eacute;ration perdu ou mal enregistr&eacute; peut rendre la r&eacute;cup&eacute;ration de votre compte plus difficile. Pour vous assurer que vous avez correctement enregistr&eacute; votre code, veuillez le r&eacute;p&eacute;ter ci-dessous.
general.recoveryCode.repeatCodeModal.title=R&eacute;p&eacute;ter le code de r&eacute;cup&eacute;ration
general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!

View File

@ -50,6 +50,7 @@ general.edit=Modificare
general.email=e-mail
general.email.address=Indirizzo e-mail
general.entryCode=Codice
general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.or=O
general.otherOptions=ALTRE OPZIONI
general.recovery=Ripristino
general.recoveryCode.inputLabel=Codice di ripristino
general.recoveryCode.repeatCodeError=Il codice inserito non &egrave; corretto. Assicurati di averlo memorizzato correttamente, quindi riprova a inviarlo.
general.recoveryCode.repeatCodeModal.description=Un codice di ripristino perso o memorizzato in modo errato pu&ograve; rendere pi&ugrave; difficile il recupero del tuo account. Per assicurarti di aver registrato correttamente il codice, inseriscilo di nuovo qui sotto.
general.recoveryCode.repeatCodeModal.title=Ripeti il codice di ripristino
general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!

View File

@ -71,6 +71,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -144,10 +145,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -50,6 +50,7 @@ general.edit=&Auml;ndern
general.email=E-Mail
general.email.address=E-Mail-Adresse
general.entryCode=Code-Eingabe
general.fieldRequired=Erforderliches Feld.
general.getStarted=Get started
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.recovery=Wiederherstellung
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und fahren Sie dann mit der erneuten Eingabe fort.
general.recoveryCode.repeatCodeModal.description=Ein verlorener oder falsch gespeicherter Wiederherstellungscode kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihren Code richtig gespeichert haben, wiederholen Sie ihn bitte unten.
general.recoveryCode.repeatCodeModal.title=Wiederherstellungscode wiederholen
general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!

View File

@ -71,6 +71,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -144,10 +145,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -50,6 +50,7 @@ general.edit=Editer
general.email=E-mail
general.email.address=Adresse e-mail
general.entryCode=Entrer le code
general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&ea
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.recovery=R&eacute;cup&eacute;ration
general.recoveryCode.inputLabel=Code de r&eacute;cup&eacute;ration
general.recoveryCode.repeatCodeError=Le code que vous avez saisi est incorrect. Veuillez vous assurer que vous l'avez enregistr&eacute; correctement, puis essayer de le soumettre &agrave; nouveau.
general.recoveryCode.repeatCodeModal.description=Un code de r&eacute;cup&eacute;ration perdu ou mal enregistr&eacute; peut rendre la r&eacute;cup&eacute;ration de votre compte plus difficile. Pour vous assurer que vous avez correctement enregistr&eacute; votre code, veuillez le r&eacute;p&eacute;ter ci-dessous.
general.recoveryCode.repeatCodeModal.title=R&eacute;p&eacute;ter le code de r&eacute;cup&eacute;ration
general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!

View File

@ -50,6 +50,7 @@ general.edit=Modificare
general.email=e-mail
general.email.address=Indirizzo e-mail
general.entryCode=Codice
general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.or=O
general.otherOptions=ALTRE OPZIONI
general.recovery=Ripristino
general.recoveryCode.inputLabel=Codice di ripristino
general.recoveryCode.repeatCodeError=Il codice inserito non &egrave; corretto. Assicurati di averlo memorizzato correttamente, quindi riprova a inviarlo.
general.recoveryCode.repeatCodeModal.description=Un codice di ripristino perso o memorizzato in modo errato pu&ograve; rendere pi&ugrave; difficile il recupero del tuo account. Per assicurarti di aver registrato correttamente il codice, inseriscilo di nuovo qui sotto.
general.recoveryCode.repeatCodeModal.title=Ripeti il codice di ripristino
general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!

View File

@ -4,6 +4,7 @@ class ProvidePhoneNumber {
providePhoneNumberLaterButton;
phoneNumberInput;
agovInputPhoneNumberInput;
repeatPhoneNumberInput;
agovInputRepeatPhoneNumberInput;
constructor() {
@ -13,7 +14,11 @@ class ProvidePhoneNumber {
this.phoneNumberInput = document.querySelector('#phoneNumberInput');
this.agovInputPhoneNumberInput = document.querySelector('#agovInputPhoneNumberInput');
this.agovInputRepeatPhoneNumberInput = document.querySelector('#agovInputRepeatPhoneNumberInput');
this.repeatPhoneNumberInput = document.querySelector('#repeatPhoneNumberInput');
document.querySelector('#laterCheckbox').checked = true;
this.initializePhoneInput(this.phoneNumberInput);
this.addPhoneInputEventHandlers(this.phoneNumberInput);
this.providePhoneNumberLaterButton.addEventListener('click', () => {
this.setVisible(this.laterModal);
@ -23,16 +28,22 @@ class ProvidePhoneNumber {
this.setInvisible(this.laterModal);
});
document.querySelector('#repeatPhoneNumberModalBack').addEventListener('click', () => {
this.initializePhoneInput(this.phoneNumberInput);
this.addPhoneInputEventHandlers(this.phoneNumberInput);
this.setInvisible(this.modal);
});
document.querySelector('#repeatPhoneNumberModalContinue').addEventListener('click', () => {
if (this.validateInput(this.agovInputRepeatPhoneNumberInput)) {
this.evaluatePhoneNumbersAndSubmit();
this.initializePhoneInput(this.phoneNumberInput);
this.addPhoneInputEventHandlers(this.phoneNumberInput);
}
});
document.querySelector('#providePhoneNumberContinueButton').addEventListener('click', () => {
if (this.validateInput(this.agovInputPhoneNumberInput)) {
this.clearModalInput();
this.repeatPhoneNumberInput.value = '';
this.initializePhoneInput(this.repeatPhoneNumberInput);
this.addPhoneInputEventHandlers(this.repeatPhoneNumberInput);
this.resetValidation(this.agovInputRepeatPhoneNumberInput);
this.showErrorBanner(false);
this.setVisible(this.modal);
@ -40,6 +51,35 @@ class ProvidePhoneNumber {
});
}
addPhoneInputEventHandlers(phoneInputElement) {
phoneInputElement.addEventListener('input', () => {
this.formatAndEmitPhoneNumberValue(phoneInputElement);
});
phoneInputElement.addEventListener('countrychange', () => {
this.onPhoneNumberCountryChange(phoneInputElement);
});
}
initializePhoneInput(inputElement) {
window.phoneNumberUtils.initializePhoneNumberField(inputElement);
if (inputElement.value) {
window.phoneNumberUtils.setNumber(inputElement.value);
this.formatAndEmitPhoneNumberValue(inputElement);
}
else {
window.phoneNumberUtils.formatAfterCountryChange();
inputElement.value = window.phoneNumberUtils.getInputValue();
}
}
onPhoneNumberCountryChange(inputElement) {
inputElement.value = window.phoneNumberUtils.formatAfterCountryChange();
}
formatAndEmitPhoneNumberValue(inputElement) {
inputElement.value = window.phoneNumberUtils.formatUsingInputValue();
}
resetValidation(agovInput) {
agovInput.validity = true;
}
@ -52,6 +92,12 @@ class ProvidePhoneNumber {
agovInput.validity = false;
return false;
}
else if (!window.phoneNumberUtils.validatePhoneNumber(false, true)) {
agovInput.supportingText = 2;
agovInput.focus();
agovInput.validity = false;
return false;
}
return true;
}
@ -69,13 +115,14 @@ class ProvidePhoneNumber {
}
arePhoneNumbersEqual() {
const phoneNumber = document.getElementById('phoneNumberInput').value.trim();
const repeatedPhoneNumber = document.getElementById('mobile').value.trim();
const phoneNumber = this.phoneNumberInput.value.trim();
const repeatedPhoneNumber = this.repeatPhoneNumberInput.value.trim();
return phoneNumber === repeatedPhoneNumber;
}
evaluatePhoneNumbersAndSubmit() {
if (this.arePhoneNumbersEqual()) {
document.querySelector('#mobile').value = this.repeatPhoneNumberInput.value.trim().replaceAll(' ', '');
document.querySelector('#submit').click();
}
else {
@ -84,11 +131,6 @@ class ProvidePhoneNumber {
}
}
clearModalInput() {
const phoneNumberInput = document.getElementById('mobile');
phoneNumberInput.value = '';
}
showErrorBanner(visible) {
const errorBanner = document.getElementById('errorBanner');
if (visible) {
@ -101,6 +143,6 @@ class ProvidePhoneNumber {
}
document.addEventListener('DOMContentLoaded', () => {
document.dispatchEvent(new Event('initModal'));
document.dispatchEvent(new Event('initPhoneNumberUtils'));
window.providePhoneNumber = new ProvidePhoneNumber();
});

View File

@ -6,7 +6,7 @@
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-center gap-5 w-full">
<div class="flex flex-col sm:bg-white sm:dark:bg-surface-black rounded-[20px] sm:px-10 sm:py-10 max-w-[550px] w-full
basis-full md:basis-1/2">
<div class="flex mb-6 items-baseline">
<div class="flex mb-8 items-baseline">
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">
$text.get("providePhoneNumber.title")
</h3>
@ -32,6 +32,8 @@
data-value=""
data-type="tel"
data-autofocus="true"
data-is_icon_padding_ignored="true"
data-email_invalid="$text.get("general.wrongPhoneNumber")"
data-email_required="$text.get("general.fieldRequired")">
</agov-input>
</div>
@ -94,22 +96,34 @@
$text.get("providePhoneNumber.modal.description")
</p>
</div>
<agov-input
id="agovInputRepeatPhoneNumberInput"
data-label="$text.get("providePhoneNumber.modal.inputLabel")"
data-id="repeatPhoneNumberInput"
data-name="repeatPhoneNumberInput"
data-placeholder=""
data-value=""
data-type="tel"
data-autofocus="true"
data-is_icon_padding_ignored="true"
data-email_invalid="$text.get("general.wrongPhoneNumber")"
data-email_required="$text.get("general.fieldRequired")">
</agov-input>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8"
class="flex flex-col flex-auto block">
class="hidden flex flex-col flex-auto block">
<agov-input
id="agovInputRepeatPhoneNumberInput"
id="agovInputMobile"
data-label="$text.get("providePhoneNumber.modal.inputLabel")"
data-id="mobile"
data-name="mobile"
data-placeholder=""
data-value=""
data-type="tel"
data-autofocus="true"
data-email_required="$text.get("general.fieldRequired")">
data-autofocus="true">
</agov-input>
<agov-button
class="hidden basis-full"
class="basis-full"
data-name="submit"
data-id="submit"
data-value="submit"
@ -159,12 +173,16 @@
$text.get("providePhoneNumber.laterModal.title")
</h4>
<div class="flex flex-col gap-[72px]">
<div class="flex flex-col gap-8">
<div id="modalDescription">
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("providePhoneNumber.laterModal.description")
</p>
</div>
<div class="flex flex-col gap-4" id="modalDescription">
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("providePhoneNumber.laterModal.description1")
</p>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("providePhoneNumber.laterModal.description2")
</p>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("providePhoneNumber.laterModal.description3")
</p>
</div>
<div class="w-full sm:static mt-auto sm:justify-items-end">
<div class="flex justify-end flex-col-reverse sm:flex-row gap-4">

View File

@ -3,7 +3,7 @@
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-dark-hyperlink underline' href='$text.get("footer.link")'>$text.get("footer.link.label")</a>
</div>
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="${login.appDataPath}/static/bundle.js"></script>
</body>

View File

@ -122,6 +122,7 @@
</agov-button>
</div>
</div>
<input id="noCodeCheckbox" class="hidden" type="checkbox" name="no_code" value="true">
<input class="hidden" name="authRequestId" type="hidden" value="$gui.getGuiElem('authRequestId').value"/>
</form>
</div>

View File

@ -71,6 +71,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -144,10 +145,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -50,6 +50,7 @@ general.edit=&Auml;ndern
general.email=E-Mail
general.email.address=E-Mail-Adresse
general.entryCode=Code-Eingabe
general.fieldRequired=Erforderliches Feld.
general.getStarted=Get started
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.recovery=Wiederherstellung
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und fahren Sie dann mit der erneuten Eingabe fort.
general.recoveryCode.repeatCodeModal.description=Ein verlorener oder falsch gespeicherter Wiederherstellungscode kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihren Code richtig gespeichert haben, wiederholen Sie ihn bitte unten.
general.recoveryCode.repeatCodeModal.title=Wiederherstellungscode wiederholen
general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!

View File

@ -71,6 +71,7 @@ general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
@ -144,10 +145,12 @@ providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phon
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.<br>Adding a phone number helps you to recover your account in a matter of minutes.<br>This phone number will not be used to contact you.
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Repeat phone
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number

View File

@ -50,6 +50,7 @@ general.edit=Editer
general.email=E-mail
general.email.address=Adresse e-mail
general.entryCode=Entrer le code
general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&ea
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.recovery=R&eacute;cup&eacute;ration
general.recoveryCode.inputLabel=Code de r&eacute;cup&eacute;ration
general.recoveryCode.repeatCodeError=Le code que vous avez saisi est incorrect. Veuillez vous assurer que vous l'avez enregistr&eacute; correctement, puis essayer de le soumettre &agrave; nouveau.
general.recoveryCode.repeatCodeModal.description=Un code de r&eacute;cup&eacute;ration perdu ou mal enregistr&eacute; peut rendre la r&eacute;cup&eacute;ration de votre compte plus difficile. Pour vous assurer que vous avez correctement enregistr&eacute; votre code, veuillez le r&eacute;p&eacute;ter ci-dessous.
general.recoveryCode.repeatCodeModal.title=R&eacute;p&eacute;ter le code de r&eacute;cup&eacute;ration
general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!

View File

@ -50,6 +50,7 @@ general.edit=Modificare
general.email=e-mail
general.email.address=Indirizzo e-mail
general.entryCode=Codice
general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
@ -60,6 +61,10 @@ general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.or=O
general.otherOptions=ALTRE OPZIONI
general.recovery=Ripristino
general.recoveryCode.inputLabel=Codice di ripristino
general.recoveryCode.repeatCodeError=Il codice inserito non &egrave; corretto. Assicurati di averlo memorizzato correttamente, quindi riprova a inviarlo.
general.recoveryCode.repeatCodeModal.description=Un codice di ripristino perso o memorizzato in modo errato pu&ograve; rendere pi&ugrave; difficile il recupero del tuo account. Per assicurarti di aver registrato correttamente il codice, inseriscilo di nuovo qui sotto.
general.recoveryCode.repeatCodeModal.title=Ripeti il codice di ripristino
general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!

View File

@ -46,7 +46,7 @@ spec:
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-76669ce293c5840d6e2c23c16822ffd3c143c498"
tag: "r-bdd002acfcff73d836b81b83744f3ba618e236f8"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/proxy-idp"
credentials: "git-credentials"
keystores:

View File

@ -1710,6 +1710,11 @@
<mime-type>application/x-font-ttf</mime-type>
</mime-mapping>
<!-- source: pattern://1f0702aaabef60a615abf41f -->
<mime-mapping>
<extension>png</extension>
<mime-type>image/png</mime-type>
</mime-mapping>
<!-- source: pattern://1f0702aaabef60a615abf41f -->
<mime-mapping>
<extension>js</extension>
<mime-type>application/javascript</mime-type>

View File

@ -63,7 +63,7 @@
</div>
</div>
<footer class="hidden sm:flex mt-auto font-body text-body-s text-disabled-grey dark:text-silver w-full p-2 justify-end">
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="/resources/static/bundle.js"></script>
</body>

View File

@ -60,7 +60,7 @@
</div>
</div>
<footer class="hidden sm:flex mt-auto font-body text-body-s text-disabled-grey dark:text-silver w-full p-2 justify-end">
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="/resources/static/bundle.js"></script>
</body>

View File

@ -61,7 +61,7 @@
</div>
</div>
<footer class="hidden sm:flex mt-auto font-body text-body-s text-disabled-grey dark:text-silver w-full p-2 justify-end">
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="/resources/static/bundle.js"></script>
</body>

View File

@ -62,7 +62,7 @@
</div>
</div>
<footer class="hidden sm:flex mt-auto font-body text-body-s text-disabled-grey dark:text-silver w-full p-2 justify-end">
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="/resources/static/bundle.js"></script>
</body>

View File

@ -59,7 +59,7 @@
</div>
</div>
<footer class="hidden sm:flex mt-auto font-body text-body-s text-disabled-grey dark:text-silver w-full p-2 justify-end">
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="/resources/static/bundle.js"></script>
</body>

View File

@ -66,7 +66,7 @@
</div>
</div>
<footer class="hidden sm:flex mt-auto font-body text-body-s text-disabled-grey dark:text-silver w-full p-2 justify-end">
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="/resources/static/bundle.js"></script>
</body>

View File

@ -63,7 +63,7 @@
</div>
</div>
<footer class="hidden sm:flex mt-auto font-body text-body-s text-disabled-grey dark:text-silver w-full p-2 justify-end">
<p>1.8.0.local-20241209T141326Z-haburger: Mon Dec 9 15:18:36 CET 2024</p>
<p>1.8.0.local-20241211T140140Z-haburger: Wed Dec 11 15:59:59 CET 2024</p>
</footer>
<script src="/resources/static/bundle.js"></script>
</body>