Fairoj : PWA changes, token refresh issue, search issue
This commit is contained in:
parent
fdcd6bb21f
commit
776264d560
@ -82,7 +82,8 @@
|
|||||||
"replace": "src/environments/environment.ts",
|
"replace": "src/environments/environment.ts",
|
||||||
"with": "src/environments/environment.stage.ts"
|
"with": "src/environments/environment.stage.ts"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"serviceWorker": true
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"fileReplacements": [
|
"fileReplacements": [
|
||||||
@ -90,7 +91,8 @@
|
|||||||
"replace": "src/environments/environment.ts",
|
"replace": "src/environments/environment.ts",
|
||||||
"with": "src/environments/environment.stage.ts"
|
"with": "src/environments/environment.stage.ts"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"serviceWorker": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
21
ng6-seed/cert.pem
Normal file
21
ng6-seed/cert.pem
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDdTCCAl2gAwIBAgIJALp8pgcPInoDMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV
|
||||||
|
BAYTAklOMRMwEQYDVQQIDApUYW1pbCBOYWR1MRAwDgYDVQQHDAdDaGVubmFpMQ4w
|
||||||
|
DAYDVQQKDAVWZW5iYTELMAkGA1UECwwCSVQwHhcNMjAxMTE2MTIxMDI3WhcNMzAx
|
||||||
|
MTE0MTIxMDI3WjBRMQswCQYDVQQGEwJJTjETMBEGA1UECAwKVGFtaWwgTmFkdTEQ
|
||||||
|
MA4GA1UEBwwHQ2hlbm5haTEOMAwGA1UECgwFVmVuYmExCzAJBgNVBAsMAklUMIIB
|
||||||
|
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9Abu9StEo1KrngOXi53hQN3W
|
||||||
|
lJUELHjRLtz+246W8/l+U2SQ8pvh/UsvS/T+2Ymtwkrn8+pLik+7abrMOFaYpW8i
|
||||||
|
LdbLtBDZHMrP/SkKv3SN3bIQQVtyWzMwoPtmOzvRuxyyvkWjwp3qIcLmLe104Z0D
|
||||||
|
myy4bG69lmgHY6tH9VPRzPSdMuJSETPZlTCec035CHauXub1kn33PWS/J6ZWzQV2
|
||||||
|
j2Cdp/U22qaRtv8mqqhgy85ytHddxzJs65Ea0Bf3zUaQwFLEFTHYKgdo+wzY3OC+
|
||||||
|
969xZA+zqh1WMWPSGikyMS113ECM/vt/0o2p2Uvj+H2Up/z5xC3li76NBQ4CRwID
|
||||||
|
AQABo1AwTjAdBgNVHQ4EFgQUsqEFNzWzQuQswW7/EmqLFC9ovO0wHwYDVR0jBBgw
|
||||||
|
FoAUsqEFNzWzQuQswW7/EmqLFC9ovO0wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B
|
||||||
|
AQsFAAOCAQEAJsP1FxUT9N3SQDIiXMzId0cEMSfeqrTEJRLruQj2LvooPnvoheF1
|
||||||
|
CEgp+YDEbFphKfmYVb8e5B3P/xCqoNRrWZDgufXLhZbvo5KCufMt6z1gPJSMVt4c
|
||||||
|
/ChSqHonzlodz+w3gueHDkgs4bxK41E15BUhlIH4qGYuSoGPjmP2799aWIfX98k8
|
||||||
|
bjzRoqKEQzSZDjkrwpHdcbqm5XuxR19tYB7rbPawjPVyjIehZ5IkibxFdjJ9k01M
|
||||||
|
sETsdfXlyDZHUlyX0SA39eqUO4f7AXsidleHExYbolhQ82HpYJANXHFzmA5c9kLk
|
||||||
|
K2QQH8yTjqirZkQW6QB9HYYrxHTkNM4SLw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
28
ng6-seed/key.pem
Normal file
28
ng6-seed/key.pem
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQD0Bu71K0SjUque
|
||||||
|
A5eLneFA3daUlQQseNEu3P7bjpbz+X5TZJDym+H9Sy9L9P7Zia3CSufz6kuKT7tp
|
||||||
|
usw4VpilbyIt1su0ENkcys/9KQq/dI3dshBBW3JbMzCg+2Y7O9G7HLK+RaPCneoh
|
||||||
|
wuYt7XThnQObLLhsbr2WaAdjq0f1U9HM9J0y4lIRM9mVMJ5zTfkIdq5e5vWSffc9
|
||||||
|
ZL8nplbNBXaPYJ2n9TbappG2/yaqqGDLznK0d13HMmzrkRrQF/fNRpDAUsQVMdgq
|
||||||
|
B2j7DNjc4L73r3FkD7OqHVYxY9IaKTIxLXXcQIz++3/SjanZS+P4fZSn/PnELeWL
|
||||||
|
vo0FDgJHAgMBAAECggEAcX0T/uN7jXVyKQ/EmAL58l/5XqqbAU/DAUd4I4YCAD9F
|
||||||
|
F+WKX7pNdK5Vtb6gE22raNPLYi3RqeaA46AjQAROA4pW2/isTfcT8gcEidlfjUDY
|
||||||
|
hYU9eBfebDm3YPbqSZv9Y0bqfgEHMwicDc2FnVB07kRGnBFFR/CMrXl+DkVnNtk3
|
||||||
|
EBDxGjEja0MpQe/uVAwscCCqKG/Ra+wbRPoRHCdpT8UTLYfd5Tbz7lTMtKoPVQyy
|
||||||
|
Svm0OfrDSCNksagJGLZgJMVQQr2W+4EGhL91pkysBIX/Gu+pV6nTWGpwlB3tjPOw
|
||||||
|
4e4SwcWhX75kQLXRtjQYM7okq7Y/Gs3KdgdYTOS9UQKBgQD+wYs512yuiCfKwiss
|
||||||
|
uOZyJGKUoNWQhy1CfzzvX2BvxW0DcwGcWLq4xsJtXEK4AvG3ZRwdssxF2Im38Vas
|
||||||
|
28TFLyhkYM/gHLwmrcWczab77jXMM12BPQBvz4iwC90+BtHnBEbNNkkj7h8FFwOf
|
||||||
|
qqNBcHzpKbBoSMn4uloDqimE6QKBgQD1N/pZU9S89NimeLPrTHibW3j/gJ6R8LO7
|
||||||
|
NaG1eV3JM9bhrFM3qQJTXYEW8gQ4b+z1uCKx+Mgz+D7JJMF7lH6H0XM5P6d/JTxm
|
||||||
|
6RpPOV01iuBe2ULkisg/4QQqY0F47iWuShja7WgxqVNyMrcZG4S92Neemg0DTKqT
|
||||||
|
vuQPKT6PrwKBgQDcQsy0cuyVrkTxSpX3sdoVAB53sONVdXqNTuOJdyYzHTgWzl2r
|
||||||
|
JxAx6C98TFOnM2x4CySXDNsO3Jyd/DzbcZwcfJxoxUeV1mJa8s2zuB9THO9IoXSL
|
||||||
|
5Ak3ovDkfS2Jjm33Vjw8+12bgisxxGcuqmNClhZ5pcDPOXfe5IglOP9y2QKBgDDl
|
||||||
|
dJoTSTxUZk7ripTErtfrqXjpILVhFbWiwBf7l2PjXlmpjv5uSPRulKsKnyTRzKJC
|
||||||
|
kUiDnwgd3AcnuRz3QzO55AvqUW/c8OpkWMarXZarlonTMK95rOxv5fC90fRXKFRU
|
||||||
|
mhgtdrVQWj9PNYtgHVvtvTD27tlVlD3Ztof/ZWYpAoGARlt6y7u87M8rI7ROz2xJ
|
||||||
|
EX/vvsq8+/NAkW4NSXC7ETJ4bjhvigG4/vN/gNdAZpw3NGaDaNZNaIOIIoYZ+pNL
|
||||||
|
JYnNOCfWfbu15tZGDOeQcArY8gHUjH63W2/da3c/SRvfP5rASmtk1mjOf0G8E3/v
|
||||||
|
JY3AbidYmdex3n0792PRuMI=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
@ -19,6 +19,10 @@
|
|||||||
"resources": {
|
"resources": {
|
||||||
"files": [
|
"files": [
|
||||||
"/assets/**"
|
"/assets/**"
|
||||||
|
],
|
||||||
|
"urls": [
|
||||||
|
"https://fonts.googleapis.com/**",
|
||||||
|
"https://fonts.gstatic.com/**"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -126,23 +126,29 @@ isloggin:boolean = false;
|
|||||||
// }
|
// }
|
||||||
refresh() {
|
refresh() {
|
||||||
let tokenexp:boolean;
|
let tokenexp:boolean;
|
||||||
this.getCurrentUser().getSession(function (err, session) {
|
return Observable.create(observer=>{
|
||||||
|
console.log("Current user check in token refresh fun",this.getCurrentUser())
|
||||||
|
return this.getCurrentUser().getSession(function (err, session) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
console.log("Error Refreshing token",err);
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
if (session.isValid()) {
|
if (session.isValid()) {
|
||||||
tokenexp = session.isValid();
|
tokenexp = session.isValid();
|
||||||
of(tokenexp)
|
of(tokenexp)
|
||||||
|
console.log("CognitoUtil: refreshed successfully");
|
||||||
} else {
|
} else {
|
||||||
tokenexp = session.isValid();
|
tokenexp = session.isValid();
|
||||||
|
console.log("CognitoUtil: refreshed but session is still not valid");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return tokenexp;
|
observer.next(tokenexp)
|
||||||
|
observer.complete()
|
||||||
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
getAccessToken(){
|
getAccessToken(){
|
||||||
this.refresh();
|
this.refresh();
|
||||||
|
|||||||
260
ng6-seed/src/app/_guard/req-token.interceptor.ts
Executable file
260
ng6-seed/src/app/_guard/req-token.interceptor.ts
Executable file
@ -0,0 +1,260 @@
|
|||||||
|
import { Injectable, Injector } from '@angular/core';
|
||||||
|
import {
|
||||||
|
HttpRequest,
|
||||||
|
HttpHandler,
|
||||||
|
HttpInterceptor,
|
||||||
|
HttpSentEvent,
|
||||||
|
HttpHeaderResponse,
|
||||||
|
HttpProgressEvent,
|
||||||
|
HttpResponse,
|
||||||
|
HttpUserEvent,
|
||||||
|
HttpEvent
|
||||||
|
} from '@angular/common/http';
|
||||||
|
// import { AuthGuard } from './auth.guard';
|
||||||
|
import { Observable, of, BehaviorSubject, throwError} from 'rxjs';
|
||||||
|
|
||||||
|
// import { Router } from '@angular/router';
|
||||||
|
|
||||||
|
import { switchMap, tap, catchError, finalize } from 'rxjs/operators';
|
||||||
|
import { HttpErrorResponse } from "@angular/common/http";
|
||||||
|
import { Router } from '@angular/router';
|
||||||
|
import { CognitoService } from 'app/AwsService/cognito.service';
|
||||||
|
import { LoaderService } from 'app/shared/loaderService/loader.service';
|
||||||
|
import { environment } from '../../environments/environment';
|
||||||
|
import { AwsService } from 'app/AwsService/aws.service';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class ReqTokenInterceptor implements HttpInterceptor{
|
||||||
|
|
||||||
|
constructor( private router: Router,public shared:CognitoService,private loaderService:LoaderService,private awsService:AwsService) {
|
||||||
|
|
||||||
|
}
|
||||||
|
isRefreshingToken: boolean = false;
|
||||||
|
tokenSubject: BehaviorSubject<string> = new BehaviorSubject<string>(null);
|
||||||
|
|
||||||
|
addToken(req: HttpRequest<any>, token: string): HttpRequest<any> {
|
||||||
|
|
||||||
|
return req.clone({
|
||||||
|
setHeaders: {
|
||||||
|
'Authorization': environment.authorization,
|
||||||
|
'Token': token
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// addToken1(req: HttpRequest<any>, token: string): HttpRequest<any> {
|
||||||
|
|
||||||
|
// console.log("Token 1",token,req);
|
||||||
|
// return req.clone({ setHeaders: {'Authorization': environment.authorization,
|
||||||
|
// 'Token':token,
|
||||||
|
// // 'From':'2',
|
||||||
|
// }})
|
||||||
|
// }
|
||||||
|
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {
|
||||||
|
|
||||||
|
let token:any = this.shared.getAccessToken() ||"";
|
||||||
|
// console.log("Token From Interceptor >>",cognitoService.getToken())
|
||||||
|
if(token!=''){
|
||||||
|
token=token.getIdToken().getJwtToken()
|
||||||
|
}
|
||||||
|
this.showLoader();
|
||||||
|
// return <any>next.handle(this.addToken(req, token)).pipe(
|
||||||
|
// catchError(error => {
|
||||||
|
// this.onEnd();
|
||||||
|
// console.log("Initial Error",error);
|
||||||
|
// if (error instanceof HttpErrorResponse) {
|
||||||
|
// if((<HttpErrorResponse>error).status) {
|
||||||
|
// return this.handle401Error(req,next,error)
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
// return this.handle401Error(req,next,error)
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// console.log("observable error")
|
||||||
|
// return Observable.throw(error);
|
||||||
|
// }
|
||||||
|
// }));
|
||||||
|
return <any>next.handle(this.addToken(req, token)).pipe(
|
||||||
|
catchError(error => {
|
||||||
|
console.log("Initial Error",error);
|
||||||
|
if (error instanceof HttpErrorResponse) {
|
||||||
|
if((<HttpErrorResponse>error).status) {
|
||||||
|
return this.handle401Error(req,next,error)
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return this.handle401Error(req,next,error)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log("observable error")
|
||||||
|
return Observable.throw(error);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
finalize(()=>{
|
||||||
|
this.onEnd()
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
handle401Error(req: HttpRequest<any>, next: HttpHandler,err) {
|
||||||
|
console.log("err",err)
|
||||||
|
console.log("entered",this.isRefreshingToken,this.tokenSubject);
|
||||||
|
|
||||||
|
if (err instanceof HttpErrorResponse) {
|
||||||
|
|
||||||
|
if(err.status == 401 && err.error.error.toLowerCase() == 'invalid token!'){
|
||||||
|
console.log("Refreshing Token",err.status)
|
||||||
|
if (!this.isRefreshingToken) {
|
||||||
|
this.isRefreshingToken = true;
|
||||||
|
|
||||||
|
// Reset here so that the following requests wait until the token
|
||||||
|
// comes back from the refreshToken call.
|
||||||
|
this.tokenSubject.next(null);
|
||||||
|
console.log("STARTING TOKEN REFRESH")
|
||||||
|
// return this.shared.refresh()
|
||||||
|
// .subscribe((newToken: string) => {
|
||||||
|
// console.log("new",newToken)
|
||||||
|
// if (newToken) {
|
||||||
|
// let token:any = this.shared.getAccessToken() ||"";
|
||||||
|
// this.tokenSubject.next( token.getIdToken().getJwtToken());
|
||||||
|
// console.log(this.tokenSubject);
|
||||||
|
// return next.handle(this.addToken1(req, token.getIdToken().getJwtToken()))
|
||||||
|
// // .pipe(tap((event:HttpEvent<any>)=>{
|
||||||
|
// // if (event instanceof HttpResponse) {
|
||||||
|
// // this.onEnd();
|
||||||
|
// // }
|
||||||
|
// // },
|
||||||
|
// // (err: any) => {
|
||||||
|
// // this.handleError<any>('role',err);
|
||||||
|
// // console.log("Error on Refresh token",err)
|
||||||
|
// // this.onEnd();
|
||||||
|
// // }));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // If we don't get a new token, we are in trouble so logout.
|
||||||
|
// return this.awsService.logout();
|
||||||
|
// },err=>console.log("Error refresh",err))
|
||||||
|
return this.shared.refresh().pipe(
|
||||||
|
switchMap((newToken: string) =>{
|
||||||
|
console.log("New Token",newToken)
|
||||||
|
if(newToken){
|
||||||
|
this.isRefreshingToken=false
|
||||||
|
this.tokenSubject.next(newToken);
|
||||||
|
let token:any = this.shared.getAccessToken() ||"";
|
||||||
|
this.showLoader();
|
||||||
|
return next.handle(this.addToken(req, token.getIdToken().getJwtToken())).pipe(tap((event:HttpEvent<any>)=>{
|
||||||
|
if (event instanceof HttpResponse) {
|
||||||
|
this.onEnd();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
(err: any) => {
|
||||||
|
this.handleError<any>('role',err);
|
||||||
|
console.log("Error on Refresh token",err)
|
||||||
|
this.onEnd();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.awsService.logout();
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
// .catch(error => {
|
||||||
|
// // If there is an exception calling 'refreshToken', bad news so logout.
|
||||||
|
// return this.logoutUser();
|
||||||
|
// })
|
||||||
|
// .finally(() => {
|
||||||
|
// this.isRefreshingToken = false;
|
||||||
|
// });
|
||||||
|
} else {
|
||||||
|
console.log("Else Part 1201")
|
||||||
|
// return this.tokenSubject
|
||||||
|
// // .filter(token => token != null)
|
||||||
|
// .take(1)
|
||||||
|
// .switchMap(token => {
|
||||||
|
let token:any = this.shared.getAccessToken() ||"";
|
||||||
|
this.showLoader();
|
||||||
|
return next.handle(this.addToken(req,token.getIdToken().getJwtToken())).pipe(tap((event:HttpEvent<any>)=>{
|
||||||
|
if (event instanceof HttpResponse) {
|
||||||
|
this.onEnd();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
(err: any) => {
|
||||||
|
this.handleError<any>('role',err);
|
||||||
|
console.log("Error on Refresh token",err)
|
||||||
|
this.onEnd();
|
||||||
|
}));
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// return Observable.throw("Observable throw",err);
|
||||||
|
return this.handleError('',err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return Observable.throw("Observable throw",err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private handleError<T> (operation = 'operation', error?: T) {
|
||||||
|
// return (error: any): Observable<T> => {
|
||||||
|
console.log("d",error)
|
||||||
|
if(error instanceof HttpErrorResponse){
|
||||||
|
// this.onEnd();
|
||||||
|
console.log("Error from interceptor >>>",error)
|
||||||
|
console.error("Error: " + error.status);
|
||||||
|
if(error.status == 401){
|
||||||
|
localStorage.clear();
|
||||||
|
this.router.navigate(['/authentication/login']);
|
||||||
|
}
|
||||||
|
else if(error.status == 404){
|
||||||
|
this.router.navigate(['/error/404']);
|
||||||
|
}
|
||||||
|
else if(error.status == 503){
|
||||||
|
this.router.navigate(['/error/503']);
|
||||||
|
}
|
||||||
|
else if(error.status == 0){
|
||||||
|
console.log("NO Internet")
|
||||||
|
this.router.navigate(['/error/404']);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// alert("Please Check your Internet connection");
|
||||||
|
let errorMessage = '';
|
||||||
|
let type : number;
|
||||||
|
if (error.error instanceof ErrorEvent) {
|
||||||
|
// client-side error
|
||||||
|
errorMessage = `Error: ${error.error.message}`;
|
||||||
|
type = 1;
|
||||||
|
} else {
|
||||||
|
// server-side error
|
||||||
|
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
|
||||||
|
type = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return throwError({error_status :type == 2 ? error.status : '',
|
||||||
|
error_message:error.message,
|
||||||
|
error_text :type == 2 ? error.statusText : '',
|
||||||
|
html_format :errorMessage,
|
||||||
|
error_type :type,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return throwError(error);
|
||||||
|
}
|
||||||
|
// };
|
||||||
|
}
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
|
||||||
|
private onEnd(): void {
|
||||||
|
this.hideLoader();
|
||||||
|
}
|
||||||
|
private showLoader(): void {
|
||||||
|
this.loaderService.show();
|
||||||
|
}
|
||||||
|
private hideLoader(): void {
|
||||||
|
this.loaderService.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -16,7 +16,8 @@ export class AppComponent {
|
|||||||
window.addEventListener('beforeinstallprompt', event => {
|
window.addEventListener('beforeinstallprompt', event => {
|
||||||
this.promptEvent = event;
|
this.promptEvent = event;
|
||||||
// this.Pwa.promptEvent=event
|
// this.Pwa.promptEvent=event
|
||||||
alert(event);
|
console.log("beforeinstall Prompt Listener",event);
|
||||||
|
// alert("Install as App");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,6 +51,7 @@ import { HttpLoaderComponent } from './layouts/http-loader/http-loader.component
|
|||||||
import { AdvanceFilterComponent } from './sales-pd/advance-filter/advance-filter.component';
|
import { AdvanceFilterComponent } from './sales-pd/advance-filter/advance-filter.component';
|
||||||
import { ServiceWorkerModule } from '@angular/service-worker';
|
import { ServiceWorkerModule } from '@angular/service-worker';
|
||||||
import { environment } from '../environments/environment';
|
import { environment } from '../environments/environment';
|
||||||
|
import { ReqTokenInterceptor } from './_guard/req-token.interceptor';
|
||||||
export function HttpLoaderFactory(http: HttpClient) {
|
export function HttpLoaderFactory(http: HttpClient) {
|
||||||
return new TranslateHttpLoader(http);
|
return new TranslateHttpLoader(http);
|
||||||
}
|
}
|
||||||
@ -122,7 +123,7 @@ export function createTranslateLoader(http: HttpClient) {
|
|||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
provide:HTTP_INTERCEPTORS,
|
provide:HTTP_INTERCEPTORS,
|
||||||
useClass: TokenInterceptor,
|
useClass: ReqTokenInterceptor,
|
||||||
multi: true
|
multi: true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
<div class="user-profile-thumb text-center">
|
<div class="user-profile-thumb text-center">
|
||||||
<div class="user-i">
|
<div class="user-i">
|
||||||
<div><h3>{{userDep}} </h3></div>
|
<div><h3>{{userDep}} </h3></div>
|
||||||
<img [src]="profileurl ||'http://image.ibb.co/mGjZB9/usernew.png'" class="rad-full mb-1" width="100" height="100" alt="">
|
<img [src]="profileurl ||'https://image.ibb.co/mGjZB9/usernew.png'" class="rad-full mb-1" width="100" height="100" alt="">
|
||||||
<div><h4>{{fullName}}</h4></div>
|
<div><h4>{{fullName}}</h4></div>
|
||||||
<div><h5>{{roleName}}</h5></div>
|
<div><h5>{{roleName}}</h5></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -255,7 +255,7 @@
|
|||||||
|
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
<div [hidden]="recordStatus">
|
<div [hidden]="recordStatus">
|
||||||
<mat-paginator #paginator class="mat-elevation-z1" [length]="PdListData.length" [pageIndex]="pageIndex"
|
<mat-paginator #paginator class="mat-elevation-z1" [length]="length" [pageIndex]="pageIndex"
|
||||||
[pageSize]="pageSize" [pageSizeOptions]="[5, 10, 25,50, 100]" (page)="pageEvent=OnPageChange($event)" showFirstLastButtons>
|
[pageSize]="pageSize" [pageSizeOptions]="[5, 10, 25,50, 100]" (page)="pageEvent=OnPageChange($event)" showFirstLastButtons>
|
||||||
</mat-paginator>
|
</mat-paginator>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -43,7 +43,7 @@ export class AllPdComponent implements OnInit, OnChanges {
|
|||||||
PdListData:any[] = [];
|
PdListData:any[] = [];
|
||||||
|
|
||||||
// pagination variable details
|
// pagination variable details
|
||||||
length = 5;
|
length = 0;
|
||||||
pageIndex = 0;
|
pageIndex = 0;
|
||||||
pageSize = 10;
|
pageSize = 10;
|
||||||
pageEvent: any;
|
pageEvent: any;
|
||||||
@ -110,8 +110,29 @@ console.log(this.displayedColumns)
|
|||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
let filteredText = changes.bindFilterValue.currentValue ? changes.bindFilterValue.currentValue.trim() : changes.bindFilterValue.currentValue;
|
let filteredText = changes.bindFilterValue.currentValue ? changes.bindFilterValue.currentValue.trim() : changes.bindFilterValue.currentValue;
|
||||||
filteredText = filteredText ? filteredText.toLowerCase() : filteredText;
|
filteredText = filteredText ? filteredText.toLowerCase() : filteredText;
|
||||||
this.dataSourceTab1.filter = filteredText;
|
// this.dataSourceTab1.filter = filteredText;
|
||||||
// console.log("changes",this.bindFilterValue)
|
// console.log("changes",this.bindFilterValue)
|
||||||
|
this.filterData(filteredText)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
filterData(text) {
|
||||||
|
if(!text) {
|
||||||
|
this.pagedList = this.PdListData.slice(0, 10);
|
||||||
|
this.length = this.PdListData.length;
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.pagedList = this.PdListData.filter(v=>{
|
||||||
|
if ((v.pd_sno && v.pd_sno.toLowerCase().indexOf(text.toLowerCase())>-1 )|| v.applicat_details[0].applicant_name.toLowerCase().indexOf(text.toLowerCase()) > -1
|
||||||
|
|| v.pd_status.toLowerCase().indexOf(text.toLowerCase())>-1|| v.city_name && v.city_name.toLowerCase().indexOf(text.toLowerCase())>-1 || v.lender_applicant_id.toLowerCase().indexOf(text.toLowerCase())>-1
|
||||||
|
||( v.pd_sno_split && v.pd_sno_split.serial_no && v.pd_sno_split.serial_no.toLowerCase().indexOf(text.toLowerCase())>-1)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
// this.pa
|
||||||
|
// this.length = this.pagedList.length
|
||||||
|
console.log(this.PdListData,this.pagedList,text)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -103,6 +103,7 @@ export class CameraService {
|
|||||||
resolve(latLong)
|
resolve(latLong)
|
||||||
},
|
},
|
||||||
err => {
|
err => {
|
||||||
|
console.log("Error Getting Geolocation",err)
|
||||||
resolve('error');
|
resolve('error');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -4,8 +4,8 @@
|
|||||||
"theme_color": "#1976d2",
|
"theme_color": "#1976d2",
|
||||||
"background_color": "#fafafa",
|
"background_color": "#fafafa",
|
||||||
"display": "standalone",
|
"display": "standalone",
|
||||||
"scope": "./",
|
"scope": ".",
|
||||||
"start_url": "/lenderdemo",
|
"start_url": "./",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "assets/icons/icon-72x72.png",
|
"src": "assets/icons/icon-72x72.png",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user