diff --git a/features/admin.branding.v1/components/custom-text/custom-text-fields.tsx b/features/admin.branding.v1/components/custom-text/custom-text-fields.tsx index 731a85805e6..328d38c8864 100644 --- a/features/admin.branding.v1/components/custom-text/custom-text-fields.tsx +++ b/features/admin.branding.v1/components/custom-text/custom-text-fields.tsx @@ -19,17 +19,25 @@ import Box from "@oxygen-ui/react/Box"; import IconButton from "@oxygen-ui/react/IconButton"; import InputAdornment from "@oxygen-ui/react/InputAdornment"; +import Link from "@oxygen-ui/react/Link"; import Skeleton from "@oxygen-ui/react/Skeleton"; import Tooltip from "@oxygen-ui/react/Tooltip"; import { IdentifiableComponentInterface } from "@wso2is/core/models"; import { FinalForm, FinalFormField, FormRenderProps, FormSpy, FormState, TextFieldAdapter } from "@wso2is/form"; -import { Hint } from "@wso2is/react-components"; +import { GenericIcon, Hint } from "@wso2is/react-components"; import cloneDeep from "lodash-es/cloneDeep"; import orderBy from "lodash-es/orderBy"; import React, { FunctionComponent, ReactElement, SVGAttributes, useMemo } from "react"; -import { useTranslation } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; import { useSelector } from "react-redux"; +import { serverConfigurationConfig } from "../../../../extensions/configs/server-configuration"; +import { ReactComponent as WarningIcon } from "../../../../themes/default/assets/images/icons/warning-icon.svg"; import { AppState } from "../../../admin.core.v1/store"; +import { AppConstants } from "../../../core/constants"; +import { history } from "../../../core/helpers/history"; +import { + ServerConfigurationsConstants +} from "../../../server-configurations/constants/server-configurations-constants"; import { CustomTextPreferenceConstants } from "../../constants/custom-text-preference-constants"; import useBrandingPreference from "../../hooks/use-branding-preference"; import { CustomTextInterface } from "../../models/custom-text-preference"; @@ -155,6 +163,94 @@ const CustomTextFields: FunctionComponent = (props: Custo ); }; + const handleMultiAttributeLink = (): void => { + if (serverConfigurationConfig.dynamicConnectors === true) { + history.push( + AppConstants.getPaths().get( + "GOVERNANCE_CONNECTOR_EDIT" + ).replace( + ":categoryId", + ServerConfigurationsConstants. + ACCOUNT_MANAGEMENT_CONNECTOR_CATEGORY_ID + ).replace( + ":connectorId", + ServerConfigurationsConstants. + MULTI_ATTRIBUTE_LOGIN_CONNECTOR_ID + ) + ); + } else { + history.push(AppConstants.getPaths().get("ALTERNATIVE_LOGIN_IDENTIFIER_EDIT")); + } + }; + + const getMultiAttributeLabel = (): string => { + if (serverConfigurationConfig.dynamicConnectors === true) { + return t("branding:connectors.multiAttributeLogin"); + } + else { + return t("branding:connectors.alternativeLoginIdentifier"); + } + }; + + const isMultiAttributeEnabled = (): boolean => { + if (serverConfigurationConfig.dynamicConnectors === true) { + return !serverConfigurationConfig.connectorsToHide + .includes(ServerConfigurationsConstants.MULTI_ATTRIBUTE_LOGIN_CONNECTOR_ID); + } + else { + return !serverConfigurationConfig.connectorsToHide + .includes(ServerConfigurationsConstants.ALTERNATIVE_LOGIN_IDENTIFIER); + } + }; + + const getHelperText = (hintKey: string, warningKey: string, fieldName: string): ReactElement => { + return i18n.exists(hintKey) || i18n.exists(warningKey) + ? ( + + { i18n.exists(hintKey) && t(hintKey, { productName }) } + { i18n.exists(warningKey) && ( + <> +

+   + { + isMultiAttributeEnabled() === true + && (fieldName.replaceAll("_", ".") === CustomTextPreferenceConstants + .TEXT_BUNDLE_KEYS.LOGIN.IDENTIFIER.INPUT.LABEL + || fieldName.replaceAll("_", ".") === CustomTextPreferenceConstants + .TEXT_BUNDLE_KEYS.PASSWORD_RECOVERY.IDENTIFIER.INPUT.PLACEHOLDER) + ? ( + IMPORTANT, + + configured + + ] } + > + + ) : t(hintKey) + } + + ) } +
+ ) : null; + }; + return (
= (props: Custo fieldName.replaceAll("_", ".") }.hint`; + const warningKey: string = `branding:brandingCustomText.form.fields.${ + fieldName.replaceAll("_", ".") + }.warning`; + return ( = (props: Custo placeholder={ t("branding:brandingCustomText.form.genericFieldPlaceholder") } - helperText={ ( - i18n.exists(hintKey) && ( - { t(hintKey, { productName }) } - ) - ) } + helperText={ getHelperText(hintKey, warningKey, fieldName) } component={ TextFieldAdapter } multiline={ customTextScreenMeta && customTextScreenMeta[fieldName.replaceAll("_", ".")]?.MULTI_LINE } diff --git a/features/admin.branding.v1/components/preview/sign-in-box/fragments/basic-auth-fragment.tsx b/features/admin.branding.v1/components/preview/sign-in-box/fragments/basic-auth-fragment.tsx index 3c74cef7518..8697a44724b 100644 --- a/features/admin.branding.v1/components/preview/sign-in-box/fragments/basic-auth-fragment.tsx +++ b/features/admin.branding.v1/components/preview/sign-in-box/fragments/basic-auth-fragment.tsx @@ -73,7 +73,12 @@ const BasicAuthFragment: FunctionComponent = (
- +
= (
- { i18n(CustomTextPreferenceConstants.TEXT_BUNDLE_KEYS.REGISTER_TEXT.MESSAGE, + { i18n(CustomTextPreferenceConstants.TEXT_BUNDLE_KEYS.REGISTER_TEXT.MESSAGE, "Don't have an account? ") } = ( rel="noopener noreferrer" data-testid="login-page-create-account-button" > - { i18n(CustomTextPreferenceConstants.TEXT_BUNDLE_KEYS.REGISTER_TEXT.REGISTER, + { i18n(CustomTextPreferenceConstants.TEXT_BUNDLE_KEYS.REGISTER_TEXT.REGISTER, "Register") }
diff --git a/features/admin.branding.v1/components/preview/sign-in-box/fragments/password-recovery-fragment.tsx b/features/admin.branding.v1/components/preview/sign-in-box/fragments/password-recovery-fragment.tsx index f2d493ef896..aee26fd0313 100644 --- a/features/admin.branding.v1/components/preview/sign-in-box/fragments/password-recovery-fragment.tsx +++ b/features/admin.branding.v1/components/preview/sign-in-box/fragments/password-recovery-fragment.tsx @@ -58,7 +58,11 @@ const PasswordRecoveryFragment: FunctionComponent diff --git a/features/admin.branding.v1/constants/custom-text-preference-constants.ts b/features/admin.branding.v1/constants/custom-text-preference-constants.ts index 43ab7d26770..dc5a3a6cadf 100644 --- a/features/admin.branding.v1/constants/custom-text-preference-constants.ts +++ b/features/admin.branding.v1/constants/custom-text-preference-constants.ts @@ -107,10 +107,20 @@ export class CustomTextPreferenceConstants { LOGIN: { BUTTON: string; HEADING: string; + IDENTIFIER: { + INPUT: { + LABEL: string; + } + } }; PASSWORD_RECOVERY: { HEADING: string; BODY: string; + IDENTIFIER: { + INPUT: { + PLACEHOLDER: string; + } + } BUTTON: string; }, PASSWORD_RESET: { @@ -145,12 +155,22 @@ export class CustomTextPreferenceConstants { }, LOGIN: { BUTTON: "login.button", - HEADING: "login.heading" + HEADING: "login.heading", + IDENTIFIER: { + INPUT: { + LABEL: "login.identifier.input.label" + } + } }, PASSWORD_RECOVERY: { BODY: "password.recovery.body", BUTTON: "password.recovery.button", - HEADING: "password.recovery.heading" + HEADING: "password.recovery.heading", + IDENTIFIER: { + INPUT: { + PLACEHOLDER: "password.recovery.identifier.input.placeholder" + } + } }, PASSWORD_RESET: { BUTTON: "password.reset.button", diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties index ed15eff9ccc..24b7654016b 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties @@ -33,6 +33,8 @@ terms.of.service=Terms of Service # EDITABLE=true,SCREEN="login",MULTI_LINE=false login.heading=Sign In # EDITABLE=true,SCREEN="login",MULTI_LINE=false +login.identifier.input.label=Username +# EDITABLE=true,SCREEN="login",MULTI_LINE=false login.button=Sign In # diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_de_DE.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_de_DE.properties index e5cb2493eaa..fbe65a2e018 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_de_DE.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_de_DE.properties @@ -28,6 +28,7 @@ terms.of.service=Nutzungsbedingungen # login.heading=Anmelden +login.identifier.input.label=Nutzername login.button=Anmelden # diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_es_ES.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_es_ES.properties index fb3c7aea351..b2c78d2e2fa 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_es_ES.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_es_ES.properties @@ -28,6 +28,7 @@ terms.of.service=Términos de servicio # login.heading=Iniciar sesión +login.identifier.input.label=Correo electrónico login.button=Iniciar sesión # diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_fr_FR.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_fr_FR.properties index 1a97ff7e7a8..f4c7549b41b 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_fr_FR.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_fr_FR.properties @@ -28,6 +28,7 @@ terms.of.service=Conditions d'utilisation # login.heading=Se connecter +login.identifier.input.label=Nom d'utilisateur login.button=Se connecter # diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_ja_JP.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_ja_JP.properties index 17a44ed6676..90ee9d36dba 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_ja_JP.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_ja_JP.properties @@ -28,6 +28,7 @@ terms.of.service=利用規約 # login.heading=サインイン +login.identifier.input.label=ユーザー名 login.button=サインイン # diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_BR.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_BR.properties index 131e671a241..2bdebdefcc2 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_BR.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_BR.properties @@ -28,6 +28,7 @@ terms.of.service=Termos de Serviço # login.heading=Entrar +login.identifier.input.label=Nome de usuário login.button=Entrar # diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_PT.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_PT.properties index 593a78f4049..870f3b9bebd 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_PT.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_PT.properties @@ -28,6 +28,7 @@ terms.of.service=Termos de serviço # login.heading=Entrar +login.identifier.input.label=Nome de usuário login.button=Entrar # diff --git a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_zh_CN.properties b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_zh_CN.properties index 012c5136cf1..528b31edc7a 100644 --- a/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_zh_CN.properties +++ b/identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_zh_CN.properties @@ -28,6 +28,7 @@ terms.of.service=服务条款 # login.heading=登入 +login.identifier.input.label=电子邮件 login.button=登入 # diff --git a/identity-apps-core/apps/authentication-portal/src/main/webapp/basicauth.jsp b/identity-apps-core/apps/authentication-portal/src/main/webapp/basicauth.jsp index 741d9a4f17a..1be6b217e6d 100755 --- a/identity-apps-core/apps/authentication-portal/src/main/webapp/basicauth.jsp +++ b/identity-apps-core/apps/authentication-portal/src/main/webapp/basicauth.jsp @@ -475,11 +475,21 @@ <% } %> <% if (!isIdentifierFirstLogin(inputType) && !isLoginHintAvailable(inputType)) { %>
- <% if (isMultiAttributeLoginEnabledInTenant) { %> - - <% } else { %> - - <% } %> + <% String loginInputLabel=i18n(resourceBundle, customText, "login.identifier.input.label" , "", false ); %> + + <% if (StringUtils.isNotBlank(loginInputLabel)) { %> + + <% } else if (isMultiAttributeLoginEnabledInTenant) { %> + + <% } else { %> + + <% } %>
diff --git a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_de_DE.properties b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_de_DE.properties index ce08f80d332..3164b7bca31 100644 --- a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_de_DE.properties +++ b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_de_DE.properties @@ -33,6 +33,7 @@ sign.up.button=Registrieren # password.recovery.heading=Passwort vergessen? password.recovery.body=Machen Sie sich keine Sorgen, das kann passieren. Eine E-Mail zum Zurücksetzen Ihres Passwortes wird Ihnen gesendet +password.recovery.identifier.input.placeholder=Nutzername password.recovery.button=Reset-Link senden # diff --git a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_es_ES.properties b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_es_ES.properties index 18fd205465e..4fa38adae27 100644 --- a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_es_ES.properties +++ b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_es_ES.properties @@ -33,6 +33,7 @@ sign.up.button=Inscribirse # password.recovery.heading=¿Has olvidado tu contraseña? password.recovery.body=No te preocupes, sucede. Le enviaremos un correo electrónico para restablecer su contraseña. +password.recovery.identifier.input.placeholder=Correo electrónico password.recovery.button=Enviar enlace de reinicio # diff --git a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_fr_FR.properties b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_fr_FR.properties index 9004d3d1b6b..649a84702ff 100644 --- a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_fr_FR.properties +++ b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_fr_FR.properties @@ -33,6 +33,7 @@ sign.up.button=S'inscrire # password.recovery.heading=Mot de passe oublié? password.recovery.body=Ne vous inquiétez pas, ça arrive. Nous vous enverrons un e-mail pour réinitialiser votre mot de passe. +password.recovery.identifier.input.placeholder=Nom d'utilisateur password.recovery.button=Envoyer le lien de réinitialisation # diff --git a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_ja_JP.properties b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_ja_JP.properties index 1fc80f3f0a0..07a55e430a1 100644 --- a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_ja_JP.properties +++ b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_ja_JP.properties @@ -33,6 +33,7 @@ sign.up.button=サインアップ # password.recovery.heading=パスワード password.recovery.body=心配する必要はありません。パスワードをリセットするためのメールをお送りします。 +password.recovery.identifier.input.placeholder=ユーザー名 password.recovery.button=リセットリンクの送信 # diff --git a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_pt_BR.properties b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_pt_BR.properties index 510fe4c57aa..f047f2e7559 100644 --- a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_pt_BR.properties +++ b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_pt_BR.properties @@ -33,6 +33,7 @@ sign.up.button=Cadastrar # password.recovery.heading=Esqueceu a senha? password.recovery.body=Não se preocupe, isso acontece. Enviaremos um e-mail para redefinir sua senha. +password.recovery.identifier.input.placeholder=Nome de usuário password.recovery.button=Enviar link de redefinição # diff --git a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_pt_PT.properties b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_pt_PT.properties index 8a98d23751d..77338134d1d 100644 --- a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_pt_PT.properties +++ b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_pt_PT.properties @@ -33,6 +33,7 @@ sign.up.button=Inscrever-se # password.recovery.heading=Esqueceu a senha? password.recovery.body=Não se preocupe, isso acontece. Enviaremos um e-mail para redefinir sua senha. +password.recovery.identifier.input.placeholder=Nome de usuário password.recovery.button=Enviar link de redefinição # diff --git a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_zh_CN.properties b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_zh_CN.properties index 49980e4a35e..359081c3780 100644 --- a/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_zh_CN.properties +++ b/identity-apps-core/apps/recovery-portal/src/main/resources/org/wso2/carbon/identity/mgt/recovery/endpoint/i18n/Resources_zh_CN.properties @@ -33,6 +33,7 @@ sign.up.button=报名 # password.recovery.heading=密码 password.recovery.body=不用担心,它发生了。我们将向您发送电子邮件以重置您的密码。 +password.recovery.identifier.input.placeholder=用户名 password.recovery.button=发送重置链接 # diff --git a/identity-apps-core/apps/recovery-portal/src/main/webapp/password-recovery.jsp b/identity-apps-core/apps/recovery-portal/src/main/webapp/password-recovery.jsp index 14363914087..a1cbaa6204a 100644 --- a/identity-apps-core/apps/recovery-portal/src/main/webapp/password-recovery.jsp +++ b/identity-apps-core/apps/recovery-portal/src/main/webapp/password-recovery.jsp @@ -268,25 +268,18 @@ <% } %>
- <% if (isMultiAttributeLoginEnabledInTenant) { %> - - <% } else { %> - - <% } %> + <% String identifierPlaceholder=i18n(recoveryResourceBundle, customText, "password.recovery.identifier.input.placeholder" , "" , false ); %> + + <% if (StringUtils.isNotBlank(identifierPlaceholder)) { %> + + <% } else if (isMultiAttributeLoginEnabledInTenant) { %> + + <% } else { %> + + <% } %>
diff --git a/modules/i18n/src/models/namespaces/branding-ns.ts b/modules/i18n/src/models/namespaces/branding-ns.ts index 7128e4e8709..ee4004fc166 100644 --- a/modules/i18n/src/models/namespaces/branding-ns.ts +++ b/modules/i18n/src/models/namespaces/branding-ns.ts @@ -49,6 +49,10 @@ export interface BrandingNS { "login.heading": { hint: string; }; + "login.identifier.input.label": { + hint: string; + warning?: string; + }; "sms.otp.heading": { hint: string; }; @@ -67,6 +71,10 @@ export interface BrandingNS { "password.recovery.body": { hint: string; }; + "password.recovery.identifier.input.placeholder": { + hint: string; + warning?: string; + }; "password.recovery.button": { hint: string; }; @@ -129,6 +137,10 @@ export interface BrandingNS { placeholder: string; }; }; + connectors: { + multiAttributeLogin: string; + alternativeLoginIdentifier: string; + }; form: { actions: { save: string; diff --git a/modules/i18n/src/translations/en-US/portals/branding.ts b/modules/i18n/src/translations/en-US/portals/branding.ts index b7380ae53e7..c3f1c092f94 100644 --- a/modules/i18n/src/translations/en-US/portals/branding.ts +++ b/modules/i18n/src/translations/en-US/portals/branding.ts @@ -57,6 +57,10 @@ export const branding: BrandingNS = { "login.heading": { hint: "The heading of the login box. If not set, {{productName}} defaults are used." }, + "login.identifier.input.label": { + hint: "The label of the identifier input field in the login box. If not set, {{productName}} defaults are used.", + warning: "<0>IMPORTANT: Customizing the login identifier label will replace the dynamic label when {{feature}} are <1>configured." + }, "sms.otp.heading": { hint: "The heading of the SMS OTP box. If not set, {{productName}} defaults are used." }, @@ -75,6 +79,10 @@ export const branding: BrandingNS = { "password.recovery.body": { hint: "The body text of the password recovery box. If not set, {{productName}} defaults are used." }, + "password.recovery.identifier.input.placeholder": { + hint: "The placeholder of the identifier input field in the password recovery box. If not set, {{productName}} defaults are used.", + warning: "<0>IMPORTANT: Customizing the password recovery identifier placeholder will replace the dynamic placeholder when {{feature}} are <1>configured." + }, "password.recovery.button": { hint: "The text that appears on the main action button of the password recovery box. If not set, {{productName}} defaults are used." }, @@ -137,6 +145,10 @@ export const branding: BrandingNS = { placeholder: "Select screen" } }, + connectors: { + multiAttributeLogin: "Multi Attribute Login Identifiers", + alternativeLoginIdentifier: "Alternative Login Identifiers" + }, form: { actions: { resetAll: "Reset to Default",