datadumb and qc report changes
This commit is contained in:
parent
4eeaca9d5d
commit
7ee9d40033
15
ng6-seed/package-lock.json
generated
15
ng6-seed/package-lock.json
generated
@ -1691,6 +1691,21 @@
|
|||||||
"tslib": "^1.9.0"
|
"tslib": "^1.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"angular-svg-icon": {
|
||||||
|
"version": "15.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/angular-svg-icon/-/angular-svg-icon-15.0.0.tgz",
|
||||||
|
"integrity": "sha512-qurcOPbGri1ZveGd3Iol7CRSpveaxu21V1VCPwMSUfXlwwUT1hL4Aq3VE/RkJw5zZmFuR8akgaKeHLD+CFjjEQ==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.3.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
|
||||||
|
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"angular-tree-component": {
|
"angular-tree-component": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/angular-tree-component/-/angular-tree-component-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/angular-tree-component/-/angular-tree-component-6.1.0.tgz",
|
||||||
|
|||||||
@ -40,6 +40,7 @@
|
|||||||
"angular-notifier": "^4.1.2",
|
"angular-notifier": "^4.1.2",
|
||||||
"angular-sortablejs": "^2.7.0",
|
"angular-sortablejs": "^2.7.0",
|
||||||
"angular-split": "^3.0.2",
|
"angular-split": "^3.0.2",
|
||||||
|
"angular-svg-icon": "^15.0.0",
|
||||||
"angular-tree-component": "6.1.0",
|
"angular-tree-component": "6.1.0",
|
||||||
"chart.js": "2.6.0",
|
"chart.js": "2.6.0",
|
||||||
"core-js": "^2.6.11",
|
"core-js": "^2.6.11",
|
||||||
|
|||||||
@ -68,6 +68,8 @@ import { ReqTokenInterceptor } from './_guard/req-token.interceptor';
|
|||||||
import { DynamicNotifyComponent } from './layouts/dynamic-notify/dynamic-notify.component';
|
import { DynamicNotifyComponent } from './layouts/dynamic-notify/dynamic-notify.component';
|
||||||
import { OtpComponent } from './session/otp/otp.component';
|
import { OtpComponent } from './session/otp/otp.component';
|
||||||
import { NotifierModule, NotifierOptions } from 'angular-notifier';
|
import { NotifierModule, NotifierOptions } from 'angular-notifier';
|
||||||
|
|
||||||
|
|
||||||
// import { SelectAllComponent } from './select-all/select-all.component';
|
// import { SelectAllComponent } from './select-all/select-all.component';
|
||||||
// import { CustomNotificationComponent } from './layouts/custom-notification/custom-notification.component';
|
// import { CustomNotificationComponent } from './layouts/custom-notification/custom-notification.component';
|
||||||
//import { SelectAllComponent } from './select-all/select-all.component';
|
//import { SelectAllComponent } from './select-all/select-all.component';
|
||||||
@ -165,7 +167,7 @@ const pdCustomNotifierOptions: NotifierOptions = {
|
|||||||
MatFormFieldModule,
|
MatFormFieldModule,
|
||||||
HttpClientModule,
|
HttpClientModule,
|
||||||
ResizableModule,
|
ResizableModule,
|
||||||
|
|
||||||
TranslateModule.forRoot({
|
TranslateModule.forRoot({
|
||||||
loader: {
|
loader: {
|
||||||
provide: TranslateLoader,
|
provide: TranslateLoader,
|
||||||
|
|||||||
@ -30,6 +30,10 @@ export const AppRoutes: Routes = [{
|
|||||||
path:'template2',
|
path:'template2',
|
||||||
loadChildren:'./template2/template2.module#Template2Module'
|
loadChildren:'./template2/template2.module#Template2Module'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path:'datadump',
|
||||||
|
loadChildren:'./datadump/datadump.module#DatadumpModule'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path:'quality_check_discussion',
|
path:'quality_check_discussion',
|
||||||
loadChildren:'./quality-check/quality-check.module#QualityCheckModule'
|
loadChildren:'./quality-check/quality-check.module#QualityCheckModule'
|
||||||
|
|||||||
@ -0,0 +1,116 @@
|
|||||||
|
|
||||||
|
<h2 mat-dialog-title class="paragraph_change">
|
||||||
|
<div fxFlex="70" align="left" style="padding: 10px !important;">
|
||||||
|
Trigger New Item in Data Dump List
|
||||||
|
</div>
|
||||||
|
<div fxFlex="30" align="end" style="padding: 10px !important;">
|
||||||
|
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="right" mat-dialog-close><mat-icon>close</mat-icon></button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</h2>
|
||||||
|
<!-- <h5 style="text-align: center;">{{message}}</h5> -->
|
||||||
|
<mat-dialog-content >
|
||||||
|
<!-- <mat-card *ngFor="let list of digilock_list;let quesIndex=index">
|
||||||
|
|
||||||
|
<mat-card-content>{{list.applicant_name
|
||||||
|
}}</mat-card-content>
|
||||||
|
|
||||||
|
</mat-card> -->
|
||||||
|
<mat-card>
|
||||||
|
<!-- <mat-expansion-panel [(expanded)]="xpandStatus">
|
||||||
|
<mat-expansion-panel-header>
|
||||||
|
<mat-panel-title class="text-xs-left">
|
||||||
|
<mat-toolbar-row>
|
||||||
|
<mat-icon>filter_list</mat-icon>
|
||||||
|
<span class="toolbar-space"></span>
|
||||||
|
<span>Advanced Filter</span>
|
||||||
|
</mat-toolbar-row>
|
||||||
|
</mat-panel-title>
|
||||||
|
|
||||||
|
</mat-expansion-panel-header> -->
|
||||||
|
<mat-list class="m-gap p-gap">
|
||||||
|
<div [formGroup]="searchForm">
|
||||||
|
<mat-form-field style="width:25%">
|
||||||
|
<mat-select formControlName="pd_lender" placeholder="Lender Name" (selectionChange)="onChangeCategory($event)">
|
||||||
|
<mat-option *ngFor="let ent of entity_lender" [value]="ent.entity_id">{{ent.full_name}}</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
<mat-form-field style="width:25%">
|
||||||
|
<mat-select formControlName="pd_products" placeholder="Products">
|
||||||
|
<mat-option *ngFor="let pro of product" [value]="pro.product_id">{{pro.product_name}}</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
<mat-form-field style="width:25%">
|
||||||
|
<mat-select formControlName="pd_Customer_Segment" placeholder="Customer Segment">
|
||||||
|
<mat-option *ngFor="let pro of customer_segments" [value]="pro.customer_segment_id">{{pro.customer_segment}}</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
<mat-form-field style="width:25%">
|
||||||
|
<mat-select formControlName="pd_type" placeholder="PD Type">
|
||||||
|
<mat-option *ngFor="let type of pd_types" [value]="type.pd_type_id">{{type.type_name}}</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
<mat-form-field style="width:25%">
|
||||||
|
<mat-select formControlName="pd_state" placeholder="State" (selectionChange)="onChangeCity($event)">
|
||||||
|
<mat-option *ngFor="let status of states" [value]="status.state_id">{{status.name }}</mat-option>
|
||||||
|
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
<mat-form-field style="width:25%">
|
||||||
|
<mat-select formControlName="pd_city" placeholder="City">
|
||||||
|
<mat-option *ngFor="let city of city" [value]="city.city_id">{{city.city_name}}</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field style="width:25%">
|
||||||
|
<input matInput [matDatepicker]="picker1" [min]="searchForm.get('pd_from_date').value" [max]="todaydate" formControlName="pd_from_date" placeholder="Choose a From date">
|
||||||
|
<mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
|
||||||
|
<mat-datepicker #picker1></mat-datepicker>
|
||||||
|
</mat-form-field>
|
||||||
|
<mat-form-field style="width:25%">
|
||||||
|
<input matInput [matDatepicker]="picker2" [min]="searchForm.get('pd_from_date').value" [max]="todaydate" formControlName="pd_to_date" placeholder="Choose a To date">
|
||||||
|
<mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
|
||||||
|
<mat-datepicker #picker2></mat-datepicker>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <div align="right">
|
||||||
|
|
||||||
|
<button type="button" mat-raised-button mat-icon-button (click)="onReset()"
|
||||||
|
matTooltip="Reset" matTooltipPosition="above" class="mr-1 mb-1 hover-icon" color="primary">
|
||||||
|
<mat-icon>settings_backup_restore</mat-icon>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button type="button" mat-raised-button mat-icon-button (click)="searchItem()"
|
||||||
|
matTooltip="Search" matTooltipPosition="above" class="mr-1 mb-1 hover-icon" color="primary" type="button">
|
||||||
|
<mat-icon>search</mat-icon>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
</mat-list>
|
||||||
|
|
||||||
|
<!-- </mat-expansion-panel> -->
|
||||||
|
</mat-card>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Copyright 2022 Google LLC. All Rights Reserved.
|
||||||
|
Use of this source code is governed by an MIT-style license that
|
||||||
|
can be found in the LICENSE file at https://angular.io/license -->
|
||||||
|
|
||||||
|
|
||||||
|
</mat-dialog-content>
|
||||||
|
<mat-dialog-actions align="end" >
|
||||||
|
|
||||||
|
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" color="primary" type="button" (click)="save(searchForm.value)" > <mat-icon>save</mat-icon></button>
|
||||||
|
<!-- <button class="submit-btn" color="primary" mat-raised-button type="submit" >
|
||||||
|
Submit
|
||||||
|
</button> -->
|
||||||
|
|
||||||
|
</mat-dialog-actions>
|
||||||
|
<notifier-container></notifier-container>
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
.paragraph_change {
|
||||||
|
color: #fff !important;
|
||||||
|
background-color: #e00201 !important;
|
||||||
|
}
|
||||||
|
::ng-deep { .no-padding > mat-dialog-container {
|
||||||
|
// background: black;
|
||||||
|
padding: 0;
|
||||||
|
// overflow-y: scroll !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.example-full-width {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.mat-dialog-content{
|
||||||
|
margin:0px !important;
|
||||||
|
}
|
||||||
|
// mat-placeholder{
|
||||||
|
// margin-top: 20px;
|
||||||
|
// word-wrap: break-word;
|
||||||
|
// }
|
||||||
|
// input{
|
||||||
|
// height:40px;
|
||||||
|
// }
|
||||||
|
|
||||||
|
.mat-form-field-label {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea.mat-input-element {
|
||||||
|
padding: 0px 0;
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-input-placeholder {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
mat-form-field {
|
||||||
|
margin: 0 2%;
|
||||||
|
}
|
||||||
|
.paragraph_change {
|
||||||
|
color: #fff !important;
|
||||||
|
background-color: #e00201 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.mat-elevation-z8{
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { AddDatadumpComponent } from './add-datadump.component';
|
||||||
|
|
||||||
|
describe('AddDatadumpComponent', () => {
|
||||||
|
let component: AddDatadumpComponent;
|
||||||
|
let fixture: ComponentFixture<AddDatadumpComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ AddDatadumpComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(AddDatadumpComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
135
ng6-seed/src/app/datadump/add-datadump/add-datadump.component.ts
Normal file
135
ng6-seed/src/app/datadump/add-datadump/add-datadump.component.ts
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
|
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||||
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||||
|
import { NotifierService } from 'angular-notifier';
|
||||||
|
import { DatadumpService } from '../datadump.service';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-add-datadump',
|
||||||
|
templateUrl: './add-datadump.component.html',
|
||||||
|
styleUrls: ['./add-datadump.component.scss']
|
||||||
|
})
|
||||||
|
export class AddDatadumpComponent implements OnInit {
|
||||||
|
searchForm: FormGroup;
|
||||||
|
entity_lender: any=[]
|
||||||
|
product: any =[];
|
||||||
|
customer_segments: any=[];
|
||||||
|
pd_types: any=[];
|
||||||
|
states: any=[];
|
||||||
|
city: any=[];
|
||||||
|
constructor(private dialogRef: MatDialogRef<AddDatadumpComponent>, private notifier: NotifierService,
|
||||||
|
@Inject(MAT_DIALOG_DATA) public data: any,private _fb:FormBuilder,private datadumpservice : DatadumpService) {
|
||||||
|
|
||||||
|
this.getApiList()
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.searchForm = this._fb.group(
|
||||||
|
{
|
||||||
|
|
||||||
|
pd_lender:[null],
|
||||||
|
pd_products:[null],
|
||||||
|
pd_Customer_Segment:[null],
|
||||||
|
pd_type:[null],
|
||||||
|
pd_state:[null],
|
||||||
|
pd_city:[null],
|
||||||
|
pd_from_date:[null],
|
||||||
|
pd_to_date:[null]
|
||||||
|
|
||||||
|
});
|
||||||
|
console.log( this.searchForm)
|
||||||
|
this.searchForm.controls['pd_products'].disable()
|
||||||
|
this.searchForm.controls['pd_Customer_Segment'].disable()
|
||||||
|
this.searchForm.controls['pd_type'].disable()
|
||||||
|
this.searchForm.controls['pd_city'].disable()
|
||||||
|
}
|
||||||
|
|
||||||
|
getApiList(){
|
||||||
|
|
||||||
|
this.datadumpservice.getListOfLenders().subscribe(res => {
|
||||||
|
console.log(res)
|
||||||
|
if(res.status == 200 ){
|
||||||
|
this.entity_lender = res.records
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
let param = {"master_name":"STATE"}
|
||||||
|
this.datadumpservice.getListOfMaster(param).subscribe(res => {
|
||||||
|
console.log(res)
|
||||||
|
if(res.status == 200 ){
|
||||||
|
this.states = res.records
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
console.log( this.searchForm)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
onChangeCategory(event) {
|
||||||
|
console.log(event.value);
|
||||||
|
this.datadumpservice.getEntityPreferences(event.value).subscribe(res => {
|
||||||
|
console.log(res)
|
||||||
|
if(res.status == 200 ){
|
||||||
|
console.log(res)
|
||||||
|
this.product = res.records.products
|
||||||
|
this.customer_segments = res.records.customer_segments
|
||||||
|
this.pd_types = res.records.pd_types
|
||||||
|
this.searchForm.controls['pd_products'].enable()
|
||||||
|
this.searchForm.controls['pd_Customer_Segment'].enable()
|
||||||
|
this.searchForm.controls['pd_type'].enable()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
onChangeCity(event){
|
||||||
|
console.log(event.value);
|
||||||
|
this.datadumpservice.getListOfStatesAndCities(event.value).subscribe(res => {
|
||||||
|
console.log(res)
|
||||||
|
if(res.status == 200 ){
|
||||||
|
console.log(res)
|
||||||
|
|
||||||
|
this.city = res.records.cities
|
||||||
|
this.searchForm.controls['pd_city'].enable()
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
save(data){
|
||||||
|
console.log(data)
|
||||||
|
function toJSONLocal(date) {
|
||||||
|
var local = new Date(date);
|
||||||
|
local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
|
||||||
|
return local.toJSON().slice(0, 10);
|
||||||
|
}
|
||||||
|
let param = {
|
||||||
|
"fk_lender_id": data.pd_lender,
|
||||||
|
"fk_pd_type_id": data.pd_type,
|
||||||
|
"fk_customer_segment_id": data.pd_Customer_Segment,
|
||||||
|
"fk_product_id": data.pd_products,
|
||||||
|
"fk_city_id": data.pd_city,
|
||||||
|
"from_date":toJSONLocal(data.pd_from_date),
|
||||||
|
"to_date":toJSONLocal(data.pd_to_date),
|
||||||
|
"fk_createdby":1
|
||||||
|
}
|
||||||
|
console.log(param)
|
||||||
|
this.datadumpservice.saveDatadumpRequest(param).subscribe(res => {
|
||||||
|
console.log(res)
|
||||||
|
if(res.status == 200 ){
|
||||||
|
console.log(res)
|
||||||
|
this.dialogRef.close(0)
|
||||||
|
this.notifier.notify('success', 'Your Changes Updated.!');
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
this.dialogRef.close()
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
29
ng6-seed/src/app/datadump/datadump-routing.module.ts
Normal file
29
ng6-seed/src/app/datadump/datadump-routing.module.ts
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
import { DatadumpComponent } from './datadump/datadump.component';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
redirectTo: 'datadumplist',
|
||||||
|
|
||||||
|
},{
|
||||||
|
path: '',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'datadumplist',
|
||||||
|
component: DatadumpComponent,
|
||||||
|
//component: QuestionViewComponent,
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule]
|
||||||
|
})
|
||||||
|
export class DatadumpRoutingModule { }
|
||||||
13
ng6-seed/src/app/datadump/datadump.module.spec.ts
Normal file
13
ng6-seed/src/app/datadump/datadump.module.spec.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { DatadumpModule } from './datadump.module';
|
||||||
|
|
||||||
|
describe('DatadumpModule', () => {
|
||||||
|
let datadumpModule: DatadumpModule;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
datadumpModule = new DatadumpModule();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create an instance', () => {
|
||||||
|
expect(datadumpModule).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
113
ng6-seed/src/app/datadump/datadump.module.ts
Normal file
113
ng6-seed/src/app/datadump/datadump.module.ts
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
|
||||||
|
import { DatadumpRoutingModule } from './datadump-routing.module';
|
||||||
|
import { DatadumpComponent } from './datadump/datadump.component';
|
||||||
|
import { MatAutocompleteModule, MatBadgeModule, MatBottomSheetModule, MatButtonModule, MatButtonToggleModule, MatCardModule, MatCheckboxModule, MatChipsModule, MatDatepickerModule, MatDialogModule, MatDividerModule, MatExpansionModule, MatGridListModule, MatIconModule, MatInputModule, MatListModule, MatMenuModule, MatNativeDateModule, MatPaginatorModule, MatProgressBarModule, MatProgressSpinnerModule, MatRadioModule, MatRippleModule, MatSelectModule, MatSidenavModule, MatSliderModule, MatSlideToggleModule, MatSnackBarModule, MatSortModule, MatStepperModule, MatTableModule, MatTabsModule, MatToolbarModule, MatTooltipModule, MatTreeModule, MAT_DATE_LOCALE } from '@angular/material';
|
||||||
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
|
import { DatadumpService } from './datadump.service';
|
||||||
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
|
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
|
||||||
|
import { NgxSpinnerModule } from 'ngx-spinner';
|
||||||
|
import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
|
||||||
|
import { AddDatadumpComponent } from './add-datadump/add-datadump.component';
|
||||||
|
import { NotifierModule, NotifierOptions } from 'angular-notifier';
|
||||||
|
const customNotifierOptions: NotifierOptions = {
|
||||||
|
position: {
|
||||||
|
horizontal: {
|
||||||
|
position: 'right',
|
||||||
|
distance: 12
|
||||||
|
},
|
||||||
|
vertical: {
|
||||||
|
position: 'top',
|
||||||
|
distance: 32,
|
||||||
|
gap: 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
theme: 'material',
|
||||||
|
behaviour: {
|
||||||
|
autoHide: 5000,
|
||||||
|
onClick: 'hide',
|
||||||
|
onMouseover: 'pauseAutoHide',
|
||||||
|
showDismissButton: true,
|
||||||
|
stacking: 4
|
||||||
|
},
|
||||||
|
animations: {
|
||||||
|
enabled: true,
|
||||||
|
show: {
|
||||||
|
preset: 'slide',
|
||||||
|
speed: 300,
|
||||||
|
easing: 'ease'
|
||||||
|
},
|
||||||
|
hide: {
|
||||||
|
preset: 'fade',
|
||||||
|
speed: 300,
|
||||||
|
easing: 'ease',
|
||||||
|
offset: 50
|
||||||
|
},
|
||||||
|
shift: {
|
||||||
|
speed: 300,
|
||||||
|
easing: 'ease'
|
||||||
|
},
|
||||||
|
overlap: 150
|
||||||
|
}
|
||||||
|
};
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
DatadumpRoutingModule,
|
||||||
|
MatCardModule,
|
||||||
|
MatTabsModule,
|
||||||
|
MatIconModule,
|
||||||
|
MatInputModule,
|
||||||
|
|
||||||
|
MatIconModule,
|
||||||
|
MatAutocompleteModule,
|
||||||
|
MatInputModule,
|
||||||
|
MatRadioModule,
|
||||||
|
MatTableModule,
|
||||||
|
MatPaginatorModule,
|
||||||
|
MatButtonModule,
|
||||||
|
MatProgressBarModule,
|
||||||
|
MatToolbarModule,
|
||||||
|
FlexLayoutModule,
|
||||||
|
NgxDatatableModule,
|
||||||
|
NgxSpinnerModule,
|
||||||
|
MatChipsModule,MatProgressSpinnerModule,
|
||||||
|
FormsModule,MatSlideToggleModule,
|
||||||
|
NotifierModule.withConfig(customNotifierOptions),
|
||||||
|
MatSelectModule, MatListModule,MatGridListModule, MatTabsModule, MatBadgeModule, MatCheckboxModule,MatStepperModule,MatSidenavModule ,MatMenuModule, MatButtonToggleModule,
|
||||||
|
ReactiveFormsModule,
|
||||||
|
MatBottomSheetModule,
|
||||||
|
|
||||||
|
MatDividerModule,
|
||||||
|
|
||||||
|
MatNativeDateModule,
|
||||||
|
|
||||||
|
MatRippleModule,
|
||||||
|
|
||||||
|
MatSliderModule,
|
||||||
|
|
||||||
|
MatSnackBarModule,
|
||||||
|
|
||||||
|
MatTreeModule,
|
||||||
|
|
||||||
|
|
||||||
|
MatDatepickerModule,
|
||||||
|
MatDialogModule,MatSortModule,
|
||||||
|
NgxMatSelectSearchModule,MatTooltipModule, MatExpansionModule,
|
||||||
|
MatRadioModule,MatProgressSpinnerModule ,
|
||||||
|
MatButtonModule,MatTableModule,MatPaginatorModule,
|
||||||
|
MatProgressBarModule,MatDialogModule, MatSortModule,
|
||||||
|
MatToolbarModule,MatSelectModule,MatListModule, MatMenuModule,
|
||||||
|
MatSlideToggleModule,MatTooltipModule,
|
||||||
|
FormsModule, ReactiveFormsModule,
|
||||||
|
],
|
||||||
|
declarations: [DatadumpComponent, AddDatadumpComponent],
|
||||||
|
providers : [
|
||||||
|
DatadumpService,{ provide: MAT_DATE_LOCALE, useValue: 'en-GB' }
|
||||||
|
],
|
||||||
|
entryComponents:[AddDatadumpComponent]
|
||||||
|
})
|
||||||
|
export class DatadumpModule { }
|
||||||
12
ng6-seed/src/app/datadump/datadump.service.spec.ts
Normal file
12
ng6-seed/src/app/datadump/datadump.service.spec.ts
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { DatadumpService } from './datadump.service';
|
||||||
|
|
||||||
|
describe('DatadumpService', () => {
|
||||||
|
beforeEach(() => TestBed.configureTestingModule({}));
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
const service: DatadumpService = TestBed.get(DatadumpService);
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
62
ng6-seed/src/app/datadump/datadump.service.ts
Normal file
62
ng6-seed/src/app/datadump/datadump.service.ts
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
|
||||||
|
|
||||||
|
/** Common Import Section */
|
||||||
|
|
||||||
|
import { BehaviorSubject, Observable } from 'rxjs';//for Datatables
|
||||||
|
import { HttpClient } from '@angular/common/http';
|
||||||
|
import { catchError } from 'rxjs/operators';
|
||||||
|
import { of } from 'rxjs';
|
||||||
|
|
||||||
|
/** Imported Service Files Are., */
|
||||||
|
|
||||||
|
import { AwsService } from '../AwsService/aws.service';
|
||||||
|
|
||||||
|
/** Environment */
|
||||||
|
import { environment } from 'environments/environment';
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class DatadumpService {
|
||||||
|
private apiUrl = environment.apiEndpoint;
|
||||||
|
constructor(private _http: HttpClient,
|
||||||
|
private _aws:AwsService) { }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
getDatadumpRequestList(): Observable<any> {
|
||||||
|
// Add safe, URL encoded search parameter if there is a search term
|
||||||
|
return this._http.get<any[]>(this.apiUrl + "getDatadumpRequestList");
|
||||||
|
}
|
||||||
|
getListOfLenders(): Observable<any> {
|
||||||
|
// Add safe, URL encoded search parameter if there is a search term
|
||||||
|
return this._http.get<any[]>(this.apiUrl + "getListOfLenders");
|
||||||
|
}
|
||||||
|
getEntityPreferences(lenderid): Observable<any> {
|
||||||
|
// Add safe, URL encoded search parameter if there is a search term
|
||||||
|
return this._http.get<any[]>(this.apiUrl + "getEntityPreferences/"+lenderid);
|
||||||
|
}
|
||||||
|
getListOfMaster(param): Observable<any> {
|
||||||
|
// Add safe, URL encoded search parameter if there is a search term
|
||||||
|
|
||||||
|
return this._http.post<any>(this.apiUrl + "getListOfMaster", param);
|
||||||
|
}
|
||||||
|
getListOfStatesAndCities(param): Observable<any> {
|
||||||
|
// Add safe, URL encoded search parameter if there is a search term
|
||||||
|
|
||||||
|
return this._http.post<any>(this.apiUrl + "getListOfStatesAndCities", param);
|
||||||
|
}
|
||||||
|
|
||||||
|
saveDatadumpRequest(param): Observable<any> {
|
||||||
|
// Add safe, URL encoded search parameter if there is a search term
|
||||||
|
|
||||||
|
return this._http.post<any>(this.apiUrl + "saveDatadumpRequest", param);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
downloadDatadumpRequest(id): Observable<any> {
|
||||||
|
// Add safe, URL encoded search parameter if there is a search term
|
||||||
|
return this._http.get<any[]>(this.apiUrl + "downloadDatadumpRequest?request_id="+id);
|
||||||
|
}
|
||||||
|
}
|
||||||
139
ng6-seed/src/app/datadump/datadump/datadump.component.html
Normal file
139
ng6-seed/src/app/datadump/datadump/datadump.component.html
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
<div id="datadump">
|
||||||
|
<mat-card>
|
||||||
|
<div fxLayout="row" fxLayoutAlign="start center" class="mb-1">
|
||||||
|
<div class="ml-xs mr-xs">
|
||||||
|
<mat-card-title><span style="font-size:24px;"> Data Dump</span></mat-card-title>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<mat-card-content>
|
||||||
|
<div class="example-container mat-elevation-z8" style="margin-top:26px;">
|
||||||
|
<div class="example-header">
|
||||||
|
<div fxLayout="row" fxLayoutAlign="start center" class="mb-2" >
|
||||||
|
<mat-form-field dividerColor="primary" class="ml-xs mr-xs" style="width: 30%;">
|
||||||
|
<input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter">
|
||||||
|
</mat-form-field>
|
||||||
|
<label style="text-align: right;margin-left:57%;" fxLayoutAlign="start center" fxFlexOffset="50px">
|
||||||
|
<button mat-fab class="mr-1 mb-1" style="margin-top: 7px;"color="primary" (click)="add()"><mat-icon>add</mat-icon></button>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h4 style="text-align: center;" *ngIf="dataSource.data.length == 0">No Records found ....!</h4>
|
||||||
|
<mat-table [dataSource]="dataSource" matSort *ngIf="dataSource.data.length > 0" >
|
||||||
|
<ng-container matColumnDef="createdby">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header>Created By </mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us; let i = index;">
|
||||||
|
<span > {{us.createdby}}</span>
|
||||||
|
</mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="pd_type_name">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header> Pd Type </mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us"> <span > {{us.pd_type_name}}</span> </mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="lender_full_name">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header>Lender </mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us; let i = index;"> <span [matTooltip]="us.lender_full_name">{{us.lender_short_name}}</span> </mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="product_abbr">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header>Product </mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us"> <span [matTooltip]="us.product_name">{{us.product_abbr}} </span></mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="customer_segment_name">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header> Customer Segment </mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us"> <span [matTooltip]="us.customer_segment_name">{{us.customer_segment_abbr}}</span> </mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="city_name">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header> City</mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us"> {{us.city_name}} </mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="from_date">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header>From Date
|
||||||
|
</mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us"> {{us.from_date}} </mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="to_date">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header>To Date
|
||||||
|
</mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us"> {{us.to_date}} </mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="status">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header>Status
|
||||||
|
</mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us"> <span [ngStyle] = "{'color':us.status == 'PENDING' ? '#ff9800' : '#0c8d11'}"> {{us.status}}</span> </mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
<!-- <ng-container matColumnDef="IsActive">
|
||||||
|
<mat-header-cell *matHeaderCellDef mat-sort-header> Active </mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us">
|
||||||
|
<mat-slide-toggle
|
||||||
|
class="example-margin"
|
||||||
|
[checked]="us.isactive == 1 ? true : false " [color]="color"
|
||||||
|
[matTooltip]="us.isactive == 1 ? 'Active': 'Deactive'" matTooltipPosition="above"
|
||||||
|
(click)="isactive(us.userid,us.aws_name)">
|
||||||
|
</mat-slide-toggle>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</mat-cell>
|
||||||
|
</ng-container> -->
|
||||||
|
|
||||||
|
<ng-container matColumnDef="Actions">
|
||||||
|
<mat-header-cell *matHeaderCellDef> Download </mat-header-cell>
|
||||||
|
<mat-cell *matCellDef="let us">
|
||||||
|
<!-- <a mat-icon-button [color]="color" class="hover-icon" matTooltip="Edit" matTooltipPosition="above" (click)="editUserDetails(us.userid,us.aws_name)"> -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <mat-card>
|
||||||
|
<mat-card-content> -->
|
||||||
|
<!-- <h2>Spinner</h2> -->
|
||||||
|
|
||||||
|
<div *ngIf="loading && us.status != 'PENDING'; else content ">
|
||||||
|
|
||||||
|
<div class="spinner__loading">
|
||||||
|
<div>
|
||||||
|
<mat-progress-spinner
|
||||||
|
diameter="30"
|
||||||
|
[value]="value"
|
||||||
|
mode="determinate">
|
||||||
|
</mat-progress-spinner>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<button *ngIf="!loading && us.status != 'PENDING'; else content" mat-mini-fab color="warn" class="spinner"
|
||||||
|
|
||||||
|
|
||||||
|
type="button" matTooltip="Ready To Download"
|
||||||
|
(click)="download(us)"><mat-icon >cloud_done</mat-icon>
|
||||||
|
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- </mat-card-content>
|
||||||
|
</mat-card> -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Copyright 2019 Google LLC. All Rights Reserved.
|
||||||
|
Use of this source code is governed by an MIT-style license that
|
||||||
|
can be found in the LICENSE file at http://angular.io/license -->
|
||||||
|
<!-- </a> -->
|
||||||
|
<!-- <a mat-icon-button class="hover-icon" matTooltip="Edit" matTooltipPosition="above" (click)="deleteuser(us)"><mat-icon>delete_forever</mat-icon></a> -->
|
||||||
|
<!-- <a mat-icon-button class="hover-icon" matTooltip="Edit" matTooltipPosition="above" (click)="adminedituser(us)"><mat-icon>account_circle</mat-icon></a> -->
|
||||||
|
</mat-cell>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
|
||||||
|
<mat-row *matRowDef="let row; columns: displayedColumns;">
|
||||||
|
</mat-row>
|
||||||
|
</mat-table>
|
||||||
|
|
||||||
|
<mat-paginator [pageSize]="pageSize" [pageSizeOptions]="[5, 10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||||
|
</div>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<notifier-container></notifier-container>
|
||||||
|
|
||||||
116
ng6-seed/src/app/datadump/datadump/datadump.component.scss
Normal file
116
ng6-seed/src/app/datadump/datadump/datadump.component.scss
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.active{
|
||||||
|
|
||||||
|
color: green;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.active:hover{
|
||||||
|
color:red;
|
||||||
|
font-size:25px;
|
||||||
|
}
|
||||||
|
.deactive{
|
||||||
|
|
||||||
|
color: red;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.deactive:hover{
|
||||||
|
color: green;
|
||||||
|
font-size: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
min-width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-header {
|
||||||
|
min-height: 64px;
|
||||||
|
padding: 8px 24px 0;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-form-field {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-table {
|
||||||
|
overflow: auto;
|
||||||
|
max-height: 500px;
|
||||||
|
}
|
||||||
|
.mat-table {
|
||||||
|
display: table;
|
||||||
|
width: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
max-height: 500px;
|
||||||
|
|
||||||
|
> .mat-header-row, > .mat-row {
|
||||||
|
display: table-row;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
> .mat-header-cell, > .mat-cell {
|
||||||
|
display: table-cell;
|
||||||
|
height: 48px;
|
||||||
|
vertical-align: middle;
|
||||||
|
|
||||||
|
border-bottom: 1px solid rgba(0, 0, 0, 0.12);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Table CSS -nocontent */
|
||||||
|
.nocontent {
|
||||||
|
color: red;
|
||||||
|
font-size: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Table CSS - Search(or)Filter Field */
|
||||||
|
.mat-form-field {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
min-width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-header {
|
||||||
|
min-height: 64px;
|
||||||
|
padding: 8px 24px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// mat-card {
|
||||||
|
// display: flex;
|
||||||
|
// flex-direction: column;
|
||||||
|
// }
|
||||||
|
|
||||||
|
.file {
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spinner__loading {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.spinner{
|
||||||
|
margin-left: 28%;
|
||||||
|
}
|
||||||
|
#datadump{
|
||||||
|
zoom: 90%;
|
||||||
|
}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { DatadumpComponent } from './datadump.component';
|
||||||
|
|
||||||
|
describe('DatadumpComponent', () => {
|
||||||
|
let component: DatadumpComponent;
|
||||||
|
let fixture: ComponentFixture<DatadumpComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ DatadumpComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(DatadumpComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
123
ng6-seed/src/app/datadump/datadump/datadump.component.ts
Normal file
123
ng6-seed/src/app/datadump/datadump/datadump.component.ts
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
|
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||||
|
import { MatDialog, MatIconRegistry, MatPaginator, MatSort, MatTableDataSource } from '@angular/material';
|
||||||
|
import { DomSanitizer } from '@angular/platform-browser';
|
||||||
|
import { NotifierService } from 'angular-notifier';
|
||||||
|
import { interval, Subscription } from 'rxjs';
|
||||||
|
import { AddDatadumpComponent } from '../add-datadump/add-datadump.component';
|
||||||
|
import { DatadumpService } from '../datadump.service';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-datadump',
|
||||||
|
templateUrl: './datadump.component.html',
|
||||||
|
styleUrls: ['./datadump.component.scss']
|
||||||
|
})
|
||||||
|
export class DatadumpComponent implements OnInit {
|
||||||
|
public dataLength: number;
|
||||||
|
public dataSource = new MatTableDataSource();
|
||||||
|
displayedColumns = ['createdby','pd_type_name','lender_full_name','product_abbr','customer_segment_name','city_name','from_date','to_date','status','Actions'];
|
||||||
|
|
||||||
|
@ViewChild(MatPaginator) paginator: MatPaginator;
|
||||||
|
@ViewChild(MatSort) sort: MatSort;
|
||||||
|
color="primary";
|
||||||
|
// pagination variable details
|
||||||
|
pageSize = 10;
|
||||||
|
userdata: any = [];
|
||||||
|
loader: boolean = false;
|
||||||
|
value = 0;
|
||||||
|
loading = true;
|
||||||
|
searchForm: FormGroup;
|
||||||
|
constructor(private datadumpservice : DatadumpService, private sanitizer: DomSanitizer, private readonly matIconRegistry: MatIconRegistry,private _fb:FormBuilder, private dialog: MatDialog, private notifier: NotifierService,) {
|
||||||
|
this.matIconRegistry.addSvgIcon('download', this.sanitizer.bypassSecurityTrustResourceUrl('assets/images/download.svg'));
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
|
||||||
|
this.loadContent();
|
||||||
|
this.getApiList()
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
ngAfterViewInit() {
|
||||||
|
this.dataSource.paginator = this.paginator;
|
||||||
|
this.dataSource.sort = this.sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
applyFilter(filterValue: string) {
|
||||||
|
filterValue = filterValue.trim(); // Remove whitespace
|
||||||
|
filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches
|
||||||
|
this.dataSource.filter = filterValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
getApiList(){
|
||||||
|
this.datadumpservice.getDatadumpRequestList().subscribe(res => {
|
||||||
|
|
||||||
|
console.log(res)
|
||||||
|
if(res.status == 200 ){
|
||||||
|
|
||||||
|
this.dataLength = res.records.length;
|
||||||
|
this.dataSource.data = res.records
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
loadContent() {
|
||||||
|
this.loading = true;
|
||||||
|
const subs$: Subscription = interval(200).subscribe(res => {
|
||||||
|
this.value = this.value + 10;
|
||||||
|
if(this.value === 120) {
|
||||||
|
subs$.unsubscribe();
|
||||||
|
this.loading = false;
|
||||||
|
this.value = 0;
|
||||||
|
console.log('Ha terminado');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
add(){
|
||||||
|
const dialogRef = this.dialog.open(AddDatadumpComponent, {
|
||||||
|
|
||||||
|
// position: { right: '0'},
|
||||||
|
disableClose: true,
|
||||||
|
minHeight:'40%',
|
||||||
|
maxHeight:'75%',
|
||||||
|
minWidth: '50%',
|
||||||
|
maxWidth: '75%',
|
||||||
|
});
|
||||||
|
dialogRef.afterClosed()
|
||||||
|
.subscribe(dataresult => {
|
||||||
|
|
||||||
|
if(dataresult == 0){
|
||||||
|
this.getApiList()
|
||||||
|
// if(dataresult.length>0){
|
||||||
|
// this.pdf_merge_data = dataresult
|
||||||
|
// console.log( this.pdf_merge_data )
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
download(param){
|
||||||
|
console.log(param)
|
||||||
|
|
||||||
|
this.datadumpservice.downloadDatadumpRequest(param.request_id).subscribe(res => {
|
||||||
|
|
||||||
|
|
||||||
|
console.log(res)
|
||||||
|
if(res.status == 200 ){
|
||||||
|
this.notifier.notify('success', 'Download Successfully.!');
|
||||||
|
window.open(res.uri, "_blank");
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
this.notifier.notify('warning', res.msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -98,6 +98,7 @@ export class AdminLayoutComponent implements OnInit, OnDestroy {
|
|||||||
'entityid':this.currentUser.fk_entity_type_id,
|
'entityid':this.currentUser.fk_entity_type_id,
|
||||||
'profilepic':this.currentUser.profilepic
|
'profilepic':this.currentUser.profilepic
|
||||||
}
|
}
|
||||||
|
localStorage.setItem('videocall_userid', this.currentUser.userid)
|
||||||
this.users.getprofilepic(users).subscribe(res=>{
|
this.users.getprofilepic(users).subscribe(res=>{
|
||||||
this.profileurl = res;
|
this.profileurl = res;
|
||||||
if(this.profileurl.dataStatus == true){
|
if(this.profileurl.dataStatus == true){
|
||||||
|
|||||||
@ -90,9 +90,13 @@
|
|||||||
<!-- <b>{{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }}</b> -->
|
<!-- <b>{{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }}</b> -->
|
||||||
<b>{{details.is_child == 0 ? details.applicant_name : 'Add On PD' }}</b>
|
<b>{{details.is_child == 0 ? details.applicant_name : 'Add On PD' }}</b>
|
||||||
</span><br>
|
</span><br>
|
||||||
|
<!-- <span class="fontsize" *ngIf="!details.lender_applicant_id"> Not Provided</span>
|
||||||
|
<span class="fontsize" *ngIf="details.lender_applicant_id"> {{details.lender_applicant_id}}</span>
|
||||||
|
<span class="fontsize" *ngIf="details.customer_segment_abbr">-({{details.customer_segment_abbr}} )</span><br> -->
|
||||||
<span class="fontsize" *ngIf="!details.lender_applicant_id"> Not Provided</span>
|
<span class="fontsize" *ngIf="!details.lender_applicant_id"> Not Provided</span>
|
||||||
<span class="fontsize" *ngIf="details.lender_applicant_id"> {{details.lender_applicant_id}}</span>
|
<span class="fontsize" *ngIf="details.lender_applicant_id"> {{details.lender_applicant_id}}</span>
|
||||||
<span class="fontsize" *ngIf="details.customer_segment_abbr">-({{details.customer_segment_abbr}} )</span><br>
|
<span class="fontsize" *ngIf="details.customer_segment_abbr">-({{details.customer_segment_abbr}} )</span> <br>
|
||||||
|
<span class="fontsize" *ngIf="details.fk_pd_type =='4'">( {{details.fi_type}} )</span>
|
||||||
<small mat-line *ngIf="details.fin_institute_name != null">{{details.fin_institute_name}}</small>
|
<small mat-line *ngIf="details.fin_institute_name != null">{{details.fin_institute_name}}</small>
|
||||||
</mat-cell>
|
</mat-cell>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|||||||
@ -89,9 +89,14 @@
|
|||||||
<!-- <b>{{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }}</b> -->
|
<!-- <b>{{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }}</b> -->
|
||||||
<b>{{details.is_child == 0 ? details.applicant_name : 'Add On PD' }}</b>
|
<b>{{details.is_child == 0 ? details.applicant_name : 'Add On PD' }}</b>
|
||||||
</span><br>
|
</span><br>
|
||||||
<span class="fontsize" *ngIf="!details.lender_applicant_id"> Not Provided</span>
|
<!-- <span class="fontsize" *ngIf="!details.lender_applicant_id"> Not Provided</span>
|
||||||
<span class="fontsize" *ngIf="details.lender_applicant_id"> {{details.lender_applicant_id}}</span>
|
<span class="fontsize" *ngIf="details.lender_applicant_id"> {{details.lender_applicant_id}}</span>
|
||||||
<span class="fontsize" *ngIf="details.customer_segment_abbr">-({{details.customer_segment_abbr}} )</span><br>
|
<span class="fontsize" *ngIf="details.customer_segment_abbr">-({{details.customer_segment_abbr}} )</span><br> -->
|
||||||
|
|
||||||
|
<span class="fontsize" *ngIf="!details.lender_applicant_id"> Not Provided</span>
|
||||||
|
<span class="fontsize" *ngIf="details.lender_applicant_id"> {{details.lender_applicant_id}}</span>
|
||||||
|
<span class="fontsize" *ngIf="details.customer_segment_abbr">-({{details.customer_segment_abbr}} )</span> <br>
|
||||||
|
<span class="fontsize" *ngIf="details.fk_pd_type =='4'">( {{details.fi_type}} )</span>
|
||||||
<small mat-line *ngIf="details.fin_institute_name != null">{{details.fin_institute_name}}</small>
|
<small mat-line *ngIf="details.fin_institute_name != null">{{details.fin_institute_name}}</small>
|
||||||
</mat-cell>
|
</mat-cell>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|||||||
@ -181,9 +181,12 @@ export class DynamicQuestionTemplateComponent implements OnInit {
|
|||||||
this.formGroupN.get('pincode').patchValue((res.pdMasterList.pincode_id
|
this.formGroupN.get('pincode').patchValue((res.pdMasterList.pincode_id
|
||||||
|| ''))
|
|| ''))
|
||||||
} else if(this.parent_ques.question_key == 'Name_of_the_Person_met'){
|
} else if(this.parent_ques.question_key == 'Name_of_the_Person_met'){
|
||||||
this.formGroupN.get('Name_of_the_Person_met').patchValue((res.pdMasterList.applicat_details[0].applicant_name
|
let name = localStorage.getItem('pdApplicantData')
|
||||||
|
let res = JSON.parse(name)
|
||||||
|
this.formGroupN.get('Name_of_the_Person_met').patchValue((res.toString()|| ''))
|
||||||
|
|
||||||
|| ''))
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(this.parent_ques.question_key == 'avail_loan_moratorium_facility'){
|
if(this.parent_ques.question_key == 'avail_loan_moratorium_facility'){
|
||||||
|
|||||||
@ -170,7 +170,7 @@ else
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
loadTemplate() {
|
loadTemplate() {
|
||||||
|
localStorage.setItem('callApi','0')
|
||||||
this.is_loading = true
|
this.is_loading = true
|
||||||
// let localId = this.getLocalFormId()
|
// let localId = this.getLocalFormId()
|
||||||
// console.log("d",this.pd_all_details.form_id,Number(this.pd_all_details.form_id))
|
// console.log("d",this.pd_all_details.form_id,Number(this.pd_all_details.form_id))
|
||||||
@ -287,6 +287,212 @@ else
|
|||||||
//formValues = JSON.parse(records.json)
|
//formValues = JSON.parse(records.json)
|
||||||
if(this.pd_all_details_data.FormData.form_id =='34'){
|
if(this.pd_all_details_data.FormData.form_id =='34'){
|
||||||
this.quesService.formanswers = records
|
this.quesService.formanswers = records
|
||||||
|
|
||||||
|
// this.quesService.formanswers = [
|
||||||
|
// {
|
||||||
|
// "answer_value": "https://test-lender21.s3.ap-south-1.amazonaws.com/pd3369/eCeE12022-11-07-12-08-18.jpeg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAR7TQUR2JQYXKFYXA%2F20221108%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20221108T092822Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Signature=233fd1b2ba52d0674fa32b7e6b6943d35d6a465c2d16c0a2e626f188c51da6f2",
|
||||||
|
// "question": "Selfie with person met",
|
||||||
|
// "question_key": "selfie_with_person_met",
|
||||||
|
// "type": "6",
|
||||||
|
// "raw_validations": [],
|
||||||
|
// "validations": [],
|
||||||
|
// "api_properties": null,
|
||||||
|
// "onchange_properties": null,
|
||||||
|
// "answers": null,
|
||||||
|
// "is_repeatable": null,
|
||||||
|
// "is_multiple": 0,
|
||||||
|
// "group_title": null,
|
||||||
|
// "is_loader": "",
|
||||||
|
// "is_saved": "",
|
||||||
|
// "is_image_status": false,
|
||||||
|
// "pd_document_id": "14441"
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "answer_value": "saved",
|
||||||
|
// "question": "ID card",
|
||||||
|
// "question_key": "id_card",
|
||||||
|
// "type": "6",
|
||||||
|
// "raw_validations": [],
|
||||||
|
// "validations": [],
|
||||||
|
// "api_properties": null,
|
||||||
|
// "onchange_properties": null,
|
||||||
|
// "answers": null,
|
||||||
|
// "is_repeatable": null,
|
||||||
|
// "is_multiple": 0,
|
||||||
|
// "group_title": null,
|
||||||
|
// "is_loader": "",
|
||||||
|
// "is_saved": "",
|
||||||
|
// "is_image_status": false
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "answer_value": "saved",
|
||||||
|
// "question": "Machinery Image",
|
||||||
|
// "question_key": "machinery_image",
|
||||||
|
// "type": "6",
|
||||||
|
// "raw_validations": [],
|
||||||
|
// "validations": [],
|
||||||
|
// "api_properties": null,
|
||||||
|
// "onchange_properties": null,
|
||||||
|
// "answers": null,
|
||||||
|
// "is_repeatable": null,
|
||||||
|
// "is_multiple": 0,
|
||||||
|
// "group_title": null,
|
||||||
|
// "is_loader": "",
|
||||||
|
// "is_saved": "",
|
||||||
|
// "is_image_status": false
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "is_repeatable": "1",
|
||||||
|
// "is_multi_disabled": "0",
|
||||||
|
// "group_title": "Approach to PD Location",
|
||||||
|
// "group_type": "6",
|
||||||
|
// "question_key": "approach_to_pd_location",
|
||||||
|
// "questions_group": [
|
||||||
|
// {
|
||||||
|
// "questions": [
|
||||||
|
// {
|
||||||
|
// "answer_value": "https://test-lender21.s3.ap-south-1.amazonaws.com/pd3369/T3c5g2022-11-07-12-08-30.jpeg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAR7TQUR2JQYXKFYXA%2F20221108%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20221108T092822Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Signature=a06aa90a179256f54d1af81de108bf65f27a533ad64af8565fab8c9b126077a3",
|
||||||
|
// "question": "Approach to PD Location",
|
||||||
|
// "question_key": "approach_to_pd_location",
|
||||||
|
// "type": "6",
|
||||||
|
// "raw_validations": [],
|
||||||
|
// "validations": [],
|
||||||
|
// "api_properties": null,
|
||||||
|
// "onchange_properties": null,
|
||||||
|
// "answers": null,
|
||||||
|
// "is_repeatable": null,
|
||||||
|
// "is_multiple": 0,
|
||||||
|
// "group_title": null,
|
||||||
|
// "is_loader": "",
|
||||||
|
// "is_saved": "",
|
||||||
|
// "is_image_status": false,
|
||||||
|
// "pd_document_id": "14442"
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "is_repeatable": "1",
|
||||||
|
// "is_multi_disabled": "0",
|
||||||
|
// "group_title": "Name Board Seen",
|
||||||
|
// "group_type": "6",
|
||||||
|
// "question_key": "name_board_seen",
|
||||||
|
// "questions_group": [
|
||||||
|
// {
|
||||||
|
// "questions": [
|
||||||
|
// {
|
||||||
|
// "answer_value": "saved",
|
||||||
|
// "question": "Name Board Seen",
|
||||||
|
// "question_key": "name_board_seen",
|
||||||
|
// "type": "6",
|
||||||
|
// "raw_validations": [],
|
||||||
|
// "validations": [],
|
||||||
|
// "api_properties": null,
|
||||||
|
// "onchange_properties": null,
|
||||||
|
// "answers": null,
|
||||||
|
// "is_repeatable": null,
|
||||||
|
// "is_multiple": 0,
|
||||||
|
// "group_title": null,
|
||||||
|
// "is_loader": "",
|
||||||
|
// "is_saved": "",
|
||||||
|
// "is_image_status": false
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "is_repeatable": "1",
|
||||||
|
// "is_multi_disabled": "0",
|
||||||
|
// "group_title": "Stock Photograph's",
|
||||||
|
// "group_type": "6",
|
||||||
|
// "question_key": "stock_image",
|
||||||
|
// "questions_group": [
|
||||||
|
// {
|
||||||
|
// "questions": [
|
||||||
|
// {
|
||||||
|
// "answer_value": "saved",
|
||||||
|
// "question": "Stock Photograph's",
|
||||||
|
// "question_key": "stock_image",
|
||||||
|
// "type": "6",
|
||||||
|
// "raw_validations": [],
|
||||||
|
// "validations": [],
|
||||||
|
// "api_properties": null,
|
||||||
|
// "onchange_properties": null,
|
||||||
|
// "answers": null,
|
||||||
|
// "is_repeatable": null,
|
||||||
|
// "is_multiple": 0,
|
||||||
|
// "group_title": null,
|
||||||
|
// "is_loader": "",
|
||||||
|
// "is_saved": "",
|
||||||
|
// "is_image_status": false
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "is_repeatable": "1",
|
||||||
|
// "is_multi_disabled": "0",
|
||||||
|
// "group_title": "Documents photographs",
|
||||||
|
// "group_type": "6",
|
||||||
|
// "question_key": "documents_interior_image",
|
||||||
|
// "questions_group": [
|
||||||
|
// {
|
||||||
|
// "questions": [
|
||||||
|
// {
|
||||||
|
// "answer_value": "saved",
|
||||||
|
// "question": "Documents photographs",
|
||||||
|
// "question_key": "documents_interior_image",
|
||||||
|
// "type": "6",
|
||||||
|
// "raw_validations": [],
|
||||||
|
// "validations": [],
|
||||||
|
// "api_properties": null,
|
||||||
|
// "onchange_properties": null,
|
||||||
|
// "answers": null,
|
||||||
|
// "is_repeatable": null,
|
||||||
|
// "is_multiple": 0,
|
||||||
|
// "group_title": null,
|
||||||
|
// "is_loader": "",
|
||||||
|
// "is_saved": "",
|
||||||
|
// "is_image_status": false
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "is_repeatable": "1",
|
||||||
|
// "is_multi_disabled": "0",
|
||||||
|
// "group_title": "VIDEOS",
|
||||||
|
// "group_type": "6",
|
||||||
|
// "question_key": "video",
|
||||||
|
// "questions_group": [
|
||||||
|
// {
|
||||||
|
// "questions": [
|
||||||
|
// {
|
||||||
|
// "answer_value": "https://test-lender21.s3.ap-south-1.amazonaws.com/pd3369/video/fileName2.mp4?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAR7TQUR2JQYXKFYXA%2F20221108%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20221108T094754Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=c1b8dab3113b0d24cf1c06744981ef159d47f50ac1c98699274d56813ec4c085",
|
||||||
|
// "question": "VIDEOS",
|
||||||
|
// "question_key": "video",
|
||||||
|
// "type": "6",
|
||||||
|
// "raw_validations": [],
|
||||||
|
// "validations": [],
|
||||||
|
// "api_properties": null,
|
||||||
|
// "onchange_properties": null,
|
||||||
|
// "answers": null,
|
||||||
|
// "is_repeatable": null,
|
||||||
|
// "is_multiple": 0,
|
||||||
|
// "group_title": null,
|
||||||
|
// "is_loader": "",
|
||||||
|
// "is_saved": "",
|
||||||
|
// "is_image_status": false
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
}else{
|
}else{
|
||||||
formValues = records.json
|
formValues = records.json
|
||||||
this.quesService.formanswers= formValues
|
this.quesService.formanswers= formValues
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<button [ngStyle]="{'color':role_id == '20' ? '#0d93a9' :'#f44336'}" (click)="capture($event)" mat-button mat-raised-button [disabled]="sales_pd_type == '2'">Capture
|
<button [ngStyle]="{'color':role_id == '20' ? '#0d93a9' :'#f44336'}" (click)="capture($event)" mat-button mat-raised-button >Capture
|
||||||
<mat-icon name="camera" *ngIf="!addMoreBtn">add_a_photo</mat-icon>
|
<mat-icon name="camera" *ngIf="!addMoreBtn">add_a_photo</mat-icon>
|
||||||
<mat-icon name="camera" *ngIf="addMoreBtn">add_a_photo</mat-icon>
|
<mat-icon name="camera" *ngIf="addMoreBtn">add_a_photo</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -26,7 +26,7 @@ import { LoaderService } from 'app/shared/loaderService/loader.service';
|
|||||||
styleUrls: ['./capture-btn.component.scss']
|
styleUrls: ['./capture-btn.component.scss']
|
||||||
})
|
})
|
||||||
export class CaptureBtnComponent implements OnInit {
|
export class CaptureBtnComponent implements OnInit {
|
||||||
|
@Input() json_index:any;
|
||||||
@Input() addMoreBtn;
|
@Input() addMoreBtn;
|
||||||
@Output() imageDataEmitter = new EventEmitter
|
@Output() imageDataEmitter = new EventEmitter
|
||||||
@Output() singleDataEmitter = new EventEmitter
|
@Output() singleDataEmitter = new EventEmitter
|
||||||
@ -36,7 +36,7 @@ export class CaptureBtnComponent implements OnInit {
|
|||||||
constructor(private ng2ImgMax:Ng2ImgMaxService,private loaderService:LoaderService) {
|
constructor(private ng2ImgMax:Ng2ImgMaxService,private loaderService:LoaderService) {
|
||||||
this.role_id = localStorage.getItem('user_role')
|
this.role_id = localStorage.getItem('user_role')
|
||||||
this.sales_pd_type = localStorage.getItem('sales_pd_type')
|
this.sales_pd_type = localStorage.getItem('sales_pd_type')
|
||||||
console.log(this.sales_pd_type)
|
console.log(this.json_index)
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
@ -45,6 +45,7 @@ export class CaptureBtnComponent implements OnInit {
|
|||||||
capturedImage(event){
|
capturedImage(event){
|
||||||
this.loaderService.showMatSpinnerDialog('Fetching Data...')
|
this.loaderService.showMatSpinnerDialog('Fetching Data...')
|
||||||
console.log(event);
|
console.log(event);
|
||||||
|
console.log(this.json_index)
|
||||||
let imageData= event.target.files[0]
|
let imageData= event.target.files[0]
|
||||||
|
|
||||||
this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe(
|
this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe(
|
||||||
@ -52,6 +53,7 @@ export class CaptureBtnComponent implements OnInit {
|
|||||||
|
|
||||||
this.imageDataEmitter.emit(result)
|
this.imageDataEmitter.emit(result)
|
||||||
this.singleDataEmitter.emit(result)
|
this.singleDataEmitter.emit(result)
|
||||||
|
localStorage.setItem('callApi','1')
|
||||||
this.loaderService.closeMatSpinnerDialog()
|
this.loaderService.closeMatSpinnerDialog()
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
|
|||||||
@ -361,7 +361,13 @@ export class QuestionServiceService {
|
|||||||
// FOR SETTING THE ARRAY OF VALIDATORS COMING FROM JSON Temp,
|
// FOR SETTING THE ARRAY OF VALIDATORS COMING FROM JSON Temp,
|
||||||
settingArrayofValidators(data,curr_control,curr_index){
|
settingArrayofValidators(data,curr_control,curr_index){
|
||||||
console.log("entered 334",data,curr_control,curr_index);
|
console.log("entered 334",data,curr_control,curr_index);
|
||||||
if(data.hasOwnProperty('validations') && data.validations.length > 0 ){
|
if(data.hasOwnProperty('validations') ){
|
||||||
|
if(data.validations instanceof Array){
|
||||||
|
if( data.validations.length > 0){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const validList :any= [];
|
const validList :any= [];
|
||||||
let validator_value
|
let validator_value
|
||||||
data.validations=data.validations.filter(val=>val.isactive != '0')
|
data.validations=data.validations.filter(val=>val.isactive != '0')
|
||||||
@ -392,6 +398,8 @@ export class QuestionServiceService {
|
|||||||
console.log("after setting validators 363",curr_control)
|
console.log("after setting validators 363",curr_control)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// END OF SETTINGARRAYOFVALIDATORS FUN
|
// END OF SETTINGARRAYOFVALIDATORS FUN
|
||||||
|
|
||||||
// FOR GETTING THE VALIDATION VALUE
|
// FOR GETTING THE VALIDATION VALUE
|
||||||
|
|||||||
@ -752,4 +752,10 @@ generatesateliteimage(param:any): Observable<any>{
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
saveShortsVideo(imagesDetails)
|
||||||
|
{
|
||||||
|
console.log('savepdimg',imagesDetails);
|
||||||
|
// let record = {'records':imagesDetails};
|
||||||
|
return this._http.post(api_url+'saveShortsVideo',imagesDetails);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -430,7 +430,13 @@
|
|||||||
<mat-icon style="font-size: 14px; line-height: 0px;">edit</mat-icon>
|
<mat-icon style="font-size: 14px; line-height: 0px;">edit</mat-icon>
|
||||||
</button> -->
|
</button> -->
|
||||||
</div>
|
</div>
|
||||||
<img class="image-class" [src]="single_ques.get('answer_value').value" imageViewer class="doc-image-bucket" >
|
<img *ngIf="single_ques.get('question').value != 'VIDEOS'" class="image-class" [src]="single_ques.get('answer_value').value" imageViewer class="doc-image-bucket" >
|
||||||
|
<video *ngIf="single_ques.get('question').value == 'VIDEOS'"
|
||||||
|
|
||||||
|
[src]="single_ques.get('answer_value').value"
|
||||||
|
style=" width: 200px;
|
||||||
|
height: 170px;"
|
||||||
|
controls></video>
|
||||||
<br/>
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -450,8 +456,8 @@
|
|||||||
<span style="margin:0px;" *ngIf="(single_ques.get('is_saved').value == false &&
|
<span style="margin:0px;" *ngIf="(single_ques.get('is_saved').value == false &&
|
||||||
single_ques.get('is_loader').value == false) && (single_ques.value.hasOwnProperty('is_saved') &&
|
single_ques.get('is_loader').value == false) && (single_ques.value.hasOwnProperty('is_saved') &&
|
||||||
single_ques.value.hasOwnProperty('is_loader'))" (click)="imageReupload(single_ques)">
|
single_ques.value.hasOwnProperty('is_loader'))" (click)="imageReupload(single_ques)">
|
||||||
<div style="margin-top: -17px;padding:0px;"><button mat-ion-button clear><mat-icon style="color:lightcoral;" name="refresh-circle"></mat-icon></button></div>
|
<!-- <div style="margin-top: -17px;padding:0px;"><button mat-ion-button clear><mat-icon style="color:lightcoral;" name="refresh-circle"></mat-icon></button></div>
|
||||||
<div style="margin-top: -20px;padding:0px;"><p style="font-size: 10px">Click to ReUpload</p></div>
|
<div style="margin-top: -20px;padding:0px;"><p style="font-size: 10px">Click to ReUpload</p></div> -->
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- <input *ngIf="image.Name =='' && image.option != 'dummy'" width="20px" ion-input type="text" placeholder="Document Name" (blur)="changeName($event.target.value,i,image.image)"> -->
|
<!-- <input *ngIf="image.Name =='' && image.option != 'dummy'" width="20px" ion-input type="text" placeholder="Document Name" (blur)="changeName($event.target.value,i,image.image)"> -->
|
||||||
@ -467,10 +473,14 @@
|
|||||||
<!-- <button mat-raised-button color="warn" style="min-width: 65px !important;" [disabled]="sales_pd_type == '2'" (click)="addData(g_i,parent_ques,group_ques.get('questions').value,$event,'camera',single_ques)">
|
<!-- <button mat-raised-button color="warn" style="min-width: 65px !important;" [disabled]="sales_pd_type == '2'" (click)="addData(g_i,parent_ques,group_ques.get('questions').value,$event,'camera',single_ques)">
|
||||||
<mat-icon>camera_alt</mat-icon>+
|
<mat-icon>camera_alt</mat-icon>+
|
||||||
</button> -->
|
</button> -->
|
||||||
<span (click)="getIndex(g_i,parent_ques,group_ques.get('questions').value,single_ques)">
|
<span *ngIf="single_ques.get('question').value != 'VIDEOS'" (click)="getIndex(g_i,parent_ques,group_ques.get('questions').value,single_ques)">
|
||||||
<app-capture-btn class="file-btn" (imageDataEmitter)="addImage($event,g_i,parent_ques,group_ques.get('questions').value,single_ques)" ></app-capture-btn>
|
<app-capture-btn class="file-btn" (imageDataEmitter)="addImage($event,g_i,parent_ques,group_ques.get('questions').value,single_ques)" ></app-capture-btn>
|
||||||
</span>
|
</span>
|
||||||
<!-- <button class="ml-1 mr-1 hover-icon" mat-raised-button clear style="color: #f3432c" [disabled]="sales_pd_type == '2'" (click)="addData(g_i,parent_ques,group_ques.get('questions').value,$event,'camera',single_ques)"><mat-icon style="font-size:25px">camera_alt</mat-icon>+</button> -->
|
<span *ngIf=" parent_ques.get('group_title').value == 'VIDEOS'" (click)="getIndex(g_i,parent_ques,group_ques.get('questions').value,single_ques)">
|
||||||
|
<app-video-capture-btn class="file-btn2" (videoDataEmitter)="addvideo($event,g_i,parent_ques,group_ques.get('questions').value,single_ques)" ></app-video-capture-btn>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- <button class="ml-1 mr-1 hover-icon" mat-raised-button clear style="color: #f3432c" type="file" (change)="capturedImage($event)" ><mat-icon style="font-size:25px">camera_alt</mat-icon> <input *ngIf="single_ques.get('question').value == 'VIDEOS'" type="file" (change)="capturedImage($event)" id="input-file" name="file" accept="video/*" capture="user" style="display: none"></button> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import { CameraService } from '../ques-template/providers/camera/camera.service'
|
|||||||
import { ApiServiceService } from '../ques-template/providers/services/api-service.service';
|
import { ApiServiceService } from '../ques-template/providers/services/api-service.service';
|
||||||
import { FormComponent } from '../form/form.component';
|
import { FormComponent } from '../form/form.component';
|
||||||
import { PdTrigerService } from 'app/personal-discussion/pd-service/pd-triger.service';
|
import { PdTrigerService } from 'app/personal-discussion/pd-service/pd-triger.service';
|
||||||
|
import { DomSanitizer } from '@angular/platform-browser';
|
||||||
// import { ImageEditComponent } from './image-edit/image-edit.component';
|
// import { ImageEditComponent } from './image-edit/image-edit.component';
|
||||||
// const originFormControlNameNgOnChanges = FormControlName.prototype.ngOnChanges;
|
// const originFormControlNameNgOnChanges = FormControlName.prototype.ngOnChanges;
|
||||||
// FormControlName.prototype.ngOnChanges = function () {
|
// FormControlName.prototype.ngOnChanges = function () {
|
||||||
@ -69,6 +70,7 @@ export class QuesTemplateComponent {
|
|||||||
@ViewChild('accordion') Accordion: MatAccordion
|
@ViewChild('accordion') Accordion: MatAccordion
|
||||||
@ViewChild('mapanel') matExpansionPanel:MatExpansionPanel
|
@ViewChild('mapanel') matExpansionPanel:MatExpansionPanel
|
||||||
@Output() imageDataEmitter = new EventEmitter
|
@Output() imageDataEmitter = new EventEmitter
|
||||||
|
@Output() videoDataEmitter = new EventEmitter
|
||||||
@Output() singleDataEmitter = new EventEmitter
|
@Output() singleDataEmitter = new EventEmitter
|
||||||
@ViewChild('dummy_img_more') dummyImgMoreRef: ElementRef;
|
@ViewChild('dummy_img_more') dummyImgMoreRef: ElementRef;
|
||||||
emittedFormGroup: any = null;
|
emittedFormGroup: any = null;
|
||||||
@ -90,7 +92,8 @@ export class QuesTemplateComponent {
|
|||||||
pd_all_details_data: any;
|
pd_all_details_data: any;
|
||||||
parent_index: any=[];
|
parent_index: any=[];
|
||||||
parent_control: any=[];
|
parent_control: any=[];
|
||||||
constructor( private pdTriggerService:PdTrigerService,private cameraService: CameraService,public dialogRef: MatDialogRef<FormComponent>,private route: ActivatedRoute,private router: Router,private dialog:MatDialog,private _fb:FormBuilder,private questionService:QuestionServiceService,private SalesPdService:SalesPdService,notifier: NotifierService,private loaderService:LoaderService) {
|
prev_url : any;
|
||||||
|
constructor( private sanitizer : DomSanitizer, private pdTriggerService:PdTrigerService,private cameraService: CameraService,public dialogRef: MatDialogRef<FormComponent>,private route: ActivatedRoute,private router: Router,private dialog:MatDialog,private _fb:FormBuilder,private questionService:QuestionServiceService,private SalesPdService:SalesPdService,notifier: NotifierService,private loaderService:LoaderService) {
|
||||||
this.role_id = localStorage.getItem('LenderRoleID')
|
this.role_id = localStorage.getItem('LenderRoleID')
|
||||||
console.log('Hello QuesTemplateComponent Component');
|
console.log('Hello QuesTemplateComponent Component');
|
||||||
this.text = 'Hello World';
|
this.text = 'Hello World';
|
||||||
@ -360,6 +363,33 @@ console.log(this.pdstatus)
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
capturedImage(event){
|
||||||
|
this.loaderService.showMatSpinnerDialog('Fetching Data...')
|
||||||
|
console.log(event);
|
||||||
|
// console.log(this.sales_pd_type,this.videoDataEmitter)
|
||||||
|
let imageData= event.target.files[0]
|
||||||
|
let files = imageData
|
||||||
|
// var URL = window.URL;
|
||||||
|
//var URL = window.URL || window.webkitURL;
|
||||||
|
var file = new Blob([files],{"type" : "video\/mp4"});
|
||||||
|
//var value = URL.createObjectURL(file);
|
||||||
|
console.log(file)
|
||||||
|
// this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe(
|
||||||
|
// result => {
|
||||||
|
//this.videoDataEmitter.emit(file)
|
||||||
|
//localStorage.setItem('callApi','1')
|
||||||
|
this.loaderService.closeMatSpinnerDialog()
|
||||||
|
// this.imageDataEmitter.emit(result)
|
||||||
|
// this.singleDataEmitter.emit(result)
|
||||||
|
// localStorage.setItem('callApi','1')
|
||||||
|
// this.loaderService.closeMatSpinnerDialog()
|
||||||
|
// },
|
||||||
|
// error => {
|
||||||
|
// console.log('😢 Oh no!', error);
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
|
||||||
|
}
|
||||||
proceedonChangeProperty(local_value_obj?){
|
proceedonChangeProperty(local_value_obj?){
|
||||||
console.log("On Change Property",this.quesAnsForm.value.questions);
|
console.log("On Change Property",this.quesAnsForm.value.questions);
|
||||||
|
|
||||||
@ -528,6 +558,315 @@ this.proceedonChangeProperty(modified)
|
|||||||
|
|
||||||
this.current_index = index;
|
this.current_index = index;
|
||||||
}
|
}
|
||||||
|
getIndex_name(index,q,data,single_ques) {
|
||||||
|
console.log('curr', index);
|
||||||
|
console.log(q);
|
||||||
|
|
||||||
|
// setTimeout(function(){
|
||||||
|
// console.log(q);
|
||||||
|
// },3000);
|
||||||
|
// console.log(q.controls);
|
||||||
|
this.tmp =[]
|
||||||
|
this.tmp.push(q)
|
||||||
|
console.log(data);
|
||||||
|
data.forEach(element => {
|
||||||
|
console.log(element.question_key);
|
||||||
|
});
|
||||||
|
console.log(this.tmp);
|
||||||
|
|
||||||
|
this.tmp[0].value.question_key
|
||||||
|
console.log( this.tmp[0].value.group_title)
|
||||||
|
console.log( this.tmp[0].value.question_key)
|
||||||
|
|
||||||
|
return this.tmp[0].value.group_title
|
||||||
|
|
||||||
|
this.tmp_ques = single_ques;
|
||||||
|
console.log(single_ques)
|
||||||
|
this.tmp_control = this.questionService
|
||||||
|
|
||||||
|
this.current_index = index;
|
||||||
|
}
|
||||||
|
addvideo2(event, index, parent_index, data,single_ques1) {
|
||||||
|
|
||||||
|
console.log(event, index, parent_index, data,single_ques1)
|
||||||
|
const formData:any = new FormData();
|
||||||
|
formData.append('video_file', event);
|
||||||
|
this.pd_all_details_data = JSON.parse(localStorage.getItem('pd_all_details'))
|
||||||
|
let params = {
|
||||||
|
filename:'fileName6.mp4',
|
||||||
|
|
||||||
|
"pd_id": this.pd_all_details_data.pdMasterList.pd_id,
|
||||||
|
"form_id": this.pd_all_details_data.FormData.form_id,
|
||||||
|
|
||||||
|
}
|
||||||
|
formData.append('records',JSON.stringify(params))
|
||||||
|
console.log(formData)
|
||||||
|
|
||||||
|
this.SalesPdService.saveShortsVideo(formData).subscribe(apiresult=>{
|
||||||
|
if(apiresult['dataStatus']){
|
||||||
|
console.log(apiresult)
|
||||||
|
let result:any =apiresult
|
||||||
|
this.imageData = this.quesAnsForm.value.questions
|
||||||
|
//this.imageData[this.current_index].img_url = result.records.uri
|
||||||
|
console.log( this.current_index)
|
||||||
|
if (this.current_index != 'last') {
|
||||||
|
if (this.imageData[this.current_index].is_multiple == 1) {
|
||||||
|
console.log('multi');
|
||||||
|
let img_param = {img_url: result.records.uri, is_base64: true};
|
||||||
|
this.imageData[this.current_index].img_data.push(img_param);
|
||||||
|
console.log(this.imageData)
|
||||||
|
// this.sendImage(this.imageData, this.imageData[this.current_index].img_data.length - 1);
|
||||||
|
} else {
|
||||||
|
this.imageData[this.current_index].img_url = result.records.uri;
|
||||||
|
console.log(this.imageData[this.current_index])
|
||||||
|
console.log(this.imageData)
|
||||||
|
// this.sendImage(this.imageData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log( this.imageData)
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
addvideo(param_data, index, parent_index, data,single_ques1) {
|
||||||
|
// this.loaderService.showMatSpinnerDialog('Fetching Data...')
|
||||||
|
// this.ngxService.start();
|
||||||
|
let event = param_data.file
|
||||||
|
console.log(event.name)
|
||||||
|
let s:any = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(event));
|
||||||
|
|
||||||
|
this.prev_url= s
|
||||||
|
|
||||||
|
console.log(this.prev_url)
|
||||||
|
|
||||||
|
console.log(this.quesAnsForm)
|
||||||
|
|
||||||
|
console.log(parent_index)
|
||||||
|
console.log(this.tmp_ques)
|
||||||
|
console.log(parent_index['controls'].questions_group)
|
||||||
|
|
||||||
|
this.tmp[0].value.group_title
|
||||||
|
console.log( this.tmp[0].value.question_key)
|
||||||
|
|
||||||
|
console.log(data)
|
||||||
|
data[0].question = this.tmp[0].value.group_title
|
||||||
|
data[0].question_key = this.tmp[0].value.question_key
|
||||||
|
data=data.filter(group_indi=>!group_indi.hasOwnProperty('additional_field') && group_indi.additional_field != 1 )
|
||||||
|
console.log(data)
|
||||||
|
console.log(single_ques1)
|
||||||
|
let single_ques = this.tmp_ques
|
||||||
|
|
||||||
|
console.log(single_ques)
|
||||||
|
console.log(event, index);
|
||||||
|
this.imageData = this.quesAnsForm.value.questions
|
||||||
|
|
||||||
|
console.log(this.quesAnsForm.value.questions)
|
||||||
|
// console.log(this.questions_JSON.questions)
|
||||||
|
console.log(this.imageData);
|
||||||
|
const reader = new FileReader();
|
||||||
|
// let imagePath = event;
|
||||||
|
reader.readAsDataURL(event);
|
||||||
|
reader.onload = (_event) => {
|
||||||
|
// this.imageData = reader.result;
|
||||||
|
// this.cameraService.getPosition().then(geoCords => {
|
||||||
|
// let geoCoordinates;
|
||||||
|
// if (geoCords != 'error') {
|
||||||
|
// geoCoordinates = geoCords;
|
||||||
|
// } else {
|
||||||
|
// geoCoordinates = null;
|
||||||
|
// }
|
||||||
|
// console.log(geoCords);
|
||||||
|
const formData:any = new FormData();
|
||||||
|
formData.append('video_file', event);
|
||||||
|
this.pd_all_details_data = JSON.parse(localStorage.getItem('pd_all_details'))
|
||||||
|
let params_data = {
|
||||||
|
filename: param_data.name,
|
||||||
|
|
||||||
|
"pd_id": this.pd_all_details_data.pdMasterList.pd_id,
|
||||||
|
"form_id": this.pd_all_details_data.FormData.form_id,
|
||||||
|
|
||||||
|
}
|
||||||
|
formData.append('records',JSON.stringify(params_data))
|
||||||
|
console.log(formData)
|
||||||
|
|
||||||
|
// console.log(param)
|
||||||
|
this.SalesPdService.saveShortsVideo(formData).subscribe(apiresult=>{
|
||||||
|
console.log(apiresult)
|
||||||
|
if(apiresult['dataStatus']){
|
||||||
|
console.log(this.imageData);
|
||||||
|
console.log(this.current_index);
|
||||||
|
// console.log(reader.result, geoCoordinates);
|
||||||
|
// this.pdTriggerService.addWatermarks(reader.result, geoCoordinates).then(watermarked_img => {
|
||||||
|
if (this.current_index != 'last') {
|
||||||
|
if (this.imageData[this.current_index].is_multiple == 1) {
|
||||||
|
console.log('multi');
|
||||||
|
let img_param = {img_url: this.prev_url, is_base64: true, link: null};
|
||||||
|
this.imageData[this.current_index].img_data.push(img_param);
|
||||||
|
console.log(this.imageData)
|
||||||
|
// this.sendImage(this.imageData, this.imageData[this.current_index].img_data.length - 1);
|
||||||
|
} else {
|
||||||
|
this.imageData[this.current_index].img_url = this.prev_url;
|
||||||
|
this.imageData[this.current_index].is_base64 = true;
|
||||||
|
this.imageData[this.current_index].link = null;
|
||||||
|
console.log(this.imageData)
|
||||||
|
// this.sendImage(this.imageData);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// this.getImageName().then(result => {
|
||||||
|
// console.log(result);
|
||||||
|
// this.imageData.push( {
|
||||||
|
// img_key: 'common_image',
|
||||||
|
// img_name:this.tmp[0].value.group_title,
|
||||||
|
// img_url: watermarked_img,
|
||||||
|
// fk_form_id: '',
|
||||||
|
// is_base64: true,
|
||||||
|
// link: null
|
||||||
|
// });
|
||||||
|
// // let el = document.getElementById('dummy-img-more');
|
||||||
|
// // el.scrollIntoView();
|
||||||
|
// setTimeout(() => {
|
||||||
|
// this.dummyImgMoreRef.nativeElement.scrollIntoView({behavior: 'smooth', block: 'end'});
|
||||||
|
// }, 1000);
|
||||||
|
// // this.sendImage(this.imageData);
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
console.log(this.prev_url);
|
||||||
|
console.log(single_ques.controls)
|
||||||
|
console.log(single_ques.value.question)
|
||||||
|
|
||||||
|
this.image_question_name = single_ques.value.question
|
||||||
|
single_ques.controls.answer_value.setValue(this.prev_url)
|
||||||
|
// this.sales_pd_id = Number(this.sales_pd_id)
|
||||||
|
// console.log(this.sales_pd_id)
|
||||||
|
|
||||||
|
// if(this.networkDetection.getCurrentNetworkStatus() == ConnectionStatus.online && (typeof(this.sales_pd_id) == 'string' ? !this.sales_pd_id.includes('local') : true) ) {
|
||||||
|
single_ques.controls.is_image_status.setValue(true)
|
||||||
|
single_ques.controls.is_loader.setValue(true);
|
||||||
|
single_ques.controls.is_saved.setValue(false);
|
||||||
|
let params={"fk_sales_pd_id":"","img":this.prev_url,"img_name":single_ques.value.question_key,"location": null}
|
||||||
|
let storage_param=this.questions_JSON
|
||||||
|
let form_structure=this.questions_JSON
|
||||||
|
form_structure.questions=this.quesAnsForm.getRawValue().questions
|
||||||
|
console.log( form_structure.questions)
|
||||||
|
form_structure.is_complete=1
|
||||||
|
|
||||||
|
|
||||||
|
// else {
|
||||||
|
// single_ques.controls.is_image_status.setValue(true)
|
||||||
|
// single_ques.controls.is_loader.setValue(false);
|
||||||
|
// single_ques.controls.is_saved.setValue(true);
|
||||||
|
// }
|
||||||
|
this.emittedFormGroup = this.quesAnsForm.getRawValue()
|
||||||
|
// PASSING THE VALUE TO PARENT COMPONENT
|
||||||
|
this.imageUploadCheck.emit(this.emittedFormGroup);
|
||||||
|
this.pd_all_details_data = JSON.parse(localStorage.getItem('pd_all_details'))
|
||||||
|
console.log(this.pd_all_details_data)
|
||||||
|
// let param = {
|
||||||
|
// "pd_id": this.pd_all_details_data.pdMasterList.pd_id,
|
||||||
|
// "formid": this.pd_all_details_data.FormData.form_id,
|
||||||
|
// "company_id":null,
|
||||||
|
// "images": [
|
||||||
|
// {
|
||||||
|
// "image": watermarked_img
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// "Name": single_ques.value.question_key,
|
||||||
|
// "link":geoCoordinates,
|
||||||
|
// "image_key":single_ques.value.question_key,
|
||||||
|
// "is_show_report":"1",
|
||||||
|
// "pd_image_alias_name":single_ques.value.question,
|
||||||
|
// "isLoader":true,
|
||||||
|
// "isSaved":false,
|
||||||
|
// "pd_document_id":null,
|
||||||
|
// "pd_document_name":single_ques.value.question
|
||||||
|
// }
|
||||||
|
let ind = parseInt(this.current_index)+1
|
||||||
|
//let index_pdid = this.pd_index( single_ques.value.question_key)
|
||||||
|
let param ={
|
||||||
|
|
||||||
|
"pd_id": this.pd_all_details_data.pdMasterList.pd_id,
|
||||||
|
"formid": this.pd_all_details_data.FormData.form_id,
|
||||||
|
"image": this.prev_url,
|
||||||
|
"image_key": single_ques.value.question_key,
|
||||||
|
"location": null,
|
||||||
|
"is_show_report": "1",
|
||||||
|
"pd_image_alias_name": single_ques.value.question,
|
||||||
|
"pd_document_title": single_ques.value.question+' '+ind,
|
||||||
|
"pd_document_id": null
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
|
||||||
|
// this.SalesPdService.saveSalesPDImage(params,form_structure).subscribe(apiresult=>{
|
||||||
|
// if(apiresult['dataStatus']){
|
||||||
|
single_ques.controls.is_loader.setValue(false);
|
||||||
|
single_ques.controls.is_saved.setValue(true);
|
||||||
|
this.httpListener(apiresult);
|
||||||
|
form_structure.questions=this.quesAnsForm.getRawValue().questions
|
||||||
|
this.SalesPdService.updateSectionDataLocally(params,form_structure).subscribe(res=>{
|
||||||
|
})
|
||||||
|
storage_param.questions=this.quesAnsForm.getRawValue().questions
|
||||||
|
console.log( storage_param.questions)
|
||||||
|
let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
|
||||||
|
|
||||||
|
// this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
|
||||||
|
console.log(key_value)
|
||||||
|
storage_param.sales_pd_id=key_value
|
||||||
|
// this.salesPDProvider.insertData_Replace('sec'+storage_param.section_id,storage_param)
|
||||||
|
// })
|
||||||
|
// console.log("image saved successfully")
|
||||||
|
this.notifier.notify("success","Image Saved Successfully");
|
||||||
|
|
||||||
|
|
||||||
|
console.log(this.tmp_ques)
|
||||||
|
// this.tmp[1].controls.questions_group
|
||||||
|
// console.log(parent_index['controls'].questions_group)
|
||||||
|
// let control: any = parent_index['controls'].questions_group as FormArray
|
||||||
|
this.tmp.length
|
||||||
|
console.log(this.tmp[0])
|
||||||
|
let control: any = this.tmp[0].controls.questions_group
|
||||||
|
console.log(control)
|
||||||
|
console.log(this.current_index )
|
||||||
|
parent_index
|
||||||
|
|
||||||
|
control.push(this._fb.group({ 'questions': this._fb.array([]) }))
|
||||||
|
let sub_childControl: any = control.controls[this.current_index + 1].get('questions') as FormArray
|
||||||
|
console.log(sub_childControl)
|
||||||
|
console.log(data)
|
||||||
|
|
||||||
|
|
||||||
|
data.forEach((group_indi,arr_index )=> {
|
||||||
|
console.log(group_indi,arr_index)
|
||||||
|
delete group_indi.answer_value
|
||||||
|
sub_childControl.push(this.questionService.createValue(group_indi))
|
||||||
|
this.questionService.addAdditionalControl(group_indi, sub_childControl, arr_index)
|
||||||
|
this.tmp = []
|
||||||
|
|
||||||
|
this.loaderService.closeMatSpinnerDialog()
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
let data:any = apiresult
|
||||||
|
this.notifier.notify("info",data.msg
|
||||||
|
);
|
||||||
|
single_ques.controls.is_loader.setValue(false);
|
||||||
|
single_ques.controls.is_saved.setValue(false);
|
||||||
|
//this.SalesPdService.clear_local_key('sec'+storage_param.section_id)
|
||||||
|
// this.toastProvider.lenderappmessage("Something went wrong");
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
// this.ngxService.stop();
|
||||||
|
// }, err => {
|
||||||
|
// console.log('dk', err);
|
||||||
|
// //this.ngxService.stop();
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
addImage(event, index, parent_index, data,single_ques1) {
|
addImage(event, index, parent_index, data,single_ques1) {
|
||||||
// this.loaderService.showMatSpinnerDialog('Fetching Data...')
|
// this.loaderService.showMatSpinnerDialog('Fetching Data...')
|
||||||
// this.ngxService.start();
|
// this.ngxService.start();
|
||||||
@ -2071,6 +2410,10 @@ this.parent_control.push( parent_control)
|
|||||||
// SENDING SALES PD SECTION 9 STRUCTURE(photographs)
|
// SENDING SALES PD SECTION 9 STRUCTURE(photographs)
|
||||||
ngOnDestroy(){
|
ngOnDestroy(){
|
||||||
// console.clear()
|
// console.clear()
|
||||||
|
let callapi = localStorage.getItem('callApi')
|
||||||
|
if(callapi == '1'){
|
||||||
|
this.save_image()
|
||||||
|
}
|
||||||
console.log("dirty check",this.quesAnsForm.dirty)
|
console.log("dirty check",this.quesAnsForm.dirty)
|
||||||
if(this.local_ques_JSON.section_id == 9 && this.emittedFormGroup != null){
|
if(this.local_ques_JSON.section_id == 9 && this.emittedFormGroup != null){
|
||||||
// FOR SENDING THE IMAGE SECTION (SECTION ID 9) JSON Structure
|
// FOR SENDING THE IMAGE SECTION (SECTION ID 9) JSON Structure
|
||||||
@ -2191,18 +2534,18 @@ this.parent_control.push( parent_control)
|
|||||||
|
|
||||||
if(element.hasOwnProperty('answer_value') ){
|
if(element.hasOwnProperty('answer_value') ){
|
||||||
console.log(element)
|
console.log(element)
|
||||||
if(element.answer_value != ''){
|
if(element.answer_value != ''){
|
||||||
element.answer_value = 'saved'
|
element.answer_value = 'saved'
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
element.questions_group.forEach(e => {
|
element.questions_group.forEach(e => {
|
||||||
e.questions.forEach(c => {
|
e.questions.forEach(c => {
|
||||||
if(c.hasOwnProperty('answer_value') ){
|
if(c.hasOwnProperty('answer_value') ){
|
||||||
console.log(c)
|
console.log(c)
|
||||||
if(c.answer_value != ''){
|
if(c.answer_value != ''){
|
||||||
c.answer_value = 'saved'
|
c.answer_value = 'saved'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
@ -2263,4 +2606,5 @@ this.parent_control.push( parent_control)
|
|||||||
});
|
});
|
||||||
return ans
|
return ans
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<button [ngStyle]="{'color':role_id == '20' ? '#0d93a9' :'#f44336'}" (click)="singlecapture($event)" mat-button mat-raised-button [disabled]="sales_pd_type == '2'">Capture
|
<button [ngStyle]="{'color':role_id == '20' ? '#0d93a9' :'#f44336'}" (click)="singlecapture($event)" mat-button mat-raised-button >Capture
|
||||||
<mat-icon name="camera" *ngIf="!addMoreBtn">camera_alt</mat-icon>
|
<mat-icon name="camera" *ngIf="!addMoreBtn">camera_alt</mat-icon>
|
||||||
<mat-icon name="camera" *ngIf="addMoreBtn">add_a_photo</mat-icon>
|
<mat-icon name="camera" *ngIf="addMoreBtn">add_a_photo</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -76,6 +76,7 @@ export class SingleCaptureBtnComponent {
|
|||||||
this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe(
|
this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe(
|
||||||
result => {
|
result => {
|
||||||
console.log(result);
|
console.log(result);
|
||||||
|
localStorage.setItem('callApi','1')
|
||||||
this.singleDataEmitter.emit(result)
|
this.singleDataEmitter.emit(result)
|
||||||
this.loaderService.closeMatSpinnerDialog()
|
this.loaderService.closeMatSpinnerDialog()
|
||||||
},
|
},
|
||||||
|
|||||||
@ -0,0 +1,6 @@
|
|||||||
|
<button [ngStyle]="{'color':role_id == '20' ? '#0d93a9' :'#f44336'}" (click)="capture($event)" mat-button mat-raised-button >Capture Video
|
||||||
|
<mat-icon name="camera" *ngIf="!addMoreBtn">add_a_photo</mat-icon>
|
||||||
|
<mat-icon name="camera" *ngIf="addMoreBtn">add_a_photo</mat-icon>
|
||||||
|
</button>
|
||||||
|
<input type="file" (change)="capturedImage($event)" id="input-file2" name="file" accept="video/*" capture="user" style="display: none">
|
||||||
|
<!-- document.querySelector('#input-file').click() -->
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { VideoCaptureBtnComponent } from './video-capture-btn.component';
|
||||||
|
|
||||||
|
describe('VideoCaptureBtnComponent', () => {
|
||||||
|
let component: VideoCaptureBtnComponent;
|
||||||
|
let fixture: ComponentFixture<VideoCaptureBtnComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ VideoCaptureBtnComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(VideoCaptureBtnComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,60 @@
|
|||||||
|
import { Component, OnInit, Output, EventEmitter, Input, Injectable } from '@angular/core';
|
||||||
|
import { Ng2ImgMaxService } from 'ng2-img-max';
|
||||||
|
import { LoaderService } from 'app/shared/loaderService/loader.service';
|
||||||
|
@Component({
|
||||||
|
selector: 'app-video-capture-btn',
|
||||||
|
templateUrl: './video-capture-btn.component.html',
|
||||||
|
styleUrls: ['./video-capture-btn.component.scss']
|
||||||
|
})
|
||||||
|
export class VideoCaptureBtnComponent implements OnInit {
|
||||||
|
|
||||||
|
@Input() addMoreBtn;
|
||||||
|
@Output() videoDataEmitter = new EventEmitter
|
||||||
|
@Output() singleDataEmitter = new EventEmitter
|
||||||
|
sales_pd_type: string;
|
||||||
|
role_id: string;
|
||||||
|
|
||||||
|
constructor(private ng2ImgMax:Ng2ImgMaxService,private loaderService:LoaderService) {
|
||||||
|
this.role_id = localStorage.getItem('user_role')
|
||||||
|
this.sales_pd_type = localStorage.getItem('sales_pd_type')
|
||||||
|
console.log(this.sales_pd_type,this.videoDataEmitter)
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
console.log(this.addMoreBtn)
|
||||||
|
}
|
||||||
|
capturedImage(event){
|
||||||
|
this.loaderService.showMatSpinnerDialog('Fetching Data...')
|
||||||
|
console.log(event);
|
||||||
|
console.log(this.sales_pd_type,this.videoDataEmitter)
|
||||||
|
let imageData= event.target.files[0]
|
||||||
|
let files = imageData
|
||||||
|
// var URL = window.URL;
|
||||||
|
//var URL = window.URL || window.webkitURL;
|
||||||
|
var file = new Blob([files],{"type" : "video\/mp4"});
|
||||||
|
//var value = URL.createObjectURL(file);
|
||||||
|
console.log(file)
|
||||||
|
// this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe(
|
||||||
|
// result => {
|
||||||
|
let data ={file:file,name:event.target.files[0].name}
|
||||||
|
this.videoDataEmitter.emit(data)
|
||||||
|
//localStorage.setItem('callApi','1')
|
||||||
|
this.loaderService.closeMatSpinnerDialog()
|
||||||
|
// this.imageDataEmitter.emit(result)
|
||||||
|
// this.singleDataEmitter.emit(result)
|
||||||
|
// localStorage.setItem('callApi','1')
|
||||||
|
// this.loaderService.closeMatSpinnerDialog()
|
||||||
|
// },
|
||||||
|
// error => {
|
||||||
|
// console.log('😢 Oh no!', error);
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
|
||||||
|
}
|
||||||
|
capture(event){
|
||||||
|
event.preventDefault();
|
||||||
|
let element:HTMLElement = document.getElementById('input-file2') as HTMLElement
|
||||||
|
element.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -120,9 +120,9 @@
|
|||||||
<mat-icon>delete</mat-icon>
|
<mat-icon>delete</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
<div *ngIf="digilocker_access_Enabled == 1" >
|
<div *ngIf="digilocker_access_Enabled == 1" >
|
||||||
<button type="button" class="mr-1 hover-icon" mat-raised-button mat-icon-button (click)="digitallocker(details,i)" *ngIf="_generalForm.controls.individuals.value[i].is_main_applicant != true"
|
<button type="button" class="mr-1 hover-icon" mat-raised-button mat-icon-button (click)="digitallocker(details,i)"
|
||||||
matTooltip="DigiLocker " matTooltipPosition="below" [style.visibility]="_generalForm.controls.individuals.value[i].is_main_applicant == true ? 'hidden':'visible'">
|
matTooltip="DigiLocker " matTooltipPosition="below" >
|
||||||
<mat-icon>vpn_lock</mat-icon>
|
<mat-icon svgIcon="digilocker"></mat-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { Component, OnInit, Input, Output, Inject } from '@angular/core';
|
import { Component, OnInit, Input, Output, Inject } from '@angular/core';
|
||||||
import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms';
|
import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms';
|
||||||
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatTableDataSource } from '@angular/material';
|
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatTableDataSource, MatIconRegistry } from '@angular/material';
|
||||||
import { NotifierService } from 'angular-notifier';
|
import { NotifierService } from 'angular-notifier';
|
||||||
import { PdTrigerService } from './../../../../../pd-service/pd-triger.service';
|
import { PdTrigerService } from './../../../../../pd-service/pd-triger.service';
|
||||||
import { OtherApplicantDetailsComponent } from './../dialogue/other-applicant-details/other-applicant-details.component';
|
import { OtherApplicantDetailsComponent } from './../dialogue/other-applicant-details/other-applicant-details.component';
|
||||||
@ -13,6 +13,7 @@ import { ImageCropComponent } from '../dialogue/image-crop/image-crop.component'
|
|||||||
import { ReplaySubject } from 'rxjs';
|
import { ReplaySubject } from 'rxjs';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { FacialRecognitionModalComponent } from '../facial-recognition/facial-recognition-modal/facial-recognition-modal.component';
|
import { FacialRecognitionModalComponent } from '../facial-recognition/facial-recognition-modal/facial-recognition-modal.component';
|
||||||
|
import { DomSanitizer } from '@angular/platform-browser';
|
||||||
// import { ImageCropperComponent } from '../dialogue/image-cropper/image-cropper.component';
|
// import { ImageCropperComponent } from '../dialogue/image-cropper/image-cropper.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@ -108,8 +109,9 @@ export class GeneralInfoComponent implements OnInit {
|
|||||||
/********************** Declaration Section Ends Here *****************/
|
/********************** Declaration Section Ends Here *****************/
|
||||||
|
|
||||||
/** Constructor Section */
|
/** Constructor Section */
|
||||||
constructor(notifier: NotifierService, private _fb: FormBuilder, private _pd: PdTrigerService, private dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public pd_all_details: any, private dialogRef: MatDialogRef<GeneralInfoComponent>, private titleCase: TitleCasePipe, private imageRef: MatDialogRef<ImageCropComponent>) {
|
constructor(notifier: NotifierService, private _fb: FormBuilder, private _pd: PdTrigerService, private dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public pd_all_details: any, private dialogRef: MatDialogRef<GeneralInfoComponent>, private titleCase: TitleCasePipe, private imageRef: MatDialogRef<ImageCropComponent>,private sanitizer: DomSanitizer, private readonly matIconRegistry: MatIconRegistry) {
|
||||||
console.log(this.pd_all_details)
|
console.log(this.pd_all_details)
|
||||||
|
this.matIconRegistry.addSvgIcon('digilocker', this.sanitizer.bypassSecurityTrustResourceUrl('assets/images/digilocker.svg'));
|
||||||
this.pdid = this.pd_all_details.pdmaster_details.pd_id;
|
this.pdid = this.pd_all_details.pdmaster_details.pd_id;
|
||||||
this.lender_short_name = this.pd_all_details.pdmaster_details.lender_short_name;
|
this.lender_short_name = this.pd_all_details.pdmaster_details.lender_short_name;
|
||||||
this.parent_pdid = this.pd_all_details.pdmaster_details.parent_pd_id;
|
this.parent_pdid = this.pd_all_details.pdmaster_details.parent_pd_id;
|
||||||
|
|||||||
@ -90,8 +90,18 @@
|
|||||||
<div fxLayout="row wrap" fxLayoutAlign="start stretch" fxLayoutAlign.xs="space-between stretch">
|
<div fxLayout="row wrap" fxLayoutAlign="start stretch" fxLayoutAlign.xs="space-between stretch">
|
||||||
<h6 style="font-weight: bold;font-size:1.2rem" *ngIf="!val.img_data || (val.img_data != null && val.img_data.length == 0) || (val.img_data == null)">No Images Captured</h6>
|
<h6 style="font-weight: bold;font-size:1.2rem" *ngIf="!val.img_data || (val.img_data != null && val.img_data.length == 0) || (val.img_data == null)">No Images Captured</h6>
|
||||||
<div *ngFor="let multiple_img of val.img_data;let i=index" class ="image-div">
|
<div *ngFor="let multiple_img of val.img_data;let i=index" class ="image-div">
|
||||||
<img *ngIf="multiple_img.img_url != '' && multiple_img.img_url != null"
|
<img *ngIf="multiple_img.img_url != '' && multiple_img.img_url != null && val.content_type
|
||||||
|
== '1'"
|
||||||
class="image-class" [src]="multiple_img.img_url" [alt]="val.img_key" alt="image" (click)="openImage(multiple_img)"/>
|
class="image-class" [src]="multiple_img.img_url" [alt]="val.img_key" alt="image" (click)="openImage(multiple_img)"/>
|
||||||
|
<video
|
||||||
|
*ngIf="multiple_img.img_url != '' && multiple_img.img_url != null && val.content_type
|
||||||
|
== '2'"
|
||||||
|
[src]="multiple_img.img_url"
|
||||||
|
|
||||||
|
style=" width: 200px;padding-right: 10px;padding-left: 10px;
|
||||||
|
height: 170px;"
|
||||||
|
controls></video>
|
||||||
|
<!-- <span>{{multiple_img.}}</span> -->
|
||||||
|
|
||||||
<div class="image-label" fxLayout ="row" >
|
<div class="image-label" fxLayout ="row" >
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ export class ImagesAllComponent implements OnInit { imageData: any;
|
|||||||
this._pd.getPDImgDetails(this.params).subscribe(result=>{
|
this._pd.getPDImgDetails(this.params).subscribe(result=>{
|
||||||
if(result.dataStatus) {
|
if(result.dataStatus) {
|
||||||
this.records = result.records
|
this.records = result.records
|
||||||
|
console.log( this.records)
|
||||||
// if(this.records.is_cus_link_disabled != '1') {
|
// if(this.records.is_cus_link_disabled != '1') {
|
||||||
this.imageData =this.records.img_data;
|
this.imageData =this.records.img_data;
|
||||||
this.imageData.forEach(val=>{
|
this.imageData.forEach(val=>{
|
||||||
|
|||||||
@ -194,17 +194,18 @@ export class StartPd2Component implements OnInit, OnDestroy {
|
|||||||
dialogRef.afterClosed()
|
dialogRef.afterClosed()
|
||||||
.subscribe(dataresult => {
|
.subscribe(dataresult => {
|
||||||
if(dataresult.update_status==true){
|
if(dataresult.update_status==true){
|
||||||
setTimeout(()=>{
|
// setTimeout(()=>{
|
||||||
checkType==2 ? this.router.navigate(['../../viewpd', this.pdMasterList.parent_pd_id], {relativeTo: this.route}) : this.loadTemplates(this.startPD,2,this.randomString,this.fi_id);
|
checkType==2 ? this.router.navigate(['../../viewpd', this.pdMasterList.parent_pd_id], {relativeTo: this.route}) : this.loadTemplates(this.startPD,2,this.randomString,this.fi_id);
|
||||||
let data = {
|
let data = {
|
||||||
"pd_id": this.startPD,
|
"pd_id": this.startPD,
|
||||||
"regenerate":0,
|
"regenerate":0,
|
||||||
"random_string":this.randomString
|
"random_string":this.randomString
|
||||||
};
|
};
|
||||||
},2000)
|
this._pd.archivePDImages(data).subscribe(data => {
|
||||||
// this._pd.archivePDImages(data).subscribe(data => {
|
|
||||||
|
|
||||||
// })
|
})
|
||||||
|
//},2000)
|
||||||
|
|
||||||
let data1 = {
|
let data1 = {
|
||||||
"pd_id": this.startPD,
|
"pd_id": this.startPD,
|
||||||
"regenerate":0,
|
"regenerate":0,
|
||||||
|
|||||||
@ -144,8 +144,10 @@ export class ImageVideoComponent implements OnInit {
|
|||||||
// disableClose: true,
|
// disableClose: true,
|
||||||
// panelClass:'video-chat'
|
// panelClass:'video-chat'
|
||||||
// })
|
// })
|
||||||
|
let user = localStorage.getItem('videocall_userid')
|
||||||
if(event == 'PDGenie'){
|
if(event == 'PDGenie'){
|
||||||
let url = window.location.origin+'/vchat/#/chat/'+this.master.random_string+';id='+this.master.pd_id+';type=2'
|
let url = window.location.origin+'/vchat/#/chat/'+this.master.random_string+';id='+this.master.pd_id+';type=2;uid='+user
|
||||||
|
|
||||||
window.open(url,'_blank')
|
window.open(url,'_blank')
|
||||||
} else if(event == 'G_Meet'){
|
} else if(event == 'G_Meet'){
|
||||||
let url = this.google_Meet_Link
|
let url = this.google_Meet_Link
|
||||||
|
|||||||
@ -193,6 +193,12 @@ export class ViewPdComponent implements OnInit, OnDestroy {
|
|||||||
this.mandatoryFieldsValidations = masterData[1].mandatory_fields;
|
this.mandatoryFieldsValidations = masterData[1].mandatory_fields;
|
||||||
this.pd_QC_Rating = Number(this.pdMasterData.qc_rating);
|
this.pd_QC_Rating = Number(this.pdMasterData.qc_rating);
|
||||||
this.pdApplicantData = data.records.applicants_details;
|
this.pdApplicantData = data.records.applicants_details;
|
||||||
|
let tmp =[]
|
||||||
|
this.pdApplicantData.forEach(element => {
|
||||||
|
tmp.push(element.applicant_name)
|
||||||
|
});
|
||||||
|
console.log(tmp)
|
||||||
|
localStorage.setItem('pdApplicantData',JSON.stringify(tmp))
|
||||||
this.pdApplicantData = this.pdApplicantData.filter(appt => appt.applicant_type != 2);
|
this.pdApplicantData = this.pdApplicantData.filter(appt => appt.applicant_type != 2);
|
||||||
this.CustomerSegmentAbbr = this.pdMasterData[0].customer_segment_abbr;
|
this.CustomerSegmentAbbr = this.pdMasterData[0].customer_segment_abbr;
|
||||||
this.pdDocumentsData = data.records.pd_documnets;
|
this.pdDocumentsData = data.records.pd_documnets;
|
||||||
@ -796,10 +802,14 @@ export class ViewPdComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onClickVideoChat(master) {
|
onClickVideoChat(master) {
|
||||||
let videoChatLink = window.location.origin+'/vchat/#/chat/'+this.pdMasterData[0].random_string+';id='+this.viewID+';type=1'
|
console.log(master)
|
||||||
|
let user = localStorage.getItem('videocall_userid')
|
||||||
|
let videoChatLink = window.location.origin+'/vchat/#/chat/'+this.pdMasterData[0].random_string+';id='+this.viewID+';type=1;uid='+user
|
||||||
|
|
||||||
console.log(videoChatLink)
|
console.log(videoChatLink)
|
||||||
const dialogApplicant = this.dialog.open(ImageVideoComponent, {
|
const dialogApplicant = this.dialog.open(ImageVideoComponent, {
|
||||||
data: {masterDetails:master,videoChatLink:videoChatLink,applicantNo:this.pdApplicantData[0].mobile_no,flag:1},
|
data: {masterDetails:master,videoChatLink:videoChatLink,applicantNo:this.pdApplicantData[0].mobile_no,flag:1,userid:'fk_pd_allocated_to'
|
||||||
|
},
|
||||||
// position: { right: '0' },
|
// position: { right: '0' },
|
||||||
maxWidth: '70vw',
|
maxWidth: '70vw',
|
||||||
maxHeight: '60vw',
|
maxHeight: '60vw',
|
||||||
|
|||||||
@ -174,6 +174,7 @@ import { ImgExifService } from 'ng2-img-max/dist/src/img-exif.service';
|
|||||||
import { ImgMaxPXSizeService } from 'ng2-img-max/dist/src/img-maxpx-size.service';
|
import { ImgMaxPXSizeService } from 'ng2-img-max/dist/src/img-maxpx-size.service';
|
||||||
import { Ng2ImgMaxModule } from 'ng2-img-max';
|
import { Ng2ImgMaxModule } from 'ng2-img-max';
|
||||||
import { CameraService } from './list-pd/start-pd/forms-dynamic/ques-template/providers/camera/camera.service';
|
import { CameraService } from './list-pd/start-pd/forms-dynamic/ques-template/providers/camera/camera.service';
|
||||||
|
import { VideoCaptureBtnComponent } from './list-pd/start-pd/forms-dynamic/ques-template/video-capture-btn/video-capture-btn.component';
|
||||||
/**
|
/**
|
||||||
* Custom angular notifier options
|
* Custom angular notifier options
|
||||||
*/
|
*/
|
||||||
@ -220,7 +221,7 @@ const pdCustomNotifierOptions: NotifierOptions = {
|
|||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [QuesTemplateComponent,TelePdAllocationComponent, FinancialInfoComponent, BusinessInfoComponent, EmploymentInfoComponent, StockComponent, BankingDetailsComponent, ListPdComponent, FamilyDetailsComponent, AddressComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent,VendorPdAllocationComponent, DuplicatePdComponent,FacialRecognitionModalComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent,StartPd2Component, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, CurrentLoanComponent, AssetsInfoComponent, LoanDetailsComponent, OtherIncomeComponent, SupplierInfoComponent, PersonalInfoComponent, LenderRepresentativeComponent, PdReportComponent, AssessedIncomeComponent, AllocationViewMoreComponent, PdRequirementComponent,PdCollectedDocsComponent, GeneralInfoComponent, ModelEditPdReportComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, DialogChangeCurrentVenrsion, FinalRemarksComponent, BusinessOtherFamilyMemberComponent, QcReviewComponent, BusinessInfoGroupComponent, SearchRelationPipe, RupeeCurrencyFormatPipe, NumberToWordsPipe, DeleteRecordsCountPipe, BusinessAssetsInfoComponent, BusinessBankingDetailsComponent, SalesDetailsComponent, DailySalesDetailsComponent, SalesCalculationComponent, ManageSalesComponent, PurchaseDetailsComponent, BusinessExpenseDetailsComponent, HouseHoldDetailsComponent, OtherBusinessIncomeDetailsComponent, ManagePurchaseComponent, ManageBusinesExpenseComponent, ManageHouseHoldComponent, ManageOtherBusinessIncomeComponent, GrossProfitCalculationComponent, ManageDailySalesComponent, PdStatusChangeDialogueComponent, PdLocatedMapViewDirective, ViewLocationComponent, GetAnswerableFormsPipe, ConfirmAiDetailsComponent, RentalVerificationComponent, InitiateAdditionalPdComponent ,ManageDailyPurchaseComponent, DailyPurchaseDetailsComponent, ManageRentalVerificationComponent, FuturePlansAndBusinessEnvironmentComponent, ImageCropComponent,CropToolsComponent,PurchaseCalculationComponent,QueriesDocsComponent, ImageDocsComponent,CustomTitleCaseDirective, SpeedDialFabComponent,VideoPlayerComponent,
|
declarations: [QuesTemplateComponent,TelePdAllocationComponent, FinancialInfoComponent, BusinessInfoComponent, EmploymentInfoComponent, StockComponent, BankingDetailsComponent, ListPdComponent, FamilyDetailsComponent, AddressComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent,VendorPdAllocationComponent, DuplicatePdComponent,FacialRecognitionModalComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent,StartPd2Component, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, CurrentLoanComponent, AssetsInfoComponent, LoanDetailsComponent, OtherIncomeComponent, SupplierInfoComponent, PersonalInfoComponent, LenderRepresentativeComponent, PdReportComponent, AssessedIncomeComponent, AllocationViewMoreComponent, PdRequirementComponent,PdCollectedDocsComponent, GeneralInfoComponent, ModelEditPdReportComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, DialogChangeCurrentVenrsion, FinalRemarksComponent, BusinessOtherFamilyMemberComponent, QcReviewComponent, BusinessInfoGroupComponent, SearchRelationPipe, RupeeCurrencyFormatPipe, NumberToWordsPipe, DeleteRecordsCountPipe, BusinessAssetsInfoComponent, BusinessBankingDetailsComponent, SalesDetailsComponent, DailySalesDetailsComponent, SalesCalculationComponent, ManageSalesComponent, PurchaseDetailsComponent, BusinessExpenseDetailsComponent, HouseHoldDetailsComponent, OtherBusinessIncomeDetailsComponent, ManagePurchaseComponent, ManageBusinesExpenseComponent, ManageHouseHoldComponent, ManageOtherBusinessIncomeComponent, GrossProfitCalculationComponent, ManageDailySalesComponent, PdStatusChangeDialogueComponent, PdLocatedMapViewDirective, ViewLocationComponent, GetAnswerableFormsPipe, ConfirmAiDetailsComponent, RentalVerificationComponent, InitiateAdditionalPdComponent ,ManageDailyPurchaseComponent, DailyPurchaseDetailsComponent, ManageRentalVerificationComponent, FuturePlansAndBusinessEnvironmentComponent, ImageCropComponent,CropToolsComponent,PurchaseCalculationComponent,QueriesDocsComponent, ImageDocsComponent,CustomTitleCaseDirective, SpeedDialFabComponent,VideoPlayerComponent,
|
||||||
DynamicFormComponent,DynamicQuestionTemplateComponent, ImagesAllComponent,AnswerOptionCreateDialogComponent,FormComponent,FormGroupComponent, ImageVideoComponent,CaptureBtnComponent, SingleCaptureBtnComponent,],
|
DynamicFormComponent,DynamicQuestionTemplateComponent, ImagesAllComponent,AnswerOptionCreateDialogComponent,FormComponent,FormGroupComponent, ImageVideoComponent,CaptureBtnComponent, SingleCaptureBtnComponent,VideoCaptureBtnComponent],
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
ManagePdRoutingModule,
|
ManagePdRoutingModule,
|
||||||
@ -271,7 +272,7 @@ const pdCustomNotifierOptions: NotifierOptions = {
|
|||||||
MatVideoModule
|
MatVideoModule
|
||||||
|
|
||||||
],
|
],
|
||||||
exports: [FacialRecognitionModalComponent,DuplicatePdComponent,VendorPdAllocationComponent,PdLocatedMapViewDirective, PdAllocationComponent, SmartPdAllocationComponent, TelePdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent,StartPd2Component, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, SupplierInfoComponent, PersonalInfoComponent, CurrentLoanComponent, LoanDetailsComponent, OtherIncomeComponent, AssetsInfoComponent, AddressComponent, FamilyDetailsComponent, BankingDetailsComponent, StockComponent, EmploymentInfoComponent, BusinessInfoComponent, FinancialInfoComponent, LenderRepresentativeComponent, AssessedIncomeComponent, AllocationViewMoreComponent, GeneralInfoComponent, PdRequirementComponent,PdCollectedDocsComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, BusinessOtherFamilyMemberComponent, BusinessInfoGroupComponent,DailySalesDetailsComponent, SalesCalculationComponent, PurchaseDetailsComponent, BusinessExpenseDetailsComponent, HouseHoldDetailsComponent, OtherBusinessIncomeDetailsComponent, ManageSalesComponent, ManagePurchaseComponent, ManageBusinesExpenseComponent, ManageHouseHoldComponent, ManageOtherBusinessIncomeComponent, GrossProfitCalculationComponent, ManageDailySalesComponent, PdStatusChangeDialogueComponent, ViewLocationComponent, ConfirmAiDetailsComponent, RentalVerificationComponent, InitiateAdditionalPdComponent, DailyPurchaseDetailsComponent, ManageDailyPurchaseComponent,ManageRentalVerificationComponent,ImageCropComponent,CropToolsComponent,PurchaseCalculationComponent,CaptureBtnComponent, SingleCaptureBtnComponent,],
|
exports: [FacialRecognitionModalComponent,DuplicatePdComponent,VendorPdAllocationComponent,PdLocatedMapViewDirective, PdAllocationComponent, SmartPdAllocationComponent, TelePdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent,StartPd2Component, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, SupplierInfoComponent, PersonalInfoComponent, CurrentLoanComponent, LoanDetailsComponent, OtherIncomeComponent, AssetsInfoComponent, AddressComponent, FamilyDetailsComponent, BankingDetailsComponent, StockComponent, EmploymentInfoComponent, BusinessInfoComponent, FinancialInfoComponent, LenderRepresentativeComponent, AssessedIncomeComponent, AllocationViewMoreComponent, GeneralInfoComponent, PdRequirementComponent,PdCollectedDocsComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, BusinessOtherFamilyMemberComponent, BusinessInfoGroupComponent,DailySalesDetailsComponent, SalesCalculationComponent, PurchaseDetailsComponent, BusinessExpenseDetailsComponent, HouseHoldDetailsComponent, OtherBusinessIncomeDetailsComponent, ManageSalesComponent, ManagePurchaseComponent, ManageBusinesExpenseComponent, ManageHouseHoldComponent, ManageOtherBusinessIncomeComponent, GrossProfitCalculationComponent, ManageDailySalesComponent, PdStatusChangeDialogueComponent, ViewLocationComponent, ConfirmAiDetailsComponent, RentalVerificationComponent, InitiateAdditionalPdComponent, DailyPurchaseDetailsComponent, ManageDailyPurchaseComponent,ManageRentalVerificationComponent,ImageCropComponent,CropToolsComponent,PurchaseCalculationComponent,CaptureBtnComponent, SingleCaptureBtnComponent,VideoCaptureBtnComponent],
|
||||||
providers: [PdTrigerService,CameraService, GetGeometricLocationService,{provide: MAT_DATE_LOCALE, useValue: 'en-GB'},
|
providers: [PdTrigerService,CameraService, GetGeometricLocationService,{provide: MAT_DATE_LOCALE, useValue: 'en-GB'},
|
||||||
{provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},
|
{provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},
|
||||||
{provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS}, PdLocatedMapViewDirective,QuesFormService],
|
{provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS}, PdLocatedMapViewDirective,QuesFormService],
|
||||||
|
|||||||
@ -0,0 +1,87 @@
|
|||||||
|
|
||||||
|
<h2 mat-dialog-title class="paragraph_change">
|
||||||
|
<div fxFlex="70" align="left" style="padding: 10px !important;">
|
||||||
|
Attach Digilocker Document's To Report
|
||||||
|
</div>
|
||||||
|
<div fxFlex="30" align="end" style="padding: 10px !important;">
|
||||||
|
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="right" mat-dialog-close><mat-icon>close</mat-icon></button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</h2>
|
||||||
|
<h5 style="text-align: center;">{{message}}</h5>
|
||||||
|
<mat-dialog-content *ngIf="digilock_list.length > 0">
|
||||||
|
<!-- <mat-card *ngFor="let list of digilock_list;let quesIndex=index">
|
||||||
|
|
||||||
|
<mat-card-content>{{list.applicant_name
|
||||||
|
}}</mat-card-content>
|
||||||
|
|
||||||
|
</mat-card> -->
|
||||||
|
<span style="padding-bottom: 15%;">Available Digilocker Documents</span>
|
||||||
|
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
|
||||||
|
|
||||||
|
<!-- Checkbox Column -->
|
||||||
|
<ng-container matColumnDef="select">
|
||||||
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
|
<mat-checkbox (change)="$event ? toggleAllRows() : null"
|
||||||
|
[checked]="selection.hasValue() && isAllSelected()"
|
||||||
|
[indeterminate]="selection.hasValue() && !isAllSelected()"
|
||||||
|
[aria-label]="checkboxLabel()">
|
||||||
|
</mat-checkbox>
|
||||||
|
</th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<mat-checkbox (click)="$event.stopPropagation()"
|
||||||
|
(change)="$event ? selection.toggle(row) : null"
|
||||||
|
[checked]="selection.isSelected(row)"
|
||||||
|
[aria-label]="checkboxLabel(row)">
|
||||||
|
</mat-checkbox>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<!-- Position Column -->
|
||||||
|
<ng-container matColumnDef="applicant_name">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> Applicant Name </th>
|
||||||
|
<td mat-cell *matCellDef="let element"> {{element.applicant_name}} </td>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="pd_document_name">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> Document Name </th>
|
||||||
|
<td mat-cell *matCellDef="let element"> {{element.pd_document_name}} </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="url">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> View </th>
|
||||||
|
<td mat-cell *matCellDef="let element">
|
||||||
|
<div >
|
||||||
|
|
||||||
|
<button mat-button mat-icon-button class="hover-icon" type="button" color="primary" (click)="view(element.url)"
|
||||||
|
matTooltip="View" matTooltipPosition="top" ><mat-icon>visibility</mat-icon></button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<!-- Symbol Column -->
|
||||||
|
<!-- <ng-container matColumnDef="symbol">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> Symbol </th>
|
||||||
|
<td mat-cell *matCellDef="let element"> {{element.symbol}} </td>
|
||||||
|
</ng-container> -->
|
||||||
|
|
||||||
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||||
|
<tr mat-row *matRowDef="let row; columns: displayedColumns;"
|
||||||
|
>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Copyright 2022 Google LLC. All Rights Reserved.
|
||||||
|
Use of this source code is governed by an MIT-style license that
|
||||||
|
can be found in the LICENSE file at https://angular.io/license -->
|
||||||
|
|
||||||
|
|
||||||
|
</mat-dialog-content>
|
||||||
|
<mat-dialog-actions align="end" >
|
||||||
|
|
||||||
|
<button mat-raised-button mat-dialog-close (click)="confirmPdf()" ><strong> Save </strong></button>
|
||||||
|
<!-- <button class="submit-btn" color="primary" mat-raised-button type="submit" >
|
||||||
|
Submit
|
||||||
|
</button> -->
|
||||||
|
|
||||||
|
</mat-dialog-actions>
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
.paragraph_change {
|
||||||
|
color: #fff !important;
|
||||||
|
background-color: #e00201 !important;
|
||||||
|
}
|
||||||
|
::ng-deep { .no-padding > mat-dialog-container {
|
||||||
|
// background: black;
|
||||||
|
padding: 0;
|
||||||
|
// overflow-y: scroll !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.example-full-width {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.mat-dialog-content{
|
||||||
|
margin:0px !important;
|
||||||
|
}
|
||||||
|
// mat-placeholder{
|
||||||
|
// margin-top: 20px;
|
||||||
|
// word-wrap: break-word;
|
||||||
|
// }
|
||||||
|
// input{
|
||||||
|
// height:40px;
|
||||||
|
// }
|
||||||
|
|
||||||
|
.mat-form-field-label {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea.mat-input-element {
|
||||||
|
padding: 0px 0;
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-input-placeholder {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
mat-form-field {
|
||||||
|
margin: 0 2%;
|
||||||
|
}
|
||||||
|
.paragraph_change {
|
||||||
|
color: #fff !important;
|
||||||
|
background-color: #e00201 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.mat-elevation-z8{
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { PdfMergeComponent } from './pdf-merge.component';
|
||||||
|
|
||||||
|
describe('PdfMergeComponent', () => {
|
||||||
|
let component: PdfMergeComponent;
|
||||||
|
let fixture: ComponentFixture<PdfMergeComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ PdfMergeComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(PdfMergeComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,109 @@
|
|||||||
|
import { SelectionModel } from '@angular/cdk/collections';
|
||||||
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
|
import { MatDialogRef, MatTableDataSource, MAT_DIALOG_DATA } from '@angular/material';
|
||||||
|
import { QcService } from 'app/quality-check/qc-service/qc.service';
|
||||||
|
export interface PeriodicElement {
|
||||||
|
name: string;
|
||||||
|
position: number;
|
||||||
|
weight: number;
|
||||||
|
symbol: string;
|
||||||
|
}
|
||||||
|
@Component({
|
||||||
|
selector: 'app-pdf-merge',
|
||||||
|
templateUrl: './pdf-merge.component.html',
|
||||||
|
styleUrls: ['./pdf-merge.component.scss']
|
||||||
|
})
|
||||||
|
|
||||||
|
export class PdfMergeComponent implements OnInit {
|
||||||
|
message: any;
|
||||||
|
digilock_list: any =[];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ELEMENT_DATA: PeriodicElement[] = [
|
||||||
|
{position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H'},
|
||||||
|
{position: 2, name: 'Helium', weight: 4.0026, symbol: 'He'},
|
||||||
|
{position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li'},
|
||||||
|
{position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be'},
|
||||||
|
{position: 5, name: 'Boron', weight: 10.811, symbol: 'B'},
|
||||||
|
|
||||||
|
];
|
||||||
|
displayedColumns: string[] = ['select','applicant_name','pd_document_name','url'];
|
||||||
|
|
||||||
|
selection = new SelectionModel<PeriodicElement>(true, []);
|
||||||
|
dataSource: any =[];
|
||||||
|
|
||||||
|
constructor(private dialogRef: MatDialogRef<PdfMergeComponent>,
|
||||||
|
@Inject(MAT_DIALOG_DATA) public data: any, public pdTrigerService: QcService) { }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.getPdfApi()
|
||||||
|
}
|
||||||
|
|
||||||
|
getPdfApi(){
|
||||||
|
console.log( this.data)
|
||||||
|
let data = {"pd_id": this.data.pd_id}
|
||||||
|
this.pdTrigerService.applicantWiseDigiLockerDocs(data).subscribe(data => {
|
||||||
|
let dataresult:any = data
|
||||||
|
console.log(dataresult)
|
||||||
|
if (dataresult.status == 200) {
|
||||||
|
this.digilock_list = dataresult.records
|
||||||
|
this.dataSource = new MatTableDataSource<PeriodicElement>(this.digilock_list);
|
||||||
|
console.log( this.dataSource)
|
||||||
|
|
||||||
|
}else{
|
||||||
|
this.message = dataresult.msg
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/** Whether the number of selected elements matches the total number of rows. */
|
||||||
|
isAllSelected() {
|
||||||
|
const numSelected = this.selection.selected.length;
|
||||||
|
const numRows = this.dataSource.data.length;
|
||||||
|
// console.log( numSelected,numRows)
|
||||||
|
return numSelected === numRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Selects all rows if they are not all selected; otherwise clear selection. */
|
||||||
|
toggleAllRows() {
|
||||||
|
if (this.isAllSelected()) {
|
||||||
|
this.selection.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.selection.select(...this.dataSource.data);
|
||||||
|
// console.log( this.selection)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** The label for the checkbox on the passed row */
|
||||||
|
checkboxLabel(row?: PeriodicElement): string {
|
||||||
|
if (!row) {
|
||||||
|
return `${this.isAllSelected() ? 'deselect' : 'select'} all`;
|
||||||
|
}
|
||||||
|
// console.log( this.selection)
|
||||||
|
return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;
|
||||||
|
|
||||||
|
}
|
||||||
|
view(url){
|
||||||
|
|
||||||
|
window.open(url, "_blank")
|
||||||
|
|
||||||
|
}
|
||||||
|
confirmPdf(){
|
||||||
|
console.log( this.selection)
|
||||||
|
if(this.selection.selected.length > 0){
|
||||||
|
console.log(this.selection.selected)
|
||||||
|
let tmp =[]
|
||||||
|
this.selection.selected.forEach((element:any) => {
|
||||||
|
|
||||||
|
tmp.push({'pd_document_id' :element.pd_document_id})
|
||||||
|
|
||||||
|
});
|
||||||
|
console.log(tmp)
|
||||||
|
// localStorage.setItem('pdf-merge',JSON.stringify(tmp))
|
||||||
|
this.dialogRef.close(tmp)
|
||||||
|
}else{
|
||||||
|
this.dialogRef.close([])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -43,35 +43,9 @@
|
|||||||
<!-- <span class="mr-1 ml-1">View More</span> -->
|
<!-- <span class="mr-1 ml-1">View More</span> -->
|
||||||
<span class="mr-1 ml-1">PD Report</span>
|
<span class="mr-1 ml-1">PD Report</span>
|
||||||
<span class="empty-spacer"></span>
|
<span class="empty-spacer"></span>
|
||||||
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Score" matTooltipPosition="above" (click)="showAction()" ><mat-icon>arrow_upward</mat-icon></button>
|
|
||||||
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Save" matTooltipPosition="above" (click)="getFrameContent(IFrameContent)" style="margin-right: 2px;"><mat-icon>save</mat-icon></button>
|
|
||||||
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="QC Notes" matTooltipPosition="above" (click)="reportReview('REMARKS')" style="margin-right: 2px;"><mat-icon>notes</mat-icon></button>
|
|
||||||
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="PD Officer Notes" matTooltipPosition="above" (click)="reportReview('pd_officer_notes')" style="margin-right: 2px;"><mat-icon>bookmarks</mat-icon></button>
|
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="PD Officer Notes" matTooltipPosition="above" (click)="reportReview('pd_officer_notes')" style="margin-right: 2px;"><mat-icon>bookmarks</mat-icon></button>
|
||||||
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="QC Complete" matTooltipPosition="above" (click)="reportReview('COMPLETE')" style="margin-right: 2px;"><mat-icon>done_all</mat-icon></button>
|
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="QC Notes" matTooltipPosition="above" (click)="reportReview('REMARKS')" style="margin-right: 2px;"><mat-icon svgIcon="notes"></mat-icon></button>
|
||||||
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Re-generate Map" matTooltipPosition="above" (click)="reportReview('GEOLOCATION')" style="margin-right: 2px;"><mat-icon>map</mat-icon></button>
|
<button *ngIf="!spinner_access" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Download PD Pictures (PDF)" matTooltipPosition="above" [matMenuTriggerFor]="menu2">
|
||||||
|
|
||||||
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Re-generate Report" matTooltipPosition="above" (click)="reGeneratePFReport()"><mat-icon>autorenew</mat-icon></button>
|
|
||||||
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Download PD Report" matTooltipPosition="above" (click)="downloadPDReport()"><mat-icon>get_app</mat-icon></button>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- <button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Download PD Pictures" matTooltipPosition="above" (click)="archivePDImages()"><mat-icon>save_alt</mat-icon></button>-->
|
|
||||||
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Download PD Pictures" matTooltipPosition="above" [matMenuTriggerFor]="menu1">
|
|
||||||
|
|
||||||
<mat-icon>save_alt</mat-icon>
|
|
||||||
</button>
|
|
||||||
<mat-menu #menu1="matMenu">
|
|
||||||
<button mat-menu-item (click)="archivePDImages(1)">
|
|
||||||
<mat-icon>donut_large</mat-icon>
|
|
||||||
<span>Re-Generate</span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button mat-menu-item (click)="archivePDImages(0)">
|
|
||||||
<mat-icon>cloud_download</mat-icon>
|
|
||||||
<span>Download</span>
|
|
||||||
</button>
|
|
||||||
</mat-menu>
|
|
||||||
|
|
||||||
<button *ngIf="!spinner_access" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Download PD Pictures (PDF)" matTooltipPosition="above" [matMenuTriggerFor]="menu2">
|
|
||||||
<mat-icon>picture_as_pdf</mat-icon></button>
|
<mat-icon>picture_as_pdf</mat-icon></button>
|
||||||
<mat-menu #menu2="matMenu">
|
<mat-menu #menu2="matMenu">
|
||||||
<button mat-menu-item (click)="downloadPDImagesPDF(1)">
|
<button mat-menu-item (click)="downloadPDImagesPDF(1)">
|
||||||
@ -84,6 +58,36 @@
|
|||||||
<span>Download</span>
|
<span>Download</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
|
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Download PD Pictures (zip)" matTooltipPosition="above" [matMenuTriggerFor]="menu1">
|
||||||
|
|
||||||
|
<mat-icon svgIcon="pic"></mat-icon>
|
||||||
|
</button>
|
||||||
|
<mat-menu #menu1="matMenu">
|
||||||
|
<button mat-menu-item (click)="archivePDImages(1)">
|
||||||
|
<mat-icon>donut_large</mat-icon>
|
||||||
|
<span>Re-Generate</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button mat-menu-item (click)="archivePDImages(0)">
|
||||||
|
<mat-icon>cloud_download</mat-icon>
|
||||||
|
<span>Download</span>
|
||||||
|
</button>
|
||||||
|
</mat-menu>
|
||||||
|
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Download PD Report" matTooltipPosition="above" (click)="downloadPDReport()"><mat-icon>get_app</mat-icon></button>
|
||||||
|
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Re-generate Report" matTooltipPosition="above" (click)="reGeneratePFReport()"><mat-icon>autorenew</mat-icon></button>
|
||||||
|
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Save" matTooltipPosition="above" (click)="getFrameContent(IFrameContent)" style="margin-right: 2px;"><mat-icon>save</mat-icon></button>
|
||||||
|
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip=" View / Select Digilocker Documents" matTooltipPosition="above" (click)="PdfMerge()" ><mat-icon svgIcon="digilocker"></mat-icon></button>
|
||||||
|
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Re-generate Map" matTooltipPosition="above" (click)="reportReview('GEOLOCATION')" style="margin-right: 2px;"><mat-icon>map</mat-icon></button>
|
||||||
|
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Score" matTooltipPosition="above" (click)="showAction()" ><mat-icon svgIcon="score"></mat-icon></button>
|
||||||
|
<button *ngIf="pdReportRecords.pd_status!='QC_COMPLETED'" mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="QC Complete" matTooltipPosition="above" (click)="reportReview('COMPLETE')" style="margin-right: 2px;"><mat-icon>done_all</mat-icon></button>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Download PD Pictures" matTooltipPosition="above" (click)="archivePDImages()"><mat-icon>save_alt</mat-icon></button>-->
|
||||||
|
|
||||||
|
|
||||||
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdViewCompoent()" style="margin-right: 2px;"><mat-icon>close</mat-icon></button>
|
<button mat-raised-button mat-icon-button class="mr-1 ml-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdViewCompoent()" style="margin-right: 2px;"><mat-icon>close</mat-icon></button>
|
||||||
</mat-toolbar>
|
</mat-toolbar>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import { QcService } from './../../qc-service/qc.service';
|
|||||||
import {
|
import {
|
||||||
MatDialog,
|
MatDialog,
|
||||||
MatDialogRef,
|
MatDialogRef,
|
||||||
|
MatIconRegistry,
|
||||||
MAT_DIALOG_DATA,
|
MAT_DIALOG_DATA,
|
||||||
} from "@angular/material";
|
} from "@angular/material";
|
||||||
import{MatSidenav} from '@angular/material/sidenav'
|
import{MatSidenav} from '@angular/material/sidenav'
|
||||||
@ -19,6 +20,7 @@ import { QcReviewComponent } from './qc-review/qc-review.component';
|
|||||||
import { HttpResponse } from "@angular/common/http";
|
import { HttpResponse } from "@angular/common/http";
|
||||||
import { environment } from 'environments/environment';
|
import { environment } from 'environments/environment';
|
||||||
import { QcNewComponent } from './qc-new/qc-new.component';
|
import { QcNewComponent } from './qc-new/qc-new.component';
|
||||||
|
import { PdfMergeComponent } from './pdf-merge/pdf-merge.component';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -34,6 +36,7 @@ export class QcPdReportComponent implements OnInit {
|
|||||||
reason = '';
|
reason = '';
|
||||||
loadComponent: boolean=false;
|
loadComponent: boolean=false;
|
||||||
observer: MutationObserver;
|
observer: MutationObserver;
|
||||||
|
pdf_merge_data: any = []
|
||||||
|
|
||||||
close(reason: string) {
|
close(reason: string) {
|
||||||
this.reason = reason;
|
this.reason = reason;
|
||||||
@ -79,8 +82,12 @@ export class QcPdReportComponent implements OnInit {
|
|||||||
// ];
|
// ];
|
||||||
constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
|
constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
|
||||||
private router: Router, public pdTrigerService: QcService, private listPDComponent: QcListComponent,
|
private router: Router, public pdTrigerService: QcService, private listPDComponent: QcListComponent,
|
||||||
private dialog: MatDialog, private sanitizer: DomSanitizer) {
|
private dialog: MatDialog, private sanitizer: DomSanitizer, private readonly matIconRegistry: MatIconRegistry,) {
|
||||||
this.startPD = this.route.snapshot.params['pdid'];
|
this.startPD = this.route.snapshot.params['pdid'];
|
||||||
|
this.matIconRegistry.addSvgIcon('digilocker', this.sanitizer.bypassSecurityTrustResourceUrl('assets/images/digilocker.svg'));
|
||||||
|
this.matIconRegistry.addSvgIcon('score', this.sanitizer.bypassSecurityTrustResourceUrl('assets/images/score.svg'));
|
||||||
|
this.matIconRegistry.addSvgIcon('notes', this.sanitizer.bypassSecurityTrustResourceUrl('assets/images/notes.svg'));
|
||||||
|
this.matIconRegistry.addSvgIcon('pic', this.sanitizer.bypassSecurityTrustResourceUrl('assets/images/picture_download.svg'));
|
||||||
let encryptReportRandomString = atob(this.route.snapshot.params['string']);
|
let encryptReportRandomString = atob(this.route.snapshot.params['string']);
|
||||||
// this.reportRandomString = this.apiUrl+'getPDReportHTML/'+encryptReportRandomString+'/'+this.startPD;
|
// this.reportRandomString = this.apiUrl+'getPDReportHTML/'+encryptReportRandomString+'/'+this.startPD;
|
||||||
|
|
||||||
@ -189,7 +196,8 @@ export class QcPdReportComponent implements OnInit {
|
|||||||
reGeneratePFReport() {
|
reGeneratePFReport() {
|
||||||
let data = {
|
let data = {
|
||||||
"pd_id": this.startPD,
|
"pd_id": this.startPD,
|
||||||
"random_string":atob(this.route.snapshot.params['string'])
|
"random_string":atob(this.route.snapshot.params['string']),
|
||||||
|
"digilocker_merge":this.pdf_merge_data
|
||||||
// "regenerate": "1"
|
// "regenerate": "1"
|
||||||
};
|
};
|
||||||
this.pdTrigerService.getPDReportFinalDocument(data).subscribe(data => {
|
this.pdTrigerService.getPDReportFinalDocument(data).subscribe(data => {
|
||||||
@ -424,7 +432,34 @@ export class QcPdReportComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PdfMerge(){
|
||||||
|
const dialogRef = this.dialog.open(PdfMergeComponent, {
|
||||||
|
data:{
|
||||||
|
"pd_id":this.startPD,
|
||||||
|
},
|
||||||
|
// position: { right: '0'},
|
||||||
|
disableClose: true,
|
||||||
|
minHeight:'50%',
|
||||||
|
maxHeight:'90%',
|
||||||
|
minWidth: '60%',
|
||||||
|
maxWidth: '90%',
|
||||||
|
});
|
||||||
|
dialogRef.afterClosed()
|
||||||
|
.subscribe(dataresult => {
|
||||||
|
|
||||||
|
if(dataresult instanceof Array){
|
||||||
|
|
||||||
|
if(dataresult.length>0){
|
||||||
|
this.pdf_merge_data = dataresult
|
||||||
|
console.log( this.pdf_merge_data )
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
changeDocumentEdit(): void {
|
changeDocumentEdit(): void {
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -672,5 +672,9 @@ export class QcService {
|
|||||||
// video_file -> exact file
|
// video_file -> exact file
|
||||||
return this._http.post(this.apiUrl+'uploadVideoFile',params)
|
return this._http.post(this.apiUrl+'uploadVideoFile',params)
|
||||||
}
|
}
|
||||||
|
applicantWiseDigiLockerDocs(params){
|
||||||
|
|
||||||
|
return this._http.post(this.apiUrl+'applicantWiseDigiLockerDocs',params )
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,6 +110,7 @@ import { PdVisitTimeComponent } from './qc-list/pd-visit-time/pd-visit-time.comp
|
|||||||
import { UploadVideoComponent } from './upload-video/upload-video.component'
|
import { UploadVideoComponent } from './upload-video/upload-video.component'
|
||||||
import { MatVideoModule } from 'mat-video';
|
import { MatVideoModule } from 'mat-video';
|
||||||
import { SpeedDialFabComponent } from './qc-list/qc-view/speed-dial-fab/speed-dial-fab.component';
|
import { SpeedDialFabComponent } from './qc-list/qc-view/speed-dial-fab/speed-dial-fab.component';
|
||||||
|
import { PdfMergeComponent } from './qc-list/qc-pd-report/pdf-merge/pdf-merge.component';
|
||||||
// import { PdfViewerModule } from 'ng2-pdf-viewer';
|
// import { PdfViewerModule } from 'ng2-pdf-viewer';
|
||||||
|
|
||||||
|
|
||||||
@ -186,8 +187,8 @@ const customNotifierOptions: NotifierOptions = {
|
|||||||
AngularSplitModule.forRoot(),
|
AngularSplitModule.forRoot(),
|
||||||
MatVideoModule
|
MatVideoModule
|
||||||
],
|
],
|
||||||
declarations: [QualityCheckComponent,QcListComponent, QcViewComponent, QcStartComponent, QcPdReportComponent,DialogChangeCurrentVenrsion, QcReviewComponent, ModelEditPdReportComponent, NumberToWordsPipe, QcNewComponent, QcCusImagesComponent, PdVisitTimeComponent, UploadVideoComponent,SpeedDialFabComponent],
|
declarations: [QualityCheckComponent,QcListComponent, QcViewComponent, QcStartComponent, QcPdReportComponent,DialogChangeCurrentVenrsion, QcReviewComponent, ModelEditPdReportComponent, NumberToWordsPipe, QcNewComponent, QcCusImagesComponent, PdVisitTimeComponent, UploadVideoComponent,SpeedDialFabComponent, PdfMergeComponent],
|
||||||
entryComponents: [PdVisitTimeComponent,PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent,DialogChangeCurrentVenrsion, QcReviewComponent, ModelEditPdReportComponent, InitiateAdditionalPdComponent,QcNewComponent,
|
entryComponents: [PdVisitTimeComponent,PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent,DialogChangeCurrentVenrsion, QcReviewComponent, ModelEditPdReportComponent, InitiateAdditionalPdComponent,QcNewComponent,PdfMergeComponent,
|
||||||
BusinessAssetsInfoComponent,
|
BusinessAssetsInfoComponent,
|
||||||
ClientInfoComponent,
|
ClientInfoComponent,
|
||||||
SupplierInfoComponent,
|
SupplierInfoComponent,
|
||||||
|
|||||||
@ -112,6 +112,11 @@
|
|||||||
<td mat-cell *matCellDef="let row">
|
<td mat-cell *matCellDef="let row">
|
||||||
<span *ngIf="row.applicant_name" mat-line>{{row.applicant_name}}</span> </td>
|
<span *ngIf="row.applicant_name" mat-line>{{row.applicant_name}}</span> </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="city_name" >
|
||||||
|
<th mat-header-cell *matHeaderCellDef >City </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.city_name" mat-line>{{row.city_name}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="lender_applicant_id" sticky>
|
<ng-container matColumnDef="lender_applicant_id" sticky>
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>Lender Applicant ID </th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Lender Applicant ID </th>
|
||||||
@ -155,6 +160,16 @@
|
|||||||
<td mat-cell *matCellDef="let row">
|
<td mat-cell *matCellDef="let row">
|
||||||
<span *ngIf="row.updatedon" mat-line> {{row.updatedon | date: 'dd-MM-yyyy hh:mm a'}}</span> </td>
|
<span *ngIf="row.updatedon" mat-line> {{row.updatedon | date: 'dd-MM-yyyy hh:mm a'}}</span> </td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="video_call_initiate_user">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Video Call Initiated Person</th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.video_call_initiate_user" [matTooltip]="row.video_call_initiate_user" mat-line> {{column_name_filter(row.video_call_initiate_user) }}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="total_video">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Video Count</th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.total_video" mat-line> {{row.total_video }}</span> </td>
|
||||||
|
</ng-container>
|
||||||
<!-- <ng-container matColumnDef="remarks">
|
<!-- <ng-container matColumnDef="remarks">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>Remarks</th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Remarks</th>
|
||||||
<td mat-cell *matCellDef="let row">
|
<td mat-cell *matCellDef="let row">
|
||||||
|
|||||||
@ -41,13 +41,16 @@ export class SmcCreditComponent implements OnInit {
|
|||||||
// 'credit_pd_id',
|
// 'credit_pd_id',
|
||||||
'credit_pd_sno',
|
'credit_pd_sno',
|
||||||
'applicant_name',
|
'applicant_name',
|
||||||
|
'city_name',
|
||||||
'lender_applicant_id',
|
'lender_applicant_id',
|
||||||
'credit_pd_type',
|
'credit_pd_type',
|
||||||
'product_abbr',
|
'product_abbr',
|
||||||
'officer_name',
|
'officer_name',
|
||||||
'status',
|
'status',
|
||||||
'vendor_status',
|
'vendor_status',
|
||||||
'createdon'
|
'createdon',
|
||||||
|
'video_call_initiate_user',
|
||||||
|
'total_video'
|
||||||
//'remarks'
|
//'remarks'
|
||||||
//'add'
|
//'add'
|
||||||
// 'mail_status'
|
// 'mail_status'
|
||||||
@ -171,13 +174,16 @@ export class SmcCreditComponent implements OnInit {
|
|||||||
return {
|
return {
|
||||||
'Reference Number':val.pd_sno,
|
'Reference Number':val.pd_sno,
|
||||||
'Main Loan Applicant':val.applicant_name,
|
'Main Loan Applicant':val.applicant_name,
|
||||||
|
'City':val.city_name,
|
||||||
'Lender Applicant ID':val.lender_applicant_id,
|
'Lender Applicant ID':val.lender_applicant_id,
|
||||||
'Credit PD Type':val.type_name,
|
'Credit PD Type':val.type_name,
|
||||||
'Product Type':val.abbr,
|
'Product Type':val.abbr,
|
||||||
'Credit Person':val.officer_name,
|
'Credit Person':val.officer_name,
|
||||||
'Status':val.pd_status,
|
'Status':val.pd_status,
|
||||||
'Vendor Status':val.vendor_status,
|
'Vendor Status':val.vendor_status,
|
||||||
'Date':val.updatedon
|
'Date':val.updatedon,
|
||||||
|
'Video Call Initiated Person':val.video_call_initiate_user,
|
||||||
|
'Video Count':val.total_video
|
||||||
//'Remarks':val.mis_report_remarks
|
//'Remarks':val.mis_report_remarks
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -301,6 +307,20 @@ export class SmcCreditComponent implements OnInit {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
column_name_filter(param){
|
||||||
|
|
||||||
|
let data = param.split(',');
|
||||||
|
let name =[];
|
||||||
|
data.forEach(element => {
|
||||||
|
let tmp = element.replace(/ *\([^)]*\) */g, "")
|
||||||
|
console.log(tmp)
|
||||||
|
name.push(tmp)
|
||||||
|
|
||||||
|
});
|
||||||
|
return name.toString()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
getDateObjects(values: any) {
|
getDateObjects(values: any) {
|
||||||
|
|
||||||
let selected_date = this.pipe.transform(values, 'yyyy/MM/dd');
|
let selected_date = this.pipe.transform(values, 'yyyy/MM/dd');
|
||||||
|
|||||||
@ -52,6 +52,7 @@ const HORIZONTALMENUITEMS = [
|
|||||||
// {state:'template/questions', name: 'Questions'},
|
// {state:'template/questions', name: 'Questions'},
|
||||||
{state:'template/templates', name: 'Templates'},
|
{state:'template/templates', name: 'Templates'},
|
||||||
{state:'template2', name: 'Templates 2.0'},
|
{state:'template2', name: 'Templates 2.0'},
|
||||||
|
{state:'datadump', name: 'Data Dump'},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -84,6 +84,7 @@ const MENUITEMS : Menu[] = [
|
|||||||
// {state:'template/questions', name: 'Questions'},
|
// {state:'template/questions', name: 'Questions'},
|
||||||
{state:'template/templates', name: 'Templates'},
|
{state:'template/templates', name: 'Templates'},
|
||||||
{state:'template2/template2', name: 'Templates 2.0'},
|
{state:'template2/template2', name: 'Templates 2.0'},
|
||||||
|
{state:'datadump/datadump', name: 'Data Dump'},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -89,7 +89,7 @@ export class ChecklistDatabase {
|
|||||||
// let question_json = JSON.parse(JSON.parse(data.json))
|
// let question_json = JSON.parse(JSON.parse(data.json))
|
||||||
// console.log(question_json)
|
// console.log(question_json)
|
||||||
let question_json;
|
let question_json;
|
||||||
if(data != [] && data.json){
|
if(data != 0 && data.json){
|
||||||
question_json = JSON.parse(data.json)
|
question_json = JSON.parse(data.json)
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import { LenderListComponent } from './lender-list/lender-list.component';
|
|||||||
import { LenderProductSegMappingComponent } from './lender-product-seg-mapping/lender-product-seg-mapping.component';
|
import { LenderProductSegMappingComponent } from './lender-product-seg-mapping/lender-product-seg-mapping.component';
|
||||||
import { QuestionViewComponent } from './question-view/question-view.component';
|
import { QuestionViewComponent } from './question-view/question-view.component';
|
||||||
import { SelectionListViewComponent } from './selection-list-view/selection-list-view.component';
|
import { SelectionListViewComponent } from './selection-list-view/selection-list-view.component';
|
||||||
import { Template2Module } from './template2.module';
|
|
||||||
export const Template2Routes: Routes = [
|
export const Template2Routes: Routes = [
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,103 +1,863 @@
|
|||||||
{
|
{
|
||||||
"section_id":"1",
|
"section_id":"3",
|
||||||
"section_name":"General Information",
|
"section_name":"Office Visit Information",
|
||||||
"onsubmit":[
|
"onsubmit":[
|
||||||
],
|
],
|
||||||
"questions":[
|
"questions":[
|
||||||
{
|
|
||||||
"question":"Name of the Person met",
|
|
||||||
"question_key":"Name_of_the_Person_met",
|
|
||||||
"place_holder":"",
|
|
||||||
"field_type":"text",
|
|
||||||
"type":"3",
|
|
||||||
"field_width":"45",
|
|
||||||
"api_properties":
|
|
||||||
{
|
|
||||||
"purpose":"answer_options_local",
|
|
||||||
"master_name":"pd_applicants",
|
|
||||||
"fields":["pd_co_applicant_id","applicant_name"]
|
|
||||||
},
|
|
||||||
"onchange_properties":null,
|
|
||||||
"is_repeatable":null,
|
|
||||||
"is_subfield":"1",
|
|
||||||
"is_disabled":"1",
|
|
||||||
"answers":null,
|
|
||||||
"validations":[
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"question":"Is Person Met",
|
"question": "Employer Brief",
|
||||||
"question_key":"is_person_met",
|
"question_key": "employer_brief",
|
||||||
|
"type": "1",
|
||||||
|
"disable":false,
|
||||||
|
"field_width": "45",
|
||||||
|
"answers": null,
|
||||||
|
"api_properties": null,
|
||||||
|
"onchange_properties": null,
|
||||||
|
"is_repeatable": null,
|
||||||
|
"validations": [
|
||||||
|
{
|
||||||
|
"name": "required",
|
||||||
|
"isactive": "1",
|
||||||
|
"validator": "Validators.required",
|
||||||
|
"message": "Field Required",
|
||||||
|
"value": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
} , {
|
||||||
|
"question": "Salary confirmed by Person met ?",
|
||||||
|
"question_key": "salary_confirmed_by_person_met",
|
||||||
|
"type": "3",
|
||||||
|
"disable":false,
|
||||||
|
"field_width": "45",
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"Yes",
|
||||||
|
"answer":"Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"No",
|
||||||
|
"answer":"No"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_properties": null,
|
||||||
|
"onchange_properties": [{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"salary_confirmed_by_person_met",
|
||||||
|
"expression":"(String('salary_confirmed_by_person_met') == String('Yes'))",
|
||||||
|
"value_keys":[
|
||||||
|
"salary_confirmed_by_person_met"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
{
|
||||||
|
"question":"Net Monthly Salary",
|
||||||
|
"question_key":"net_monthly_salary",
|
||||||
|
"place_holder":"Net Monthly Salary",
|
||||||
|
"field_type":"numtoword",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"45",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"salary_confirmed_by_person_met",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
}, {
|
||||||
|
"question":"Gross Monthly Salary",
|
||||||
|
"question_key":"gross_monthly_salary",
|
||||||
|
"place_holder":"Gross Monthly Salary",
|
||||||
|
"field_type":"numtoword",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"45",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"salary_confirmed_by_person_met",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
}, {
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"salary_confirmed_by_person_met",
|
||||||
|
"expression":"(String('salary_confirmed_by_person_met') == String('No'))",
|
||||||
|
"value_keys":[
|
||||||
|
"salary_confirmed_by_person_met"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"why salary amount was not confirmed?",
|
||||||
|
"question_key":"why_salary_amount_was_not_confirmed",
|
||||||
|
"place_holder":"why salary amount was not confirmed?",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"45",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"salary_confirmed_by_person_met",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable": null,
|
||||||
|
"validations": [
|
||||||
|
{
|
||||||
|
"name": "required",
|
||||||
|
"isactive": "1",
|
||||||
|
"validator": "Validators.required",
|
||||||
|
"message": "Field Required",
|
||||||
|
"value": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question": "Since how long working with this employer?",
|
||||||
|
"question_key": "since_how_long_working_with_this_employer?",
|
||||||
|
"field_type":"null",
|
||||||
|
"sub_title":"Since how long working with this employer?",
|
||||||
|
"disable":false,
|
||||||
|
"field_width": "100",
|
||||||
|
"answers": null,
|
||||||
|
"api_properties": null,
|
||||||
|
"onchange_properties": null,
|
||||||
|
"is_repeatable": null,
|
||||||
|
"validations": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": "Year*",
|
||||||
|
"question_key": "year",
|
||||||
|
"type": "1",
|
||||||
|
"field_type":"num",
|
||||||
|
|
||||||
|
"disable":false,
|
||||||
|
"field_width": "25",
|
||||||
|
"answers": null,
|
||||||
|
"api_properties": null,
|
||||||
|
"onchange_properties": null,
|
||||||
|
"is_repeatable": null,
|
||||||
|
"validations": [
|
||||||
|
{
|
||||||
|
"name": "required",
|
||||||
|
"isactive": "1",
|
||||||
|
"validator": "Validators.required",
|
||||||
|
"message": "Field Required",
|
||||||
|
"value": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": "Month",
|
||||||
|
"question_key": "month",
|
||||||
|
"type": "1",
|
||||||
|
"disable":false,
|
||||||
|
"field_type":"num",
|
||||||
|
"field_width": "25",
|
||||||
|
"answers": null,
|
||||||
|
"api_properties": null,
|
||||||
|
"onchange_properties": null,
|
||||||
|
"is_repeatable": null,
|
||||||
|
"validations": [
|
||||||
|
{
|
||||||
|
"name": "required",
|
||||||
|
"isactive": "1",
|
||||||
|
"validator": "Validators.required",
|
||||||
|
"message": "Field Required",
|
||||||
|
"value": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question":"Mode of Getting Salary?",
|
||||||
|
"question_key":"mode_of_getting_salary",
|
||||||
"type":"3",
|
"type":"3",
|
||||||
"field_width":"45",
|
"field_width":"45",
|
||||||
"answers":[{
|
|
||||||
"answer":"Yes",
|
|
||||||
"answer_id":"yes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"answer":"No",
|
|
||||||
"answer_id":"no"
|
|
||||||
}],
|
|
||||||
"api_properties":null,
|
"api_properties":null,
|
||||||
"onchange_properties":[
|
"answers":[
|
||||||
{
|
{
|
||||||
"purpose":"FORM_CTRL",
|
"answer_id":"Bank Transfer",
|
||||||
"form_controls":[
|
"answer":"Bank Transfer"
|
||||||
{
|
},
|
||||||
"insert_index":"is_person_met",
|
{
|
||||||
"expression":"(String('is_person_met') == String('no'))",
|
"answer_id":"Paid in Cash ",
|
||||||
"value_keys":[
|
"answer":"Paid in Cash "
|
||||||
"is_person_met"
|
}, {
|
||||||
],
|
"answer_id":"Both Bank Transfer & Cash ",
|
||||||
"questions":[
|
"answer":"Both Bank Transfer & Cash "
|
||||||
{
|
}
|
||||||
"question":"Designation of Person met",
|
],
|
||||||
"question_key":"Designation_of_Person_met",
|
"onchange_properties": [],
|
||||||
"place_holder":"",
|
|
||||||
"field_type":"text",
|
|
||||||
"type":"8",
|
|
||||||
"field_width":"45",
|
|
||||||
"api_properties":{
|
|
||||||
"api":"getListOfMaster",
|
|
||||||
"api_method":"POST",
|
|
||||||
"params":{
|
|
||||||
"master_name":"COMPANYRELATIONSHIPS"
|
|
||||||
},
|
|
||||||
"fields":[
|
|
||||||
"company_relationship_id",
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"onchange_properties":null,
|
|
||||||
"is_repeatable":null,
|
|
||||||
"is_subfield":"1",
|
|
||||||
"parent_question_key":"is_person_met",
|
|
||||||
"answers":null,
|
|
||||||
"validations":[
|
|
||||||
]
|
|
||||||
} ,{
|
|
||||||
"question":"Name of the Person met",
|
|
||||||
"question_key":"Name_of_the_Person",
|
|
||||||
"place_holder":"",
|
|
||||||
"field_type":"text",
|
|
||||||
"type":"1",
|
|
||||||
"field_width":"45",
|
|
||||||
"api_properties":null,
|
|
||||||
"onchange_properties":null,
|
|
||||||
"is_repeatable":null,
|
|
||||||
"is_subfield":"1",
|
|
||||||
"parent_question_key":"Was_the_employee_met",
|
|
||||||
"answers":null,
|
|
||||||
"validations":[
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
|
|
||||||
}],
|
|
||||||
"is_repeatable":null,
|
"is_repeatable":null,
|
||||||
"validations":[
|
"validations":[
|
||||||
|
|
||||||
]
|
]
|
||||||
|
}, {
|
||||||
|
"question":"Salary Register was seen ?",
|
||||||
|
"question_key":"salary_register_was_seen",
|
||||||
|
"sub_title":"Documents Sighted",
|
||||||
|
"type":"2",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"Yes",
|
||||||
|
"answer":"Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"No",
|
||||||
|
"answer":"No"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"onchange_properties": [ {
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"salary_register_was_seen",
|
||||||
|
"expression":"(String('others_Please_specifys') == String('No')) && (String('offer_letter_was_seen') == String('No')) && (String('salary_register_was_seen') == String('No')) && (String('cash_voucher_was_seen') == String('No')) && (String('salary_slip_was_seen') == String('No'))",
|
||||||
|
"value_keys":[
|
||||||
|
"others_Please_specifys","offer_letter_was_seen","salary_register_was_seen","cash_voucher_was_seen","salary_slip_was_seen"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Why documents are not available?",
|
||||||
|
"question_key":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"4",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":[{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"expression":"(String('Why_documents_are_not_available_offer_letter').includes('Others_please_specify'))",
|
||||||
|
"value_keys":[
|
||||||
|
"Why_documents_are_not_available_offer_letter"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Others ",
|
||||||
|
"question_key":"Others_please_specify_Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":[ {
|
||||||
|
"answer_id":"Documents_were_not_shared_by_Employer",
|
||||||
|
"answer":"Documents were not shared by Employer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
|
||||||
|
"answer":"Documents are not issued by Employer to Employee"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Documents_were_not_available",
|
||||||
|
"answer":"Documents were not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Employer_was_not_available",
|
||||||
|
"answer":"Employer was not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Others_please_specify",
|
||||||
|
"answer":"Others please specify"
|
||||||
|
} ],
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"validations":[
|
||||||
|
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question":"Cash voucher was seen ?",
|
||||||
|
"question_key":"cash_voucher_was_seen",
|
||||||
|
|
||||||
|
"type":"2",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"Yes",
|
||||||
|
"answer":"Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"No",
|
||||||
|
"answer":"No"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"onchange_properties": [ {
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"cash_voucher_was_seen",
|
||||||
|
"expression":"(String('others_Please_specifys') == String('No')) && (String('offer_letter_was_seen') == String('No')) && (String('salary_register_was_seen') == String('No')) && (String('cash_voucher_was_seen') == String('No')) && (String('salary_slip_was_seen') == String('No'))",
|
||||||
|
"value_keys":[
|
||||||
|
"others_Please_specifys","offer_letter_was_seen","salary_register_was_seen","cash_voucher_was_seen","salary_slip_was_seen"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Why documents are not available?",
|
||||||
|
"question_key":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"4",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":[{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"expression":"(String('Why_documents_are_not_available_offer_letter').includes('Others_please_specify'))",
|
||||||
|
"value_keys":[
|
||||||
|
"Why_documents_are_not_available_offer_letter"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Others ",
|
||||||
|
"question_key":"Others_please_specify_Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":[ {
|
||||||
|
"answer_id":"Documents_were_not_shared_by_Employer",
|
||||||
|
"answer":"Documents were not shared by Employer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
|
||||||
|
"answer":"Documents are not issued by Employer to Employee"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Documents_were_not_available",
|
||||||
|
"answer":"Documents were not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Employer_was_not_available",
|
||||||
|
"answer":"Employer was not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Others_please_specify",
|
||||||
|
"answer":"Others please specify"
|
||||||
|
} ],
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"validations":[
|
||||||
|
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question":"Salary Slip was seen ?",
|
||||||
|
"question_key":"salary_slip_was_seen",
|
||||||
|
|
||||||
|
"type":"2",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"Yes",
|
||||||
|
"answer":"Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"No",
|
||||||
|
"answer":"No"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"onchange_properties": [ {
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"salary_slip_was_seen",
|
||||||
|
"expression":"(String('others_Please_specifys') == String('No')) && (String('offer_letter_was_seen') == String('No')) && (String('salary_register_was_seen') == String('No')) && (String('cash_voucher_was_seen') == String('No')) && (String('salary_slip_was_seen') == String('No'))",
|
||||||
|
"value_keys":[
|
||||||
|
"others_Please_specifys","offer_letter_was_seen","salary_register_was_seen","cash_voucher_was_seen","salary_slip_was_seen"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Why documents are not available?",
|
||||||
|
"question_key":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"4",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":[{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"expression":"(String('Why_documents_are_not_available_offer_letter').includes('Others_please_specify'))",
|
||||||
|
"value_keys":[
|
||||||
|
"Why_documents_are_not_available_offer_letter"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Others ",
|
||||||
|
"question_key":"Others_please_specify_Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":[ {
|
||||||
|
"answer_id":"Documents_were_not_shared_by_Employer",
|
||||||
|
"answer":"Documents were not shared by Employer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
|
||||||
|
"answer":"Documents are not issued by Employer to Employee"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Documents_were_not_available",
|
||||||
|
"answer":"Documents were not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Employer_was_not_available",
|
||||||
|
"answer":"Employer was not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Others_please_specify",
|
||||||
|
"answer":"Others please specify"
|
||||||
|
} ],
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"validations":[
|
||||||
|
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question":"Offer Letter was seen ?",
|
||||||
|
"question_key":"offer_letter_was_seen",
|
||||||
|
|
||||||
|
"type":"2",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"Yes",
|
||||||
|
"answer":"Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"No",
|
||||||
|
"answer":"No"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"onchange_properties": [ {
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"offer_letter_was_seen",
|
||||||
|
"expression":"(String('others_Please_specifys') == String('No')) && (String('offer_letter_was_seen') == String('No')) && (String('salary_register_was_seen') == String('No')) && (String('cash_voucher_was_seen') == String('No')) && (String('salary_slip_was_seen') == String('No'))",
|
||||||
|
"value_keys":[
|
||||||
|
"others_Please_specifys","offer_letter_was_seen","salary_register_was_seen","cash_voucher_was_seen","salary_slip_was_seen"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Why documents are not available?",
|
||||||
|
"question_key":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"4",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":[{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"expression":"(String('Why_documents_are_not_available_offer_letter').includes('Others_please_specify'))",
|
||||||
|
"value_keys":[
|
||||||
|
"Why_documents_are_not_available_offer_letter"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Others ",
|
||||||
|
"question_key":"Others_please_specify_Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":[ {
|
||||||
|
"answer_id":"Documents_were_not_shared_by_Employer",
|
||||||
|
"answer":"Documents were not shared by Employer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
|
||||||
|
"answer":"Documents are not issued by Employer to Employee"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Documents_were_not_available",
|
||||||
|
"answer":"Documents were not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Employer_was_not_available",
|
||||||
|
"answer":"Employer was not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Others_please_specify",
|
||||||
|
"answer":"Others please specify"
|
||||||
|
} ],
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"validations":[
|
||||||
|
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question":"Others",
|
||||||
|
"question_key":"others_Please_specifys",
|
||||||
|
|
||||||
|
"type":"2",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"Yes",
|
||||||
|
"answer":"Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"No",
|
||||||
|
"answer":"No"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"onchange_properties": [ {
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"others_Please_specifys",
|
||||||
|
"expression":"(String('others_Please_specifys') == String('Yes'))",
|
||||||
|
"value_keys":[
|
||||||
|
"others_Please_specifys"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Others please specify",
|
||||||
|
"question_key":"Others_specify",
|
||||||
|
"place_holder":"Others please specify",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"others_Please_specifys",
|
||||||
|
"expression":"(String('others_Please_specifys') == String('No')) && (String('offer_letter_was_seen') == String('No')) && (String('salary_register_was_seen') == String('No')) && (String('cash_voucher_was_seen') == String('No')) && (String('salary_slip_was_seen') == String('No'))",
|
||||||
|
"value_keys":[
|
||||||
|
"others_Please_specifys","offer_letter_was_seen","salary_register_was_seen","cash_voucher_was_seen","salary_slip_was_seen"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Why documents are not available?",
|
||||||
|
"question_key":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"4",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":[{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"Why_documents_are_not_available_offer_letter",
|
||||||
|
"expression":"(String('Why_documents_are_not_available_offer_letter').includes('Others_please_specify'))",
|
||||||
|
"value_keys":[
|
||||||
|
"Why_documents_are_not_available_offer_letter"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Others ",
|
||||||
|
"question_key":"Others_please_specify_Why_documents_are_not_available_offer_letter",
|
||||||
|
"place_holder":"Why documents are not available",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"100",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"others_Please_specifys",
|
||||||
|
"answers":[ {
|
||||||
|
"answer_id":"Documents_were_not_shared_by_Employer",
|
||||||
|
"answer":"Documents were not shared by Employer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
|
||||||
|
"answer":"Documents are not issued by Employer to Employee"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Documents_were_not_available",
|
||||||
|
"answer":"Documents were not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Employer_was_not_available",
|
||||||
|
"answer":"Employer was not available"
|
||||||
|
} , {
|
||||||
|
"answer_id":"Others_please_specify",
|
||||||
|
"answer":"Others please specify"
|
||||||
|
} ],
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"validations":[
|
||||||
|
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question":"No. of employees sighted by PD officer during visit",
|
||||||
|
"question_key":"no_of_employees_sighted_by_PD_officer_during_visit",
|
||||||
|
"type":"1",
|
||||||
|
"field_type":"num",
|
||||||
|
"field_width":"45",
|
||||||
|
"api_properties":null,
|
||||||
|
"answers":[
|
||||||
|
|
||||||
|
],
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"validations":[
|
||||||
|
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question": "Was the company name board sighted? ",
|
||||||
|
"question_key": "was_the_company_name_board_sighted",
|
||||||
|
"type": "3",
|
||||||
|
"disable":false,
|
||||||
|
"field_width": "45",
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"Yes",
|
||||||
|
"answer":"Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"No",
|
||||||
|
"answer":"No"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_properties": null,
|
||||||
|
"onchange_properties": null,
|
||||||
|
"is_repeatable": null,
|
||||||
|
"validations": [
|
||||||
|
{
|
||||||
|
"name": "required",
|
||||||
|
"isactive": "1",
|
||||||
|
"validator": "Validators.required",
|
||||||
|
"message": "Field Required",
|
||||||
|
"value": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
"question": "Was any business activities observed during visit?",
|
||||||
|
"question_key": "Was_any_business_activities_observed_during_visit",
|
||||||
|
"type": "3",
|
||||||
|
"disable":false,
|
||||||
|
"field_width": "45",
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"Yes",
|
||||||
|
"answer":"Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"No",
|
||||||
|
"answer":"No"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_properties": null,
|
||||||
|
"onchange_properties": [{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"Was_any_business_activities_observed_during_visit",
|
||||||
|
"expression":"(String('Was_any_business_activities_observed_during_visit') == String('Yes'))",
|
||||||
|
"value_keys":[
|
||||||
|
"Was_any_business_activities_observed_during_visit"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"If Yes ,Please Choose ",
|
||||||
|
"question_key":"If_yes_choose_one",
|
||||||
|
"place_holder":"why salary amount was not confirmed?",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"4",
|
||||||
|
"field_width":"45",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":[{
|
||||||
|
"purpose":"FORM_CTRL",
|
||||||
|
"form_controls":[
|
||||||
|
{
|
||||||
|
"insert_index":"If_yes_choose_one",
|
||||||
|
"expression":"(String('If_yes_choose_one').includes('others'))",
|
||||||
|
"value_keys":[
|
||||||
|
"If_yes_choose_one"
|
||||||
|
],
|
||||||
|
"questions":[
|
||||||
|
|
||||||
|
{
|
||||||
|
"question":"Others (Please specify)",
|
||||||
|
"question_key":"Others_Please_specify",
|
||||||
|
"place_holder":"Others (Please specify)",
|
||||||
|
"field_type":"text",
|
||||||
|
"type":"1",
|
||||||
|
"field_width":"45",
|
||||||
|
"api_properties":null,
|
||||||
|
"onchange_properties":null,
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"salary_confirmed_by_person_met",
|
||||||
|
"answers":null,
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable":null,
|
||||||
|
"is_subfield":"1",
|
||||||
|
"parent_question_key":"salary_confirmed_by_person_met",
|
||||||
|
"answers":[
|
||||||
|
{
|
||||||
|
"answer_id":"employees_were_seen_at_the_visited_premises",
|
||||||
|
"answer":"Employees were seen at the visited premises"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"customers_Clients_were_seen_at_the_visited_premises",
|
||||||
|
"answer":"Customers/Clients were seen at the visited premises"
|
||||||
|
} , {
|
||||||
|
"answer_id":"manufacturing_activities_were_seen_at_the_visited_premises",
|
||||||
|
"answer":"Manufacturing activities were seen at the visited premises"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"answer_id":"others",
|
||||||
|
"answer":"Others (Please specify)"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"validations":[
|
||||||
|
]
|
||||||
|
|
||||||
|
} ]
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"is_repeatable": null,
|
||||||
|
"validations": [
|
||||||
|
{
|
||||||
|
"name": "required",
|
||||||
|
"isactive": "1",
|
||||||
|
"validator": "Validators.required",
|
||||||
|
"message": "Field Required",
|
||||||
|
"value": null
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
10
ng6-seed/src/assets/images/digilocker.svg
Normal file
10
ng6-seed/src/assets/images/digilocker.svg
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="225.000000pt" height="225.000000pt" viewBox="0 0 225.000000 225.000000" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata fill="#ff0000">
|
||||||
|
Created by potrace 1.16, written by Peter Selinger 2001-2019
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,225.000000) scale(0.100000,-0.100000)" fill="#ff0000" stroke="none">
|
||||||
|
<path d="M525 2202 c-62 -38 -60 -25 -63 -393 l-3 -339 -47 -32 c-131 -90 -222 -243 -222 -373 0 -33 -5 -46 -22 -57 -44 -29 -109 -103 -129 -148 -11 -25 -25 -53 -30 -62 -16 -30 -11 -188 8 -238 23 -61 64 -121 114 -163 67 -58 103 -70 219 -76 l105 -6 6 -105 c7 -119 9 -127 47 -155 26 -20 45 -20 827 -23 587 -2 807 1 828 9 15 7 37 23 47 37 19 24 20 44 20 688 l0 664 -470 0 -470 0 -1 323 c0 177 -1 354 -2 392 l-2 70 -365 3 c-340 2 -367 1 -395 -16z m257 -760 c97 -32 173 -88 246 -181 17 -22 21 -23 54 -12 19 6 69 12 111 13 66 1 83 -2 140 -30 82 -41 143 -107 181 -196 16 -36 33 -66 39 -66 23 0 98 -74 129 -128 31 -54 33 -62 33 -157 0 -92 -2 -104 -30 -154 -38 -68 -102 -125 -173 -151 -53 -20 -71 -21 -566 -19 -628 1 -686 5 -752 45 -90 56 -154 172 -154 280 0 99 55 204 139 267 47 35 51 41 51 80 0 102 54 222 137 304 107 106 279 150 415 105z" fill="#ff0000"/>
|
||||||
|
<path d="M746 969 c-34 -26 -36 -82 -4 -116 21 -22 21 -24 5 -85 -9 -35 -19 -73 -23 -85 -6 -22 -4 -23 60 -23 47 0 66 4 66 13 0 7 -9 46 -20 86 -21 73 -21 74 -1 92 42 39 34 105 -15 128 -33 15 -37 14 -68 -10z" fill="#ff0000"/>
|
||||||
|
<path d="M1402 1870 l3 -343 403 -1 c221 0 402 2 402 5 0 3 -19 21 -42 39 -57 45 -401 336 -504 425 -134 117 -245 210 -255 213 -6 2 -8 -130 -7 -338z" fill="#ff0000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
8
ng6-seed/src/assets/images/download.svg
Normal file
8
ng6-seed/src/assets/images/download.svg
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata fill="#ff0000">
|
||||||
|
Created by potrace 1.16, written by Peter Selinger 2001-2019
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)" fill="#ff0000" stroke="none">
|
||||||
|
<path d="M2341 4609 c-887 -93 -1627 -768 -1800 -1644 -239 -1204 600 -2341 1818 -2465 1215 -122 2271 833 2271 2055 0 1149 -936 2076 -2084 2064 -66 -1 -159 -6 -205 -10z m859 -999 l0 -140 -615 0 -615 0 0 140 0 140 615 0 615 0 0 -140z m0 -500 l0 -170 -615 0 -615 0 0 170 0 170 615 0 615 0 0 -170z m0 -595 l0 -215 255 -2 255 -3 -562 -563 -563 -562 -565 565 -565 565 258 0 257 0 0 215 0 215 615 0 615 0 0 -215z" fill="#ff0000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 805 B |
12
ng6-seed/src/assets/images/notes.svg
Normal file
12
ng6-seed/src/assets/images/notes.svg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata fill="#ff0000">
|
||||||
|
Created by potrace 1.16, written by Peter Selinger 2001-2019
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)" fill="#ff0000" stroke="none">
|
||||||
|
<path d="M303 5100 c-134 -48 -237 -152 -284 -288 -18 -54 -19 -115 -19 -2252 0 -2137 1 -2198 19 -2252 47 -138 151 -242 288 -289 55 -18 97 -19 1643 -19 1546 0 1588 1 1643 19 137 47 241 151 288 289 18 51 19 88 19 504 l0 448 547 647 c618 732 606 718 640 793 38 82 44 225 14 317 -43 133 -140 236 -266 285 -50 19 -78 23 -170 22 -199 -1 -240 -30 -538 -382 l-222 -262 -5 782 c-5 841 -2 795 -58 897 -29 51 -92 115 -430 435 -259 245 -298 276 -385 305 -60 21 -73 21 -1366 20 -1246 0 -1308 -1 -1358 -19z m2397 -682 c0 -378 1 -405 19 -432 10 -15 32 -37 47 -47 27 -18 54 -19 432 -19 l402 0 0 -801 0 -800 -334 -395 c-183 -218 -346 -418 -360 -444 -18 -33 -53 -157 -106 -380 -44 -182 -80 -341 -80 -353 0 -40 43 -109 80 -129 68 -35 97 -27 412 109 161 69 309 136 328 148 19 12 41 25 48 29 11 7 13 -36 10 -240 -3 -235 -4 -251 -25 -284 -12 -19 -37 -44 -55 -55 -33 -20 -51 -20 -1568 -20 -1517 0 -1535 0 -1568 20 -18 11 -43 36 -55 55 l-22 35 0 2145 0 2145 22 35 c24 39 53 60 98 71 17 4 535 7 1153 8 l1122 1 0 -402z m705 -52 l150 -145 -277 0 -278 -1 0 266 0 266 128 -120 c70 -66 195 -186 277 -266z m1339 -1365 c43 -29 66 -70 66 -121 0 -51 -16 -81 -81 -153 l-44 -48 -108 92 c-96 81 -107 93 -95 107 97 118 130 142 193 142 22 0 53 -8 69 -19z m-371 -468 c56 -47 101 -92 101 -98 -1 -7 -182 -227 -404 -489 -273 -323 -406 -474 -415 -468 -21 12 -204 167 -204 173 -1 6 811 969 817 969 2 0 49 -39 105 -87z m-1004 -1223 c49 -41 90 -78 90 -83 1 -4 -18 -26 -41 -49 -32 -31 -77 -56 -177 -99 -74 -32 -136 -57 -138 -56 -1 2 14 68 33 147 34 142 46 173 87 218 24 26 14 31 146 -78z" fill="#ff0000"/>
|
||||||
|
<path d="M666 4201 c-46 -31 -66 -69 -66 -131 0 -62 20 -100 66 -131 28 -18 62 -19 834 -19 772 0 806 1 834 19 46 31 66 69 66 131 0 62 -20 100 -66 131 -28 18 -62 19 -834 19 -772 0 -806 -1 -834 -19z" fill="#ff0000"/>
|
||||||
|
<path d="M666 3291 c-46 -31 -66 -69 -66 -131 0 -62 20 -100 66 -131 28 -18 71 -19 1284 -19 1213 0 1256 1 1284 19 46 31 66 69 66 131 0 62 -20 100 -66 131 -28 18 -71 19 -1284 19 -1213 0 -1256 -1 -1284 -19z" fill="#ff0000"/>
|
||||||
|
<path d="M666 2391 c-46 -31 -66 -69 -66 -131 0 -62 20 -100 66 -131 28 -18 71 -19 1284 -19 1213 0 1256 1 1284 19 46 31 66 69 66 131 0 62 -20 100 -66 131 -28 18 -71 19 -1284 19 -1213 0 -1256 -1 -1284 -19z" fill="#ff0000"/>
|
||||||
|
<path d="M666 1491 c-46 -31 -66 -69 -66 -131 0 -62 20 -100 66 -131 28 -18 62 -19 834 -19 772 0 806 1 834 19 46 31 66 69 66 131 0 62 -20 100 -66 131 -28 18 -62 19 -834 19 -772 0 -806 -1 -834 -19z" fill="#ff0000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
11
ng6-seed/src/assets/images/picture_download.svg
Normal file
11
ng6-seed/src/assets/images/picture_download.svg
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="126.000000pt" height="128.000000pt" viewBox="0 0 126.000000 128.000000" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata fill="#ff0000">
|
||||||
|
Created by potrace 1.16, written by Peter Selinger 2001-2019
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,128.000000) scale(0.100000,-0.100000)" fill="#ff0000" stroke="none">
|
||||||
|
<path d="M2 793 l3 -488 165 0 165 0 3 53 3 52 -110 0 -111 0 0 385 0 385 510 0 510 0 0 -385 0 -385 -110 0 -110 0 0 -55 0 -55 168 2 167 3 3 488 2 487 -630 0 -630 0 2 -487z" fill="#ff0000"/>
|
||||||
|
<path d="M304 997 c-54 -46 -20 -137 51 -137 73 0 104 87 49 138 -32 28 -66 28 -100 -1z" fill="#ff0000"/>
|
||||||
|
<path d="M781 810 c-40 -72 -76 -132 -80 -135 -4 -2 -16 10 -26 28 -10 18 -34 57 -53 86 l-35 55 -43 -110 -43 -109 -54 -3 -55 -3 -12 51 c-7 27 -15 50 -19 50 -3 0 -20 -34 -36 -75 -29 -72 -31 -75 -62 -75 -30 0 -33 -3 -33 -30 l0 -30 400 0 c220 0 400 3 400 8 0 14 -163 422 -169 422 -3 0 -39 -59 -80 -130z" fill="#ff0000"/>
|
||||||
|
<path d="M540 315 l0 -94 -56 -3 -56 -3 101 -105 101 -105 101 105 101 105 -58 5 -59 5 -3 93 -3 92 -84 0 -85 0 0 -95z" fill="#ff0000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
11
ng6-seed/src/assets/images/score.svg
Normal file
11
ng6-seed/src/assets/images/score.svg
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="200.000000pt" height="200.000000pt" viewBox="0 0 200.000000 200.000000" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata fill="#ff0000">
|
||||||
|
Created by potrace 1.16, written by Peter Selinger 2001-2019
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,200.000000) scale(0.100000,-0.100000)" fill="#ff0000" stroke="none">
|
||||||
|
<path d="M865 1529 c-114 -15 -335 -89 -335 -113 0 -6 46 -90 102 -187 l101 -177 66 26 c60 24 79 26 201 26 122 0 141 -2 200 -26 l66 -25 102 177 c56 97 102 181 102 187 0 6 -35 24 -77 41 -189 74 -341 94 -528 71z" fill="#ff0000"/>
|
||||||
|
<path d="M405 1344 c-236 -177 -386 -446 -402 -716 l-6 -98 201 0 201 0 6 48 c11 80 43 174 82 240 34 58 126 156 181 194 l22 15 -103 178 c-56 98 -107 180 -112 181 -6 2 -37 -17 -70 -42z" fill="#ff0000"/>
|
||||||
|
<path d="M1513 1378 c-6 -7 -54 -89 -108 -182 -89 -155 -96 -170 -79 -179 42 -23 152 -140 187 -199 39 -66 71 -160 82 -240 l6 -48 201 0 201 0 -6 98 c-15 267 -170 543 -397 712 -37 27 -70 50 -72 50 -3 0 -10 -6 -15 -12z" fill="#ff0000"/>
|
||||||
|
<path d="M1175 734 c-131 -54 -238 -103 -247 -115 -28 -33 -24 -100 8 -130 42 -39 92 -33 150 21 110 100 327 311 323 314 -2 3 -107 -38 -234 -90z" fill="#ff0000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
Loading…
Reference in New Issue
Block a user