You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mohemmionic5/Mohem/src/app/authentication/login/login.component.ts

436 lines
15 KiB
TypeScript

7 years ago
import { Component, OnInit, NgZone, OnDestroy } from "@angular/core";
7 years ago
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";
6 years ago
import { AlertController, Platform, Events } from "@ionic/angular";
7 years ago
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';
import { PushService } from 'src/app/hmg-common/services/push/push.service';
@Component({
7 years ago
selector: "login",
templateUrl: "./login.component.html",
styleUrls: ["./login.component.scss"]
})
export class LoginComponent implements OnInit, OnDestroy {
7 years ago
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;
7 years ago
private currentLang: any = 1;
private patientOutSA: boolean;
private loginTokenID: string;
private isMobileFingerPrint: boolean;
private FingerPrintPatientIdentificationID: string;
private loginData = new LoginModel();
6 years ago
private empname:any;
private logintype:any;
public loginDiv:boolean =true;
public welcomeBack:boolean =false;
public logo = "assets/icon/login/password.png";
6 years ago
deviceToken: any="";
user: boolean =false;
DeviceType: string;
requestGetLoginInfo:any;
6 years ago
logoutFlage: boolean ;
getuser:any="";
6 years ago
7 years ago
constructor(
public cs: CommonService,
public authService: AuthenticationService,
public router: Router,
public alertController: AlertController,
public ts: TranslatorService,
public smsService: SmsReaderService,
private faio: FingerprintAIO,
6 years ago
public events:Events,
7 years ago
public ngZone: NgZone,
public device: Device,
public splash: SplashScreen,
public sharedData: SharedDataService,
public plt: Platform,
public pushService: PushService
6 years ago
) {
this.events.subscribe("logoutFlage", logoutFlage => {
console.log("login compont logoutFlage: "+logoutFlage);
if(logoutFlage == true){
console.log(" subscribe check logoutFlage: "+logoutFlage);
this.logoutFlage = logoutFlage;
localStorage.setItem('logoutFlage',logoutFlage);
}
});
this.getuser = this.cs.sharedService.getSharedData(
AuthenticationService.IMEI_USER_DATA,
false
);
// alert(" this.getuser "+this.getuser);
if(this.getuser){
this.user = true;
}
else{
this.user = false;
}
}
7 years ago
ngOnInit() {
6 years ago
// this.deviceToken= this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false);
// console.log("get deviceToken login"+ this.deviceToken)
6 years ago
// this.getuser = this.cs.sharedService.getSharedData(
// AuthenticationService.IMEI_USER_DATA,
// false
// );
// if(this.getuser){
// console.log("this.getuser"+this.getuser);
// this.logoutFlage = true;
// }
this.events.subscribe("user", user => {
console.log("login compont: "+user);
this.user = user;
});
6 years ago
6 years ago
6 years ago
this.deviceToken= localStorage.getItem('devicyeToken');
6 years ago
console.log("let deviceToken" + this.deviceToken);
6 years ago
if (this.deviceToken) {
6 years ago
console.log('login enabled first time: ' + this.deviceToken);
6 years ago
} else {
console.log("no deviceToken" );
this.pushService.startReceiving();
setTimeout(() => {
6 years ago
// alert('login enabled second time: ' + this.deviceToken);
6 years ago
}, 1000);
}
6 years ago
// setTimeout(() => {
// alert("this.logoutFlage in setTime" +localStorage.getItem('logoutFlage'));
// alert("this.this.user in setTime" + this.user);
// if(localStorage.getItem('logoutFlage')== "true"){
// this.getLastLoginInfo();
6 years ago
6 years ago
// }
// },1000);
6 years ago
6 years ago
//here will delete below part and depdding on user (response from getMobileInfo)
this.username = localStorage.getItem("user");
this.password = localStorage.getItem("password"); //****//
let remember = localStorage.getItem("remember");//****//
6 years ago
this.empname= localStorage.getItem("emp-name");
this.logintype= localStorage.getItem("login-type");
if (remember == "true") { this.remeberMe = true } else { this.remeberMe = false }
//here will be check on user if exite then s part and depdding on user (response from getMobileInfo)
if(this.user){
// this.loginDiv=false;
// this.welcomeBack=true;
6 years ago
}else{
// this.user=true;
// this.welcomeBack=false;
6 years ago
}
// alert("user>>" + this.username);
// alert("pass>>>" + this.password);
// alert("remember>>>" + this.remeberMe);
/// call getLoginInfo
}
7 years ago
ngOnDestroy(): void {
this.backClicked();
}
7 years ago
public changeLanguage() {
this.ts.switchLanguage();
if (TranslatorService.CURRENT_LANGUAGE == TranslatorService.EN) {
this.language = "US";
} else {
this.language = "AR";
7 years ago
}
7 years ago
this.currentLang = TranslatorService.getCurrentLanguageCode();
}
private forgetPasswordPage() {
this.cs.openUserForgot();
}
private hideSplashScreen(stopLoading = false) {
// this.splash.hide();
if (stopLoading) {
this.cs.stopLoading();
7 years ago
}
7 years ago
}
7 years ago
public addValue(e): void {
// console.log(e.currentTarget.checked);
6 years ago
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");
// }
}
7 years ago
7 years ago
public onLogin() {
console.log("onLogin");
6 years ago
// this.checkAppUpdated();
// this.checkUserAuthentication();
6 years ago
this.deviceToken = localStorage.getItem('deviceToken');
console.log("let deviceToken" + this.deviceToken);
6 years ago
if (this.deviceToken) {
console.log('login enabled first time: ' + this.deviceToken);
this.checkAppUpdated();
} else {
console.log("no deviceToken" );
this.pushService.startReceiving();
setTimeout(() => {
6 years ago
this.deviceToken = localStorage.getItem('deviceToken');
this.checkAppUpdated();
6 years ago
console.log('login enabled second time: ' + this.deviceToken);
}, 1000);
}
}
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');
}
7 years ago
}
7 years ago
7 years ago
private checkUserAuthentication() {
6 years ago
console.log("debug Here!!");
console.log(this.username);
console.log(this.language);
console.log(this.password);
7 years ago
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
6 years ago
.login(request, () => {
console.log("error here");
//console.log(result.MessageStatus);
6 years ago
//this.sharedData.setSharedData(true, Password.IS_EXPIRED_PSW);
//this.userCheck();
}, this.ts.trPK("general", "ok"))
7 years ago
.subscribe((result: CheckUserAuthenticationResponse) => {
console.log("success");
this.cs.stopLoading();
7 years ago
if (this.cs.validResponse(result)) {
6 years ago
// alert("result.MemberLoginList.EMPLOYEE_NAME :" + result.MemberLoginList[0].EMPLOYEE_NAME);
7 years ago
this.loginData.LogInTokenID = result.LogInTokenID;
this.loginData.MobileNumber = result.MemberLoginList.P_MOBILE_NUMBER;
6 years ago
this.loginData.P_USER_NAME = this.username;
6 years ago
// this.loginData.EMPLOYEE_NAME =result.MemberLoginList[0].EMPLOYEE_NAME;
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
6 years ago
// if(!this.welcomeBack){
this.cs.openConfirmLoginPage();//phase#2 add 4 types for OTP
6 years ago
// }
} else {
console.log("result.IsPasswordExpired");
console.log(result.IsPasswordExpired);
if (result.IsPasswordExpired) {
this.presentPasswordExpiredDialog();
}
7 years ago
}
});
}
7 years ago
7 years ago
public backClicked() {
this.smsService.stopSMSMonitoring();
}
7 years ago
6 years ago
async presentPasswordExpiredDialog() {
const alert = await this.alertController.create({
6 years ago
header: this.ts.trPK("general", "confirm"),
message: this.ts.trPK("login", "password-expired"),
buttons: [
6 years ago
{
text: this.ts.trPK("general", "ok"),
handler: () => {
console.log('Confirm Okay');
this.sharedData.setSharedData(true, Password.IS_EXPIRED_PSW);
this.userCheck();
}
}
]
6 years ago
});
await alert.present();
}
7 years ago
public openForgotID() {
this.cs.openUserForgot();
}
7 years ago
6 years ago
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();
}
});
6 years ago
}
6 years ago
private checkUserResult: CheckUserAuthenticationResponse;
private sendSMSForForgotPassword() {
6 years ago
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;
6 years ago
// this.loginData.EmployeeName =result.MemberLoginList[0].EMPLOYEE_NAME;
6 years ago
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();
}
});
}
6 years ago
login() {
console.log("login emit");
console.log("login");
// this.checkUserAuthentication();
//this.loginDiv=true;
this.user=false;
6 years ago
}
loginWithUser() {
console.log("loginWithUser")
this.cs.openConfirmLoginPage();
}
///
getLastLoginInfo(){
this.requestGetLoginInfo= {
6 years ago
DeviceType:this.cs.getDeviceType(),//"Android",//this.cs.getDeviceType(),
6 years ago
DeviceToken:this.deviceToken//"5ca8a69cf1804db55264c349edffb99b9d63acd9fa9b6b18956bcb2ad3f2ba36"//this.deviceToken
}
this.authService.getLoginInfo(this.requestGetLoginInfo,() => {}, this.ts.trPK('general', 'ok')).subscribe(res => {
if (this.cs.validResponse(res)) {
6 years ago
if(res.Mohemm_GetMobileLoginInfoList.length > 0){
6 years ago
this.cs.sharedService.setSharedData(
// res.Patient_SELECTDeviceIMEIbyIMEIList[0],
res.Mohemm_GetMobileLoginInfoList[0],
AuthenticationService.IMEI_USER_DATA
);
this.user = true;
}
else{
this.user=false
}
}
});
}
}