|
|
|
@ -1,40 +1,46 @@
|
|
|
|
import { Component, OnInit, ViewChild, ChangeDetectorRef, NgZone, OnDestroy } from '@angular/core';
|
|
|
|
import {
|
|
|
|
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
|
|
|
Component,
|
|
|
|
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
|
|
|
|
OnInit,
|
|
|
|
import { Router } from '@angular/router';
|
|
|
|
ViewChild,
|
|
|
|
import { AlertController } from '@ionic/angular';
|
|
|
|
ChangeDetectorRef,
|
|
|
|
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
|
|
|
NgZone,
|
|
|
|
import { CheckUserAuthenticationRequest } from 'src/app/hmg-common/services/authentication/models/check-user-auth.request';
|
|
|
|
OnDestroy
|
|
|
|
import { CheckUserAuthenticationResponse } from 'src/app/hmg-common/services/authentication/models/check-user-auth.response';
|
|
|
|
} from "@angular/core";
|
|
|
|
import { CheckActivationCodeResponse } from 'src/app/hmg-common/services/authentication/models/check-activation-code.response';
|
|
|
|
import { CommonService } from "src/app/hmg-common/services/common/common.service";
|
|
|
|
import { SmsReaderService } from 'src/app/hmg-common/services/sms/sms-reader.service';
|
|
|
|
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service";
|
|
|
|
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
|
|
|
|
import { Router } from "@angular/router";
|
|
|
|
import { PATIENT_TYPE } from 'src/app/hmg-common/services/models/patient.type';
|
|
|
|
import { AlertController } from "@ionic/angular";
|
|
|
|
import { FingerprintAIO } from '@ionic-native/fingerprint-aio/ngx';
|
|
|
|
import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service";
|
|
|
|
import { GetLoginInfoRequest } from 'src/app/hmg-common/services/authentication/models/get-login-info.request';
|
|
|
|
import { CheckUserAuthenticationRequest } from "src/app/hmg-common/services/authentication/models/check-user-auth.request";
|
|
|
|
import { GetLoginInfoResponse } from 'src/app/hmg-common/services/authentication/models/get-login-info.response';
|
|
|
|
import { CheckUserAuthenticationResponse } from "src/app/hmg-common/services/authentication/models/check-user-auth.response";
|
|
|
|
import { Device } from '@ionic-native/device/ngx';
|
|
|
|
import { CheckActivationCodeResponse } from "src/app/hmg-common/services/authentication/models/check-activation-code.response";
|
|
|
|
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
|
|
|
|
import { SmsReaderService } from "src/app/hmg-common/services/sms/sms-reader.service";
|
|
|
|
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
|
|
|
|
import { AuthenticatedUser } from "src/app/hmg-common/services/authentication/models/authenticated-user";
|
|
|
|
import { LoginModel } from '../models/LoginModel';
|
|
|
|
import { PATIENT_TYPE } from "src/app/hmg-common/services/models/patient.type";
|
|
|
|
import { LoginRequest } from 'src/app/hmg-common/services/authentication/models/login.request';
|
|
|
|
import { FingerprintAIO } from "@ionic-native/fingerprint-aio/ngx";
|
|
|
|
|
|
|
|
import { GetLoginInfoRequest } from "src/app/hmg-common/services/authentication/models/get-login-info.request";
|
|
|
|
|
|
|
|
import { GetLoginInfoResponse } from "src/app/hmg-common/services/authentication/models/get-login-info.response";
|
|
|
|
|
|
|
|
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";
|
|
|
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
@Component({
|
|
|
|
selector: 'login',
|
|
|
|
selector: "login",
|
|
|
|
templateUrl: './login.component.html',
|
|
|
|
templateUrl: "./login.component.html",
|
|
|
|
styleUrls: ['./login.component.scss']
|
|
|
|
styleUrls: ["./login.component.scss"]
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
appLang:number=1;
|
|
|
|
appLang: number = 1;
|
|
|
|
isExpired:boolean =false;
|
|
|
|
isExpired: boolean = false;
|
|
|
|
isSupportAr:boolean=false;
|
|
|
|
isSupportAr: boolean = false;
|
|
|
|
isAppleStore:boolean=false;
|
|
|
|
isAppleStore: boolean = false;
|
|
|
|
memberLogin: any = {};
|
|
|
|
memberLogin: any = {};
|
|
|
|
private password: string;
|
|
|
|
private password: string;
|
|
|
|
private language: string;
|
|
|
|
private language: string;
|
|
|
|
private username : string;
|
|
|
|
private username: string;
|
|
|
|
private currentLang : any =1;
|
|
|
|
private currentLang: any = 1;
|
|
|
|
private patientOutSA: boolean;
|
|
|
|
private patientOutSA: boolean;
|
|
|
|
private loginTokenID: string;
|
|
|
|
private loginTokenID: string;
|
|
|
|
private isMobileFingerPrint: boolean;
|
|
|
|
private isMobileFingerPrint: boolean;
|
|
|
|
@ -52,27 +58,21 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
public device: Device,
|
|
|
|
public device: Device,
|
|
|
|
public splash: SplashScreen,
|
|
|
|
public splash: SplashScreen,
|
|
|
|
public sharedData: SharedDataService
|
|
|
|
public sharedData: SharedDataService
|
|
|
|
) {
|
|
|
|
) {}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ngOnInit() {
|
|
|
|
ngOnInit() {}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ngOnDestroy(): void {
|
|
|
|
ngOnDestroy(): void {
|
|
|
|
this.backClicked();
|
|
|
|
this.backClicked();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public changeLanguage(){
|
|
|
|
public changeLanguage() {
|
|
|
|
this.ts.switchLanguage();
|
|
|
|
this.ts.switchLanguage();
|
|
|
|
if(TranslatorService.CURRENT_LANGUAGE == TranslatorService.EN)
|
|
|
|
if (TranslatorService.CURRENT_LANGUAGE == TranslatorService.EN) {
|
|
|
|
{
|
|
|
|
|
|
|
|
this.language = "US";
|
|
|
|
this.language = "US";
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
else{
|
|
|
|
|
|
|
|
this.language = "AR";
|
|
|
|
this.language = "AR";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.currentLang = TranslatorService.getCurrentLanguageCode();
|
|
|
|
this.currentLang = TranslatorService.getCurrentLanguageCode();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// private checkIfLoggedInBefore() {
|
|
|
|
// private checkIfLoggedInBefore() {
|
|
|
|
// this.cs.startLoading();
|
|
|
|
// this.cs.startLoading();
|
|
|
|
@ -85,7 +85,7 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
private forgetPasswordPage(){
|
|
|
|
private forgetPasswordPage() {
|
|
|
|
this.cs.openUserForgot();
|
|
|
|
this.cs.openUserForgot();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private hideSplashScreen(stopLoading = false) {
|
|
|
|
private hideSplashScreen(stopLoading = false) {
|
|
|
|
@ -115,23 +115,29 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
|
|
|
|
|
|
|
|
private getPermissionToActivateBiometric(user: AuthenticatedUser) {
|
|
|
|
private getPermissionToActivateBiometric(user: AuthenticatedUser) {
|
|
|
|
this.cs.presentConfirmDialog(
|
|
|
|
this.cs.presentConfirmDialog(
|
|
|
|
this.ts.trPK('login', 'enable-biometric'),
|
|
|
|
this.ts.trPK("login", "enable-biometric"),
|
|
|
|
() => {
|
|
|
|
() => {
|
|
|
|
user['biometricEnabled'] = true;
|
|
|
|
user["biometricEnabled"] = true;
|
|
|
|
this.authService.updateLoggedInUser(user).subscribe((success: boolean) => {
|
|
|
|
this.authService
|
|
|
|
|
|
|
|
.updateLoggedInUser(user)
|
|
|
|
|
|
|
|
.subscribe((success: boolean) => {
|
|
|
|
this.presentBiometricDialog(user);
|
|
|
|
this.presentBiometricDialog(user);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
},
|
|
|
|
() => { }
|
|
|
|
() => {}
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
activate biometric login for this user
|
|
|
|
activate biometric login for this user
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private getMobileInfo(user: AuthenticatedUser) {
|
|
|
|
private getMobileInfo(user: AuthenticatedUser) {
|
|
|
|
this.authService.getLoginInfo(new GetLoginInfoRequest(user), () => {
|
|
|
|
this.authService
|
|
|
|
|
|
|
|
.getLoginInfo(
|
|
|
|
}, this.ts.trPK('general', 'ok')).subscribe((result: GetLoginInfoResponse) => {
|
|
|
|
new GetLoginInfoRequest(user),
|
|
|
|
|
|
|
|
() => {},
|
|
|
|
|
|
|
|
this.ts.trPK("general", "ok")
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
.subscribe((result: GetLoginInfoResponse) => {
|
|
|
|
if (this.cs.validResponse(result)) {
|
|
|
|
if (this.cs.validResponse(result)) {
|
|
|
|
if (!result.SMSLoginRequired) {
|
|
|
|
if (!result.SMSLoginRequired) {
|
|
|
|
this.loginTokenID = result.LogInTokenID;
|
|
|
|
this.loginTokenID = result.LogInTokenID;
|
|
|
|
@ -139,7 +145,9 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
this.initializeForAuthentictedUser(user);
|
|
|
|
this.initializeForAuthentictedUser(user);
|
|
|
|
// sms for register the biometric
|
|
|
|
// sms for register the biometric
|
|
|
|
if (result.isSMSSent) {
|
|
|
|
if (result.isSMSSent) {
|
|
|
|
this.startListeneingForSMS(this.ts.trPK('general', 'enter-sms-enable-biometric'));
|
|
|
|
this.startListeneingForSMS(
|
|
|
|
|
|
|
|
this.ts.trPK("general", "enter-sms-enable-biometric")
|
|
|
|
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
this.checkActivationCode();
|
|
|
|
this.checkActivationCode();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -154,33 +162,29 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
//this.FingerPrintPatientIdentificationID = user.IdentificationNo;
|
|
|
|
//this.FingerPrintPatientIdentificationID = user.IdentificationNo;
|
|
|
|
//this.mobileNumber = user.MobileNumber;
|
|
|
|
//this.mobileNumber = user.MobileNumber;
|
|
|
|
//this.zipCode = CountryCode.localCode(user.ZipCode);
|
|
|
|
//this.zipCode = CountryCode.localCode(user.ZipCode);
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private presentBiometricDialog(user) {
|
|
|
|
private presentBiometricDialog(user) {
|
|
|
|
this.faio.show({
|
|
|
|
this.faio
|
|
|
|
clientId: 'Fingerprint Authetnciation',
|
|
|
|
.show({
|
|
|
|
clientSecret: 'Ate343_9347lajF', // Only necessary for Android
|
|
|
|
clientId: "Fingerprint Authetnciation",
|
|
|
|
|
|
|
|
clientSecret: "Ate343_9347lajF", // Only necessary for Android
|
|
|
|
disableBackup: true, // Only for Android(optional)
|
|
|
|
disableBackup: true, // Only for Android(optional)
|
|
|
|
localizedFallbackTitle: this.ts.trPK('login', 'use-pin'), // Only for iOS
|
|
|
|
localizedFallbackTitle: this.ts.trPK("login", "use-pin"), // Only for iOS
|
|
|
|
localizedReason: this.ts.trPK('login', 'auth-please') // Only for iOS
|
|
|
|
localizedReason: this.ts.trPK("login", "auth-please") // Only for iOS
|
|
|
|
}).then((result: any) => {
|
|
|
|
})
|
|
|
|
|
|
|
|
.then((result: any) => {
|
|
|
|
// this.checkActivationCode();
|
|
|
|
// this.checkActivationCode();
|
|
|
|
this.getMobileInfo(user);
|
|
|
|
this.getMobileInfo(user);
|
|
|
|
|
|
|
|
})
|
|
|
|
}).catch((error: any) => console.log(error));
|
|
|
|
.catch((error: any) => console.log(error));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public onLogin() {
|
|
|
|
public onLogin() {
|
|
|
|
this.checkUserAuthentication();
|
|
|
|
this.checkUserAuthentication();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// public loginWithMyAccount() {
|
|
|
|
// public loginWithMyAccount() {
|
|
|
|
// // this.loginWithTamer();
|
|
|
|
// // this.loginWithTamer();
|
|
|
|
// this.loginWithTamer();
|
|
|
|
// this.loginWithTamer();
|
|
|
|
@ -247,7 +251,6 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// public loginWithEyeMeasureUser() {
|
|
|
|
// public loginWithEyeMeasureUser() {
|
|
|
|
// alert('you are doing slient login width eye measurements user account ');
|
|
|
|
// alert('you are doing slient login width eye measurements user account ');
|
|
|
|
// const user = new AuthenticatedUser();
|
|
|
|
// const user = new AuthenticatedUser();
|
|
|
|
@ -341,8 +344,6 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private startListeneingForSMS(title?: string) {
|
|
|
|
private startListeneingForSMS(title?: string) {
|
|
|
|
this.startReceivingSMS();
|
|
|
|
this.startReceivingSMS();
|
|
|
|
//this.presentSMSPasswordDialog(title);
|
|
|
|
//this.presentSMSPasswordDialog(title);
|
|
|
|
@ -354,12 +355,12 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
request.P_LANGUAGE = this.language;
|
|
|
|
request.P_LANGUAGE = this.language;
|
|
|
|
request.P_PASSWORD = this.password;
|
|
|
|
request.P_PASSWORD = this.password;
|
|
|
|
console.log(request);
|
|
|
|
console.log(request);
|
|
|
|
this.authService.login(
|
|
|
|
this.authService
|
|
|
|
request,
|
|
|
|
.login(request, () => {}, this.ts.trPK("general", "ok"))
|
|
|
|
() => {
|
|
|
|
.subscribe((result: CheckUserAuthenticationResponse) => {
|
|
|
|
}, this.ts.trPK('general', 'ok')).subscribe((result: CheckUserAuthenticationResponse) => {
|
|
|
|
|
|
|
|
if (this.cs.validResponse(result)) {
|
|
|
|
if (this.cs.validResponse(result)) {
|
|
|
|
this.loginData.LogInTokenID = result.LogInTokenID;
|
|
|
|
this.loginData.LogInTokenID = result.LogInTokenID;
|
|
|
|
|
|
|
|
this.loginData.MobileNumber = result.MemberLoginList.P_MOBILE_NUMBER;
|
|
|
|
this.sharedData.setSharedData(this.loginData, "logindata");
|
|
|
|
this.sharedData.setSharedData(this.loginData, "logindata");
|
|
|
|
this.cs.openSMSPage();
|
|
|
|
this.cs.openSMSPage();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -371,7 +372,6 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private startReceivingSMS() {
|
|
|
|
private startReceivingSMS() {
|
|
|
|
|
|
|
|
|
|
|
|
// this.smsModal.presentModal();
|
|
|
|
// this.smsModal.presentModal();
|
|
|
|
// this.smsService.startSMSMonitoring((code) => {
|
|
|
|
// this.smsService.startSMSMonitoring((code) => {
|
|
|
|
// this.smsModal.dismiss;
|
|
|
|
// this.smsModal.dismiss;
|
|
|
|
@ -387,7 +387,10 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
this.cs.presentSMSPasswordDialog(
|
|
|
|
this.cs.presentSMSPasswordDialog(
|
|
|
|
(code: string) => {
|
|
|
|
(code: string) => {
|
|
|
|
this.checkActivationCode(code);
|
|
|
|
this.checkActivationCode(code);
|
|
|
|
}, null, title);
|
|
|
|
},
|
|
|
|
|
|
|
|
null,
|
|
|
|
|
|
|
|
title
|
|
|
|
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private checkActivationCode(readedCode?) {
|
|
|
|
private checkActivationCode(readedCode?) {
|
|
|
|
@ -401,7 +404,6 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
request.PatientMobileNumber = this.mobileNumber;
|
|
|
|
request.PatientMobileNumber = this.mobileNumber;
|
|
|
|
request.ZipCode = this.zipCode;
|
|
|
|
request.ZipCode = this.zipCode;
|
|
|
|
request.isRegister = false;*/
|
|
|
|
request.isRegister = false;*/
|
|
|
|
|
|
|
|
|
|
|
|
// request.SearchType = this.loginType;
|
|
|
|
// request.SearchType = this.loginType;
|
|
|
|
// if (this.loginType === LoginComponent.IDENTIFCIATION_LOGIN_TYPE) {
|
|
|
|
// if (this.loginType === LoginComponent.IDENTIFCIATION_LOGIN_TYPE) {
|
|
|
|
// request.PatientIdentificationID = this.id;
|
|
|
|
// request.PatientIdentificationID = this.id;
|
|
|
|
@ -423,12 +425,9 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private checkIfUserAgreedBefore(result: CheckActivationCodeResponse) {
|
|
|
|
private checkIfUserAgreedBefore(result: CheckActivationCodeResponse) {
|
|
|
|
|
|
|
|
|
|
|
|
this.authService.setAuthenticatedUser(result).subscribe(() => {
|
|
|
|
this.authService.setAuthenticatedUser(result).subscribe(() => {
|
|
|
|
// if (this.authService.isAgreedBefore()) {
|
|
|
|
// if (this.authService.isAgreedBefore()) {
|
|
|
|
// this.cs.openHome();
|
|
|
|
// this.cs.openHome();
|
|
|
|
@ -438,9 +437,7 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private checkUserAgreement() {
|
|
|
|
private checkUserAgreement() {}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public signOut() {
|
|
|
|
public signOut() {
|
|
|
|
// this.cs.presentConfirmDialog(this.ts.trPK('login', 'sign-out'),
|
|
|
|
// this.cs.presentConfirmDialog(this.ts.trPK('login', 'sign-out'),
|
|
|
|
@ -450,24 +447,19 @@ export class LoginComponent implements OnInit, OnDestroy {
|
|
|
|
// if (this.countryCode) {
|
|
|
|
// if (this.countryCode) {
|
|
|
|
// this.internationlMobile.setMobileNumber(this.countryCode.code, null);
|
|
|
|
// this.internationlMobile.setMobileNumber(this.countryCode.code, null);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public openForgotID() {
|
|
|
|
public openForgotID() {
|
|
|
|
this.cs.openUserForgot();
|
|
|
|
this.cs.openUserForgot();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public onDismiss()
|
|
|
|
public onDismiss() {
|
|
|
|
{
|
|
|
|
|
|
|
|
// this.global_code = SMSService.code;
|
|
|
|
// this.global_code = SMSService.code;
|
|
|
|
//this.checkActivationCode(this.global_code);
|
|
|
|
//this.checkActivationCode(this.global_code);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public onCancelled()
|
|
|
|
public onCancelled() {
|
|
|
|
{
|
|
|
|
|
|
|
|
console.log("Modal pop up cancelled");
|
|
|
|
console.log("Modal pop up cancelled");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|