import { Component, OnInit, NgZone, OnDestroy } from "@angular/core"; import { CommonService } from "src/app/hmg-common/services/common/common.service"; import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service"; import { Router } from "@angular/router"; import { AlertController, Platform } from "@ionic/angular"; import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; import { CheckUserAuthenticationResponse } from "src/app/hmg-common/services/authentication/models/check-user-auth.response"; import { SmsReaderService } from "src/app/hmg-common/services/sms/sms-reader.service"; import { FingerprintAIO } from "@ionic-native/fingerprint-aio/ngx"; import { Device } from "@ionic-native/device/ngx"; import { SplashScreen } from "@ionic-native/splash-screen/ngx"; import { SharedDataService } from "src/app/hmg-common/services/shared-data-service/shared-data.service"; import { LoginModel } from "../models/LoginModel"; import { LoginRequest } from "src/app/hmg-common/services/authentication/models/login.request"; import { Password } from '../models/password'; import { CheckUserAuthenticationRequest } from 'src/app/hmg-common/services/authentication/models/check-user-auth.request'; import { CheckAppVersionResponse } from 'src/app/hmg-common/services/authentication/models/check-app-version.response'; @Component({ selector: "login", templateUrl: "./login.component.html", styleUrls: ["./login.component.scss"] }) export class LoginComponent implements OnInit, OnDestroy { appLang: number = 1; isExpired: boolean = false; isSupportAr: boolean = false; isAppleStore: boolean = false; memberLogin: any = {}; private password: string; private language: string; private username: string; private remeberMe: boolean; private iosLink: string; private androidLink: string; private currentLang: any = 1; private patientOutSA: boolean; private loginTokenID: string; 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, public authService: AuthenticationService, public router: Router, public alertController: AlertController, public ts: TranslatorService, public smsService: SmsReaderService, private faio: FingerprintAIO, public ngZone: NgZone, public device: Device, public splash: SplashScreen, public sharedData: SharedDataService, public plt: Platform ) { } 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); } ngOnDestroy(): void { this.backClicked(); } public changeLanguage() { this.ts.switchLanguage(); if (TranslatorService.CURRENT_LANGUAGE == TranslatorService.EN) { this.language = "US"; } else { this.language = "AR"; } this.currentLang = TranslatorService.getCurrentLanguageCode(); } private forgetPasswordPage() { this.cs.openUserForgot(); } private hideSplashScreen(stopLoading = false) { // this.splash.hide(); if (stopLoading) { this.cs.stopLoading(); } } public addValue(e): void { // console.log(e.currentTarget.checked); this.remeberMe = true;//e.currentTarget.checked; this.remeberMyInfo(); } public remeberMyInfo() { if (this.remeberMe) { if(this.username){localStorage.setItem("user", this.username);} if(this.password){localStorage.setItem("password", this.password);} localStorage.setItem("remember", "true"); } else { localStorage.setItem("user", ""); localStorage.setItem("password", ""); localStorage.setItem("remember", "false"); } } public onLogin() { console.log("onLogin"); this.checkAppUpdated(); // this.checkUserAuthentication(); } public checkAppUpdated() { this.authService.checkApplicationVersion( () => { /* Write code for error */ }).subscribe((result: CheckAppVersionResponse) => { if (result.MessageStatus == 2 && result.ErrorType == 4) { this.cs.presentAcceptDialog(result.ErrorEndUserMessage,()=>{ this.handleAppUpdate(result) }); } else if (result.MessageStatus == 1) { this.checkUserAuthentication(); } }); } private handleAppUpdate(result){ this.iosLink = result.IOSLink; this.androidLink = result.AndroidLink; if (this.plt.is('android')) { if (this.androidLink) window.open(this.androidLink, '_system'); } else if (this.plt.is('ios')) { if (this.iosLink) window.open(this.iosLink, '_system'); } } private checkUserAuthentication() { console.log("debug Here!!"); this.cs.startLoading(); const request = new LoginRequest(); request.P_USER_NAME = this.username; request.P_LANGUAGE = 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)) { 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 // } } else { console.log("result.IsPasswordExpired"); console.log(result.IsPasswordExpired); if (result.IsPasswordExpired) { this.presentPasswordExpiredDialog(); } } }); } public backClicked() { this.smsService.stopSMSMonitoring(); } async presentPasswordExpiredDialog() { const alert = await this.alertController.create({ header: this.ts.trPK("general", "confirm"), message: this.ts.trPK("login", "password-expired"), buttons: [ { text: this.ts.trPK("general", "ok"), handler: () => { console.log('Confirm Okay'); this.sharedData.setSharedData(true, Password.IS_EXPIRED_PSW); this.userCheck(); } } ] }); await alert.present(); } public openForgotID() { this.cs.openUserForgot(); } public userCheck() { this.cs.startLoading(); const request = new CheckUserAuthenticationRequest(); request.P_USER_NAME = this.username; this.authService.checkUserAuthentication( request, () => { /* Write code for error */ }, this.ts.trPK('general', 'ok')).subscribe((result: CheckUserAuthenticationResponse) => { if (this.cs.validResponse(result)) { this.checkUserResult = result; this.cs.stopLoading(); this.sendSMSForForgotPassword(); } }); } private checkUserResult: CheckUserAuthenticationResponse; private sendSMSForForgotPassword() { this.cs.startLoading(); let changePwdObj = new LoginRequest(); changePwdObj.MobileNumber = this.checkUserResult.BasicMemberInformation.P_MOBILE_NUMBER; changePwdObj.P_USER_NAME = this.username; changePwdObj.P_MOBILE_NUMBER = this.checkUserResult.BasicMemberInformation.P_MOBILE_NUMBER; this.authService.sendPublicSMS( changePwdObj, () => { //this.sendSMSForForgotPassword(); /* Write code for error */ }, this.ts.trPK('general', 'ok')).subscribe((result: CheckUserAuthenticationResponse) => { if (this.cs.validResponse(result)) { this.checkUserResult = result; console.log("2"); console.log(result); this.loginData.LogInTokenID = result.LogInTokenID; this.loginData.P_USER_NAME = this.username; this.cs.sharedService.setSharedData(this.loginData.P_USER_NAME, LoginRequest.SHARED_DATA); this.sharedData.setSharedData(this.loginData, AuthenticationService.LOGIN_DATA); this.sharedData.setSharedData(true, Password.IS_FORGET_PSW); this.cs.stopLoading(); this.cs.openSMSPage(); } }); } login() { console.log("login emit"); console.log("login"); // this.checkUserAuthentication(); this.loginDiv=true; this.welcomeBack=false; } loginWithUser() { console.log("loginWithUser") this.cs.openConfirmLoginPage(); } }