|
|
|
|
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();
|
|
|
|
|
|
|
|
|
|
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");
|
|
|
|
|
if (remember == "true") { this.remeberMe = true } else { this.remeberMe = 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 = 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() {
|
|
|
|
|
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
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|