From 335758fbd0d1ff93999abd54c8807a2e022fc95f Mon Sep 17 00:00:00 2001 From: ashwaq Date: Tue, 21 Jan 2020 14:22:57 +0300 Subject: [PATCH] add login design --- .../authentication/authentication.module.ts | 9 +- .../change-password.component.html | 30 ++- .../change-password.component.scss | 31 +++ .../change-password.component.ts | 3 +- .../check-user/check-user.component.html | 25 ++- .../check-user/check-user.component.scss | 36 +++- .../check-user/check-user.component.ts | 3 +- .../confirm-login.component.html | 49 +++-- .../confirm-login.component.scss | 10 + .../confirm-login/confirm-login.component.ts | 138 +++++++++++-- .../forgot/forgot.component.html | 22 ++- .../authentication/forgot/forgot.component.ts | 2 + .../authentication/login/login.component.html | 73 +++++-- .../authentication/login/login.component.scss | 118 ++++++++++++ .../authentication/login/login.component.ts | 37 +++- .../sms-page/sms-page.page.html | 43 ++++- .../sms-page/sms-page.page.scss | 49 ++++- .../authentication/sms-page/sms-page.page.ts | 76 +++++++- .../welcome/welcome.component.html | 3 + .../welcome/welcome.component.scss | 0 .../welcome/welcome.component.spec.ts | 27 +++ .../welcome/welcome.component.ts | 14 ++ Mohem/src/app/hmg-common/hmg-common.module.ts | 14 +- .../models/smscheck.response.ts | 1 + .../ui/button/button.component.scss | 2 +- .../hmg-common/ui/button/button.component.ts | 2 + .../ui/welcome-login/welcome.component.html | 69 +++++++ .../ui/welcome-login/welcome.component.scss | 68 +++++++ .../welcome-login/welcome.component.spec.ts | 27 +++ .../ui/welcome-login/welcome.component.ts | 182 ++++++++++++++++++ Mohem/src/assets/icon/login/lock.png | Bin 0 -> 2333 bytes Mohem/src/assets/icon/login/password.png | Bin 0 -> 4809 bytes Mohem/src/assets/imgs/CSLogo.png | Bin 0 -> 9526 bytes Mohem/src/assets/imgs/header.png | Bin 0 -> 21633 bytes Mohem/src/assets/imgs/more.png | Bin 1867 -> 568 bytes Mohem/src/assets/imgs/more2.png | Bin 0 -> 1867 bytes Mohem/src/assets/localization/i18n.json | 62 ++++++ Mohem/src/theme/styles.scss | 74 ++++++- Mohem/src/theme/variables.scss | 5 +- 39 files changed, 1206 insertions(+), 98 deletions(-) create mode 100644 Mohem/src/app/authentication/welcome/welcome.component.html create mode 100644 Mohem/src/app/authentication/welcome/welcome.component.scss create mode 100644 Mohem/src/app/authentication/welcome/welcome.component.spec.ts create mode 100644 Mohem/src/app/authentication/welcome/welcome.component.ts create mode 100644 Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.html create mode 100644 Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.scss create mode 100644 Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.spec.ts create mode 100644 Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.ts create mode 100644 Mohem/src/assets/icon/login/lock.png create mode 100644 Mohem/src/assets/icon/login/password.png create mode 100644 Mohem/src/assets/imgs/CSLogo.png create mode 100644 Mohem/src/assets/imgs/header.png create mode 100644 Mohem/src/assets/imgs/more2.png diff --git a/Mohem/src/app/authentication/authentication.module.ts b/Mohem/src/app/authentication/authentication.module.ts index 520c6c77..31c88e82 100644 --- a/Mohem/src/app/authentication/authentication.module.ts +++ b/Mohem/src/app/authentication/authentication.module.ts @@ -21,7 +21,7 @@ import { SmsPageComponent } from './sms-page/sms-page.page'; import { CheckUserComponent } from './check-user/check-user.component'; import { ChangePasswordComponent } from './change-password/change-password.component'; import {ConfirmLoginComponent} from '../authentication/confirm-login/confirm-login.component' - +import {WelcomeComponent} from '../authentication/welcome/welcome.component' const routes: Routes = [ { @@ -51,6 +51,10 @@ const routes: Routes = [ { path: 'confirmLogin', component: ConfirmLoginComponent + }, + { + path: 'welcom', + component: WelcomeComponent } ] } @@ -77,7 +81,8 @@ const routes: Routes = [ SmsPageComponent, CheckUserComponent, ChangePasswordComponent, - ConfirmLoginComponent + // ConfirmLoginComponent, + WelcomeComponent ], providers:[ FingerprintAIO, diff --git a/Mohem/src/app/authentication/change-password/change-password.component.html b/Mohem/src/app/authentication/change-password/change-password.component.html index 383e5f88..87f66853 100644 --- a/Mohem/src/app/authentication/change-password/change-password.component.html +++ b/Mohem/src/app/authentication/change-password/change-password.component.html @@ -12,23 +12,37 @@ - + + + + + + + +
+
+

{{'changePassword,changePassword' | translate}}

+ + + - + - +

{{'changePassword,newPassword' | translate}}

+ + - - - + + - @@ -40,6 +54,6 @@
- {{ts.trPK('login','changepassword')}} +
\ No newline at end of file diff --git a/Mohem/src/app/authentication/change-password/change-password.component.scss b/Mohem/src/app/authentication/change-password/change-password.component.scss index e69de29b..baffb4ff 100644 --- a/Mohem/src/app/authentication/change-password/change-password.component.scss +++ b/Mohem/src/app/authentication/change-password/change-password.component.scss @@ -0,0 +1,31 @@ +.login-input { + border: none; +} +.item-input{ + --min-height: 1.0cm !important; + --border-radius: 12px; + --ion-color-base: white !important; + // --background: color: var(--darkgray) !important; + // background: #7f8c8d !important; + border-radius: 33px; + --border: solid #9999992b !important; + border: solid #9999992b !important; + margin-bottom :12px; + margin-left: 12px; + margin-right: 12px; +} + +.button-login{ + + --background: var(--newgreen) !important; + background: var(--newgreen) !important; + white-space: normal; + color: var(--light); + text-transform: capitalize; + min-height: 1.0cm; + --border-radius: 33px !important; + border-radius: 33px !important; + --min-height: 1.6cm !important; + width: 315px; +} + diff --git a/Mohem/src/app/authentication/change-password/change-password.component.ts b/Mohem/src/app/authentication/change-password/change-password.component.ts index ee3ece29..455ffffb 100644 --- a/Mohem/src/app/authentication/change-password/change-password.component.ts +++ b/Mohem/src/app/authentication/change-password/change-password.component.ts @@ -24,7 +24,8 @@ export class ChangePasswordComponent implements OnInit { public P_Confirm_NEW_PASSWORD : string; public P_OLD_PASSWORD : string; public P_USER_NAME : string; - + public logo = "assets/icon/login/lock.png"; + userData: any = {}; public isExpiredPwd: boolean = false; constructor( diff --git a/Mohem/src/app/authentication/check-user/check-user.component.html b/Mohem/src/app/authentication/check-user/check-user.component.html index fc6f99e2..5e53938b 100644 --- a/Mohem/src/app/authentication/check-user/check-user.component.html +++ b/Mohem/src/app/authentication/check-user/check-user.component.html @@ -8,10 +8,27 @@ - + + + + + + + +
+
+ + +

{{ts.trPK('login','check-user-text1')}}{{ts.trPK('login','check-user-text2')}} {{ts.trPK('login','check-user-text3')}}

+
+
+ + + + - {{ts.trPK('login','username')}} - + {{ts.trPK('login','check-user-text1')}} +
@@ -19,6 +36,6 @@
- {{ts.trPK('login','changepassword')}} +
\ No newline at end of file diff --git a/Mohem/src/app/authentication/check-user/check-user.component.scss b/Mohem/src/app/authentication/check-user/check-user.component.scss index 4357e11d..0628ac93 100644 --- a/Mohem/src/app/authentication/check-user/check-user.component.scss +++ b/Mohem/src/app/authentication/check-user/check-user.component.scss @@ -4,4 +4,38 @@ .btnBack{ background: transparent; -} \ No newline at end of file +} + +/////////////////////////////////////////////////////////// + +.login-input { + border: none; +} +.item-input{ + --min-height: 1.0cm !important; + --border-radius: 12px; + --ion-color-base: white !important; + // --background: color: var(--darkgray) !important; + // background: #7f8c8d !important; + border-radius: 33px; + --border: solid #9999992b !important; + border: solid #9999992b !important; + margin-bottom :12px; + margin-left: 12px; + margin-right: 12px; +} + +.button-login{ + + --background: var(--newgreen) !important; + background: var(--newgreen) !important; + white-space: normal; + color: var(--light); + text-transform: capitalize; + min-height: 1.0cm; + --border-radius: 33px !important; + border-radius: 33px !important; + --min-height: 1.6cm !important; + width: 315px; +} +/////////////////////////////////////////// \ No newline at end of file diff --git a/Mohem/src/app/authentication/check-user/check-user.component.ts b/Mohem/src/app/authentication/check-user/check-user.component.ts index d0b0579a..f0bd66a9 100644 --- a/Mohem/src/app/authentication/check-user/check-user.component.ts +++ b/Mohem/src/app/authentication/check-user/check-user.component.ts @@ -21,7 +21,8 @@ import {LoginComponent} from 'src/app/authentication/login/login.component'; export class CheckUserComponent implements OnInit { public P_USER_NAME : string; private loginData = new LoginModel(); - + public logo = "assets/icon/login/lock.png"; + @ViewChild(InternationalMobileComponent) internationlMobile: InternationalMobileComponent; constructor(public cs: CommonService, public authService: AuthenticationService, diff --git a/Mohem/src/app/authentication/confirm-login/confirm-login.component.html b/Mohem/src/app/authentication/confirm-login/confirm-login.component.html index 794c4955..ba09e11a 100644 --- a/Mohem/src/app/authentication/confirm-login/confirm-login.component.html +++ b/Mohem/src/app/authentication/confirm-login/confirm-login.component.html @@ -1,4 +1,4 @@ - + @@ -9,20 +9,28 @@ - - + + - + - - + + -

{{ts.trPK('login','verify-login-with')}}

+ + + + +

{{empname}}

+
+

{{ts.trPK('login','verify-login-with')}}

@@ -32,19 +40,32 @@
- - - + + + + + + + + + + + *ngIf="button.visible" + [buttonClass]="button.buttonClass" [pClass]="button.pClass"> + + + + +
- -
\ No newline at end of file + +
diff --git a/Mohem/src/app/authentication/confirm-login/confirm-login.component.scss b/Mohem/src/app/authentication/confirm-login/confirm-login.component.scss index e69de29b..eb5390a3 100644 --- a/Mohem/src/app/authentication/confirm-login/confirm-login.component.scss +++ b/Mohem/src/app/authentication/confirm-login/confirm-login.component.scss @@ -0,0 +1,10 @@ +.content-class { + height: 25vh; +} + +.rowOutside{ + // margin-top: -37px; + +} + + diff --git a/Mohem/src/app/authentication/confirm-login/confirm-login.component.ts b/Mohem/src/app/authentication/confirm-login/confirm-login.component.ts index fcb3a40e..e0310306 100644 --- a/Mohem/src/app/authentication/confirm-login/confirm-login.component.ts +++ b/Mohem/src/app/authentication/confirm-login/confirm-login.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, Input } from '@angular/core'; import {ButtonSettings} from "src/app/hmg-common/ui/button/models/button-settingsl"; @@ -27,6 +27,8 @@ import { SMSCheckResponse } from "src/app/hmg-common/services/authentication/mod import { PushService } from 'src/app/hmg-common/services/push/push.service'; import { Platform } from '@ionic/angular'; +import { CheckUserAuthenticationResponse } from 'src/app/hmg-common/services/authentication/models/check-user-auth.response'; +import { LoginModel } from '../models/LoginModel'; @@ -44,7 +46,7 @@ import { Platform } from '@ionic/angular'; export class ConfirmLoginComponent implements OnInit { - public logo = "assets/imgs/CS.png"; + public logo = "assets/icon/login/password.png"; public buttons:any=[]; @@ -52,7 +54,7 @@ export class ConfirmLoginComponent implements OnInit { onlySMSBox: any = true; - loginData:any; + public loginData = new LoginModel(); selectedOption: any; @@ -62,7 +64,12 @@ export class ConfirmLoginComponent implements OnInit { deviceToken:any; - + @Input() accessFromOutSide = false; + @Input() visible = true; + username: any; + password:any; + loginType: any; + empname: string; constructor( @@ -90,11 +97,11 @@ export class ConfirmLoginComponent implements OnInit { this.loginData= this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false); - console.log(this.loginData); + console.log("logindata: "+this.loginData); - this.deviceToken= this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false); + this.deviceToken= this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false); - console.log("deviceToken :"+this.deviceToken); + console.log("deviceToken :"+this.deviceToken); //if device token undefind @@ -121,8 +128,9 @@ export class ConfirmLoginComponent implements OnInit { this.checkIfAvailable(); //**getSharedData of IMEI_USER_DATA and REGISTER_DATA_FOR_LOGIIN to set defult value **// - - + this.username = localStorage.getItem("user"); + this.password = localStorage.getItem("password"); + this.empname = localStorage.getItem("emp-name"); // this.setDefault(); @@ -214,7 +222,10 @@ export class ConfirmLoginComponent implements OnInit { disabled: this.isFaceorFinger === "finger" || this.isFaceorFinger === "biometric" ? false : true, - visible: this.onlySMSBox + visible: this.onlySMSBox, + buttonClass: 'buttonClassWhite', + pClass: 'pClassMyFileIconBlack', + class: 'nationalIdIcon', }, @@ -232,7 +243,10 @@ export class ConfirmLoginComponent implements OnInit { disabled: this.isFaceorFinger === "face" ? false : true, - visible: this.onlySMSBox + visible: this.onlySMSBox, + buttonClass: 'buttonClassWhite', + pClass: 'pClassMyFileIconBlack', + class: 'nationalIdIcon', }, @@ -248,7 +262,10 @@ export class ConfirmLoginComponent implements OnInit { value: 4, - visible: true + visible: true, + buttonClass: 'buttonClassWhite', + pClass: 'pClassMyFileIconBlack', + class: 'nationalIdIcon', }, @@ -264,7 +281,10 @@ export class ConfirmLoginComponent implements OnInit { value: 1, - visible: true + visible: true, + buttonClass: 'buttonClassWhite', + pClass: 'pClassMyFileIconBlack', + class: 'nationalIdIcon', } @@ -278,6 +298,7 @@ export class ConfirmLoginComponent implements OnInit { confirm(el: any) { + console.log("confirm:"+ el ); this.selectedOption = this.selectedOption && !this.onlySMSBox ? this.selectedOption : el.value; @@ -286,13 +307,15 @@ export class ConfirmLoginComponent implements OnInit { case 1: - console.log(el.value); - + console.log(el.value); + localStorage.setItem("login-type",el.value); + console.log("login-type: "+ localStorage.getItem("login-type")) this.loginWithSMS(el); break; case 2: + localStorage.setItem("login-type",el.value); console.log(el.value); @@ -303,6 +326,7 @@ export class ConfirmLoginComponent implements OnInit { break; case 3: + localStorage.setItem("login-type",el.value); console.log(el.value); @@ -316,6 +340,7 @@ export class ConfirmLoginComponent implements OnInit { console.log(el.value); + localStorage.setItem("login-type",el.value); this.loginWithWhatsapp(el); @@ -335,7 +360,7 @@ export class ConfirmLoginComponent implements OnInit { AuthenticationService.LAST_LOGIN ); - + } @@ -460,7 +485,7 @@ export class ConfirmLoginComponent implements OnInit { this.cs.sharedService.setSharedData({ - MobileNumber: this.loginData.mobileNumber, + MobileNumber: this.loginData.MobileNumber, loginType: this.selectedOption @@ -651,7 +676,7 @@ export class ConfirmLoginComponent implements OnInit { if ( result.Mohemm_GetPatientID_List[0].LoginType == 2 || result.Mohemm_GetPatientID_List[0].LoginType == 3) { this.loginTokenID = result.LogInTokenID; - + //send silent sms this.checkSMS(); } else { @@ -712,11 +737,13 @@ export class ConfirmLoginComponent implements OnInit { this.authService.setAuthenticatedUser(result).subscribe(() => { console.log("insert"); - + localStorage.setItem("emp-name",result.MemberInformationList[0].EMPLOYEE_NAME); + console.log("empnmae: "+ localStorage.getItem("emp-name")); if (this.platform.is("cordova")) { - + this.insertMobileLogin(); + } this.cs.openHome(); @@ -785,6 +812,77 @@ console.log("succssful insertMobileLoginInfo" ); } +//do silent login +private checkUserAuthentication() { + console.log("debug Here!!"); + this.cs.startLoading(); + const request = new LoginRequest(); + request.P_USER_NAME = this.username; + request.P_LANGUAGE = "US";//this.language; + request.P_PASSWORD = this.password; + console.log(request); + this.authService + .login(request, () => { + console.log("error here"); + //console.log(result.MessageStatus); + //this.sharedData.setSharedData(true, Password.IS_EXPIRED_PSW); + //this.userCheck(); + }, this.ts.trPK("general", "ok")) + .subscribe((result: CheckUserAuthenticationResponse) => { + console.log("success"); + this.cs.stopLoading(); + if (this.cs.validResponse(result)) { + + console.log("result.LogInTokenID "+ result.LogInTokenID); + console.log("this.loginData before "+ this.loginData); + this.loginData = new LoginModel(); + console.log("this.loginData after "+ this.loginData); + + this.loginData.LogInTokenID = result.LogInTokenID; + this.loginData.MobileNumber = result.MemberLoginList.P_MOBILE_NUMBER; + this.loginData.P_USER_NAME = this.username; + this.sharedData.setSharedData(this.loginData, AuthenticationService.LOGIN_DATA); + this.cs.sharedService.setSharedData(this.loginData.P_USER_NAME, LoginRequest.SHARED_DATA); + //this.remeberMyInfo(); + //this.cs.openSMSPage(); phase#1 one type of OTP + // if(!this.welcomeBack){ + //this.cs.openConfirmLoginPage();//phase#2 add 4 types for OTP + // } + this.confirm(this.loginType); + + + } else { + console.log("result.IsPasswordExpired"); + console.log(result.IsPasswordExpired); + if (result.IsPasswordExpired) { + // alert("dont forget to handelpresentPasswordExpiredDialog() "); + // this.presentPasswordExpiredDialog(); ***** + } + } + }); +} + +checkAccess(el:any){ + let data = this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false); + + this.loginType=el; + + if(this.accessFromOutSide){ + // alert("this.accessFromOutSide" + this.accessFromOutSide); + this.checkUserAuthentication(); + } + else{ + // alert("this.accessFromOutSide" + this.accessFromOutSide); + if(!data == undefined ){ + // alert("data.LogInTokenID" + data.LogInTokenID); + + this.confirm(this.loginType); + } + else{ + this.checkUserAuthentication(); + } +} +}//end checkAccess }​ \ No newline at end of file diff --git a/Mohem/src/app/authentication/forgot/forgot.component.html b/Mohem/src/app/authentication/forgot/forgot.component.html index 9e46cdb7..1ca189d0 100644 --- a/Mohem/src/app/authentication/forgot/forgot.component.html +++ b/Mohem/src/app/authentication/forgot/forgot.component.html @@ -10,20 +10,30 @@ - + + - + + + + + + +
+
+ + {{'changePassword,newPassword' | translate}} - - + {{'changePassword,confirmPassword' | translate}} - @@ -35,6 +45,6 @@
- {{ts.trPK('login','changepassword')}} +
\ No newline at end of file diff --git a/Mohem/src/app/authentication/forgot/forgot.component.ts b/Mohem/src/app/authentication/forgot/forgot.component.ts index 96a05ce2..95c8789f 100644 --- a/Mohem/src/app/authentication/forgot/forgot.component.ts +++ b/Mohem/src/app/authentication/forgot/forgot.component.ts @@ -21,6 +21,8 @@ export class ForgotComponent implements OnInit { public P_NEW_PASSWORD: string; public P_Confirm_NEW_PASSWORD : string; public P_USER_NAME : string; + public logo = "assets/icon/login/lock.png"; + constructor( public cs: CommonService, public authService: AuthenticationService, diff --git a/Mohem/src/app/authentication/login/login.component.html b/Mohem/src/app/authentication/login/login.component.html index 70e2c0ad..6fe8bcb5 100644 --- a/Mohem/src/app/authentication/login/login.component.html +++ b/Mohem/src/app/authentication/login/login.component.html @@ -1,28 +1,57 @@ - + + + +
+ + +
+
+
+ + + +
+ + + + + + + + + + + - +

{{ts.trPK('login','login')}}

- - +
+ - + - + - + + + + {{ts.trPK('login','remeber-me')}} @@ -39,13 +68,33 @@
+ + + + + + + + + + + + + +
- +
- {{ts.trPK('login','login')}} +

-
+ + + + + + + \ No newline at end of file diff --git a/Mohem/src/app/authentication/login/login.component.scss b/Mohem/src/app/authentication/login/login.component.scss index 8b4cbf03..da05689e 100644 --- a/Mohem/src/app/authentication/login/login.component.scss +++ b/Mohem/src/app/authentication/login/login.component.scss @@ -110,3 +110,121 @@ img.centerDiv { } +.login-input { + border: none; +} + +.item-input{ + --min-height: 1.0cm !important; + --border-radius: 12px; + --ion-color-base: white !important; + // --background: color: var(--darkgray) !important; + // background: #7f8c8d !important; + border-radius: 33px; + --border: solid #9999992b !important; + border: solid #9999992b !important; + margin-bottom :12px; + margin-left: 12px; + margin-right: 12px; +} + +.button-login{ + + --background: var(--newgreen) !important; + background: var(--newgreen) !important; + white-space: normal; + color: var(--light); + text-transform: capitalize; + min-height: 1.0cm; + --border-radius: 33px !important; + border-radius: 33px !important; + --min-height: 1.6cm !important; + width: 315px; +} +.content { + width: 500px; + margin-left: auto; + margin-right: auto; +} +.first-circle { + background: var(--newgreen) !important; + border-radius: 50%; + height: 292px; + width: 288px; + float: left; + margin-left: -55px; + margin-top: -140px; + +} +.middle-circle { + position: relative; + background:var(--darkblue) !important; + border-radius: 50%; + height: 160px; + width: 170px; + margin: -115px 0px 0px 179px; +} +.last-circle { + position: inherit; + background: var(--lightblue) !important; + border-radius: 50%; + height: 166px; + width: 140px; + margin: -147px 0px 0px 274px; +} + +.logoFotor { + width: 45px !important; + height: 45px !important; + +} + +.welcomeText{ + justify-content: center; + align-items: center; + text-align: left; + font-size: 26px; + font-weight: bold; + color: #f2f2f2; + margin-top: 178px; + margin-left: 48px; +} + +.forgetText{ + background: transparent; + color: var(--darkblue) !important; +} + + +@media only screen and (max-width: 980px) { + .content{width:100%;} +} + + +.circle1{ + width: 15%; + padding-top: 15%; + margin:0 42%; + background-color: black; + border-radius: 50%; + display:inline-block; + } + .circle2{ + width: 15%; + padding-top: 15%; + margin-left: 20%; + background-color:darkred; + border-radius: 50%; + display:inline-block; + margin-top:20px; + } + .circle3{ + width: 15%; + padding-top: 15%; + margin-left: 26%; + background-color:gold; + border-radius: 50%; + display:inline-block; + margin-top:20px; + margin-right: 15%; + } \ No newline at end of file diff --git a/Mohem/src/app/authentication/login/login.component.ts b/Mohem/src/app/authentication/login/login.component.ts index 7e05e0b5..31836e98 100644 --- a/Mohem/src/app/authentication/login/login.component.ts +++ b/Mohem/src/app/authentication/login/login.component.ts @@ -39,6 +39,12 @@ export class LoginComponent implements OnInit, OnDestroy { private isMobileFingerPrint: boolean; private FingerPrintPatientIdentificationID: string; private loginData = new LoginModel(); + private empname:any; + private logintype:any; + public loginDiv:boolean =true; + public welcomeBack:boolean =false; + public logo = "assets/icon/login/password.png"; + constructor( public cs: CommonService, @@ -56,11 +62,21 @@ export class LoginComponent implements OnInit, OnDestroy { ) { } ngOnInit() { - + this.username = localStorage.getItem("user"); this.password = localStorage.getItem("password"); let remember = localStorage.getItem("remember"); + this.empname= localStorage.getItem("emp-name"); + this.logintype= localStorage.getItem("login-type"); if (remember == "true") { this.remeberMe = true } else { this.remeberMe = false } + if(this.username || this.empname){ + this.loginDiv=false; + this.welcomeBack=true; + + }else{ + this.loginDiv=true; + this.welcomeBack=false; + } // alert("user>>" + this.username); // alert("pass>>>" + this.password); // alert("remember>>>" + this.remeberMe); @@ -91,7 +107,7 @@ export class LoginComponent implements OnInit, OnDestroy { public addValue(e): void { // console.log(e.currentTarget.checked); - this.remeberMe = e.currentTarget.checked; + this.remeberMe = true;//e.currentTarget.checked; this.remeberMyInfo(); } public remeberMyInfo() { @@ -107,6 +123,7 @@ export class LoginComponent implements OnInit, OnDestroy { } public onLogin() { + console.log("onLogin"); this.checkAppUpdated(); // this.checkUserAuthentication(); } @@ -165,7 +182,9 @@ export class LoginComponent implements OnInit, OnDestroy { this.cs.sharedService.setSharedData(this.loginData.P_USER_NAME, LoginRequest.SHARED_DATA); this.remeberMyInfo(); //this.cs.openSMSPage(); phase#1 one type of OTP + // if(!this.welcomeBack){ this.cs.openConfirmLoginPage();//phase#2 add 4 types for OTP + // } } else { @@ -250,4 +269,18 @@ export class LoginComponent implements OnInit, OnDestroy { }); } + login() { + console.log("login emit"); + console.log("login"); + // this.checkUserAuthentication(); + this.loginDiv=true; + this.welcomeBack=false; + } + + + loginWithUser() { + console.log("loginWithUser") + this.cs.openConfirmLoginPage(); + } + } diff --git a/Mohem/src/app/authentication/sms-page/sms-page.page.html b/Mohem/src/app/authentication/sms-page/sms-page.page.html index 5eca319e..c3a81c18 100644 --- a/Mohem/src/app/authentication/sms-page/sms-page.page.html +++ b/Mohem/src/app/authentication/sms-page/sms-page.page.html @@ -10,13 +10,19 @@ - - + + + + +
+
-

{{'verificationcode,title' | translate}}{{'verificationcode,verificationcode' | translate}} {{'verificationcode,by' | translate}}{{'verificationcode,sms' | translate}}{{'verificationcode,instruct' | translate}}{{'general,submit' | translate}}

+

{{'verificationcode,verificationcode' | translate}}

+
+

{{'verificationcode,title' | translate}}{{'verificationcode,verificationcode' | translate}} {{'verificationcode,by' | translate}}{{'verificationcode,sms' | translate}}{{'verificationcode,instruct' | translate}}{{'general,submit' | translate}}

@@ -25,15 +31,34 @@

{{displayTime}}



- - - + + + + + + + + + + + + + + + +
+
- {{'general,submit' | translate}} +
\ No newline at end of file diff --git a/Mohem/src/app/authentication/sms-page/sms-page.page.scss b/Mohem/src/app/authentication/sms-page/sms-page.page.scss index 5f1c67eb..78c9db1f 100644 --- a/Mohem/src/app/authentication/sms-page/sms-page.page.scss +++ b/Mohem/src/app/authentication/sms-page/sms-page.page.scss @@ -18,4 +18,51 @@ h1{ span{ font-weight: bold; -} \ No newline at end of file +} +.button-login{ + + --background: var(--newgreen) !important; + background: var(--newgreen) !important; + white-space: normal; + color: var(--light); + text-transform: capitalize; + min-height: 1.0cm; + --border-radius: 33px !important; + border-radius: 33px !important; + --min-height: 1.6cm !important; + width: 315px; +} + +.leftDiv { + margin: auto; + text-align: left; + display: block; +} + +.sms_code{ + margin: 0px; + text-align: center; +} + +ion-input { + margin: 0 5px; + text-align: center; + line-height: 0; + font-size: 32px; + //border: solid 1px #ccc; + border: solid 0.01cm #000000; + //box-shadow: 0 0 5px #ccc inset; + outline: none; + width: 20%; + transition: all .2s ease-in-out; + border-radius: 3px; + display: inline-block; + &:focus { + border-color:var(--ion-color-secondary) !important; + box-shadow: 0 0 5px var(--ion-color-secondary) !important inset; + } + + &::selection { + background: transparent; + } + } \ No newline at end of file diff --git a/Mohem/src/app/authentication/sms-page/sms-page.page.ts b/Mohem/src/app/authentication/sms-page/sms-page.page.ts index 825f64fd..96242ca3 100644 --- a/Mohem/src/app/authentication/sms-page/sms-page.page.ts +++ b/Mohem/src/app/authentication/sms-page/sms-page.page.ts @@ -75,6 +75,12 @@ export class SmsPageComponent implements OnInit { public loginTypeData:any; + public logo = "assets/icon/login/password.png"; + + public smc_code: any = []; + code: any; + + constructor( public navCtrl: NavController, @@ -258,16 +264,17 @@ export class SmsPageComponent implements OnInit { } checkVerificationCode() { + this.code=this.smc_code.join(''); if (this.count < 3) { if ( - this.activationCode == undefined || + this.code == undefined || - this.activationCode == null || + this.code == null || - this.activationCode == "" + this.code == "" ) { @@ -282,7 +289,7 @@ export class SmsPageComponent implements OnInit { this.checkForgetPwdSMS(); } else { - + console.log("checkSMS"); this.checkSMS(); } @@ -304,7 +311,7 @@ export class SmsPageComponent implements OnInit { public checkSMS() { // alert("checkSMS in page") - + console.log("code" + this.code); const data = this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false); const request = new SMSCheckRequest(); @@ -313,7 +320,7 @@ export class SmsPageComponent implements OnInit { request.LogInTokenID = data.LogInTokenID; - request.activationCode = this.activationCode; + request.activationCode = this.code; //code;this.activationCode; request.P_USER_NAME = data.P_USER_NAME; @@ -336,15 +343,17 @@ export class SmsPageComponent implements OnInit { this.authService.setAuthenticatedUser(result).subscribe(() => { //call insert Mobile Login - - + console.log("insert"); + localStorage.setItem("emp-name",result.MemberInformationList[0].EMPLOYEE_NAME); + console.log("empnmae: "+ localStorage.getItem("emp-name")); if (this.platform.is("cordova")) { + // localStorage.setItem("full-name", result.P_USER_NAME); this.insertMobileLogin(); } - + this.common.openHome(); @@ -417,7 +426,7 @@ console.log("successful insertMobileLogin" ); request.LogInTokenID = data.LogInTokenID; - request.activationCode = this.activationCode; + request.activationCode =this.code;// this.activationCode; request.P_USER_NAME = data.P_USER_NAME; @@ -457,6 +466,53 @@ console.log("successful insertMobileLogin" ); }); + } + onChange() { + const filtered = this.smc_code.filter(function (el) { + if (el) { + return el; + } + }); + if (filtered.length === 4) { + //this.validate(); + console.log("validate"); + this.checkVerificationCode(); + } + } + + goToNextInput(e) { + // let value = e.target.value; + // if (value.length === 1) { + const key = e.which; + const t = e.target; + let sib = t.nextElementSibling; + + if (key !== 9 && (key < 48 || key > 57)) { + if (key === 8 || key === 46) { + return true; + } else { + e.preventDefault(); + return false; + } + } + + if (key === 9) { + return true; + } + + if (sib) { + //sib = document.querySelector('input'); + if (e.target.value) { + sib.setFocus(); + } + } + // } else { + // e.target.value = value.substring(0, value.length - 1); + // } + + + + } } \ No newline at end of file diff --git a/Mohem/src/app/authentication/welcome/welcome.component.html b/Mohem/src/app/authentication/welcome/welcome.component.html new file mode 100644 index 00000000..77efcb65 --- /dev/null +++ b/Mohem/src/app/authentication/welcome/welcome.component.html @@ -0,0 +1,3 @@ +

+ welcome works! +

diff --git a/Mohem/src/app/authentication/welcome/welcome.component.scss b/Mohem/src/app/authentication/welcome/welcome.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/Mohem/src/app/authentication/welcome/welcome.component.spec.ts b/Mohem/src/app/authentication/welcome/welcome.component.spec.ts new file mode 100644 index 00000000..908ca625 --- /dev/null +++ b/Mohem/src/app/authentication/welcome/welcome.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WelcomeComponent } from './welcome.component'; + +describe('WelcomeComponent', () => { + let component: WelcomeComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ WelcomeComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(WelcomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/authentication/welcome/welcome.component.ts b/Mohem/src/app/authentication/welcome/welcome.component.ts new file mode 100644 index 00000000..a6048d5b --- /dev/null +++ b/Mohem/src/app/authentication/welcome/welcome.component.ts @@ -0,0 +1,14 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-welcome', + templateUrl: './welcome.component.html', + styleUrls: ['./welcome.component.scss'], +}) +export class WelcomeComponent implements OnInit { + + constructor() { } + + ngOnInit() {} + +} diff --git a/Mohem/src/app/hmg-common/hmg-common.module.ts b/Mohem/src/app/hmg-common/hmg-common.module.ts index 520715e4..7f1d400b 100644 --- a/Mohem/src/app/hmg-common/hmg-common.module.ts +++ b/Mohem/src/app/hmg-common/hmg-common.module.ts @@ -99,7 +99,9 @@ import {File} from '@ionic-native/file/ngx'; import {FileUploderProfileComponent} from './ui/file-uploder-profile/file-uploder-profile.component' import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx'; import { AccordinCustomComponent } from './ui/accordin-custom/accordin-custom.component'; -import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-custom/accordin-tab-custom.component' +import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-custom/accordin-tab-custom.component'; +import{ConfirmLoginComponent} from '../authentication/confirm-login/confirm-login.component' +import{WelcomeComponent} from './ui/welcome-login/welcome.component' @NgModule({ imports: [ CommonModule, @@ -112,6 +114,7 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus PdfViewerModule ], declarations: [ + WelcomeComponent, NumberRangeComponent, SSpacerComponent, MSpacerComponent, @@ -165,9 +168,12 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus WorkListAttachViewComponent, FileUploderProfileComponent, AccordinTabCustomComponent, - AccordinCustomComponent + AccordinCustomComponent, + ConfirmLoginComponent + ], exports: [ + WelcomeComponent, NumberRangeComponent, SSpacerComponent, MSpacerComponent, @@ -218,7 +224,9 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus WorkListAttachViewComponent, FileUploderProfileComponent, AccordinTabCustomComponent, - AccordinCustomComponent + AccordinCustomComponent, + ConfirmLoginComponent + ], providers: [ ConnectorService, diff --git a/Mohem/src/app/hmg-common/services/authentication/models/smscheck.response.ts b/Mohem/src/app/hmg-common/services/authentication/models/smscheck.response.ts index c6a5352f..660b8a28 100644 --- a/Mohem/src/app/hmg-common/services/authentication/models/smscheck.response.ts +++ b/Mohem/src/app/hmg-common/services/authentication/models/smscheck.response.ts @@ -16,5 +16,6 @@ export class SMSCheckResponse extends Response { public CompanyImageDescription:string; public CompanyImageURL:string; public EMPLOYEE_MOBILE_NUMBER:string; + public EMPLOYEE_NAME:string; } diff --git a/Mohem/src/app/hmg-common/ui/button/button.component.scss b/Mohem/src/app/hmg-common/ui/button/button.component.scss index f62e14ac..5fc4ac29 100644 --- a/Mohem/src/app/hmg-common/ui/button/button.component.scss +++ b/Mohem/src/app/hmg-common/ui/button/button.component.scss @@ -6,7 +6,7 @@ box-shadow: 0px 0px 8px 2px #d5d5d5ab; background: white; margin-bottom: 0.3cm; - border-color: #ececec; + // border-color: #ececec; border-style: solid; border-width: 0.02cm; } diff --git a/Mohem/src/app/hmg-common/ui/button/button.component.ts b/Mohem/src/app/hmg-common/ui/button/button.component.ts index a88d0184..9f6305b2 100644 --- a/Mohem/src/app/hmg-common/ui/button/button.component.ts +++ b/Mohem/src/app/hmg-common/ui/button/button.component.ts @@ -13,6 +13,8 @@ export class ButtonComponent implements OnInit { @Input() class: any = ''; @Input() icon: string; @Input() title: string; + @Input() buttonClass: any = ''; + @Input() pClass: any = ''; @Output() trigger = new EventEmitter(); @Input() settings: ButtonSettings; public direction: string; diff --git a/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.html b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.html new file mode 100644 index 00000000..b58e0af1 --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.html @@ -0,0 +1,69 @@ + + + + + +

{{'home,welcome-back' | translate}}

+

{{empname}}

+

{{welcome_txt}}

+

{{txt_account}}

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + {{'rate,yes' | translate}} + + + + + + + \ No newline at end of file diff --git a/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.scss b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.scss new file mode 100644 index 00000000..2f287ba3 --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.scss @@ -0,0 +1,68 @@ +.logo-en { + text-align: left; +} + +.logo-ar { + text-align: right; +} + +.welcome { + margin: 10px; + display: inline-block; + font-weight: bold; + font-size: 0.55cm; +} + +.description { + margin-top: .5cm; +} + +.last-login { + margin: 0; + font-size: 12px; + text-align: center; +} + +.row-border { + margin-top: 20px; + border: 1px solid #bbbbbb; + border-radius: 10px; + padding: 5px; + background: #dddddd; +} + + +.fadein { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +.small-font-size { + font-size: 14px; + ; +} + +.bottom-buttons { + margin-bottom: 0; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +.welcome-footer { + position: fixed; + bottom: 10px; + left: 0; + right: 0; +} + +.text1 { + line-height: 1.5; +} \ No newline at end of file diff --git a/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.spec.ts b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.spec.ts new file mode 100644 index 00000000..908ca625 --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WelcomeComponent } from './welcome.component'; + +describe('WelcomeComponent', () => { + let component: WelcomeComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ WelcomeComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(WelcomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.ts b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.ts new file mode 100644 index 00000000..df42e2cb --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.ts @@ -0,0 +1,182 @@ +import { + Component, + OnInit, + Output, + EventEmitter, + AfterViewInit, + ViewChild, + OnDestroy +} from "@angular/core"; +import { TranslatorService } from "../../services/translator/translator.service"; +import { CommonService } from "../../services/common/common.service"; +import { AuthenticationService } from "../../services/authentication/authentication.service"; +import { ConfirmLoginComponent } from 'src/app/authentication/confirm-login/confirm-login.component'; + +import * as moment from 'moment' +import { ButtonSettings } from '../button/models/button-settingsl'; +import { Events } from '@ionic/angular'; + +@Component({ + selector: "welcome-login", + templateUrl: "./welcome.component.html", + styleUrls: ["./welcome.component.scss"] +}) +export class WelcomeComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(ConfirmLoginComponent, {read: ConfirmLoginComponent }) confimLogin: ConfirmLoginComponent; + + // @ViewChild(ConfirmLoginComponent, { static: false, read: ConfirmLoginComponent }) confimLogin: ConfirmLoginComponent; + public logo = "assets/imgs/bell.png"; + public direction: any; + public user: any; + public count: number = 0; + public count2: number = 0; + public txt_account: any; + public isLastLogin: any; + public welcome: string; + public userName: string; + public lastLoginTime: any; + public welcome_txt: any; + + // public loginTypeDef = { + // 1: this.ts.trPK("sms", "title"), + // 2: this.ts.trPK("sms", "fingerprint"), + // 3: this.ts.trPK("sms", "face-recognition"), + // 4: this.ts.trPK("sms", "whatsapp") + // }; + public loginTypeDef = { + 1: this.ts.trPK("sms", "title"), + 2: this.ts.trPK("sms", "fingerprint"), + 3: this.ts.trPK("sms", "face-recognition"), + 4: this.ts.trPK("sms", "whatsapp") + }; + @Output() onLogin = new EventEmitter(); + @Output() loginWithUser = new EventEmitter(); + + public button = + { + title: "login, more-verify", + url: null, + icon: "assets/imgs/more.png", + settings: new ButtonSettings(true, true, true, true), + value: 2, + txt: 'More', + disabled: false, + buttonClass: 'buttonClassWhite', + pClass: 'pClassMyFileIconBlack', + class: 'nationalIdIcon', + visible: true + }; + password: string; + empname: string; + logintype: any; + + constructor( + public ts: TranslatorService, + public cs: CommonService, + public authservice: AuthenticationService, + public events: Events + ) { } + + ngOnInit() { + // retrive user info ** + + this.userName = localStorage.getItem("user"); + this.password = localStorage.getItem("password"); + let remember = localStorage.getItem("remember"); + this.empname= localStorage.getItem("emp-name"); + this.logintype= localStorage.getItem("login-type"); + this.logintype = parseInt(this.logintype) + + this.welcome_txt = this.ts.trPK("home", "welcome-txt"); + + this.txt_account = this.user + ? this.ts.trPK("home", "account-info") + : ""; + + + + this.setWelcomeMessage(); + this.setDescription(); + //later to fix below code + if (this.user) { + // this.lastLoginTime = moment(this.cs.evaluteDateAsObject(this.user.EditedOn)).format("HH:mm"); + } + } + + ngOnDestroy(): void { + + } + + private setWelcomeMessage() { + console.log(this.userName + "this.userName"); + + if (this.userName) { + this.welcome = this.ts.trPK("home", "welcome-back"); + console.log(this.welcome + "this.welcome"); + + this.welcome += " " + this.empname || ''; + this.isLastLogin = true; + console.log(this.isLastLogin + "this.isLastLogin"); + } else { + this.welcome = this.ts.trPK("home", "welcome-head"); + + } + } + + private setDescription() { + this.txt_account = this.userName ? + this.ts.trPK("home", "account-info") :""; + } + + ngAfterViewInit() { + console.log("this.confimLogin.buttons[0]" + this.confimLogin.buttons[0]); + setTimeout(() => { + if (this.userName && this.confimLogin.buttons[0]) { + + console.log(this.userName ); + console.log(this.confimLogin.buttons[0]); + + this.confimLogin.buttons[0].forEach(element => { + if (this.logintype === element.value) { + console.log(this.logintype ); + console.log(element.value); + console.log("this.logintype === element.value"); + + element.visible = true; + } else { + console.log("this.logintype != element.value"); + + element.visible = false; + } + + }); + } + }, 200); + } + + public moreLoginOptions() {} + + + + login() { + this.onLogin.emit(); + } + loginwithuser() { + this.loginWithUser.emit(); + } + + + + // getDate(date: string) { + // return this.cs.getDateTimeISOFromString(date); + // } + getLoginType(type: any) { + return this.loginTypeDef[type]; + } + + convertTime(time) { + // alert(time) + return time; + } + +} diff --git a/Mohem/src/assets/icon/login/lock.png b/Mohem/src/assets/icon/login/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..eb5bea3523de18e8265a8ede972d12415f30a603 GIT binary patch literal 2333 zcmb`JYdjNd1I9PPCPU0=Eyo;lh>+tlk{L=)u?`Gn3q2!*tQ-(MLc-jUc2onSV01#W$Nhhuca+M6? z=bnX(jsUI!uRGaT0xJ69v)qf(Wp~>v4h{efZUzB>iFm-iy(e73xB>up3VHq|frY&P z=H$I{Ljfqwon_meM7o3n=gC;7F+*sy@|W$4k+DA^=qrM^mwr_aYAdLA2ghcJ-+2rO zj%A8l6q0u0<~?WZyTJ{Q3VRk-FvNkv_au+Ll*6NulMyPNQc6y+dje!vUHMu(wBSFY1)pn2Eqh67Q^m7vow@|yHtU!ztlaR5 z0Kmn}#zH=Tolt{T1E?3ri#h9}#?KUNoB31Wo)P?Dt<68vM|+m@(4{>Zl2djvxl#SC zf&(2Ra6q#~nb3ETAO`R1y@W;?gOPS3lHnI<>!TSHd_V}+)&u@xXp4aWP}=4sFsn-; z<~<)iffPh8NQ_!X-YKSy73}CE=AJY)=taie-zGj+&5aZgZjB@pD3=6^aZgzxEjo$H zvsSvM$ER(Q#EPLYl;&qLdFxwBh;ZUerL$f8H^=_LBkG-}>>lelWPKvL;;8I{yRP9R;OyVju z8eeiT#((HQ1iDoezB*+4xOq@?)TEA|9%AxLL}`X)s&VtL>5V2=0^J~;n!kUh{p7cj zXxFT9WVL>Lag-ZMy7Syu(9ZE$u|I--NO*&_{%+a*;T(M2^Wt|dtE|wrD zsxWu4o>TPkWsZGhT!Nf-kXe6z9f%!&-?ezmure={H0?JrwlzbA^YIg37|X7A?_XYI zoApNA+kVv`)s{1|uwS}2-C=Qv9nPz{eM4>q*w_7R;diFgx6gc-bzk%nE6#BuK>is= zTqMHS4>+MB+x9X@az=qyhso@10@2!gOc~GnJ$@oPbj9V2d+1RDiw=vKAiLl z`(3u@6J>rDIG0}!2_o#SaUDj)nvair8D$=ls`^; zUeDloi!eIV$fB$-Bz}&~bnCu3tJT~htfNIMOYxtj2cG@vtJK#)wh~A8YhH$ElLp@l zs3+D+e22qMhgM4%c7zaX;AE@)XP4glewT&WAE6e}m{ap`3?s}2hmlt~GtIm^tBMMe z!DP6z=l?KJ z#^Mi`t!S0kL1R{KVP&W!4^5NjwULgCrhu|>9<|U!ro6eFi+*&r4y$4};<6)HPhW$k5v*5}tXHy61}5Po zVJw5OmT`#{N)s$iek4SHBBX&#I2G?=eLBJIEPt-N71i>oqMtpJ@OEpQV5j9?vAWs! z_IU><$BXnzs{Xfjhlh^m`FH0;+oX#QPVDHXjglvxJm@hqzhey}=eaLr!`El|>#Nk= zoojo4%GCcPFr1+Q>8xTFF~@-svE^N@a0&dt$f$~0SXuR{O|%VpZ241{^SF)dVG6bp zv5o&xBV2_R5Fo0J*^mxXK8N*G#dO4?lc_&8;)eQBrpIqj;JPmrB;Qca z*VG@2v+wO3@@eCoFH!Wr4B`^#&TWEJ+IaUfk+=elf>#SK$FZ1R0X(iGd|w_a$gIKm z#IcxY#1FZF|8j9JJD!mmaiOH!Rk( zn8N?iG3g!4dn7;yhI81w(*AqjHCbMNJ3>Eo-SHb@;E_@JM>S2zqg0Pst7Str@&P zjotdibPHNDsCM5=vY&tYhfQ(zSm>I;bLs!KVQVc;)P>dT#M-Bgm88yze-ee8oD*vs z8Y@e!xh!E-`iAGRl(u8`0i|qJDz?fjcrAgfgu-#(kKVs1CW`+ENK`LA_^sG{cixW^vMKYoj5VM WljSw-=+(6MO|i8;eX_#REB0@h-B9lU literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/login/password.png b/Mohem/src/assets/icon/login/password.png new file mode 100644 index 0000000000000000000000000000000000000000..1d51b475d99ca23c3c42c4aec8b0bb7cb6f3a36c GIT binary patch literal 4809 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 U+CO0T5C8xG07*qoM6N<$f)JR_od5s; literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/imgs/header.png b/Mohem/src/assets/imgs/header.png new file mode 100644 index 0000000000000000000000000000000000000000..9a501524ee66851c520146953f1f7f3c38d945db GIT binary patch literal 21633 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 literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/imgs/more.png b/Mohem/src/assets/imgs/more.png index ad56785f8e0ff1c01bd151cfa4c85f3116d8e6d1..5b08ed3b1f1979bbd2b6c4b03a4e3a8bea2648eb 100644 GIT binary patch literal 568 zcmeAS@N?(olHy`uVBq!ia0vp^EN^5+IfWVg?4L1x#=emj%plwg5;{uc@OCsCb>Hi(^Ox=iaG}zK0D& zTr`DKT5=rRPOzmgZ(_X3Va%A?+#{ftVXh#3V7HcQm{fay{SnXQe{Plk|Fd?B?VY=e zl3sF}397%+j$fJnqV<>kA+c3rQw$G%U;6B!Q|oP0Z}(>5KerZsTlzWSz@F(JPyXAi z&al3En#1J1&g;I%aq-ujIZ>&7hC@g%h#pT?)nyxALn@y@R)ul7ZKfAS(bp;6trc>b5Rioy?O20#8QJ0G`r z;p7&|=i|0Mbo_WL)0b_?%~N vz<<7N0b30Y3bIwS#f6x>Soo`Z|G7`RyfuvnPHtC72F0MKtDnm{r-UW|oCohB literal 1867 zcmbVNO=#p)98VPoEwqTTDl2Np9_-S6`JOZhn=S23-5J=_GCN{>>zkK1GoeXdHc2}( zz36r?7D4=2!IL10AfhbzaoNLyC?YO+@vt|&>cy)EaeXf{lTKxJEe>Sz^4{&dr{lyfy&m2%wtx9pjDcX9q{jw>Db&CP7n zy<{U2iqIo1EcU~gqB-vTazBP>2WNZ>cl^i^{|sM)ie}7X5OBZkENiB=vedv8Rb7 z=}3xYS(2hdZ@s~yGf9Xdq~0o4sn#F6sr{2xJxpUcF8@ci{)biG_Vk~~ag~*SX zA7>|a;VR6qBQOMzRiLO%rEJTFt?G-iX3O#r>Jray52ivbTTzZdY2A1*gZ~NkkliLp z2&vb82s>DcqmIBAv9v2BAPE(w)@hUT^-5(UA#FdP3u)uxDqml#7>Z>WKoynTT-UYh zQJTRB;d<2(XoN)H_w2H2TDn(MqU{~gdsLr?H?&OaX-5R2RKPbO|=R;qfy{b1Te>}!;r>F6vfF9 z<|~Y5xFXTr66>WQk#rBKyrAuxpVCqrj07*^D@W3K4cid0-gE@SiV}MQKb-cbWaLD? zkM{Svn3CS7PKPonX=go{;FS)|-pQJQxzD_(!8`6j3is}B|H&$9NIKR2$>#ar_K&Pa zT^MyRJ@O@?Na!#<(!Vp8Cwt-`9p|5(&TLp*3-qJ7Sa3wC6MAhtpFQv+y>dvsy3(v2 zqQCCmU49VEJnp*BeYO4b!3S{W!`p9vGhZr|o?Lk4r+41_dp4N;;ic~vzWC@-XYuBR z!{2_n_VL;4SFgfT*6%kSdh4};Ctknv?73F;6Lfv6(Y^iZ>96nT>YJawapg<> e8Ab}XXSmlsljaWJKXr{=clEXP>gTK52mb(ZMN-fJ diff --git a/Mohem/src/assets/imgs/more2.png b/Mohem/src/assets/imgs/more2.png new file mode 100644 index 0000000000000000000000000000000000000000..ad56785f8e0ff1c01bd151cfa4c85f3116d8e6d1 GIT binary patch literal 1867 zcmbVNO=#p)98VPoEwqTTDl2Np9_-S6`JOZhn=S23-5J=_GCN{>>zkK1GoeXdHc2}( zz36r?7D4=2!IL10AfhbzaoNLyC?YO+@vt|&>cy)EaeXf{lTKxJEe>Sz^4{&dr{lyfy&m2%wtx9pjDcX9q{jw>Db&CP7n zy<{U2iqIo1EcU~gqB-vTazBP>2WNZ>cl^i^{|sM)ie}7X5OBZkENiB=vedv8Rb7 z=}3xYS(2hdZ@s~yGf9Xdq~0o4sn#F6sr{2xJxpUcF8@ci{)biG_Vk~~ag~*SX zA7>|a;VR6qBQOMzRiLO%rEJTFt?G-iX3O#r>Jray52ivbTTzZdY2A1*gZ~NkkliLp z2&vb82s>DcqmIBAv9v2BAPE(w)@hUT^-5(UA#FdP3u)uxDqml#7>Z>WKoynTT-UYh zQJTRB;d<2(XoN)H_w2H2TDn(MqU{~gdsLr?H?&OaX-5R2RKPbO|=R;qfy{b1Te>}!;r>F6vfF9 z<|~Y5xFXTr66>WQk#rBKyrAuxpVCqrj07*^D@W3K4cid0-gE@SiV}MQKb-cbWaLD? zkM{Svn3CS7PKPonX=go{;FS)|-pQJQxzD_(!8`6j3is}B|H&$9NIKR2$>#ar_K&Pa zT^MyRJ@O@?Na!#<(!Vp8Cwt-`9p|5(&TLp*3-qJ7Sa3wC6MAhtpFQv+y>dvsy3(v2 zqQCCmU49VEJnp*BeYO4b!3S{W!`p9vGhZr|o?Lk4r+41_dp4N;;ic~vzWC@-XYuBR z!{2_n_VL;4SFgfT*6%kSdh4};Ctknv?73F;6Lfv6(Y^iZ>96nT>YJawapg<> e8Ab}XXSmlsljaWJKXr{=clEXP>gTK52mb(ZMN-fJ literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/localization/i18n.json b/Mohem/src/assets/localization/i18n.json index e7adec94..f5f855ec 100644 --- a/Mohem/src/assets/localization/i18n.json +++ b/Mohem/src/assets/localization/i18n.json @@ -5,6 +5,14 @@ "fr" ], "login": { + "another-acc": { + "en": "Use another account", + "ar": "استخدم حسابا آخر" + }, + "more-verify": { + "en": "More Verification Options", + "ar": "المزيد من خيارات التحقق" + }, "login": { "en": "Login", "ar": "الدخول" @@ -144,6 +152,22 @@ "verify-fingerprint": { "en": "To activate fingerprint login service, please verify by using one of the following options. ", "ar": "لتفعيل خدمة الدخول بالبصمة، يرجى التحقق من خلال احدى الخيارات التالية" + }, + "Verify-text":{ + "en":"Verify its you", + "ar":"Verify its you" + }, + "check-user-text1":{ + "en":"Please Enter your Employee ID, A ", + "ar":"" + }, + "check-user-text2":{ + "en":"login Code ", + "ar":"" + }, + "check-user-text3":{ + "en":"will be sent to your mobile number", + "ar":"" } }, "verificationcode": { @@ -870,6 +894,26 @@ "timeAndAttendance":{ "en":"Time & Attendance", "ar":"الوقت و الحضور" + }, + "welcome-head": { + "en": "Welcome", + "ar": "مرحبا" + }, + "welcome-back": { + "en": "Welcome back!", + "ar": "مرحبا بعودتك!" + }, + "welcome": { + "en": "Welcome to", + "ar": "مرحبا بك في" + }, + "welcome-txt": { + "en": "mohemm Mobile Application", + "ar": "مهم لتطبيقات الجوال" + }, + "account-info": { + "en": "Would you like to login with current username?", + "ar": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟" } }, "userProfile": { @@ -2082,5 +2126,23 @@ "ar":"المجموع " } + }, + "sms": { + "title": { + "en": "SMS", + "ar": "رسالة قصيرة" + }, + "fingerprint": { + "en": "Fingerprint", + "ar": "بصمة" + }, + "face-recognition": { + "en": "Face recognition", + "ar": "التعرف على الوجه" + }, + "whatsapp": { + "en": "Whatsapp", + "ar": "واتس اب" + } } } \ No newline at end of file diff --git a/Mohem/src/theme/styles.scss b/Mohem/src/theme/styles.scss index 73b3023f..12d939bc 100644 --- a/Mohem/src/theme/styles.scss +++ b/Mohem/src/theme/styles.scss @@ -229,7 +229,7 @@ p.text-caps{ } } .boldTxtNav,p.boldTxtNav,.boldTxtNav>label { - color: var(--customnavy) !important; + color: var(--dark) !important; :root[dir="ltr"]{ font-family: var(--fontFamilyBoldEN) !important; } @@ -240,7 +240,7 @@ p.text-caps{ } ion-label.boldTxtNav.label.label-md,ion-label.boldTxtNav.label.label-ios{ // font-weight: bold; - color:var(--customnavy); + color:var(--dark); :root[dir="ltr"]{ font-family: var(--fontFamilySemiBoldEN) !important; } @@ -845,7 +845,77 @@ color: var(--dark); margin: 8px !important; } + .buttonClassWhite { + border-radius: 10px !important; + width: 95% !important; + height: 3.7cm !important; + background: var(--newred) !important; + box-shadow: none !important; + border: 1px solid #cccccc !important; +} + +.nationalIdIcon { + text-align: center; + margin: 0 auto; + display: block; + padding-top: 14px; + max-height: 130px !important; +} + +.pClassMyFileIconBlack { + color: #515a5d !important; + font-weight: bold !important; + font-size: 15px !important; + // margin-top: cm !important; +} + +.logo { +max-width:150%; +width:150%; +border:0px +} + +.logoHeader { + max-width: 130%; + width: 130%; + border: 0px; +} +.headerTxt{ + font-size: 20px; + font-weight: bold; +} + + +.login-input { + border: none; +} +.item-input{ + --min-height: 1.0cm !important; + --border-radius: 12px; + --ion-color-base: white !important; + // --background: color: var(--darkgray) !important; + // background: #7f8c8d !important; + border-radius: 33px; + --border: solid #9999992b !important; + border: solid #9999992b !important; + margin-bottom :12px; + margin-left: 12px; + margin-right: 12px; +} + +.button-login{ + --background: var(--newgreen) !important; + background: var(--newgreen) !important; + white-space: normal; + color: var(--light); + text-transform: capitalize; + min-height: 1.0cm; + --border-radius: 33px !important; + border-radius: 33px !important; + --min-height: 1.6cm !important; + width: 315px; +} // .slides-gray-bullets .swiper-wrapper { // margin-top: 14px !important; // } diff --git a/Mohem/src/theme/variables.scss b/Mohem/src/theme/variables.scss index 33bb3b43..72f055c1 100644 --- a/Mohem/src/theme/variables.scss +++ b/Mohem/src/theme/variables.scss @@ -69,7 +69,10 @@ --red:#BE1E2D; --blue:#223262; --cyanblue:#1b75bc; - + --newgreen:#22c6b3; + --darkblue:#094875; + --lightblue:#3cb9d5; + --newred:#cb3232; // $font-family-base: $fontFamilyMediumEN !default; // $font-family-ios-base: $fontFamilyMediumEN !default; // $font-family-md-base:$fontFamilyMediumEN !default;