new configuration version
This commit is contained in:
parent
2559aa6569
commit
5f6704135d
|
@ -45,7 +45,7 @@ spec:
|
|||
podDisruptionBudget:
|
||||
maxUnavailable: "50%"
|
||||
git:
|
||||
tag: "r-a5b664b2c1f534aab19c8301f3618a8c5096d222"
|
||||
tag: "r-7bd8f34aeeebe1debccb6e4932b092cf2b2c4c88"
|
||||
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth"
|
||||
credentials: "git-credentials"
|
||||
keystores:
|
||||
|
|
|
@ -203,10 +203,8 @@ recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow
|
|||
recovery_fidokey_auth.keyRegistered=Security key already registered
|
||||
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
|
||||
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
|
||||
recovery_intro_email.captchaUnchecked=Please tick the captcha field
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=This site is protected by reCAPTCHA and the <a class='link' href='https://policies.google.com/privacy' target='_blank'>Google Privacy Policy</a> and <a class='link' href='https://policies.google.com/terms' target='_blank'>Terms of Service</a> apply.
|
||||
recovery_intro_email_sent.banner.button=Didn't receive the email?
|
||||
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
|
||||
recovery_on_going.finishRecovery=Finish recovery
|
||||
|
|
|
@ -203,10 +203,8 @@ recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! u
|
|||
recovery_fidokey_auth.keyRegistered=Sicherheitsschlüssel schon registriert
|
||||
recovery_intro_email.banner.error=Der von Ihnen verwendete Link ist abgelaufen. Bitte geben Sie Ihre E-Mail-Adresse ein, um einen neuen Link zu erhalten.
|
||||
recovery_intro_email.banner.info=Bitte geben Sie Ihre E-Mail-Adresse ein, damit wir Ihnen einen Link schicken können, mit dem Sie den Wiederherstellungsprozess starten.
|
||||
recovery_intro_email.captchaUnchecked=Bitte kreuzen Sie das Captcha-Feld an
|
||||
recovery_intro_email.important=Wichtig:
|
||||
recovery_intro_email.process=Der Wiederherstellungsprozess sollte nur verwendet werden, wenn Sie den Zugriff auf Ihre Login-Faktoren verloren haben (gelöschte AGOV access App, verlorener Sicherheitsschlüssel, verlorenes Telefon usw.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Diese Seite ist durch reCAPTCHA geschützt, und es gelten die <a class='link' href='https://policies.google.com/privacy' target='_blank'>Datenschutzerklärung</a> sowie die <a class='link' href='https://policies.google.com/terms' target='_blank'>Nutzungsbedingungen</a> von Google.
|
||||
recovery_intro_email_sent.banner.button=Keine E-Mail erhalten?
|
||||
recovery_intro_email_sent.banner.success=Vielen Dank! Sie werden in Kürze eine E-Mail mit einem Wiederherstellungslink und Anweisungen erhalten.
|
||||
recovery_on_going.finishRecovery=Wiederherstellung abschliessen
|
||||
|
|
|
@ -203,10 +203,8 @@ recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow
|
|||
recovery_fidokey_auth.keyRegistered=Security key already registered
|
||||
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
|
||||
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
|
||||
recovery_intro_email.captchaUnchecked=Please tick the captcha field
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=This site is protected by reCAPTCHA and the <a class='link' href='https://policies.google.com/privacy' target='_blank'>Google Privacy Policy</a> and <a class='link' href='https://policies.google.com/terms' target='_blank'>Terms of Service</a> apply.
|
||||
recovery_intro_email_sent.banner.button=Didn't receive the email?
|
||||
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
|
||||
recovery_on_going.finishRecovery=Finish recovery
|
||||
|
|
|
@ -203,10 +203,8 @@ recovery_fidokey_auth.instruction2=Veuillez utiliser !!!SECURITY_KEY_NAME!!! pou
|
|||
recovery_fidokey_auth.keyRegistered=Clé de sécurité déjà enregistrée
|
||||
recovery_intro_email.banner.error=Le lien que vous avez utilisé a expiré. Veuillez saisir votre adresse e-mail pour recevoir un nouveau lien.
|
||||
recovery_intro_email.banner.info=Veuillez saisir votre adresse e-mail. Nous vous enverrons un e-mail vous permettant de démarrer le processus de récupération.
|
||||
recovery_intro_email.captchaUnchecked=Veuillez cocher la case captcha
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=Le processus de récupération ne doit être utilisé que si vous avez perdu l'accès à vos facteurs de connexion (application AGOV access supprimée, clé de sécurité perdue, téléphone perdu, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Ce site est protégé par reCAPTCHA: les <a class=’link’ href=’https://policies.google.com/privacy’ target=’_blank’>règles de confidentialité</a> et <a class=’link’ href=’https://policies.google.com/terms’ target=’_blank’>conditions d’utilisation</a> de Google s’appliquent.
|
||||
recovery_intro_email_sent.banner.button=Vous n’avez pas reçu l'email?
|
||||
recovery_intro_email_sent.banner.success=Merci! Vous recevrez dans un instant un e-mail contenant un lien de récupération et des instructions.
|
||||
recovery_on_going.finishRecovery=Terminer la récupération
|
||||
|
|
|
@ -203,10 +203,8 @@ recovery_fidokey_auth.instruction2=Si prega di usare !!!SECURITY_KEY_NAME!!! per
|
|||
recovery_fidokey_auth.keyRegistered=Chiave di sicurezza già registrata
|
||||
recovery_intro_email.banner.error=Il link utilizzato è scaduto. Per ricevere un nuovo link, inserire l’indirizzo e-mail.
|
||||
recovery_intro_email.banner.info=Per ricevere il link e avviare il processo di ripristino, inserire l’indirizzo e-mail.
|
||||
recovery_intro_email.captchaUnchecked=Per favore selezioni il campo captcha
|
||||
recovery_intro_email.important=Importante:
|
||||
recovery_intro_email.process=Il processo di ripristino deve essere utilizzato solo se ha perso l'accesso ai suoi fattori di accesso (app di accesso AGOV eliminata, chiave di sicurezza persa, telefono smarrito, ecc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Questo sito è protetto da reCAPTCHA. Si applicano le <a class='link' href='https://policies.google.com/privacy' target='_blank'>norme sulla privacy</a> e i <a class='link' href='https://policies.google.com/terms' target='_blank'>termini di servizio di Google</a>.
|
||||
recovery_intro_email_sent.banner.button=Non avete ricevuto l'e-mail?
|
||||
recovery_intro_email_sent.banner.success=Grazie! È stata inviata un’e-mail contenente il codice di ripristino e le istruzioni.
|
||||
recovery_on_going.finishRecovery=Completare il ripristino
|
||||
|
|
|
@ -46,7 +46,7 @@ spec:
|
|||
podDisruptionBudget:
|
||||
maxUnavailable: "50%"
|
||||
git:
|
||||
tag: "r-a5b664b2c1f534aab19c8301f3618a8c5096d222"
|
||||
tag: "r-7bd8f34aeeebe1debccb6e4932b092cf2b2c4c88"
|
||||
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job"
|
||||
credentials: "git-credentials"
|
||||
keystores:
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,7 +1,7 @@
|
|||
# source: pattern://50d6c91ace65f52fa56d7113
|
||||
nevisIdm.TemplateAdmin=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CollectionView,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.GenerateReport,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertyAttributeAccessOverride,AccessControl.PropertySearch,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.SearchResultsExport,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.HistoryView
|
||||
# source: pattern://50d6c91ace65f52fa56d7113
|
||||
nevisIdm.UserAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
|
||||
nevisIdm.UserAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState.14,AccessControl.CredentialCreate.14,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
|
||||
# source: pattern://50d6c91ace65f52fa56d7113
|
||||
nevisIdm.Root=AccessControl.ApplicationCreate,AccessControl.ApplicationDelete,AccessControl.ApplicationModify,AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationCreate,AccessControl.AuthorizationDelete,AccessControl.AuthorizationModify,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplCreate,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientCreate,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitCreate,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.BatchJobExecute,AccessControl.BatchJobView,AccessControl.ClientCreate,AccessControl.ClientDelete,AccessControl.ClientModify,AccessControl.ClientApplAssign,AccessControl.ClientApplDelete,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialDelete,AccessControl.CredentialModify,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.PersistentQueueRetry,AccessControl.PersistentQueueDelete,AccessControl.PersistentQueueView,AccessControl.PolicyConfigurationCreate,AccessControl.PolicyConfigurationDelete,AccessControl.PolicyConfigurationModify,AccessControl.PolicyConfigurationSearch,AccessControl.PolicyConfigurationView,AccessControl.ProfileArchive,AccessControl.ProfileCreate,AccessControl.ProfileDelete,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueCreate,AccessControl.PropertyAllowedValueDelete,AccessControl.PropertyAllowedValueModify,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertyCreate,AccessControl.PropertyDelete,AccessControl.PropertyModify,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleCreate,AccessControl.RoleDelete,AccessControl.RoleModify,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.SelfAdmin,AccessControl.UnitCreate,AccessControl.UnitCreateTopUnit,AccessControl.UnitDelete,AccessControl.UnitModify,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserArchive,AccessControl.UserCreate,AccessControl.UserDelete,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.HistoryView,AccessControl.LoginIdOverride,AccessControl.TemplateStore,AccessControl.CollectionView,AccessControl.CollectionCreate,AccessControl.CollectionModify,AccessControl.CollectionDelete,AccessControl.TemplateView,AccessControl.TemplateCreate,AccessControl.TemplateModify,AccessControl.TemplateDelete,AccessControl.TemplateTextView,AccessControl.TemplateTextCreate,AccessControl.TemplateTextModify,AccessControl.TemplateTextDelete,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.CredentialViewPlainValue,AccessControl.DeputyCreate,AccessControl.DeputyDelete,AccessControl.UnitCredPolicyView,AccessControl.UnitCredPolicyCreate,AccessControl.UnitCredPolicyDelete,AccessControl.UserCreateTechUser,AccessControl.UserModifyTechUser,AccessControl.UserDeleteTechUser,AccessControl.UserArchiveTechUser,AccessControl.CredentialPdfView,AccessControl.EnterpriseAuthorizationCreate,AccessControl.EnterpriseAuthorizationDelete,AccessControl.EnterpriseAuthorizationModify,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.AuthorizationEnterpriseRoleCreate,AccessControl.AuthorizationEnterpriseRoleDelete,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.EnterpriseRoleCreate,AccessControl.EnterpriseRoleModify,AccessControl.EnterpriseRoleDelete,AccessControl.EnterpriseRoleSearch,AccessControl.EnterpriseRoleView,AccessControl.EnterpriseRoleMemberCreate,AccessControl.EnterpriseRoleMemberDelete,AccessControl.EnterpriseRoleMemberSearch,AccessControl.PersonalQuestionSearch,AccessControl.PersonalQuestionView,AccessControl.PersonalQuestionCreate,AccessControl.PersonalQuestionModify,AccessControl.PersonalQuestionDelete,AccessControl.LoginIdModify,AccessControl.TermsView,AccessControl.TermsCreate,AccessControl.TermsModify,AccessControl.TermsDelete,AccessControl.ConsentCreate,AccessControl.ConsentView
|
||||
# source: pattern://50d6c91ace65f52fa56d7113
|
||||
|
|
|
@ -46,7 +46,7 @@ spec:
|
|||
podDisruptionBudget:
|
||||
maxUnavailable: "50%"
|
||||
git:
|
||||
tag: "r-62cde4d69ffb364927e8f40db105fc6d83470228"
|
||||
tag: "r-7bd8f34aeeebe1debccb6e4932b092cf2b2c4c88"
|
||||
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm"
|
||||
credentials: "git-credentials"
|
||||
keystores:
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,7 +1,7 @@
|
|||
# source: pattern://50d6c91ace65f52fa56d7113
|
||||
nevisIdm.TemplateAdmin=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CollectionView,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.GenerateReport,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertyAttributeAccessOverride,AccessControl.PropertySearch,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.SearchResultsExport,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.HistoryView
|
||||
# source: pattern://50d6c91ace65f52fa56d7113
|
||||
nevisIdm.UserAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
|
||||
nevisIdm.UserAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState.14,AccessControl.CredentialCreate.14,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
|
||||
# source: pattern://50d6c91ace65f52fa56d7113
|
||||
nevisIdm.Root=AccessControl.ApplicationCreate,AccessControl.ApplicationDelete,AccessControl.ApplicationModify,AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationCreate,AccessControl.AuthorizationDelete,AccessControl.AuthorizationModify,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplCreate,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientCreate,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitCreate,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.BatchJobExecute,AccessControl.BatchJobView,AccessControl.ClientCreate,AccessControl.ClientDelete,AccessControl.ClientModify,AccessControl.ClientApplAssign,AccessControl.ClientApplDelete,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialDelete,AccessControl.CredentialModify,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.PersistentQueueRetry,AccessControl.PersistentQueueDelete,AccessControl.PersistentQueueView,AccessControl.PolicyConfigurationCreate,AccessControl.PolicyConfigurationDelete,AccessControl.PolicyConfigurationModify,AccessControl.PolicyConfigurationSearch,AccessControl.PolicyConfigurationView,AccessControl.ProfileArchive,AccessControl.ProfileCreate,AccessControl.ProfileDelete,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueCreate,AccessControl.PropertyAllowedValueDelete,AccessControl.PropertyAllowedValueModify,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertyCreate,AccessControl.PropertyDelete,AccessControl.PropertyModify,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleCreate,AccessControl.RoleDelete,AccessControl.RoleModify,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.SelfAdmin,AccessControl.UnitCreate,AccessControl.UnitCreateTopUnit,AccessControl.UnitDelete,AccessControl.UnitModify,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserArchive,AccessControl.UserCreate,AccessControl.UserDelete,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.HistoryView,AccessControl.LoginIdOverride,AccessControl.TemplateStore,AccessControl.CollectionView,AccessControl.CollectionCreate,AccessControl.CollectionModify,AccessControl.CollectionDelete,AccessControl.TemplateView,AccessControl.TemplateCreate,AccessControl.TemplateModify,AccessControl.TemplateDelete,AccessControl.TemplateTextView,AccessControl.TemplateTextCreate,AccessControl.TemplateTextModify,AccessControl.TemplateTextDelete,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.CredentialViewPlainValue,AccessControl.DeputyCreate,AccessControl.DeputyDelete,AccessControl.UnitCredPolicyView,AccessControl.UnitCredPolicyCreate,AccessControl.UnitCredPolicyDelete,AccessControl.UserCreateTechUser,AccessControl.UserModifyTechUser,AccessControl.UserDeleteTechUser,AccessControl.UserArchiveTechUser,AccessControl.CredentialPdfView,AccessControl.EnterpriseAuthorizationCreate,AccessControl.EnterpriseAuthorizationDelete,AccessControl.EnterpriseAuthorizationModify,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.AuthorizationEnterpriseRoleCreate,AccessControl.AuthorizationEnterpriseRoleDelete,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.EnterpriseRoleCreate,AccessControl.EnterpriseRoleModify,AccessControl.EnterpriseRoleDelete,AccessControl.EnterpriseRoleSearch,AccessControl.EnterpriseRoleView,AccessControl.EnterpriseRoleMemberCreate,AccessControl.EnterpriseRoleMemberDelete,AccessControl.EnterpriseRoleMemberSearch,AccessControl.PersonalQuestionSearch,AccessControl.PersonalQuestionView,AccessControl.PersonalQuestionCreate,AccessControl.PersonalQuestionModify,AccessControl.PersonalQuestionDelete,AccessControl.LoginIdModify,AccessControl.TermsView,AccessControl.TermsCreate,AccessControl.TermsModify,AccessControl.TermsDelete,AccessControl.ConsentCreate,AccessControl.ConsentView
|
||||
# source: pattern://50d6c91ace65f52fa56d7113
|
||||
|
|
|
@ -44,7 +44,7 @@ spec:
|
|||
podDisruptionBudget:
|
||||
maxUnavailable: "50%"
|
||||
git:
|
||||
tag: "r-e55486a997fb8f6cdab5eac835e6374e73b3824f"
|
||||
tag: "r-7bd8f34aeeebe1debccb6e4932b092cf2b2c4c88"
|
||||
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend"
|
||||
credentials: "git-credentials"
|
||||
podSecurity:
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow
|
|||
recovery_fidokey_auth.keyRegistered=Security key already registered
|
||||
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
|
||||
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
|
||||
recovery_intro_email.captchaUnchecked=Please tick the captcha field
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=This site is protected by reCAPTCHA and the <a class='link' href='https://policies.google.com/privacy' target='_blank'>Google Privacy Policy</a> and <a class='link' href='https://policies.google.com/terms' target='_blank'>Terms of Service</a> apply.
|
||||
recovery_intro_email_sent.banner.button=Didn't receive the email?
|
||||
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
|
||||
recovery_on_going.finishRecovery=Finish recovery
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! u
|
|||
recovery_fidokey_auth.keyRegistered=Sicherheitsschlüssel schon registriert
|
||||
recovery_intro_email.banner.error=Der von Ihnen verwendete Link ist abgelaufen. Bitte geben Sie Ihre E-Mail-Adresse ein, um einen neuen Link zu erhalten.
|
||||
recovery_intro_email.banner.info=Bitte geben Sie Ihre E-Mail-Adresse ein, damit wir Ihnen einen Link schicken können, mit dem Sie den Wiederherstellungsprozess starten.
|
||||
recovery_intro_email.captchaUnchecked=Bitte kreuzen Sie das Captcha-Feld an
|
||||
recovery_intro_email.important=Wichtig:
|
||||
recovery_intro_email.process=Der Wiederherstellungsprozess sollte nur verwendet werden, wenn Sie den Zugriff auf Ihre Login-Faktoren verloren haben (gelöschte AGOV access App, verlorener Sicherheitsschlüssel, verlorenes Telefon usw.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Diese Seite ist durch reCAPTCHA geschützt, und es gelten die <a class='link' href='https://policies.google.com/privacy' target='_blank'>Datenschutzerklärung</a> sowie die <a class='link' href='https://policies.google.com/terms' target='_blank'>Nutzungsbedingungen</a> von Google.
|
||||
recovery_intro_email_sent.banner.button=Keine E-Mail erhalten?
|
||||
recovery_intro_email_sent.banner.success=Vielen Dank! Sie werden in Kürze eine E-Mail mit einem Wiederherstellungslink und Anweisungen erhalten.
|
||||
recovery_on_going.finishRecovery=Wiederherstellung abschliessen
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow
|
|||
recovery_fidokey_auth.keyRegistered=Security key already registered
|
||||
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
|
||||
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
|
||||
recovery_intro_email.captchaUnchecked=Please tick the captcha field
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=This site is protected by reCAPTCHA and the <a class='link' href='https://policies.google.com/privacy' target='_blank'>Google Privacy Policy</a> and <a class='link' href='https://policies.google.com/terms' target='_blank'>Terms of Service</a> apply.
|
||||
recovery_intro_email_sent.banner.button=Didn't receive the email?
|
||||
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
|
||||
recovery_on_going.finishRecovery=Finish recovery
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Veuillez utiliser !!!SECURITY_KEY_NAME!!! pou
|
|||
recovery_fidokey_auth.keyRegistered=Clé de sécurité déjà enregistrée
|
||||
recovery_intro_email.banner.error=Le lien que vous avez utilisé a expiré. Veuillez saisir votre adresse e-mail pour recevoir un nouveau lien.
|
||||
recovery_intro_email.banner.info=Veuillez saisir votre adresse e-mail. Nous vous enverrons un e-mail vous permettant de démarrer le processus de récupération.
|
||||
recovery_intro_email.captchaUnchecked=Veuillez cocher la case captcha
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=Le processus de récupération ne doit être utilisé que si vous avez perdu l'accès à vos facteurs de connexion (application AGOV access supprimée, clé de sécurité perdue, téléphone perdu, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Ce site est protégé par reCAPTCHA: les <a class=’link’ href=’https://policies.google.com/privacy’ target=’_blank’>règles de confidentialité</a> et <a class=’link’ href=’https://policies.google.com/terms’ target=’_blank’>conditions d’utilisation</a> de Google s’appliquent.
|
||||
recovery_intro_email_sent.banner.button=Vous n’avez pas reçu l'email?
|
||||
recovery_intro_email_sent.banner.success=Merci! Vous recevrez dans un instant un e-mail contenant un lien de récupération et des instructions.
|
||||
recovery_on_going.finishRecovery=Terminer la récupération
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Si prega di usare !!!SECURITY_KEY_NAME!!! per
|
|||
recovery_fidokey_auth.keyRegistered=Chiave di sicurezza già registrata
|
||||
recovery_intro_email.banner.error=Il link utilizzato è scaduto. Per ricevere un nuovo link, inserire l’indirizzo e-mail.
|
||||
recovery_intro_email.banner.info=Per ricevere il link e avviare il processo di ripristino, inserire l’indirizzo e-mail.
|
||||
recovery_intro_email.captchaUnchecked=Per favore selezioni il campo captcha
|
||||
recovery_intro_email.important=Importante:
|
||||
recovery_intro_email.process=Il processo di ripristino deve essere utilizzato solo se ha perso l'accesso ai suoi fattori di accesso (app di accesso AGOV eliminata, chiave di sicurezza persa, telefono smarrito, ecc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Questo sito è protetto da reCAPTCHA. Si applicano le <a class='link' href='https://policies.google.com/privacy' target='_blank'>norme sulla privacy</a> e i <a class='link' href='https://policies.google.com/terms' target='_blank'>termini di servizio di Google</a>.
|
||||
recovery_intro_email_sent.banner.button=Non avete ricevuto l'e-mail?
|
||||
recovery_intro_email_sent.banner.success=Grazie! È stata inviata un’e-mail contenente il codice di ripristino e le istruzioni.
|
||||
recovery_on_going.finishRecovery=Completare il ripristino
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,5 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initQRCode'));
|
||||
document.dispatchEvent(new Event('initDrawer'));
|
||||
document.dispatchEvent(new Event('initCantonalBranding'));
|
||||
});
|
|
@ -1,3 +1,4 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initEmail'));
|
||||
document.dispatchEvent(new Event('initCaptcha'));
|
||||
});
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initAnswer'));
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function setErrorBanner(value) {
|
||||
document.getElementById('errorBanner').style.display = value ? 'none' : 'flex';
|
||||
document.getElementById('buttons').style.marginTop = value ? '16px' : '8px';
|
||||
}
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initAnswer'));
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function setErrorBanner(value) {
|
||||
document.getElementById('errorBanner').style.display = value ? 'none' : 'flex';
|
||||
console.log(document.getElementById('errorBanner').style.display);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initEmail'));
|
||||
document.dispatchEvent(new Event('initCaptcha'));
|
||||
});
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -40,8 +40,7 @@
|
|||
</form>
|
||||
<div class="mt-3 mb-6 w-full h-px bg-platinum rounded-full"></div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4 hidden">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("fido2_auth.cancel.fido")
|
||||
|
@ -84,7 +83,7 @@
|
|||
</div>
|
||||
<div class="mt-auto mb-6 sm:mb-0">
|
||||
<agov-button
|
||||
onclick="fido.authenticate()"
|
||||
id="fido_authenticate"
|
||||
data-type="button"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-fullwidth="true"
|
||||
|
|
|
@ -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.5.7.77-20240809T142941Z</p>
|
||||
<p>1.6.8.13-20240919T195132Z</p>
|
||||
</footer>
|
||||
<script src="${login.appDataPath}/static/bundle.js"></script>
|
||||
</body>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
|
||||
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
|
||||
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
|
||||
<head>
|
||||
<title>AGOV</title>
|
||||
<meta charset="UTF-8">
|
||||
|
|
|
@ -49,6 +49,8 @@
|
|||
|
||||
<div id="agovLoginImage"
|
||||
class="relative md:max-w-[520px] max-w-[350px] sm:max-w-[300px] mb-10 w-full mx-auto hidden md:block">
|
||||
<div class="hidden flex items-center p-2 bg-white dark:bg-black rounded-xl w-16 h-16 absolute left-[calc(39%-32px)] top-8"
|
||||
id="logoDoor"></div>
|
||||
<img alt="" src="${login.appDataPath}/static/images/login.svg"
|
||||
class="hidden md:block dark:hidden w-full">
|
||||
<img alt="" src="${login.appDataPath}/static/images/login-dark.svg"
|
||||
|
@ -93,16 +95,16 @@
|
|||
<div id="accessAppModal" class="h-full">
|
||||
|
||||
<div class="desktopBanner" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
|
||||
mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -111,8 +113,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center
|
||||
p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
|
@ -121,19 +123,19 @@
|
|||
</div>
|
||||
|
||||
<div class="relative flex flex-col h-full">
|
||||
<div id="blurBackdrop" class="absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4 z-10"
|
||||
style="display:none "></div>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4
|
||||
z-10"></div>
|
||||
<div class="mobileBanner relative z-20" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center
|
||||
p-4 mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -142,16 +144,16 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="agovLoginImageMobile" style="display: none"
|
||||
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full mx-auto mb-6">
|
||||
<div id="agovLoginImageMobile" class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full
|
||||
mx-auto mb-6">
|
||||
<img alt=""
|
||||
src="${login.appDataPath}/static/images/login.svg"
|
||||
class="block sm:hidden md:block dark:hidden w-full">
|
||||
|
@ -165,8 +167,8 @@
|
|||
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
|
||||
class="mb-6 mx-auto"></canvas>
|
||||
<div class="hidden" id="QRcodeHiddenLink"></div>
|
||||
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
|
||||
style="display: none">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2
|
||||
z-20">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
|
||||
class="animate-spin hidden dark:block">
|
||||
|
@ -197,7 +199,7 @@
|
|||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" class="w-full sm:static mt-auto mb-20 sm:mb-0">
|
||||
|
||||
<div id="mobileButtons" style="display: none" class="w-full">
|
||||
<div id="mobileButtons" class="hidden w-full">
|
||||
<div class="flex flex-col">
|
||||
<a id="accessAppLink" href="">
|
||||
<agov-button
|
||||
|
@ -224,9 +226,8 @@
|
|||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
style="display: none"
|
||||
id="hideQR"
|
||||
class="block basis-full"
|
||||
class="hidden basis-full"
|
||||
data-style="frameless"
|
||||
data-name="EID"
|
||||
data-value="EID"
|
||||
|
@ -300,7 +301,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" style="display: none" class="sm:hidden formDrawer">
|
||||
accept-charset="UTF-8" class="hidden sm:hidden formDrawer">
|
||||
<div class="w-full z-30 fixed left-0 pointer-events-none" id="drawerContainer">
|
||||
<div class="w-full bg-white dark:bg-surface-black px-4 pb-[130px] rounded-t-2xl pointer-events-auto" id="drawer">
|
||||
<div class="pt-2 pb-4 cursor-pointer">
|
||||
|
@ -363,13 +364,10 @@
|
|||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
document.dispatchEvent(new Event('initQRCode'));
|
||||
document.dispatchEvent(new Event('initDrawer'));
|
||||
document.dispatchEvent(new Event('initCantonalBranding'));
|
||||
cantonalBranding.getLogo("$gui.getGuiElem('agov.appSamlRpEntityId').value", "$login.language");
|
||||
});
|
||||
<script src="${login.appDataPath}/static/js-code/mauth_usernameless.js" defer>
|
||||
</script>
|
||||
<div id="appSamlRpEntityId" class="hidden" data-value="$gui.getGuiElem('agov.appSamlRpEntityId').value"
|
||||
data-language="$login.language">
|
||||
</div>
|
||||
|
||||
#parse("${templatePath}/footer.vm")
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
|
||||
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
|
||||
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
|
||||
<head>
|
||||
<title>AGOV Operations</title>
|
||||
<meta charset="UTF-8">
|
||||
|
@ -44,7 +44,8 @@
|
|||
class="flex items-center px-8 sm:px-4 justify-between w-full py-3 bg-indigo-light dark:bg-purple-black"
|
||||
aria-current="true"
|
||||
href="'+$langTarget+'"><span class="font-body-semi"
|
||||
>'+$langLabel+' - '+$locale.toUpperCase()+'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
|
||||
>'+$langLabel+' - '+$locale.toUpperCase()+
|
||||
'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
|
||||
#end
|
||||
#end ## end foreach
|
||||
|
||||
|
@ -58,7 +59,8 @@
|
|||
<a href="$text.get("general.help.link")" target="_blank" class="cursor-pointer hidden sm:inline-block">
|
||||
<div class="mx-6 flex items-center">
|
||||
<i class="text-xl pr-2 fa-regular fa-circle-question ml-auto text-space-blue dark:text-white transition-all"></i>
|
||||
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get("general.help")</span>
|
||||
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get(
|
||||
"general.help")</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -30,16 +30,15 @@
|
|||
|
||||
<div id="accessAppModal" class="h-full">
|
||||
<div class="desktopBanner" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
|
||||
mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -48,8 +47,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
|
@ -58,19 +56,16 @@
|
|||
</div>
|
||||
|
||||
<div class="relative flex flex-col h-full">
|
||||
<div id="blurBackdrop" class="absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"
|
||||
style="display:none "></div>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"></div>
|
||||
<div class="mobileBanner relative z-20" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -79,16 +74,15 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="agovLoginImageMobile" style="display: none"
|
||||
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
|
||||
<div id="agovLoginImageMobile"
|
||||
class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
|
||||
<img alt=""
|
||||
src="${login.appDataPath}/static/images/recovery.svg"
|
||||
class="block sm:hidden md:block dark:hidden w-full">
|
||||
|
@ -102,8 +96,7 @@
|
|||
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
|
||||
class="mb-4 mx-auto"></canvas>
|
||||
<div class="hidden" id="QRcodeHiddenLink"></div>
|
||||
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
|
||||
style="display: none">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
|
||||
class="animate-spin hidden dark:block">
|
||||
|
@ -134,7 +127,7 @@
|
|||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" class="w-full bottom-8 sm:static mt-auto mb-6 sm:mb-0">
|
||||
|
||||
<div id="mobileButtons" style="display: none" class="w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
|
||||
<div id="mobileButtons" class="hidden w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
|
||||
<div class="flex flex-col">
|
||||
<a id="accessAppLink" href="">
|
||||
<agov-button
|
||||
|
@ -161,9 +154,8 @@
|
|||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
style="display: none"
|
||||
id="hideQR"
|
||||
class="block basis-full"
|
||||
class="hidden basis-full"
|
||||
data-style="frameless"
|
||||
data-name="EID"
|
||||
data-value="EID"
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="modal" class="fixed top-0 bottom-0 left-0 right-0 pb-20 z-50 hidden">
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 backdrop-blur-[10px]" onclick="modal.setInvisible()"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 bg-[#E2E2E2E5]/80 dark:bg-[#111111]/90" onclick="modal.setInvisible()"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 backdrop-blur-[10px]" id="modal_light"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 bg-[#E2E2E2E5]/80 dark:bg-[#111111]/90" id="modal_dark"></div>
|
||||
|
||||
<div id="drawer"
|
||||
class="fixed bg-white dark:bg-surface-black rounded-[20px] p-10 w-11/12 sm:max-w-[660px] top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2">
|
||||
|
@ -26,12 +26,12 @@
|
|||
<div class="w-full sm:static mt-auto">
|
||||
<div class="flex justify-end flex-col-reverse sm:flex-row gap-4">
|
||||
<agov-button
|
||||
id="recovery_check_code"
|
||||
class="block"
|
||||
data-style="secondary"
|
||||
data-label="$text.get("general.cancel")"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
onclick="modal.setInvisible()">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<a href="$text.get("general.help.link")" target="_blank" rel="noopener noreferrer">
|
||||
<agov-button
|
||||
|
@ -51,7 +51,11 @@
|
|||
<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">
|
||||
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<div class="flex mb-6 items-baseline">
|
||||
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.recovery")</h3>
|
||||
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.entryCode")</h4>
|
||||
|
@ -76,6 +80,7 @@
|
|||
accept-charset="UTF-8"
|
||||
class="flex flex-col flex-auto block ">
|
||||
<agov-input
|
||||
id="recovery_code_input"
|
||||
class="mb-4 py-16"
|
||||
data-label="$text.get("recovery_check_code.enterRecoveryCode")"
|
||||
data-isLabelHidden="true"
|
||||
|
@ -85,10 +90,6 @@
|
|||
data-value=""
|
||||
data-type="text"
|
||||
data-autofocus="true"
|
||||
oninput="validateCode.onInputCodeAndroid(event)"
|
||||
onkeyup="validateCode.onKeyUp(event)"
|
||||
onkeydown="validateCode.onInputCode(event)"
|
||||
onpaste="validateCode.paste(event)"
|
||||
data-email_invalid="$text.get("recovery_check_code.invalid.code")"
|
||||
data-email_too_long="$text.get("recovery_check_code.invalid.code.tooLong")"
|
||||
data-email_required="$text.get("recovery_check_code.invalid.code.required")">
|
||||
|
@ -97,17 +98,18 @@
|
|||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col flex-row-reverse gap-4">
|
||||
<agov-button
|
||||
id="recovery_code_btn"
|
||||
class="block basis-full"
|
||||
data-name="confirm"
|
||||
data-value="confirm"
|
||||
data-id="confirm"
|
||||
data-label="$text.get("general.confirm")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateCode.validateForm(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
id="recovery_code_btn_cancel"
|
||||
class="block basis-full"
|
||||
data-style="frameless"
|
||||
data-name="cancelFido2"
|
||||
|
@ -116,8 +118,7 @@
|
|||
data-label="$text.get("recovery_check_code.noAccess")"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
data-validate="false"
|
||||
onclick="modal.setVisible()">
|
||||
data-validate="false">
|
||||
</agov-button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -56,8 +56,7 @@
|
|||
data-style="secondary"
|
||||
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>Reveal code"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
onclick="blurCode.unBlurCode()">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<a class="mb-20" target="_blank" href="$PDFLink">
|
||||
<agov-button
|
||||
|
@ -77,14 +76,14 @@
|
|||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col flex-row-reverse gap-4">
|
||||
<agov-button
|
||||
id="recovery_code_continue"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="blurCode.continue(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -29,8 +29,7 @@
|
|||
</p>
|
||||
|
||||
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("fido2_auth.cancel.fido")
|
||||
|
@ -62,7 +61,7 @@
|
|||
|
||||
<div class="mt-auto mb-6 sm:mb-0">
|
||||
<agov-button
|
||||
onclick="fido.authenticate()"
|
||||
id="recovery_fido"
|
||||
data-type="button"
|
||||
data-label="$text.get("recovery_fidokey_auth.button")"
|
||||
data-fullwidth="true"
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
|
@ -27,11 +32,11 @@
|
|||
</div>
|
||||
#end
|
||||
|
||||
<div id="captchaNotFilled" style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div id="captchaNotFilled"
|
||||
class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("recovery_intro_email.captchaUnchecked")
|
||||
$text.get("error_9909")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -62,106 +67,53 @@
|
|||
<span class="font-body-semi">$text.get("recovery_intro_email.important")</span>
|
||||
$text.get("recovery_intro_email.process")
|
||||
</p>
|
||||
#if ($utils.escapeHtmlAttribute($gui.getGuiElem("X-ReCAPTCHA-Integration").value) == "INVISIBLE")
|
||||
#set ($isCaptchaVisible = true)
|
||||
#else
|
||||
#set ($isCaptchaVisible = false)
|
||||
#end
|
||||
|
||||
#if ($isCaptchaVisible)
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
|
||||
#set ($siteKey = $gui.getGuiElem("friendlyCaptchaSettings.siteKey"))
|
||||
#set ($puzzleUrl = $gui.getGuiElem("friendlyCaptchaSettings.puzzleUrl"))
|
||||
#set ($captchaEnabled = $gui.getGuiElem("captchaSettings.enabled"))
|
||||
|
||||
<script>
|
||||
function emailCaptcha(event) {
|
||||
event.preventDefault();
|
||||
if (validateEmail.validateForm(event)) {
|
||||
grecaptcha.enterprise.ready(async () => {
|
||||
await grecaptcha.enterprise.execute('$captcha.value', { action: 'LOGIN' })
|
||||
.then((token) => {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = token;
|
||||
addButton();
|
||||
});
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function addButton() {
|
||||
let btn = document.createElement("button");
|
||||
btn.type = "submit";
|
||||
btn.name = "continue";
|
||||
btn.value = "continue";
|
||||
btn.style.display = "none";
|
||||
document.querySelector('#$gui.name').appendChild(btn);
|
||||
btn.click()
|
||||
}
|
||||
</script>
|
||||
#else
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
|
||||
defer></script>
|
||||
|
||||
<script>
|
||||
var verifyCallback = function (response) {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = response;
|
||||
};
|
||||
|
||||
var expiredCallback = function () {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = 'captcha';
|
||||
};
|
||||
|
||||
var onloadCallback = function () {
|
||||
grecaptcha.enterprise.render(document.getElementById('captchaRender'), {
|
||||
'sitekey': '$captcha.value',
|
||||
'action': 'LOGIN',
|
||||
'callback': verifyCallback,
|
||||
'expired-callback': expiredCallback
|
||||
});
|
||||
};
|
||||
</script>
|
||||
#end
|
||||
|
||||
<div class="font-body text-body-l mb-4">
|
||||
#if ($isCaptchaVisible)
|
||||
<div class="text-disabled-grey dark:text-silver">
|
||||
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<div class="font-body w-full text-body-l mb-4">
|
||||
<div class="flex mt-8">
|
||||
<div class="frc-captcha"
|
||||
id="frc-captcha"
|
||||
data-puzzle-endpoint="$puzzleUrl.value"
|
||||
data-sitekey="$siteKey.value"
|
||||
data-start="auto"
|
||||
data-lang="$login.language"
|
||||
data-solution-field-name="captcha_response">
|
||||
</div>
|
||||
#else
|
||||
<div class="flex mt-8" id="captchaRender"></div>
|
||||
#end
|
||||
|
||||
</div>
|
||||
</div>
|
||||
#end ## if
|
||||
|
||||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col sm:flex-row-reverse gap-4">
|
||||
#if ($isCaptchaVisible)
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<agov-button
|
||||
id="submit_btn_captcha_enabled"
|
||||
disabled="true"
|
||||
class="block basis-full"
|
||||
data-name="continue"
|
||||
data-value="continue"
|
||||
data-id="continue"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="return emailCaptcha(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#else
|
||||
<agov-button
|
||||
id="submit_btn_captcha_disabled"
|
||||
class="block basis-full"
|
||||
data-name="continue"
|
||||
data-value="continue"
|
||||
data-id="continue"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateEmail.validateForm(event, true)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#end
|
||||
#end ## if
|
||||
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
data-style="secondary"
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
|
|
|
@ -42,11 +42,11 @@
|
|||
<div id="buttons" class="w-full sm:static mt-auto mb-6 sm:mb-0 mt-24 sm:mt-24">
|
||||
<div class="flex sm:flex-row-reverse flex-col gap-2">
|
||||
<agov-button
|
||||
id="questionnaire_continue_btn"
|
||||
class="block basis-full"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="setErrorBanner(validateAnswer.validateFormYesOrNo(event))">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
|
|
|
@ -60,11 +60,11 @@
|
|||
<div class="w-full sm:static mt-8 mb-6 sm:mb-0 ">
|
||||
<div class="flex sm:flex-row-reverse flex-col gap-2">
|
||||
<agov-button
|
||||
id="questionnaire_continue_btn_reason"
|
||||
class="block basis-full"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="setErrorBanner(validateAnswer.validateForm(event))">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
|
|
|
@ -2,15 +2,27 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.login")</h3>
|
||||
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.securityKey")</h4>
|
||||
</div>
|
||||
|
||||
<div id="captchaNotFilled"
|
||||
class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("error_9909")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
|
||||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8"
|
||||
|
@ -35,106 +47,51 @@
|
|||
data-email_required="$text.get("user_input.invalid.email.required")">
|
||||
</agov-input>
|
||||
|
||||
#if ($gui.getGuiElem("X-ReCAPTCHA-Integration").value == "INVISIBLE")
|
||||
#set ($isCaptchaVisible = true)
|
||||
#else
|
||||
#set ($isCaptchaVisible = false)
|
||||
#end
|
||||
#set ($siteKey = $gui.getGuiElem("friendlyCaptchaSettings.siteKey"))
|
||||
#set ($puzzleUrl = $gui.getGuiElem("friendlyCaptchaSettings.puzzleUrl"))
|
||||
#set ($captchaEnabled = $gui.getGuiElem("captchaSettings.enabled"))
|
||||
|
||||
#if ($isCaptchaVisible)
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
|
||||
|
||||
<script>
|
||||
function emailCaptcha(event) {
|
||||
event.preventDefault();
|
||||
if (validateEmail.validateForm(event)) {
|
||||
grecaptcha.enterprise.ready(async () => {
|
||||
await grecaptcha.enterprise.execute('$captcha.value', { action: 'LOGIN' })
|
||||
.then((token) => {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = token;
|
||||
addButton();
|
||||
});
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function addButton() {
|
||||
let btn = document.createElement("button");
|
||||
btn.type = "submit";
|
||||
btn.name = "submit";
|
||||
btn.value = "submit";
|
||||
btn.style.display = "none";
|
||||
document.querySelector('#$gui.name').appendChild(btn);
|
||||
btn.click()
|
||||
}
|
||||
</script>
|
||||
#else
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
|
||||
defer></script>
|
||||
|
||||
<script>
|
||||
var verifyCallback = function (response) {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = response;
|
||||
};
|
||||
|
||||
var expiredCallback = function () {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = 'captcha';
|
||||
};
|
||||
|
||||
var onloadCallback = function () {
|
||||
grecaptcha.enterprise.render(document.getElementById('captchaRender'), {
|
||||
'sitekey': '$captcha.value',
|
||||
'action': 'LOGIN',
|
||||
'callback': verifyCallback,
|
||||
'expired-callback': expiredCallback
|
||||
});
|
||||
};
|
||||
</script>
|
||||
#end
|
||||
|
||||
<div class="font-body text-body-l mb-4">
|
||||
#if ($isCaptchaVisible)
|
||||
<div class="text-disabled-grey dark:text-silver">
|
||||
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<div class="w-full font-body text-body-l mb-4">
|
||||
<div class="flex mt-8">
|
||||
<div class="frc-captcha"
|
||||
id="frc-captcha"
|
||||
data-puzzle-endpoint="$puzzleUrl.value"
|
||||
data-sitekey="$siteKey.value"
|
||||
data-start="auto"
|
||||
data-lang="$login.language"
|
||||
data-solution-field-name="captcha_response">
|
||||
</div>
|
||||
#else
|
||||
<div class="flex mt-8" id="captchaRender"></div>
|
||||
#end
|
||||
|
||||
</div>
|
||||
</div>
|
||||
#end ## if
|
||||
|
||||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col sm:flex-row-reverse gap-4">
|
||||
#if ($isCaptchaVisible)
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<agov-button
|
||||
id="submit_btn_captcha_enabled"
|
||||
disabled="true"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.login")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="return emailCaptcha(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#else
|
||||
<agov-button
|
||||
id="submit_btn_captcha_disabled"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.login")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateEmail.validateForm(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#end
|
||||
#end ## if
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
data-style="secondary"
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow
|
|||
recovery_fidokey_auth.keyRegistered=Security key already registered
|
||||
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
|
||||
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
|
||||
recovery_intro_email.captchaUnchecked=Please tick the captcha field
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=This site is protected by reCAPTCHA and the <a class='link' href='https://policies.google.com/privacy' target='_blank'>Google Privacy Policy</a> and <a class='link' href='https://policies.google.com/terms' target='_blank'>Terms of Service</a> apply.
|
||||
recovery_intro_email_sent.banner.button=Didn't receive the email?
|
||||
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
|
||||
recovery_on_going.finishRecovery=Finish recovery
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! u
|
|||
recovery_fidokey_auth.keyRegistered=Sicherheitsschlüssel schon registriert
|
||||
recovery_intro_email.banner.error=Der von Ihnen verwendete Link ist abgelaufen. Bitte geben Sie Ihre E-Mail-Adresse ein, um einen neuen Link zu erhalten.
|
||||
recovery_intro_email.banner.info=Bitte geben Sie Ihre E-Mail-Adresse ein, damit wir Ihnen einen Link schicken können, mit dem Sie den Wiederherstellungsprozess starten.
|
||||
recovery_intro_email.captchaUnchecked=Bitte kreuzen Sie das Captcha-Feld an
|
||||
recovery_intro_email.important=Wichtig:
|
||||
recovery_intro_email.process=Der Wiederherstellungsprozess sollte nur verwendet werden, wenn Sie den Zugriff auf Ihre Login-Faktoren verloren haben (gelöschte AGOV access App, verlorener Sicherheitsschlüssel, verlorenes Telefon usw.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Diese Seite ist durch reCAPTCHA geschützt, und es gelten die <a class='link' href='https://policies.google.com/privacy' target='_blank'>Datenschutzerklärung</a> sowie die <a class='link' href='https://policies.google.com/terms' target='_blank'>Nutzungsbedingungen</a> von Google.
|
||||
recovery_intro_email_sent.banner.button=Keine E-Mail erhalten?
|
||||
recovery_intro_email_sent.banner.success=Vielen Dank! Sie werden in Kürze eine E-Mail mit einem Wiederherstellungslink und Anweisungen erhalten.
|
||||
recovery_on_going.finishRecovery=Wiederherstellung abschliessen
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow
|
|||
recovery_fidokey_auth.keyRegistered=Security key already registered
|
||||
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
|
||||
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
|
||||
recovery_intro_email.captchaUnchecked=Please tick the captcha field
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=This site is protected by reCAPTCHA and the <a class='link' href='https://policies.google.com/privacy' target='_blank'>Google Privacy Policy</a> and <a class='link' href='https://policies.google.com/terms' target='_blank'>Terms of Service</a> apply.
|
||||
recovery_intro_email_sent.banner.button=Didn't receive the email?
|
||||
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
|
||||
recovery_on_going.finishRecovery=Finish recovery
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Veuillez utiliser !!!SECURITY_KEY_NAME!!! pou
|
|||
recovery_fidokey_auth.keyRegistered=Clé de sécurité déjà enregistrée
|
||||
recovery_intro_email.banner.error=Le lien que vous avez utilisé a expiré. Veuillez saisir votre adresse e-mail pour recevoir un nouveau lien.
|
||||
recovery_intro_email.banner.info=Veuillez saisir votre adresse e-mail. Nous vous enverrons un e-mail vous permettant de démarrer le processus de récupération.
|
||||
recovery_intro_email.captchaUnchecked=Veuillez cocher la case captcha
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=Le processus de récupération ne doit être utilisé que si vous avez perdu l'accès à vos facteurs de connexion (application AGOV access supprimée, clé de sécurité perdue, téléphone perdu, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Ce site est protégé par reCAPTCHA: les <a class=’link’ href=’https://policies.google.com/privacy’ target=’_blank’>règles de confidentialité</a> et <a class=’link’ href=’https://policies.google.com/terms’ target=’_blank’>conditions d’utilisation</a> de Google s’appliquent.
|
||||
recovery_intro_email_sent.banner.button=Vous n’avez pas reçu l'email?
|
||||
recovery_intro_email_sent.banner.success=Merci! Vous recevrez dans un instant un e-mail contenant un lien de récupération et des instructions.
|
||||
recovery_on_going.finishRecovery=Terminer la récupération
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Si prega di usare !!!SECURITY_KEY_NAME!!! per
|
|||
recovery_fidokey_auth.keyRegistered=Chiave di sicurezza già registrata
|
||||
recovery_intro_email.banner.error=Il link utilizzato è scaduto. Per ricevere un nuovo link, inserire l’indirizzo e-mail.
|
||||
recovery_intro_email.banner.info=Per ricevere il link e avviare il processo di ripristino, inserire l’indirizzo e-mail.
|
||||
recovery_intro_email.captchaUnchecked=Per favore selezioni il campo captcha
|
||||
recovery_intro_email.important=Importante:
|
||||
recovery_intro_email.process=Il processo di ripristino deve essere utilizzato solo se ha perso l'accesso ai suoi fattori di accesso (app di accesso AGOV eliminata, chiave di sicurezza persa, telefono smarrito, ecc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Questo sito è protetto da reCAPTCHA. Si applicano le <a class='link' href='https://policies.google.com/privacy' target='_blank'>norme sulla privacy</a> e i <a class='link' href='https://policies.google.com/terms' target='_blank'>termini di servizio di Google</a>.
|
||||
recovery_intro_email_sent.banner.button=Non avete ricevuto l'e-mail?
|
||||
recovery_intro_email_sent.banner.success=Grazie! È stata inviata un’e-mail contenente il codice di ripristino e le istruzioni.
|
||||
recovery_on_going.finishRecovery=Completare il ripristino
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,5 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initQRCode'));
|
||||
document.dispatchEvent(new Event('initDrawer'));
|
||||
document.dispatchEvent(new Event('initCantonalBranding'));
|
||||
});
|
|
@ -1,3 +1,4 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initEmail'));
|
||||
document.dispatchEvent(new Event('initCaptcha'));
|
||||
});
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initAnswer'));
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function setErrorBanner(value) {
|
||||
document.getElementById('errorBanner').style.display = value ? 'none' : 'flex';
|
||||
document.getElementById('buttons').style.marginTop = value ? '16px' : '8px';
|
||||
}
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initAnswer'));
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function setErrorBanner(value) {
|
||||
document.getElementById('errorBanner').style.display = value ? 'none' : 'flex';
|
||||
console.log(document.getElementById('errorBanner').style.display);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initEmail'));
|
||||
document.dispatchEvent(new Event('initCaptcha'));
|
||||
});
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -40,8 +40,7 @@
|
|||
</form>
|
||||
<div class="mt-3 mb-6 w-full h-px bg-platinum rounded-full"></div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4 hidden">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("fido2_auth.cancel.fido")
|
||||
|
@ -84,7 +83,7 @@
|
|||
</div>
|
||||
<div class="mt-auto mb-6 sm:mb-0">
|
||||
<agov-button
|
||||
onclick="fido.authenticate()"
|
||||
id="fido_authenticate"
|
||||
data-type="button"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-fullwidth="true"
|
||||
|
|
|
@ -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.5.7.77-20240809T142941Z</p>
|
||||
<p>1.6.8.13-20240919T195132Z</p>
|
||||
</footer>
|
||||
<script src="${login.appDataPath}/static/bundle.js"></script>
|
||||
</body>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
|
||||
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
|
||||
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
|
||||
<head>
|
||||
<title>AGOV</title>
|
||||
<meta charset="UTF-8">
|
||||
|
|
|
@ -49,6 +49,8 @@
|
|||
|
||||
<div id="agovLoginImage"
|
||||
class="relative md:max-w-[520px] max-w-[350px] sm:max-w-[300px] mb-10 w-full mx-auto hidden md:block">
|
||||
<div class="hidden flex items-center p-2 bg-white dark:bg-black rounded-xl w-16 h-16 absolute left-[calc(39%-32px)] top-8"
|
||||
id="logoDoor"></div>
|
||||
<img alt="" src="${login.appDataPath}/static/images/login.svg"
|
||||
class="hidden md:block dark:hidden w-full">
|
||||
<img alt="" src="${login.appDataPath}/static/images/login-dark.svg"
|
||||
|
@ -93,16 +95,16 @@
|
|||
<div id="accessAppModal" class="h-full">
|
||||
|
||||
<div class="desktopBanner" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
|
||||
mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -111,8 +113,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center
|
||||
p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
|
@ -121,19 +123,19 @@
|
|||
</div>
|
||||
|
||||
<div class="relative flex flex-col h-full">
|
||||
<div id="blurBackdrop" class="absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4 z-10"
|
||||
style="display:none "></div>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4
|
||||
z-10"></div>
|
||||
<div class="mobileBanner relative z-20" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center
|
||||
p-4 mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -142,16 +144,16 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="agovLoginImageMobile" style="display: none"
|
||||
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full mx-auto mb-6">
|
||||
<div id="agovLoginImageMobile" class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full
|
||||
mx-auto mb-6">
|
||||
<img alt=""
|
||||
src="${login.appDataPath}/static/images/login.svg"
|
||||
class="block sm:hidden md:block dark:hidden w-full">
|
||||
|
@ -165,8 +167,8 @@
|
|||
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
|
||||
class="mb-6 mx-auto"></canvas>
|
||||
<div class="hidden" id="QRcodeHiddenLink"></div>
|
||||
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
|
||||
style="display: none">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2
|
||||
z-20">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
|
||||
class="animate-spin hidden dark:block">
|
||||
|
@ -197,7 +199,7 @@
|
|||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" class="w-full sm:static mt-auto mb-20 sm:mb-0">
|
||||
|
||||
<div id="mobileButtons" style="display: none" class="w-full">
|
||||
<div id="mobileButtons" class="hidden w-full">
|
||||
<div class="flex flex-col">
|
||||
<a id="accessAppLink" href="">
|
||||
<agov-button
|
||||
|
@ -224,9 +226,8 @@
|
|||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
style="display: none"
|
||||
id="hideQR"
|
||||
class="block basis-full"
|
||||
class="hidden basis-full"
|
||||
data-style="frameless"
|
||||
data-name="EID"
|
||||
data-value="EID"
|
||||
|
@ -300,7 +301,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" style="display: none" class="sm:hidden formDrawer">
|
||||
accept-charset="UTF-8" class="hidden sm:hidden formDrawer">
|
||||
<div class="w-full z-30 fixed left-0 pointer-events-none" id="drawerContainer">
|
||||
<div class="w-full bg-white dark:bg-surface-black px-4 pb-[130px] rounded-t-2xl pointer-events-auto" id="drawer">
|
||||
<div class="pt-2 pb-4 cursor-pointer">
|
||||
|
@ -363,13 +364,10 @@
|
|||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
document.dispatchEvent(new Event('initQRCode'));
|
||||
document.dispatchEvent(new Event('initDrawer'));
|
||||
document.dispatchEvent(new Event('initCantonalBranding'));
|
||||
cantonalBranding.getLogo("$gui.getGuiElem('agov.appSamlRpEntityId').value", "$login.language");
|
||||
});
|
||||
<script src="${login.appDataPath}/static/js-code/mauth_usernameless.js" defer>
|
||||
</script>
|
||||
<div id="appSamlRpEntityId" class="hidden" data-value="$gui.getGuiElem('agov.appSamlRpEntityId').value"
|
||||
data-language="$login.language">
|
||||
</div>
|
||||
|
||||
#parse("${templatePath}/footer.vm")
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
|
||||
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
|
||||
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
|
||||
<head>
|
||||
<title>AGOV Operations</title>
|
||||
<meta charset="UTF-8">
|
||||
|
@ -44,7 +44,8 @@
|
|||
class="flex items-center px-8 sm:px-4 justify-between w-full py-3 bg-indigo-light dark:bg-purple-black"
|
||||
aria-current="true"
|
||||
href="'+$langTarget+'"><span class="font-body-semi"
|
||||
>'+$langLabel+' - '+$locale.toUpperCase()+'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
|
||||
>'+$langLabel+' - '+$locale.toUpperCase()+
|
||||
'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
|
||||
#end
|
||||
#end ## end foreach
|
||||
|
||||
|
@ -58,7 +59,8 @@
|
|||
<a href="$text.get("general.help.link")" target="_blank" class="cursor-pointer hidden sm:inline-block">
|
||||
<div class="mx-6 flex items-center">
|
||||
<i class="text-xl pr-2 fa-regular fa-circle-question ml-auto text-space-blue dark:text-white transition-all"></i>
|
||||
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get("general.help")</span>
|
||||
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get(
|
||||
"general.help")</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -30,16 +30,15 @@
|
|||
|
||||
<div id="accessAppModal" class="h-full">
|
||||
<div class="desktopBanner" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
|
||||
mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -48,8 +47,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
|
@ -58,19 +56,16 @@
|
|||
</div>
|
||||
|
||||
<div class="relative flex flex-col h-full">
|
||||
<div id="blurBackdrop" class="absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"
|
||||
style="display:none "></div>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"></div>
|
||||
<div class="mobileBanner relative z-20" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -79,16 +74,15 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="agovLoginImageMobile" style="display: none"
|
||||
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
|
||||
<div id="agovLoginImageMobile"
|
||||
class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
|
||||
<img alt=""
|
||||
src="${login.appDataPath}/static/images/recovery.svg"
|
||||
class="block sm:hidden md:block dark:hidden w-full">
|
||||
|
@ -102,8 +96,7 @@
|
|||
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
|
||||
class="mb-4 mx-auto"></canvas>
|
||||
<div class="hidden" id="QRcodeHiddenLink"></div>
|
||||
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
|
||||
style="display: none">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
|
||||
class="animate-spin hidden dark:block">
|
||||
|
@ -134,7 +127,7 @@
|
|||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" class="w-full bottom-8 sm:static mt-auto mb-6 sm:mb-0">
|
||||
|
||||
<div id="mobileButtons" style="display: none" class="w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
|
||||
<div id="mobileButtons" class="hidden w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
|
||||
<div class="flex flex-col">
|
||||
<a id="accessAppLink" href="">
|
||||
<agov-button
|
||||
|
@ -161,9 +154,8 @@
|
|||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
style="display: none"
|
||||
id="hideQR"
|
||||
class="block basis-full"
|
||||
class="hidden basis-full"
|
||||
data-style="frameless"
|
||||
data-name="EID"
|
||||
data-value="EID"
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="modal" class="fixed top-0 bottom-0 left-0 right-0 pb-20 z-50 hidden">
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 backdrop-blur-[10px]" onclick="modal.setInvisible()"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 bg-[#E2E2E2E5]/80 dark:bg-[#111111]/90" onclick="modal.setInvisible()"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 backdrop-blur-[10px]" id="modal_light"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 bg-[#E2E2E2E5]/80 dark:bg-[#111111]/90" id="modal_dark"></div>
|
||||
|
||||
<div id="drawer"
|
||||
class="fixed bg-white dark:bg-surface-black rounded-[20px] p-10 w-11/12 sm:max-w-[660px] top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2">
|
||||
|
@ -26,12 +26,12 @@
|
|||
<div class="w-full sm:static mt-auto">
|
||||
<div class="flex justify-end flex-col-reverse sm:flex-row gap-4">
|
||||
<agov-button
|
||||
id="recovery_check_code"
|
||||
class="block"
|
||||
data-style="secondary"
|
||||
data-label="$text.get("general.cancel")"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
onclick="modal.setInvisible()">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<a href="$text.get("general.help.link")" target="_blank" rel="noopener noreferrer">
|
||||
<agov-button
|
||||
|
@ -51,7 +51,11 @@
|
|||
<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">
|
||||
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<div class="flex mb-6 items-baseline">
|
||||
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.recovery")</h3>
|
||||
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.entryCode")</h4>
|
||||
|
@ -76,6 +80,7 @@
|
|||
accept-charset="UTF-8"
|
||||
class="flex flex-col flex-auto block ">
|
||||
<agov-input
|
||||
id="recovery_code_input"
|
||||
class="mb-4 py-16"
|
||||
data-label="$text.get("recovery_check_code.enterRecoveryCode")"
|
||||
data-isLabelHidden="true"
|
||||
|
@ -85,10 +90,6 @@
|
|||
data-value=""
|
||||
data-type="text"
|
||||
data-autofocus="true"
|
||||
oninput="validateCode.onInputCodeAndroid(event)"
|
||||
onkeyup="validateCode.onKeyUp(event)"
|
||||
onkeydown="validateCode.onInputCode(event)"
|
||||
onpaste="validateCode.paste(event)"
|
||||
data-email_invalid="$text.get("recovery_check_code.invalid.code")"
|
||||
data-email_too_long="$text.get("recovery_check_code.invalid.code.tooLong")"
|
||||
data-email_required="$text.get("recovery_check_code.invalid.code.required")">
|
||||
|
@ -97,17 +98,18 @@
|
|||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col flex-row-reverse gap-4">
|
||||
<agov-button
|
||||
id="recovery_code_btn"
|
||||
class="block basis-full"
|
||||
data-name="confirm"
|
||||
data-value="confirm"
|
||||
data-id="confirm"
|
||||
data-label="$text.get("general.confirm")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateCode.validateForm(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
id="recovery_code_btn_cancel"
|
||||
class="block basis-full"
|
||||
data-style="frameless"
|
||||
data-name="cancelFido2"
|
||||
|
@ -116,8 +118,7 @@
|
|||
data-label="$text.get("recovery_check_code.noAccess")"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
data-validate="false"
|
||||
onclick="modal.setVisible()">
|
||||
data-validate="false">
|
||||
</agov-button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -56,8 +56,7 @@
|
|||
data-style="secondary"
|
||||
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>Reveal code"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
onclick="blurCode.unBlurCode()">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<a class="mb-20" target="_blank" href="$PDFLink">
|
||||
<agov-button
|
||||
|
@ -77,14 +76,14 @@
|
|||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col flex-row-reverse gap-4">
|
||||
<agov-button
|
||||
id="recovery_code_continue"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="blurCode.continue(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -29,8 +29,7 @@
|
|||
</p>
|
||||
|
||||
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("fido2_auth.cancel.fido")
|
||||
|
@ -62,7 +61,7 @@
|
|||
|
||||
<div class="mt-auto mb-6 sm:mb-0">
|
||||
<agov-button
|
||||
onclick="fido.authenticate()"
|
||||
id="recovery_fido"
|
||||
data-type="button"
|
||||
data-label="$text.get("recovery_fidokey_auth.button")"
|
||||
data-fullwidth="true"
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
|
@ -27,11 +32,11 @@
|
|||
</div>
|
||||
#end
|
||||
|
||||
<div id="captchaNotFilled" style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div id="captchaNotFilled"
|
||||
class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("recovery_intro_email.captchaUnchecked")
|
||||
$text.get("error_9909")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -62,106 +67,53 @@
|
|||
<span class="font-body-semi">$text.get("recovery_intro_email.important")</span>
|
||||
$text.get("recovery_intro_email.process")
|
||||
</p>
|
||||
#if ($utils.escapeHtmlAttribute($gui.getGuiElem("X-ReCAPTCHA-Integration").value) == "INVISIBLE")
|
||||
#set ($isCaptchaVisible = true)
|
||||
#else
|
||||
#set ($isCaptchaVisible = false)
|
||||
#end
|
||||
|
||||
#if ($isCaptchaVisible)
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
|
||||
#set ($siteKey = $gui.getGuiElem("friendlyCaptchaSettings.siteKey"))
|
||||
#set ($puzzleUrl = $gui.getGuiElem("friendlyCaptchaSettings.puzzleUrl"))
|
||||
#set ($captchaEnabled = $gui.getGuiElem("captchaSettings.enabled"))
|
||||
|
||||
<script>
|
||||
function emailCaptcha(event) {
|
||||
event.preventDefault();
|
||||
if (validateEmail.validateForm(event)) {
|
||||
grecaptcha.enterprise.ready(async () => {
|
||||
await grecaptcha.enterprise.execute('$captcha.value', { action: 'LOGIN' })
|
||||
.then((token) => {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = token;
|
||||
addButton();
|
||||
});
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function addButton() {
|
||||
let btn = document.createElement("button");
|
||||
btn.type = "submit";
|
||||
btn.name = "continue";
|
||||
btn.value = "continue";
|
||||
btn.style.display = "none";
|
||||
document.querySelector('#$gui.name').appendChild(btn);
|
||||
btn.click()
|
||||
}
|
||||
</script>
|
||||
#else
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
|
||||
defer></script>
|
||||
|
||||
<script>
|
||||
var verifyCallback = function (response) {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = response;
|
||||
};
|
||||
|
||||
var expiredCallback = function () {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = 'captcha';
|
||||
};
|
||||
|
||||
var onloadCallback = function () {
|
||||
grecaptcha.enterprise.render(document.getElementById('captchaRender'), {
|
||||
'sitekey': '$captcha.value',
|
||||
'action': 'LOGIN',
|
||||
'callback': verifyCallback,
|
||||
'expired-callback': expiredCallback
|
||||
});
|
||||
};
|
||||
</script>
|
||||
#end
|
||||
|
||||
<div class="font-body text-body-l mb-4">
|
||||
#if ($isCaptchaVisible)
|
||||
<div class="text-disabled-grey dark:text-silver">
|
||||
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<div class="font-body w-full text-body-l mb-4">
|
||||
<div class="flex mt-8">
|
||||
<div class="frc-captcha"
|
||||
id="frc-captcha"
|
||||
data-puzzle-endpoint="$puzzleUrl.value"
|
||||
data-sitekey="$siteKey.value"
|
||||
data-start="auto"
|
||||
data-lang="$login.language"
|
||||
data-solution-field-name="captcha_response">
|
||||
</div>
|
||||
#else
|
||||
<div class="flex mt-8" id="captchaRender"></div>
|
||||
#end
|
||||
|
||||
</div>
|
||||
</div>
|
||||
#end ## if
|
||||
|
||||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col sm:flex-row-reverse gap-4">
|
||||
#if ($isCaptchaVisible)
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<agov-button
|
||||
id="submit_btn_captcha_enabled"
|
||||
disabled="true"
|
||||
class="block basis-full"
|
||||
data-name="continue"
|
||||
data-value="continue"
|
||||
data-id="continue"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="return emailCaptcha(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#else
|
||||
<agov-button
|
||||
id="submit_btn_captcha_disabled"
|
||||
class="block basis-full"
|
||||
data-name="continue"
|
||||
data-value="continue"
|
||||
data-id="continue"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateEmail.validateForm(event, true)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#end
|
||||
#end ## if
|
||||
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
data-style="secondary"
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
|
|
|
@ -42,11 +42,11 @@
|
|||
<div id="buttons" class="w-full sm:static mt-auto mb-6 sm:mb-0 mt-24 sm:mt-24">
|
||||
<div class="flex sm:flex-row-reverse flex-col gap-2">
|
||||
<agov-button
|
||||
id="questionnaire_continue_btn"
|
||||
class="block basis-full"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="setErrorBanner(validateAnswer.validateFormYesOrNo(event))">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
|
|
|
@ -60,11 +60,11 @@
|
|||
<div class="w-full sm:static mt-8 mb-6 sm:mb-0 ">
|
||||
<div class="flex sm:flex-row-reverse flex-col gap-2">
|
||||
<agov-button
|
||||
id="questionnaire_continue_btn_reason"
|
||||
class="block basis-full"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="setErrorBanner(validateAnswer.validateForm(event))">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
|
|
|
@ -2,15 +2,27 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.login")</h3>
|
||||
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.securityKey")</h4>
|
||||
</div>
|
||||
|
||||
<div id="captchaNotFilled"
|
||||
class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("error_9909")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
|
||||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8"
|
||||
|
@ -35,106 +47,51 @@
|
|||
data-email_required="$text.get("user_input.invalid.email.required")">
|
||||
</agov-input>
|
||||
|
||||
#if ($gui.getGuiElem("X-ReCAPTCHA-Integration").value == "INVISIBLE")
|
||||
#set ($isCaptchaVisible = true)
|
||||
#else
|
||||
#set ($isCaptchaVisible = false)
|
||||
#end
|
||||
#set ($siteKey = $gui.getGuiElem("friendlyCaptchaSettings.siteKey"))
|
||||
#set ($puzzleUrl = $gui.getGuiElem("friendlyCaptchaSettings.puzzleUrl"))
|
||||
#set ($captchaEnabled = $gui.getGuiElem("captchaSettings.enabled"))
|
||||
|
||||
#if ($isCaptchaVisible)
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
|
||||
|
||||
<script>
|
||||
function emailCaptcha(event) {
|
||||
event.preventDefault();
|
||||
if (validateEmail.validateForm(event)) {
|
||||
grecaptcha.enterprise.ready(async () => {
|
||||
await grecaptcha.enterprise.execute('$captcha.value', { action: 'LOGIN' })
|
||||
.then((token) => {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = token;
|
||||
addButton();
|
||||
});
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function addButton() {
|
||||
let btn = document.createElement("button");
|
||||
btn.type = "submit";
|
||||
btn.name = "submit";
|
||||
btn.value = "submit";
|
||||
btn.style.display = "none";
|
||||
document.querySelector('#$gui.name').appendChild(btn);
|
||||
btn.click()
|
||||
}
|
||||
</script>
|
||||
#else
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
|
||||
defer></script>
|
||||
|
||||
<script>
|
||||
var verifyCallback = function (response) {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = response;
|
||||
};
|
||||
|
||||
var expiredCallback = function () {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = 'captcha';
|
||||
};
|
||||
|
||||
var onloadCallback = function () {
|
||||
grecaptcha.enterprise.render(document.getElementById('captchaRender'), {
|
||||
'sitekey': '$captcha.value',
|
||||
'action': 'LOGIN',
|
||||
'callback': verifyCallback,
|
||||
'expired-callback': expiredCallback
|
||||
});
|
||||
};
|
||||
</script>
|
||||
#end
|
||||
|
||||
<div class="font-body text-body-l mb-4">
|
||||
#if ($isCaptchaVisible)
|
||||
<div class="text-disabled-grey dark:text-silver">
|
||||
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<div class="w-full font-body text-body-l mb-4">
|
||||
<div class="flex mt-8">
|
||||
<div class="frc-captcha"
|
||||
id="frc-captcha"
|
||||
data-puzzle-endpoint="$puzzleUrl.value"
|
||||
data-sitekey="$siteKey.value"
|
||||
data-start="auto"
|
||||
data-lang="$login.language"
|
||||
data-solution-field-name="captcha_response">
|
||||
</div>
|
||||
#else
|
||||
<div class="flex mt-8" id="captchaRender"></div>
|
||||
#end
|
||||
|
||||
</div>
|
||||
</div>
|
||||
#end ## if
|
||||
|
||||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col sm:flex-row-reverse gap-4">
|
||||
#if ($isCaptchaVisible)
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<agov-button
|
||||
id="submit_btn_captcha_enabled"
|
||||
disabled="true"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.login")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="return emailCaptcha(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#else
|
||||
<agov-button
|
||||
id="submit_btn_captcha_disabled"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.login")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateEmail.validateForm(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#end
|
||||
#end ## if
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
data-style="secondary"
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow
|
|||
recovery_fidokey_auth.keyRegistered=Security key already registered
|
||||
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
|
||||
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
|
||||
recovery_intro_email.captchaUnchecked=Please tick the captcha field
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=This site is protected by reCAPTCHA and the <a class='link' href='https://policies.google.com/privacy' target='_blank'>Google Privacy Policy</a> and <a class='link' href='https://policies.google.com/terms' target='_blank'>Terms of Service</a> apply.
|
||||
recovery_intro_email_sent.banner.button=Didn't receive the email?
|
||||
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
|
||||
recovery_on_going.finishRecovery=Finish recovery
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! u
|
|||
recovery_fidokey_auth.keyRegistered=Sicherheitsschlüssel schon registriert
|
||||
recovery_intro_email.banner.error=Der von Ihnen verwendete Link ist abgelaufen. Bitte geben Sie Ihre E-Mail-Adresse ein, um einen neuen Link zu erhalten.
|
||||
recovery_intro_email.banner.info=Bitte geben Sie Ihre E-Mail-Adresse ein, damit wir Ihnen einen Link schicken können, mit dem Sie den Wiederherstellungsprozess starten.
|
||||
recovery_intro_email.captchaUnchecked=Bitte kreuzen Sie das Captcha-Feld an
|
||||
recovery_intro_email.important=Wichtig:
|
||||
recovery_intro_email.process=Der Wiederherstellungsprozess sollte nur verwendet werden, wenn Sie den Zugriff auf Ihre Login-Faktoren verloren haben (gelöschte AGOV access App, verlorener Sicherheitsschlüssel, verlorenes Telefon usw.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Diese Seite ist durch reCAPTCHA geschützt, und es gelten die <a class='link' href='https://policies.google.com/privacy' target='_blank'>Datenschutzerklärung</a> sowie die <a class='link' href='https://policies.google.com/terms' target='_blank'>Nutzungsbedingungen</a> von Google.
|
||||
recovery_intro_email_sent.banner.button=Keine E-Mail erhalten?
|
||||
recovery_intro_email_sent.banner.success=Vielen Dank! Sie werden in Kürze eine E-Mail mit einem Wiederherstellungslink und Anweisungen erhalten.
|
||||
recovery_on_going.finishRecovery=Wiederherstellung abschliessen
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow
|
|||
recovery_fidokey_auth.keyRegistered=Security key already registered
|
||||
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
|
||||
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
|
||||
recovery_intro_email.captchaUnchecked=Please tick the captcha field
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=This site is protected by reCAPTCHA and the <a class='link' href='https://policies.google.com/privacy' target='_blank'>Google Privacy Policy</a> and <a class='link' href='https://policies.google.com/terms' target='_blank'>Terms of Service</a> apply.
|
||||
recovery_intro_email_sent.banner.button=Didn't receive the email?
|
||||
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
|
||||
recovery_on_going.finishRecovery=Finish recovery
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Veuillez utiliser !!!SECURITY_KEY_NAME!!! pou
|
|||
recovery_fidokey_auth.keyRegistered=Clé de sécurité déjà enregistrée
|
||||
recovery_intro_email.banner.error=Le lien que vous avez utilisé a expiré. Veuillez saisir votre adresse e-mail pour recevoir un nouveau lien.
|
||||
recovery_intro_email.banner.info=Veuillez saisir votre adresse e-mail. Nous vous enverrons un e-mail vous permettant de démarrer le processus de récupération.
|
||||
recovery_intro_email.captchaUnchecked=Veuillez cocher la case captcha
|
||||
recovery_intro_email.important=Important:
|
||||
recovery_intro_email.process=Le processus de récupération ne doit être utilisé que si vous avez perdu l'accès à vos facteurs de connexion (application AGOV access supprimée, clé de sécurité perdue, téléphone perdu, etc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Ce site est protégé par reCAPTCHA: les <a class=’link’ href=’https://policies.google.com/privacy’ target=’_blank’>règles de confidentialité</a> et <a class=’link’ href=’https://policies.google.com/terms’ target=’_blank’>conditions d’utilisation</a> de Google s’appliquent.
|
||||
recovery_intro_email_sent.banner.button=Vous n’avez pas reçu l'email?
|
||||
recovery_intro_email_sent.banner.success=Merci! Vous recevrez dans un instant un e-mail contenant un lien de récupération et des instructions.
|
||||
recovery_on_going.finishRecovery=Terminer la récupération
|
||||
|
|
|
@ -153,10 +153,8 @@ recovery_fidokey_auth.instruction2=Si prega di usare !!!SECURITY_KEY_NAME!!! per
|
|||
recovery_fidokey_auth.keyRegistered=Chiave di sicurezza già registrata
|
||||
recovery_intro_email.banner.error=Il link utilizzato è scaduto. Per ricevere un nuovo link, inserire l’indirizzo e-mail.
|
||||
recovery_intro_email.banner.info=Per ricevere il link e avviare il processo di ripristino, inserire l’indirizzo e-mail.
|
||||
recovery_intro_email.captchaUnchecked=Per favore selezioni il campo captcha
|
||||
recovery_intro_email.important=Importante:
|
||||
recovery_intro_email.process=Il processo di ripristino deve essere utilizzato solo se ha perso l'accesso ai suoi fattori di accesso (app di accesso AGOV eliminata, chiave di sicurezza persa, telefono smarrito, ecc.).
|
||||
recovery_intro_email.siteProtectedWithRecaptcha=Questo sito è protetto da reCAPTCHA. Si applicano le <a class='link' href='https://policies.google.com/privacy' target='_blank'>norme sulla privacy</a> e i <a class='link' href='https://policies.google.com/terms' target='_blank'>termini di servizio di Google</a>.
|
||||
recovery_intro_email_sent.banner.button=Non avete ricevuto l'e-mail?
|
||||
recovery_intro_email_sent.banner.success=Grazie! È stata inviata un’e-mail contenente il codice di ripristino e le istruzioni.
|
||||
recovery_on_going.finishRecovery=Completare il ripristino
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,5 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initQRCode'));
|
||||
document.dispatchEvent(new Event('initDrawer'));
|
||||
document.dispatchEvent(new Event('initCantonalBranding'));
|
||||
});
|
|
@ -1,3 +1,4 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initEmail'));
|
||||
document.dispatchEvent(new Event('initCaptcha'));
|
||||
});
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initAnswer'));
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function setErrorBanner(value) {
|
||||
document.getElementById('errorBanner').style.display = value ? 'none' : 'flex';
|
||||
document.getElementById('buttons').style.marginTop = value ? '16px' : '8px';
|
||||
}
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initAnswer'));
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function setErrorBanner(value) {
|
||||
document.getElementById('errorBanner').style.display = value ? 'none' : 'flex';
|
||||
console.log(document.getElementById('errorBanner').style.display);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.dispatchEvent(new Event('initEmail'));
|
||||
document.dispatchEvent(new Event('initCaptcha'));
|
||||
});
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -40,8 +40,7 @@
|
|||
</form>
|
||||
<div class="mt-3 mb-6 w-full h-px bg-platinum rounded-full"></div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4 hidden">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("fido2_auth.cancel.fido")
|
||||
|
@ -84,7 +83,7 @@
|
|||
</div>
|
||||
<div class="mt-auto mb-6 sm:mb-0">
|
||||
<agov-button
|
||||
onclick="fido.authenticate()"
|
||||
id="fido_authenticate"
|
||||
data-type="button"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-fullwidth="true"
|
||||
|
|
|
@ -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.5.7.77-20240809T142941Z</p>
|
||||
<p>1.6.8.13-20240919T195132Z</p>
|
||||
</footer>
|
||||
<script src="${login.appDataPath}/static/bundle.js"></script>
|
||||
</body>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
|
||||
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
|
||||
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
|
||||
<head>
|
||||
<title>AGOV</title>
|
||||
<meta charset="UTF-8">
|
||||
|
|
|
@ -49,6 +49,8 @@
|
|||
|
||||
<div id="agovLoginImage"
|
||||
class="relative md:max-w-[520px] max-w-[350px] sm:max-w-[300px] mb-10 w-full mx-auto hidden md:block">
|
||||
<div class="hidden flex items-center p-2 bg-white dark:bg-black rounded-xl w-16 h-16 absolute left-[calc(39%-32px)] top-8"
|
||||
id="logoDoor"></div>
|
||||
<img alt="" src="${login.appDataPath}/static/images/login.svg"
|
||||
class="hidden md:block dark:hidden w-full">
|
||||
<img alt="" src="${login.appDataPath}/static/images/login-dark.svg"
|
||||
|
@ -93,16 +95,16 @@
|
|||
<div id="accessAppModal" class="h-full">
|
||||
|
||||
<div class="desktopBanner" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
|
||||
mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -111,8 +113,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center
|
||||
p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
|
@ -121,19 +123,19 @@
|
|||
</div>
|
||||
|
||||
<div class="relative flex flex-col h-full">
|
||||
<div id="blurBackdrop" class="absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4 z-10"
|
||||
style="display:none "></div>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4
|
||||
z-10"></div>
|
||||
<div class="mobileBanner relative z-20" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center
|
||||
p-4 mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -142,16 +144,16 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background
|
||||
items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="agovLoginImageMobile" style="display: none"
|
||||
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full mx-auto mb-6">
|
||||
<div id="agovLoginImageMobile" class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full
|
||||
mx-auto mb-6">
|
||||
<img alt=""
|
||||
src="${login.appDataPath}/static/images/login.svg"
|
||||
class="block sm:hidden md:block dark:hidden w-full">
|
||||
|
@ -165,8 +167,8 @@
|
|||
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
|
||||
class="mb-6 mx-auto"></canvas>
|
||||
<div class="hidden" id="QRcodeHiddenLink"></div>
|
||||
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
|
||||
style="display: none">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2
|
||||
z-20">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
|
||||
class="animate-spin hidden dark:block">
|
||||
|
@ -197,7 +199,7 @@
|
|||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" class="w-full sm:static mt-auto mb-20 sm:mb-0">
|
||||
|
||||
<div id="mobileButtons" style="display: none" class="w-full">
|
||||
<div id="mobileButtons" class="hidden w-full">
|
||||
<div class="flex flex-col">
|
||||
<a id="accessAppLink" href="">
|
||||
<agov-button
|
||||
|
@ -224,9 +226,8 @@
|
|||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
style="display: none"
|
||||
id="hideQR"
|
||||
class="block basis-full"
|
||||
class="hidden basis-full"
|
||||
data-style="frameless"
|
||||
data-name="EID"
|
||||
data-value="EID"
|
||||
|
@ -300,7 +301,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" style="display: none" class="sm:hidden formDrawer">
|
||||
accept-charset="UTF-8" class="hidden sm:hidden formDrawer">
|
||||
<div class="w-full z-30 fixed left-0 pointer-events-none" id="drawerContainer">
|
||||
<div class="w-full bg-white dark:bg-surface-black px-4 pb-[130px] rounded-t-2xl pointer-events-auto" id="drawer">
|
||||
<div class="pt-2 pb-4 cursor-pointer">
|
||||
|
@ -363,13 +364,10 @@
|
|||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
document.dispatchEvent(new Event('initQRCode'));
|
||||
document.dispatchEvent(new Event('initDrawer'));
|
||||
document.dispatchEvent(new Event('initCantonalBranding'));
|
||||
cantonalBranding.getLogo("$gui.getGuiElem('agov.appSamlRpEntityId').value", "$login.language");
|
||||
});
|
||||
<script src="${login.appDataPath}/static/js-code/mauth_usernameless.js" defer>
|
||||
</script>
|
||||
<div id="appSamlRpEntityId" class="hidden" data-value="$gui.getGuiElem('agov.appSamlRpEntityId').value"
|
||||
data-language="$login.language">
|
||||
</div>
|
||||
|
||||
#parse("${templatePath}/footer.vm")
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
|
||||
<html lang="$login.language" class="relative min-h-screen h-full mx-4 flex sm:block" style="min-height: 100svh">
|
||||
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
|
||||
<head>
|
||||
<title>AGOV Operations</title>
|
||||
<meta charset="UTF-8">
|
||||
|
@ -44,7 +44,8 @@
|
|||
class="flex items-center px-8 sm:px-4 justify-between w-full py-3 bg-indigo-light dark:bg-purple-black"
|
||||
aria-current="true"
|
||||
href="'+$langTarget+'"><span class="font-body-semi"
|
||||
>'+$langLabel+' - '+$locale.toUpperCase()+'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
|
||||
>'+$langLabel+' - '+$locale.toUpperCase()+
|
||||
'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
|
||||
#end
|
||||
#end ## end foreach
|
||||
|
||||
|
@ -58,7 +59,8 @@
|
|||
<a href="$text.get("general.help.link")" target="_blank" class="cursor-pointer hidden sm:inline-block">
|
||||
<div class="mx-6 flex items-center">
|
||||
<i class="text-xl pr-2 fa-regular fa-circle-question ml-auto text-space-blue dark:text-white transition-all"></i>
|
||||
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get("general.help")</span>
|
||||
<span class="text-space-blue dark:text-white font-body-semi text-body-l transition-colors">$text.get(
|
||||
"general.help")</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -30,16 +30,15 @@
|
|||
|
||||
<div id="accessAppModal" class="h-full">
|
||||
<div class="desktopBanner" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
|
||||
mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -48,8 +47,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
|
@ -58,19 +56,16 @@
|
|||
</div>
|
||||
|
||||
<div class="relative flex flex-col h-full">
|
||||
<div id="blurBackdrop" class="absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"
|
||||
style="display:none "></div>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm top-0 bottom-0 -left-4 -right-4 z-10"></div>
|
||||
<div class="mobileBanner relative z-20" aria-live="assertive">
|
||||
<div style="display: none"
|
||||
class="info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.info")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
|
||||
<div>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
|
@ -79,16 +74,15 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("mauth_usernameless.banner.error")
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="agovLoginImageMobile" style="display: none"
|
||||
class="md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
|
||||
<div id="agovLoginImageMobile"
|
||||
class="hidden md:max-w-[520px] max-w-[350px] sm:max-w-[300px] w-full basis-1/2 mx-auto mb-4">
|
||||
<img alt=""
|
||||
src="${login.appDataPath}/static/images/recovery.svg"
|
||||
class="block sm:hidden md:block dark:hidden w-full">
|
||||
|
@ -102,8 +96,7 @@
|
|||
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
|
||||
class="mb-4 mx-auto"></canvas>
|
||||
<div class="hidden" id="QRcodeHiddenLink"></div>
|
||||
<span id="spinner" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20"
|
||||
style="display: none">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
|
||||
class="animate-spin hidden dark:block">
|
||||
|
@ -134,7 +127,7 @@
|
|||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8" class="w-full bottom-8 sm:static mt-auto mb-6 sm:mb-0">
|
||||
|
||||
<div id="mobileButtons" style="display: none" class="w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
|
||||
<div id="mobileButtons" class="hidden w-full bottom-8 sm:static mt-auto mb-16 sm:mb-0">
|
||||
<div class="flex flex-col">
|
||||
<a id="accessAppLink" href="">
|
||||
<agov-button
|
||||
|
@ -161,9 +154,8 @@
|
|||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
style="display: none"
|
||||
id="hideQR"
|
||||
class="block basis-full"
|
||||
class="hidden basis-full"
|
||||
data-style="frameless"
|
||||
data-name="EID"
|
||||
data-value="EID"
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="modal" class="fixed top-0 bottom-0 left-0 right-0 pb-20 z-50 hidden">
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 backdrop-blur-[10px]" onclick="modal.setInvisible()"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 bg-[#E2E2E2E5]/80 dark:bg-[#111111]/90" onclick="modal.setInvisible()"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 backdrop-blur-[10px]" id="modal_light"></div>
|
||||
<div class="fixed top-0 bottom-0 left-0 right-0 bg-[#E2E2E2E5]/80 dark:bg-[#111111]/90" id="modal_dark"></div>
|
||||
|
||||
<div id="drawer"
|
||||
class="fixed bg-white dark:bg-surface-black rounded-[20px] p-10 w-11/12 sm:max-w-[660px] top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2">
|
||||
|
@ -26,12 +26,12 @@
|
|||
<div class="w-full sm:static mt-auto">
|
||||
<div class="flex justify-end flex-col-reverse sm:flex-row gap-4">
|
||||
<agov-button
|
||||
id="recovery_check_code"
|
||||
class="block"
|
||||
data-style="secondary"
|
||||
data-label="$text.get("general.cancel")"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
onclick="modal.setInvisible()">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<a href="$text.get("general.help.link")" target="_blank" rel="noopener noreferrer">
|
||||
<agov-button
|
||||
|
@ -51,7 +51,11 @@
|
|||
<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">
|
||||
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<div class="flex mb-6 items-baseline">
|
||||
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.recovery")</h3>
|
||||
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.entryCode")</h4>
|
||||
|
@ -76,6 +80,7 @@
|
|||
accept-charset="UTF-8"
|
||||
class="flex flex-col flex-auto block ">
|
||||
<agov-input
|
||||
id="recovery_code_input"
|
||||
class="mb-4 py-16"
|
||||
data-label="$text.get("recovery_check_code.enterRecoveryCode")"
|
||||
data-isLabelHidden="true"
|
||||
|
@ -85,10 +90,6 @@
|
|||
data-value=""
|
||||
data-type="text"
|
||||
data-autofocus="true"
|
||||
oninput="validateCode.onInputCodeAndroid(event)"
|
||||
onkeyup="validateCode.onKeyUp(event)"
|
||||
onkeydown="validateCode.onInputCode(event)"
|
||||
onpaste="validateCode.paste(event)"
|
||||
data-email_invalid="$text.get("recovery_check_code.invalid.code")"
|
||||
data-email_too_long="$text.get("recovery_check_code.invalid.code.tooLong")"
|
||||
data-email_required="$text.get("recovery_check_code.invalid.code.required")">
|
||||
|
@ -97,17 +98,18 @@
|
|||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col flex-row-reverse gap-4">
|
||||
<agov-button
|
||||
id="recovery_code_btn"
|
||||
class="block basis-full"
|
||||
data-name="confirm"
|
||||
data-value="confirm"
|
||||
data-id="confirm"
|
||||
data-label="$text.get("general.confirm")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateCode.validateForm(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
id="recovery_code_btn_cancel"
|
||||
class="block basis-full"
|
||||
data-style="frameless"
|
||||
data-name="cancelFido2"
|
||||
|
@ -116,8 +118,7 @@
|
|||
data-label="$text.get("recovery_check_code.noAccess")"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
data-validate="false"
|
||||
onclick="modal.setVisible()">
|
||||
data-validate="false">
|
||||
</agov-button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -56,8 +56,7 @@
|
|||
data-style="secondary"
|
||||
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>Reveal code"
|
||||
data-type="button"
|
||||
data-fullwidth="true"
|
||||
onclick="blurCode.unBlurCode()">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<a class="mb-20" target="_blank" href="$PDFLink">
|
||||
<agov-button
|
||||
|
@ -77,14 +76,14 @@
|
|||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col flex-row-reverse gap-4">
|
||||
<agov-button
|
||||
id="recovery_code_continue"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="blurCode.continue(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#parse("${templatePath}/header.vm")
|
||||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="fidoBackdrop" style="display: none">
|
||||
<div id="fidoBackdrop" class="hidden">
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 backdrop-blur-[10px]"></div>
|
||||
<div class="fixed z-50 top-0 left-0 bottom-0 right-0 bg-zinc-50 opacity-80"></div>
|
||||
</div>
|
||||
|
@ -29,8 +29,7 @@
|
|||
</p>
|
||||
|
||||
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
|
||||
<div style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("fido2_auth.cancel.fido")
|
||||
|
@ -62,7 +61,7 @@
|
|||
|
||||
<div class="mt-auto mb-6 sm:mb-0">
|
||||
<agov-button
|
||||
onclick="fido.authenticate()"
|
||||
id="recovery_fido"
|
||||
data-type="button"
|
||||
data-label="$text.get("recovery_fidokey_auth.button")"
|
||||
data-fullwidth="true"
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
|
@ -27,11 +32,11 @@
|
|||
</div>
|
||||
#end
|
||||
|
||||
<div id="captchaNotFilled" style="display: none"
|
||||
class="error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<div id="captchaNotFilled"
|
||||
class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("recovery_intro_email.captchaUnchecked")
|
||||
$text.get("error_9909")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -62,106 +67,53 @@
|
|||
<span class="font-body-semi">$text.get("recovery_intro_email.important")</span>
|
||||
$text.get("recovery_intro_email.process")
|
||||
</p>
|
||||
#if ($utils.escapeHtmlAttribute($gui.getGuiElem("X-ReCAPTCHA-Integration").value) == "INVISIBLE")
|
||||
#set ($isCaptchaVisible = true)
|
||||
#else
|
||||
#set ($isCaptchaVisible = false)
|
||||
#end
|
||||
|
||||
#if ($isCaptchaVisible)
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
|
||||
#set ($siteKey = $gui.getGuiElem("friendlyCaptchaSettings.siteKey"))
|
||||
#set ($puzzleUrl = $gui.getGuiElem("friendlyCaptchaSettings.puzzleUrl"))
|
||||
#set ($captchaEnabled = $gui.getGuiElem("captchaSettings.enabled"))
|
||||
|
||||
<script>
|
||||
function emailCaptcha(event) {
|
||||
event.preventDefault();
|
||||
if (validateEmail.validateForm(event)) {
|
||||
grecaptcha.enterprise.ready(async () => {
|
||||
await grecaptcha.enterprise.execute('$captcha.value', { action: 'LOGIN' })
|
||||
.then((token) => {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = token;
|
||||
addButton();
|
||||
});
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function addButton() {
|
||||
let btn = document.createElement("button");
|
||||
btn.type = "submit";
|
||||
btn.name = "continue";
|
||||
btn.value = "continue";
|
||||
btn.style.display = "none";
|
||||
document.querySelector('#$gui.name').appendChild(btn);
|
||||
btn.click()
|
||||
}
|
||||
</script>
|
||||
#else
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
|
||||
defer></script>
|
||||
|
||||
<script>
|
||||
var verifyCallback = function (response) {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = response;
|
||||
};
|
||||
|
||||
var expiredCallback = function () {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = 'captcha';
|
||||
};
|
||||
|
||||
var onloadCallback = function () {
|
||||
grecaptcha.enterprise.render(document.getElementById('captchaRender'), {
|
||||
'sitekey': '$captcha.value',
|
||||
'action': 'LOGIN',
|
||||
'callback': verifyCallback,
|
||||
'expired-callback': expiredCallback
|
||||
});
|
||||
};
|
||||
</script>
|
||||
#end
|
||||
|
||||
<div class="font-body text-body-l mb-4">
|
||||
#if ($isCaptchaVisible)
|
||||
<div class="text-disabled-grey dark:text-silver">
|
||||
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<div class="font-body w-full text-body-l mb-4">
|
||||
<div class="flex mt-8">
|
||||
<div class="frc-captcha"
|
||||
id="frc-captcha"
|
||||
data-puzzle-endpoint="$puzzleUrl.value"
|
||||
data-sitekey="$siteKey.value"
|
||||
data-start="auto"
|
||||
data-lang="$login.language"
|
||||
data-solution-field-name="captcha_response">
|
||||
</div>
|
||||
#else
|
||||
<div class="flex mt-8" id="captchaRender"></div>
|
||||
#end
|
||||
|
||||
</div>
|
||||
</div>
|
||||
#end ## if
|
||||
|
||||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col sm:flex-row-reverse gap-4">
|
||||
#if ($isCaptchaVisible)
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<agov-button
|
||||
id="submit_btn_captcha_enabled"
|
||||
disabled="true"
|
||||
class="block basis-full"
|
||||
data-name="continue"
|
||||
data-value="continue"
|
||||
data-id="continue"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="return emailCaptcha(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#else
|
||||
<agov-button
|
||||
id="submit_btn_captcha_disabled"
|
||||
class="block basis-full"
|
||||
data-name="continue"
|
||||
data-value="continue"
|
||||
data-id="continue"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateEmail.validateForm(event, true)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#end
|
||||
#end ## if
|
||||
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
data-style="secondary"
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
|
|
|
@ -42,11 +42,11 @@
|
|||
<div id="buttons" class="w-full sm:static mt-auto mb-6 sm:mb-0 mt-24 sm:mt-24">
|
||||
<div class="flex sm:flex-row-reverse flex-col gap-2">
|
||||
<agov-button
|
||||
id="questionnaire_continue_btn"
|
||||
class="block basis-full"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="setErrorBanner(validateAnswer.validateFormYesOrNo(event))">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
|
|
|
@ -60,11 +60,11 @@
|
|||
<div class="w-full sm:static mt-8 mb-6 sm:mb-0 ">
|
||||
<div class="flex sm:flex-row-reverse flex-col gap-2">
|
||||
<agov-button
|
||||
id="questionnaire_continue_btn_reason"
|
||||
class="block basis-full"
|
||||
data-label="$text.get("general.continue")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="setErrorBanner(validateAnswer.validateForm(event))">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
|
||||
<agov-button
|
||||
|
|
|
@ -2,15 +2,27 @@
|
|||
|
||||
<agov-backdrop></agov-backdrop>
|
||||
<div id="mainContent" class="container mx-auto sm:mt-32 sm:max-w-full flex flex-auto sm:block">
|
||||
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-30">
|
||||
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
|
||||
<img src="${login.appDataPath}/static/images/spinner-dark.svg" class="animate-spin hidden dark:block">
|
||||
</span>
|
||||
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-96 -left-4 -right-4 z-20"></div>
|
||||
<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">
|
||||
<h3 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.login")</h3>
|
||||
<h4 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.securityKey")</h4>
|
||||
</div>
|
||||
|
||||
<div id="captchaNotFilled"
|
||||
class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4 mb-4">
|
||||
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
|
||||
<p class="font-body text-body-l text-space-blue dark:text-white">
|
||||
$text.get("error_9909")
|
||||
</p>
|
||||
</div>
|
||||
|
||||
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
|
||||
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
|
||||
accept-charset="UTF-8"
|
||||
|
@ -35,106 +47,51 @@
|
|||
data-email_required="$text.get("user_input.invalid.email.required")">
|
||||
</agov-input>
|
||||
|
||||
#if ($gui.getGuiElem("X-ReCAPTCHA-Integration").value == "INVISIBLE")
|
||||
#set ($isCaptchaVisible = true)
|
||||
#else
|
||||
#set ($isCaptchaVisible = false)
|
||||
#end
|
||||
#set ($siteKey = $gui.getGuiElem("friendlyCaptchaSettings.siteKey"))
|
||||
#set ($puzzleUrl = $gui.getGuiElem("friendlyCaptchaSettings.puzzleUrl"))
|
||||
#set ($captchaEnabled = $gui.getGuiElem("captchaSettings.enabled"))
|
||||
|
||||
#if ($isCaptchaVisible)
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaInvisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?render=$captcha.value"></script>
|
||||
|
||||
<script>
|
||||
function emailCaptcha(event) {
|
||||
event.preventDefault();
|
||||
if (validateEmail.validateForm(event)) {
|
||||
grecaptcha.enterprise.ready(async () => {
|
||||
await grecaptcha.enterprise.execute('$captcha.value', { action: 'LOGIN' })
|
||||
.then((token) => {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = token;
|
||||
addButton();
|
||||
});
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function addButton() {
|
||||
let btn = document.createElement("button");
|
||||
btn.type = "submit";
|
||||
btn.name = "submit";
|
||||
btn.value = "submit";
|
||||
btn.style.display = "none";
|
||||
document.querySelector('#$gui.name').appendChild(btn);
|
||||
btn.click()
|
||||
}
|
||||
</script>
|
||||
#else
|
||||
#set ($captcha = $gui.getGuiElem("captchaSettings.reCaptchaVisibleSiteKey"))
|
||||
<input type="hidden" name="recaptcha_sitekey" value="$captcha.value"/>
|
||||
<input type="hidden" name="recaptcha_response" value="captcha">
|
||||
<script src="https://www.google.com/recaptcha/enterprise.js?onload=onloadCallback&render=explicit" async
|
||||
defer></script>
|
||||
|
||||
<script>
|
||||
var verifyCallback = function (response) {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = response;
|
||||
};
|
||||
|
||||
var expiredCallback = function () {
|
||||
document.querySelector('input[name="recaptcha_response"]').value = 'captcha';
|
||||
};
|
||||
|
||||
var onloadCallback = function () {
|
||||
grecaptcha.enterprise.render(document.getElementById('captchaRender'), {
|
||||
'sitekey': '$captcha.value',
|
||||
'action': 'LOGIN',
|
||||
'callback': verifyCallback,
|
||||
'expired-callback': expiredCallback
|
||||
});
|
||||
};
|
||||
</script>
|
||||
#end
|
||||
|
||||
<div class="font-body text-body-l mb-4">
|
||||
#if ($isCaptchaVisible)
|
||||
<div class="text-disabled-grey dark:text-silver">
|
||||
$text.get("recovery_intro_email.siteProtectedWithRecaptcha")
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<div class="w-full font-body text-body-l mb-4">
|
||||
<div class="flex mt-8">
|
||||
<div class="frc-captcha"
|
||||
id="frc-captcha"
|
||||
data-puzzle-endpoint="$puzzleUrl.value"
|
||||
data-sitekey="$siteKey.value"
|
||||
data-start="auto"
|
||||
data-lang="$login.language"
|
||||
data-solution-field-name="captcha_response">
|
||||
</div>
|
||||
#else
|
||||
<div class="flex mt-8" id="captchaRender"></div>
|
||||
#end
|
||||
|
||||
</div>
|
||||
</div>
|
||||
#end ## if
|
||||
|
||||
<div class="w-full sm:static mt-auto mb-6 sm:mb-0">
|
||||
<div class="flex flex-col sm:flex-row-reverse gap-4">
|
||||
#if ($isCaptchaVisible)
|
||||
#if ($captchaEnabled.value && $captchaEnabled.value == "true")
|
||||
<agov-button
|
||||
id="submit_btn_captcha_enabled"
|
||||
disabled="true"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.login")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="return emailCaptcha(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#else
|
||||
<agov-button
|
||||
id="submit_btn_captcha_disabled"
|
||||
class="block basis-full"
|
||||
data-name="submit"
|
||||
data-value="submit"
|
||||
data-id="submit"
|
||||
data-label="$text.get("general.login")"
|
||||
data-type="submit"
|
||||
data-fullwidth="true"
|
||||
onclick="validateEmail.validateForm(event)">
|
||||
data-fullwidth="true">
|
||||
</agov-button>
|
||||
#end
|
||||
#end ## if
|
||||
<agov-button
|
||||
class="block basis-full"
|
||||
data-style="secondary"
|
||||
|
|
|
@ -46,7 +46,7 @@ spec:
|
|||
podDisruptionBudget:
|
||||
maxUnavailable: "50%"
|
||||
git:
|
||||
tag: "r-a5b664b2c1f534aab19c8301f3618a8c5096d222"
|
||||
tag: "r-7bd8f34aeeebe1debccb6e4932b092cf2b2c4c88"
|
||||
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/proxy-idm"
|
||||
credentials: "git-credentials"
|
||||
keystores:
|
||||
|
|
|
@ -175,17 +175,23 @@
|
|||
<param-value>false</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
<!-- source: pattern://1200a58c76686d520c21edb0 -->
|
||||
<!-- source: pattern://9c6ad44795320a7adec1ccde -->
|
||||
<filter>
|
||||
<filter-name>ResponseHeader_Default</filter-name>
|
||||
<filter-name>ResponseHeader_Security_Response_Headers</filter-name>
|
||||
<filter-class>ch::nevis::isiweb4::filter::delegation::HeaderDelegationFilter</filter-class>
|
||||
<!-- source: pattern://1200a58c76686d520c21edb0 -->
|
||||
<!-- source: pattern://9c6ad44795320a7adec1ccde -->
|
||||
<init-param>
|
||||
<param-name>DelegateToFrontend</param-name>
|
||||
<param-value>
|
||||
Strict-Transport-Security: max-age=63072000
|
||||
X-Content-Type-Options: nosniff
|
||||
Content-Security-Policy-Report-Only:default-src 'none'; script-src 'self' 'sha256-4r4l/2aahtvPIxQP0YmmqfftYXNwNqxxqOUaXVE0FjM=' 'sha256-3sconOU5uxdS6tVa5DhEli3N+/aY9IvYh873WqDptD0=' 'sha256-N3+RfLbnlpBc0lUnNy4soyLbX0tNDqQt5LPzkEsYOHo=' 'sha256-uOoE0nq21NJDv37YLUOxV9aCnNstJ0GK7BiXNMXQAcI='; img-src 'self'; style-src 'self' 'sha256-/yxYnm5QjS5hz1/KbfNQ/Deyfb9rK1xZefYJGNT9UmU=' 'sha256-2diQqrANllVP9IWjXj1A6fjjvlPtpN6NXlmTiRJneCU=' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' 'sha256-DHdp+1g/LIFDKreGcezYZywjzyvqUEbmjv4fv+nEQeE=' 'sha256-DtJ0G5eArSV7tvvFUUeV7iyiWfBGflIkRW64/tmMWUk=' 'sha256-JhfXJ5URuB/EAqhZ9vqgEO6trOuCE0w2/ChmfrVzxFo=' 'sha256-MdFWcEIx4V82/ap9SUt01BxZMN4eFGEl8hNDFEGIzJU=' 'sha256-dnsMWK7eeuHUJm/wLL2CXCibJJV0lnUxjpqlu5fcUsg=' 'sha256-iKyiqXXi2KXxNcOUCr+VCUo09ipHFWuIkztLNvUXhd0=' 'sha256-ifPclQYYwRDXSPQgB9/6UgAgEICBpwegJBWNhOI8dOA='; form-action 'self' https://trustbroker.agov-d.azure.adnovum.net/adfs/ls; font-src 'self'; connect-src 'self';
|
||||
Cross-Origin-Embedder-Policy:require-corp
|
||||
Cross-Origin-Opener-Policy:same-origin
|
||||
Cross-Origin-Resource-Policy:same-site
|
||||
Permissions-Policy:geolocation=(), camera=(), microphone=(), interest-cohort=()
|
||||
Referrer-Policy:strict-origin-when-cross-origin
|
||||
Strict-Transport-Security:max-age=63072000; includeSubDomains;
|
||||
X-Content-Type-Options:nosniff
|
||||
X-Frame-Options:DENY
|
||||
</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
@ -371,9 +377,9 @@
|
|||
<filter-name>URLHandler_Virtual_Host_idmOperations-Loggedout</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
<!-- source: pattern://1200a58c76686d520c21edb0 -->
|
||||
<!-- source: pattern://9c6ad44795320a7adec1ccde -->
|
||||
<filter-mapping>
|
||||
<filter-name>ResponseHeader_Default</filter-name>
|
||||
<filter-name>ResponseHeader_Security_Response_Headers</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
<!-- source: pattern://6f9c9f982dcc7ef59a34f1f7 -->
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- If you change something here, make sure all the pages are modified accordingly -->
|
||||
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
|
||||
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
|
||||
<html class="relative h-full mx-4 flex sm:block min-h-100" lang="$login.language">
|
||||
<head>
|
||||
<title>AGOV Operations</title>
|
||||
<meta charset="UTF-8">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- If you change something here, make sure all the pages are modified accordingly -->
|
||||
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
|
||||
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
|
||||
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
|
||||
<head>
|
||||
<title>AGOV Operations</title>
|
||||
<meta charset="UTF-8">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- If you change something here, make sure all the pages are modified accordingly -->
|
||||
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
|
||||
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
|
||||
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
|
||||
<head>
|
||||
<title>AGOV Operations</title>
|
||||
<meta charset="UTF-8">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- If you change something here, make sure all the pages are modified accordingly -->
|
||||
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
|
||||
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
|
||||
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
|
||||
<head>
|
||||
<title>AGOV Operations</title>
|
||||
<meta charset="UTF-8">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- If you change something here, make sure all the pages are modified accordingly -->
|
||||
<!-- svh -> Small View Height. It's not taking the height of the search bar on mobile into account -->
|
||||
<html class="relative min-h-screen h-full mx-4 flex sm:block" lang="$login.language" style="min-height: 100svh">
|
||||
<html class="relative min-h-100 h-full mx-4 flex sm:block" lang="$login.language">
|
||||
<head>
|
||||
<title>AGOV Operations</title>
|
||||
<meta charset="UTF-8">
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue