diff --git a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/KcApp.css b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/KcApp.css index e39d9a3f..99ab8cfc 100644 --- a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/KcApp.css +++ b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/KcApp.css @@ -70,7 +70,7 @@ a { .g-recaptcha { transform: scale(1.08); - margin-left: 10px; + margin-left: 17px; } /* diff --git a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/Template.tsx b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/Template.tsx index a2274566..54ea62db 100644 --- a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/Template.tsx +++ b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/Template.tsx @@ -146,7 +146,7 @@ export default function Template(props: TemplateProps) {
{/* App-initiated actions should not see warning messages about the need to complete the action during login. */} {displayMessage && message !== undefined && (message.type !== "warning" || !isAppInitiatedAction) && (pageId === 'login.ftl') && ( -
+
{message.type === "success" && } {message.type === "warning" && } {message.type === "info" && } diff --git a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/assets/error.svg b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/assets/error.svg new file mode 100644 index 00000000..8d537bea --- /dev/null +++ b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/assets/error.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/i18n.ts b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/i18n.ts index ca2c4c11..d9d7c957 100644 --- a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/i18n.ts +++ b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/i18n.ts @@ -36,7 +36,9 @@ export const { useI18n } = createUseI18n({ requiredFields: "All fields are required, except ones marked as optional", missingPartnerTypeMessage: "Please specify partner type", logInErrorMsg: "Entered Email Address or Password invalid!", - registerErrorMsg: "Please fill all the required fields" + registerErrorMsg: "Please fill all the required fields", + passwordInfo: "Use 8 or more characters with at least one upper and lower case alphabet, atleast one special character.", + inputErrorMsg: "Please enter" }, fr: { /* spell-checker: disable */ @@ -69,7 +71,9 @@ export const { useI18n } = createUseI18n({ requiredFields: "All fields are required, except ones marked as optional", missingPartnerTypeMessage:"Please specify partner type", logInErrorMsg: "Entered Email Address or Password invalid!", - registerErrorMsg: "Please fill all the required fields" + registerErrorMsg: "Please fill all the required fields", + passwordInfo: "Use 8 or more characters with at least one upper and lower case alphabet, atleast one special character.", + inputErrorMsg: "Please enter" /* spell-checker: enable */ } }); diff --git a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/kcContext.ts b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/kcContext.ts index 6d4e4d03..9f8646fc 100644 --- a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/kcContext.ts +++ b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/kcContext.ts @@ -18,6 +18,8 @@ export type KcContextExtension = orgName?: string; address?: string; phoneNumber?: string; + password?:string; + 'password-confirm'?:string; }; }; }; diff --git a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/pages/Login.tsx b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/pages/Login.tsx index 0a773525..4c96a3ac 100644 --- a/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/pages/Login.tsx +++ b/keycloak-artemis/mosip_keycloak_theme/src/keycloak-theme/login/pages/Login.tsx @@ -5,8 +5,9 @@ import type { PageProps } from "keycloakify/login/pages/PageProps"; import { useGetClassName } from "keycloakify/login/lib/useGetClassName"; import type { KcContext } from "../kcContext"; import type { I18n } from "../i18n"; -import eyeIcon from '../assets/visibility_FILL0_wght400_GRAD0_opsz48.svg' -import info from '../assets/info.svg' +import eyeIcon from '../assets/visibility_FILL0_wght400_GRAD0_opsz48.svg'; +import info from '../assets/info.svg'; +import ToolTip from "./shared/Tooltip"; const my_custom_param = new URL(window.location.href).searchParams.get("my_custom_param"); @@ -30,11 +31,9 @@ export default function Login(props: PageProps>(e => { e.preventDefault(); - setIsLoginButtonDisabled(true); const formElement = e.target as HTMLFormElement; - //NOTE: Even if we login with email Keycloak expect username and password in //the POST request. formElement.querySelector("input[name='email']")?.setAttribute("name", "username"); @@ -102,7 +101,7 @@ export default function Login(props: PageProps
-