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/sms-page/sms-page.page.ts

540 lines
9.6 KiB
TypeScript

7 years ago
import { Component, OnInit } from "@angular/core";
7 years ago
import { ElementRef } from "@angular/core";
import { NavController, Platform } from "@ionic/angular";
7 years ago
import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service";
7 years ago
import { CommonService } from "src/app/hmg-common/services/common/common.service";
7 years ago
import { SharedDataService } from "src/app/hmg-common/services/shared-data-service/shared-data.service";
7 years ago
import { SMSCheckRequest } from "src/app/hmg-common/services/authentication/models/smscheck.request";
7 years ago
import { LoginModel } from "../models/LoginModel";
7 years ago
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service";
7 years ago
import { SMSCheckResponse } from "src/app/hmg-common/services/authentication/models/smscheck.response";
7 years ago
import { Password } from "../models/password";
import { GetLoginInfoRequest } from 'src/app/hmg-common/services/authentication/models/get-login-info.request';
import * as moment from "moment";
7 years ago
@Component({
7 years ago
selector: "app-sms-page",
7 years ago
templateUrl: "./sms-page.page.html",
7 years ago
styleUrls: ["./sms-page.page.scss"]
7 years ago
})
export class SmsPageComponent implements OnInit {
7 years ago
public static LOGIN_DATA = "LOGIN_DATA";
Channel: number = 0;
7 years ago
activationCode: string;
P_SESSION_ID: number;
P_USER_NAME: string;
7 years ago
timeInSeconds: any;
time: any;
runTimer: any;
7 years ago
hasStarted: any;
7 years ago
hasFinished: any;
remainingTime: any;
displayTime: any;
loginTokenID: string;
public isForgetPwd: boolean = false;
public isExpiredPwd: boolean = false;
public count: number = 0;
private loginData = new LoginModel();
public deviceToken:any;
public loginTypeData:any;
6 years ago
public logo = "assets/icon/login/password.png";
public smc_code: any = [];
code: any;
user_name: string;
loginType: any;
6 years ago
7 years ago
constructor(
7 years ago
public navCtrl: NavController,
7 years ago
public translate: TranslatorService,
public common: CommonService,
private elementRef: ElementRef,
public authService: AuthenticationService,
public sharedData: SharedDataService,
public platform: Platform,
7 years ago
) {}
7 years ago
7 years ago
ngOnInit() {
this.count = 0;
this.initTimer();
this.startTimer();
7 years ago
this.isForgetPwd =
7 years ago
this.sharedData.getSharedData(Password.IS_FORGET_PSW) || false;
this.isExpiredPwd =
this.sharedData.getSharedData(Password.IS_EXPIRED_PSW) || false;
this.loginData= this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false);
console.log("loginData : "+ this.loginData);
// this.loginType=this.loginTypeData.loginType;
this.deviceToken= this.common.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false);
if(this.deviceToken == undefined){
this.deviceToken = localStorage.getItem("deviceToken");
}
console.log("deviceToken :"+this.deviceToken);
this.loginTypeData= this.common.sharedService.getSharedData(SMSCheckRequest.SHARED_DATA, false);
if( this.loginTypeData){
6 years ago
this.loginType=this.loginTypeData.loginType;
console.log("loginType :"+this.loginTypeData.loginType);
}else{
this.loginType=1;
}
}
initTimer() {
// Pomodoro is usually for 25 minutes
if (!this.timeInSeconds) {
this.timeInSeconds = 600;
}
this.time = this.timeInSeconds;
this.runTimer = false;
this.hasStarted = false;
this.hasFinished = false;
this.remainingTime = this.timeInSeconds;
this.displayTime = this.common.getSecondsAsDigitalClock(this.remainingTime);
}
startTimer() {
this.runTimer = true;
this.hasStarted = true;
this.timerTick();
}
pauseTimer() {
this.runTimer = false;
}
resumeTimer() {
this.startTimer();
}
timerTick() {
setTimeout(() => {
7 years ago
if (!this.runTimer) {
7 years ago
return;
7 years ago
}
this.remainingTime--;
7 years ago
this.displayTime = this.common.getSecondsAsDigitalClock(
7 years ago
this.remainingTime
7 years ago
);
if (this.remainingTime > 0) {
this.timerTick();
7 years ago
} else {
this.hasFinished = true;
this.pauseTimer();
this.navCtrl.pop();
}
}, 1000);
}
ionViewWillLeave() {
this.pauseTimer();
}
6 years ago
checkOTPLength(){
6 years ago
console.log(this.activationCode.length);
6 years ago
if(this.activationCode.length==4){
6 years ago
this.checkVerificationCode();
6 years ago
}
6 years ago
}
checkVerificationCode() {
6 years ago
this.code=this.smc_code.join('');
if (this.count < 3) {
7 years ago
if (
6 years ago
this.code == undefined ||
6 years ago
this.code == null ||
6 years ago
this.code == ""
7 years ago
) {
// this.common.showAlert(this.translate.translate('verificationcode.emptyCode'));
} else {
this.count = this.count + 1;
if (this.isForgetPwd || this.isExpiredPwd) {
this.checkForgetPwdSMS();
} else {
6 years ago
console.log("checkSMS");
this.checkSMS();
}
}
} else {
7 years ago
let msg: string = this.translate.trPK("general", "noOfTriesLogin");
this.common.JustAlertDialog(this.translate.trPK("general", "ok"), msg);
}
7 years ago
}
7 years ago
public checkSMS() {
// alert("checkSMS in page")
6 years ago
console.log("code" + this.code);
const data = this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false);
const request = new SMSCheckRequest();
request.LogInTokenID = data.LogInTokenID;
6 years ago
request.activationCode = this.code; //code;this.activationCode;
request.P_USER_NAME = data.P_USER_NAME;
7 years ago
request.MobileNumber = data.MobileNumber;
7 years ago
this.authService
7 years ago
.checkSMS(request, () => {}, this.translate.trPK("general", "ok"))
7 years ago
.subscribe((result: SMSCheckResponse) => {
console.log(result);
7 years ago
if (this.common.validResponse(result)) {
AuthenticationService.servicePrivilage=result.Privilege_List;
7 years ago
this.authService.setAuthenticatedUser(result).subscribe(() => {
//call insert Mobile Login
6 years ago
console.log("insert");
localStorage.setItem("emp-name",result.MemberInformationList[0].EMPLOYEE_NAME);
console.log("empnmae: "+ localStorage.getItem("emp-name"));
// localStorage.setItem("login-at", new Date().toISOString());
this.user_name=result.MemberInformationList[0].EMPLOYEE_NAME;
//get date and time of last login
let currDateTime = moment().format('MMM DD , YYYY HH:mm')
localStorage.setItem("login-at",currDateTime);
if (this.platform.is("cordova")) {
6 years ago
// localStorage.setItem("full-name", result.P_USER_NAME);
this.insertMobileLogin();
}
6 years ago
7 years ago
this.common.openHome();
7 years ago
});
7 years ago
}
});
}
public insertMobileLogin(){
console.log("loginData" + this.loginData);
let request = new GetLoginInfoRequest();
this.authService.setPublicFields(request);
request.MobileNumber = this.loginData.MobileNumber;
request.P_USER_NAME=this.loginData.P_USER_NAME;
request.UserName=this.loginData.P_USER_NAME;
request.LogInTokenID =this.loginData.LogInTokenID;
request.CompanyID =1;//CompanyID
request.DeviceType= this.common.getDeviceType();
6 years ago
request.DeviceToken=this.deviceToken;//"5ca8a69cf1804db55264c349edffb99b9d63acd9fa9b6b18956bcb2ad3f2ba36";//this.deviceToken;
request.LoginType=this.loginTypeData.loginType;
request.EmployeeName=this.user_name;
this.authService
.insertMobileLoginInfo(
request,
() => { },
this.translate.trPK("general", "ok")
)
.subscribe((result: any) => {
6 years ago
});
}
7 years ago
public checkForgetPwdSMS() {
const data = this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false);
const request = new SMSCheckRequest();
request.LogInTokenID = data.LogInTokenID;
6 years ago
request.activationCode =this.code;// this.activationCode;
request.P_USER_NAME = data.P_USER_NAME;
console.log(data.LogInTokenID);
console.log(data.P_USER_NAME);
7 years ago
this.authService
7 years ago
.checkForgetSMS(request, () => {}, this.translate.trPK("general", "ok"))
7 years ago
.subscribe((result: SMSCheckResponse) => {
console.log(result);
7 years ago
if (this.common.validResponse(result)) {
7 years ago
console.log(result);
if (this.isForgetPwd) {
this.common.openForgotPassword();
}
if(this.isExpiredPwd) {
this.sharedData.setSharedData(true,Password.IS_EXPIRED_PSW);
this.common.openChangePassword();
}
7 years ago
}
});
6 years ago
}
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;
6 years ago
let sibPre =t.previousElementSibling;
6 years ago
if (key !== 9 && (key < 48 || key > 57)) {
if (key === 8 || key === 46) {
6 years ago
6 years ago
return true;
} else {
e.preventDefault();
return false;
}
}
if (key === 9) {
return true;
}
if (sib) {
//sib = document.querySelector('input');
6 years ago
if (e.target.value ==="") {
sibPre.setFocus()}
else{
6 years ago
sib.setFocus();
6 years ago
}
6 years ago
}
}
// } else {
// e.target.value = value.substring(0, value.length - 1);
// }
6 years ago
}