This commit is contained in:
sriram-at-840620226347 2020-10-16 12:14:44 +05:30
commit 26366f71f7
11 changed files with 148 additions and 30 deletions

View File

@ -563,6 +563,9 @@ export class AwsService {
getlocale(){
let session:any = this.shared.getAccessToken() || "";
if(!session || !session.idToken) {
return
}
return session.idToken.payload.locale;
}

View File

@ -128,6 +128,9 @@ isloggin:boolean = false;
// }
refresh() {
let tokenexp:boolean;
if(!this.getCurrentUser()) {
return;
}
this.getCurrentUser().getSession(function (err, session) {
if (err) {
}

View File

@ -1,11 +1,11 @@
import { Injectable } from '@angular/core';
import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';
import { Observable , of } from 'rxjs';
import { PdTrigerService } from 'app/personal-discussion/pd-service/pd-triger.service';
import { CognitoService } from '../AwsService/cognito.service';
@Injectable()
export class AuthGuard implements CanActivate, CanActivateChild {
constructor(private router: Router,public shared:CognitoService) { }
constructor(private router: Router,public shared:CognitoService,private pdTriggerService:PdTrigerService) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (this.shared.getToken()) {
@ -19,18 +19,37 @@ export class AuthGuard implements CanActivate, CanActivateChild {
}
}
canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot,): boolean {
console.log(route.queryParams.str)
let paramCheck = route.queryParams.str
if(paramCheck) {
paramCheck = paramCheck.split('/')
console.log(paramCheck)
if(paramCheck && paramCheck.length > 0 && paramCheck[2] == 'link') {
this.pdTriggerService.customer_url_data= {pdid:paramCheck[0],rdmstr:paramCheck[1],from:'link'}
}
}
else{
this.pdTriggerService.customer_url_data={}
}
if (this.shared.getToken()) {
// alert("if");
return true;
} else {
console.log(route);
// debugger;
// else {
// alert("else");
setTimeout(() => {
this.router.navigate(['authentication/login']);
return false;
},1000);
// }
}
}

View File

@ -34,7 +34,7 @@ export class TokenInterceptor implements HttpInterceptor{
headers:new HttpHeaders({
'Authorization': environment.authorization,
'Token': token.getIdToken().getJwtToken()
'Token': token ? token.getIdToken().getJwtToken() : ''
})
});
return next.handle(requests).pipe(tap((event:HttpEvent<any>)=>{

View File

@ -13,6 +13,7 @@ import { UserService } from '../../settings/service/user.service';
import { DashboardService } from '../../dashboard/dashboard.service';
import { AwsService } from '../../AwsService/aws.service';
import { RoleMenuItemsPipe } from './../role-menu-items.pipe';
import { PdTrigerService } from 'app/personal-discussion/pd-service/pd-triger.service';
@Component({
selector: 'app-layout',
@ -54,7 +55,7 @@ export class AdminLayoutComponent implements OnInit, OnDestroy {
alertMsgAllocateType : any[];
alertCount: any;
userRoleType: String;
constructor(private router: Router, public menuItems: MenuItems, public horizontalMenuItems : HorizontalMenuItems, public translate: TranslateService,public aws:AwsService,public users:UserService,private _dashboardService: DashboardService) {
constructor(private router: Router, public menuItems: MenuItems, public horizontalMenuItems : HorizontalMenuItems, public translate: TranslateService,public aws:AwsService,public users:UserService,private _dashboardService: DashboardService,private pdTriggerService:PdTrigerService) {
const browserLang: string = translate.getBrowserLang();
translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');
this.users.getroles().subscribe(res=>{
@ -290,7 +291,14 @@ export class AdminLayoutComponent implements OnInit, OnDestroy {
menunav(active){
switch(active){
case 'HOME':
if(this.pdTriggerService.customer_url_data && this.pdTriggerService.customer_url_data.pdid && this.pdTriggerService.customer_url_data.rdmstr) {
let data= this.pdTriggerService.customer_url_data
this.router.navigateByUrl('/personal_discussion/pdlist/viewpd?str='+data.pdid+'/'+data.rdmstr+'/link', {replaceUrl: true});
}
else {
this.router.navigate(['/']);
}
break;
case 'USERS':
this.router.navigate(['/setting/users/userprofile']);

View File

@ -64,15 +64,15 @@ export class SchedulePdComponent implements OnInit, OnDestroy {
}
ngOnInit() {
this.validateTime = setInterval(() => {
let currentTime:any = new Date();
currentTime = currentTime.getFullYear()+'-'+currentTime.getMonth()+'-'+currentTime.getDay()+'-'+currentTime.getHours()+'-'+currentTime.getMinutes();
let existTime:any = this.selectedMoment.getFullYear()+'-'+this.selectedMoment.getMonth()+'-'+this.selectedMoment.getDay() +'-'+this.selectedMoment.getHours()+'-'+this.selectedMoment.getMinutes();
if(existTime < currentTime) {
this.selectedMoment = new Date();
this.min = new Date();
}
},1000);
// this.validateTime = setInterval(() => {
// let currentTime:any = new Date();
// currentTime = currentTime.getFullYear()+'-'+currentTime.getMonth()+'-'+currentTime.getDay()+'-'+currentTime.getHours()+'-'+currentTime.getMinutes();
// let existTime:any = this.selectedMoment.getFullYear()+'-'+this.selectedMoment.getMonth()+'-'+this.selectedMoment.getDay() +'-'+this.selectedMoment.getHours()+'-'+this.selectedMoment.getMinutes();
// if(existTime < currentTime) {
// this.selectedMoment = new Date();
// this.min = new Date();
// }
// },1000);
}
// close pd schedule pop up

View File

@ -3,13 +3,17 @@
<mat-card-content>
<div fxLayout="row" *ngFor="let master of pdMasterData">
<div fxFlex="100" align="right">
<button *ngIf="VendorRoleID != 22 && master.pd_status != 'ALLOCATED_TO_FIA' && master.pd_status != 'FIA_REJECTED'" mat-stroked-button class="mr-1 mb-1" color="primary" matTooltip="Copy Case Url" matTooltipPosition="above" (click)="copyCaseUrl()">
<mat-icon>content_copy</mat-icon> <strong>Case URL</strong>
</button>
<button mat-raised-button class="mr-1 mb-1" color="primary" style="cursor: not-allowed !important;">
<strong> {{master.vendor_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.vendor_status==pdStatusCheck.ADD_ON_PENDING ? 'Addon Pending' : master.vendor_status | titlecase}}</strong>
</button>
<button *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdMaster(master)" matTooltipPosition="above" matTooltip="Edit PD Master"><mat-icon>edit</mat-icon></button>
<button *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Trigger" matTooltipPosition="above" (click)="directTriggerPD(mandatoryFieldsValidations,master)"><mat-icon>flash_on</mat-icon></button>
<button *ngIf="roleAccessDetails.reports && master.pd_type_name && currentPDStatus==pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="PD Report" matTooltipPosition="above" (click)="getPDIDReport(viewID)"><mat-icon>ballot</mat-icon></button>
<span><button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdListCompoent()"><mat-icon>close</mat-icon></button></span>
<span *ngIf="!is_from_link"><button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdListCompoent()"><mat-icon>close</mat-icon></button></span>
</div>
</div>
@ -155,7 +159,7 @@
<!-- <span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" [matTooltip]="master.fk_primary_address_id ? 'Initiate PD for this address' : 'Initiate Address for PD Process'" matTooltipPosition="above" (click)="initiateAddtionalPD(master,addresses,master.fk_primary_address_id ? true : false)"><mat-icon>where_to_vote</mat-icon></button></span> -->
<button *ngIf="VendorRoleID != 22" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button>
<span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span>
<span *ngIf="addresses.addtional_pd_data[0].is_qc_enabled == '1'"><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.TRIGGERED && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].vendor_status)"><mat-icon>question_answer</mat-icon></button></span>
<span *ngIf="(VendorRoleID == 21 && addresses.addtional_pd_data[0].is_qc_enabled == '1') || (VendorRoleID == 22)"><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.TRIGGERED && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].vendor_status)"><mat-icon>question_answer</mat-icon></button></span>
</div>
</div>
</div>
@ -196,7 +200,7 @@
<div fxFlex="60" align="right" *ngIf="addresses.addtional_pd_data[0].pd_status != 'ALLOCATED_TO_FIA' && addresses.addtional_pd_data[0].pd_status != 'FIA_REJECTED'">
<span><button *ngIf="VendorRoleID != 22" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button></span>
<span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span>
<span *ngIf="addresses.addtional_pd_data[0].is_qc_enabled == '1'"><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.TRIGGERED && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].vendor_status)"><mat-icon>question_answer</mat-icon></button></span>
<span *ngIf="(VendorRoleID == 21 && addresses.addtional_pd_data[0].is_qc_enabled == '1') || (VendorRoleID == 22)"><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.TRIGGERED && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].vendor_status)"><mat-icon>question_answer</mat-icon></button></span>
</div>
</div>
<div fxLayout="row nowrap">
@ -408,7 +412,7 @@
</ng-template>
</mat-tab>-->
<mat-tab>
<mat-tab *ngIf="VendorRoleID != 22">
<ng-template mat-tab-label>FI History</ng-template>
<div *ngIf="masterPdLogsData.length>0; else nohistory">
<div fxLayout="row wrap" *ngFor="let master of masterPdLogsData">

View File

@ -1,4 +1,4 @@
import { Component, OnInit, ViewEncapsulation, EventEmitter, Input, Output, OnDestroy, Pipe, PipeTransform } from '@angular/core';
import { Component, OnInit, ViewEncapsulation, EventEmitter, Input, Output, OnDestroy, Pipe, PipeTransform, ChangeDetectorRef } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { MatDialog } from '@angular/material';
@ -22,6 +22,7 @@ import { CommonQuesComponent } from '../pd-questions/common-ques/common-ques.com
import { EmployerInfoComponent } from '../pd-questions/employer-info/employer-info.component';
import { InputDialogComponent } from '../input-dialog/input-dialog.component';
import { PdCompleteStatusDialogueComponent } from '../pd-complete-status-dialogue/pd-complete-status-dialogue.component';
import { CognitoService } from 'app/AwsService/cognito.service';
const currentdate = new Date().toJSON().slice(0,19);
@Component({
@ -34,7 +35,7 @@ export class ViewPdComponent implements OnInit, OnDestroy {
pipe = new DatePipe('en-US');
private notifier: NotifierService;
public userRoleID = +localStorage.getItem('user_role');
public VendorRoleID : any = localStorage.getItem('VendorRoleID');
VendorRoleID : any = 22;
errorMessage: any;
pdMasterData: any = [];
pdAddressesData: any = [];
@ -101,21 +102,45 @@ export class ViewPdComponent implements OnInit, OnDestroy {
// @Output() loadParent = new EventEmitter<string>();
public _EditPDtriggerForm: FormGroup;
masterRandomString: any;
constructor(notifier: NotifierService, private dialog: MatDialog, private _fb: FormBuilder,
private _pd: PdTrigerService, private route: ActivatedRoute, private router: Router, private ListPdComponent: ListPdComponent) {
is_from_link: boolean = false;
constructor(notifier: NotifierService, private dialog: MatDialog, private _fb: FormBuilder, private changeRef:ChangeDetectorRef,
private _pd: PdTrigerService, private route: ActivatedRoute, private router: Router, private ListPdComponent: ListPdComponent,private cognitoService:CognitoService) {
this.notifier = notifier;
this.enableStartPD = false;
this.roleAccessDetails=this._pd.getRoleAccessDetails();
setTimeout(()=>{
this.VendorRoleID = localStorage.getItem('VendorRoleID')
},1000)
console.log(this.VendorRoleID);
// this.changeRef.detectChanges();
}
ngOnInit() {
console.log(this.cognitoService.getToken())
if (!this.cognitoService.getToken()) {
return;
}
this.ListPdComponent.showListView(false);
this.route.params.subscribe(params => {
this.viewID = params['pdid'];
this.masterRandomString = params['rdmstr'];
});
if(!this.viewID) {
this.route.queryParams.subscribe(param=>{
if(param) {
let temp= param['str'].split('/')
console.log(temp)
if(temp && temp.length > 0) {
this.viewID = temp[0]
this.masterRandomString = temp[1]
this.is_from_link = temp[2] == 'link'
}
}
})
}
this.viewPdDetails(this.viewID);
}
pd_QC_Rating: Number;
viewPdDetails(editID: string) {
@ -408,7 +433,7 @@ export class ViewPdComponent implements OnInit, OnDestroy {
.subscribe(dataresult => {
console.log("cloesed",dataresult)
if(dataresult == undefined) {
this.ListPdComponent.viewPDDetails({id:this.viewID,string:this.masterRandomString})
// this.ListPdComponent.viewPDDetails({id:this.viewID,string:this.masterRandomString})
}
// this.notifier.notify('success', 'Successfully allocated.!');
// this.loadTemplates(this.startPD,2,this.randomString);
@ -642,6 +667,36 @@ export class ViewPdComponent implements OnInit, OnDestroy {
this.notifier.notify("error",'Network Error !!')
})
}
copyCaseUrl(){
let url:string=''
if(window.location.origin.includes('localhost')){
url = window.location.origin+'/#/personal_discussion/pdlist/viewpd?str='+this.viewID+'/'+this.masterRandomString+'/link';
}
else{
url = window.location.origin+'/vendor/#/personal_discussion/pdlist/viewpd?str='+this.viewID+'/'+this.masterRandomString+'/link';
}
if(url) {
this.copyToClipBoard(url)
this.notifier.notify("info","Case Url Copied to Clipboard")
}
else{
this.notifier.notify("info","Unable to Copy Url")
}
}
copyToClipBoard(message) {
const selBox = document.createElement('textarea');
selBox.style.position = 'fixed';
selBox.style.left = '0';
selBox.style.top = '0';
selBox.style.opacity = '0';
selBox.value = message;
document.body.appendChild(selBox);
selBox.focus();
selBox.select();
document.execCommand('copy');
document.body.removeChild(selBox);
}
// updateViewComponent(editBack:string) {
@ -657,11 +712,12 @@ export class ViewPdComponent implements OnInit, OnDestroy {
// this.viewPdDetails(this.childData);
// }
ngOnDestroy(): void {
if (this.destroyType == 1) {
console.log("View PD Destroy component called",this.is_from_link)
if (this.destroyType == 1 && !this.is_from_link) {
this.ListPdComponent.pdListLoad(true);
}
}
}

View File

@ -6,8 +6,7 @@ import { MapPdViewComponent } from './list-pd/map-pd-view/map-pd-view.component'
import { AddPdComponent } from '../manage-pd/list-pd/add-pd/add-pd.component';
import { ViewPdComponent } from '../manage-pd/list-pd/view-pd/view-pd.component';
import { PdReportComponent } from './list-pd/pd-report/pd-report.component';
import { CommonQuesComponent } from './list-pd/pd-questions/common-ques/common-ques.component';
import { PdQuestionsModule } from './list-pd/pd-questions/pd-questions.module';
/*
* manage pd router
*/
@ -36,6 +35,10 @@ const routes: Routes = [
path: 'viewpd/:pdid/:rdmstr',
component: ViewPdComponent,
},
{
path: 'viewpd',
component: ViewPdComponent,
},
{
path: 'pd_report/:pdid/:string',
component: PdReportComponent,

View File

@ -29,6 +29,7 @@ export interface Master {
export class PdTrigerService {
customer_url_data:any={}
pdQuestionMasterData:any=null
// private apiUrl = "http://ssa.sineedge.com/sparqapi/api/";

View File

@ -15,6 +15,7 @@ import { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material';
import { CognitoService } from '../../AwsService/cognito.service';
import { DashboardService } from 'app/dashboard/dashboard.service';
import { resolve } from 'url';
import { PdTrigerService } from 'app/personal-discussion/pd-service/pd-triger.service';
@Component({
selector: 'ms-login-session',
@ -44,7 +45,7 @@ export class LoginComponent implements OnInit{
commonDetails: any;
constructor(
private router: Router, public aws: AwsService, public dialog: MatDialog,
public shared:CognitoService,private dashBoardService:DashboardService) {
public shared:CognitoService,private dashBoardService:DashboardService,private pdTriggerService:PdTrigerService) {
}
ngOnInit(){
@ -76,7 +77,14 @@ export class LoginComponent implements OnInit{
this.getCommonSettings().then(()=>{
// local storage for validate user access
localStorage.setItem('user_role',res.idToken.payload["custom:role_id"]);
this.router.navigate(['/']);
if(this.pdTriggerService.customer_url_data && this.pdTriggerService.customer_url_data.pdid && this.pdTriggerService.customer_url_data.rdmstr) {
let data= this.pdTriggerService.customer_url_data
this.router.navigateByUrl('/personal_discussion/pdlist/viewpd?str='+data.pdid+'/'+data.rdmstr+'/link', {replaceUrl: true});
}
else{
this.router.navigate(['/'])
}
})
}
}, err => {
@ -100,7 +108,14 @@ export class LoginComponent implements OnInit{
let auth = { 'Username': this.email, 'Password': this.password, 'newpassword': result };
this.aws.dologin(auth).subscribe(res => {
this.getCommonSettings();
if(this.pdTriggerService.customer_url_data && this.pdTriggerService.customer_url_data.pdid && this.pdTriggerService.customer_url_data.rdmstr) {
let data= this.pdTriggerService.customer_url_data
this.router.navigateByUrl('/personal_discussion/pdlist/viewpd?str='+data.pdid+'/'+data.rdmstr+'/link', {replaceUrl: true});
}
else {
this.router.navigate(['/']);
}
}, err => {
// alert(err.message);
})
@ -124,7 +139,13 @@ export class LoginComponent implements OnInit{
//alert(this.shared.isLoggedIn);
if(this.shared.isLoggedIn){
// alert("if");
if(this.pdTriggerService.customer_url_data) {
let data= this.pdTriggerService.customer_url_data
this.router.navigateByUrl('/personal_discussion/pdlist/viewpd?str='+data.pdid+'/'+data.rdmstr+'/link', {replaceUrl: true});
}
else {
this.router.navigate(['/personal_discussion']);
}
return false;
}else{
//alert("else");