diff options
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/edit-drill-down-link/edit-drill-down-link.component.ts')
-rw-r--r-- | ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/edit-drill-down-link/edit-drill-down-link.component.ts | 338 |
1 files changed, 181 insertions, 157 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/edit-drill-down-link/edit-drill-down-link.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/edit-drill-down-link/edit-drill-down-link.component.ts index 9441a1f0..26e85c01 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/edit-drill-down-link/edit-drill-down-link.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/edit-drill-down-link/edit-drill-down-link.component.ts @@ -1,173 +1,197 @@ -import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core'; -import { trigger, transition, style, animate } from '@angular/animations'; -import { HttpClient } from '@angular/common/http'; -import { ColumnService } from '../../column.service'; - +import {Component, OnInit, Input, EventEmitter, Output} from '@angular/core'; +import {trigger, transition, style, animate} from '@angular/animations'; +import {HttpClient} from '@angular/common/http'; +import {ColumnService} from '../../column.service'; +import {DrillDownModel} from './drill-down-model'; +import { FormFieldsService } from '../../../form-fields/form-fields.service'; @Component({ - selector: 'app-edit-drill-down-link', - templateUrl: './edit-drill-down-link.component.html', - styleUrls: ['./edit-drill-down-link.component.css'] + selector: 'app-edit-drill-down-link', + templateUrl: './edit-drill-down-link.component.html', + styleUrls: ['./edit-drill-down-link.component.css'] }) export class EditDrillDownLinkComponent implements OnInit { - - @Input() closable = true; - @Input() visible: boolean; - - @Input("reportId") reportId : number; - @Input("drillDownObj") drillDownObj : {}; - - @Output() completed = new EventEmitter<any>(); - - drillDownColsList : {}[]; - valueOfColumnsList : {}[]; - showSpinner : boolean; - - valueOfColumns : string; - valueOfColumnsArr : any[]; - valueOfFormFieldArr : any[]; - fixedValueArr : any[]; - - noValueRadioArr : any[]; - valueValueArr : any[]; - radioButtonCheckedArr : boolean[]; - fieldValuesArr : string[]; - - - postDrillDownObj : {}; - - constructor(private _http : HttpClient, private _columnService : ColumnService) { - this.drillDownColsList = new Array(); - this.valueOfColumnsList = new Array(); - this.showSpinner = true; - this.valueOfColumnsArr = new Array(); - this.valueOfFormFieldArr = new Array(); - this.postDrillDownObj = new Object(); - - this.noValueRadioArr = new Array(); - this.valueValueArr = new Array(); - this.radioButtonCheckedArr = new Array(); - this.fieldValuesArr = new Array(); - - - } - - ngOnInit() { - console.log(this.drillDownObj); - - this._columnService.getDrillDownReportColumnDetails(this.drillDownObj["drillDownUrl"]) - .subscribe((response) => { - console.log(response); - let i=0; - - while(response[i]) - { - this.drillDownColsList.push(response[i]); - // this.valueOfFormFieldArr.push(response[i]["name"]); - // console.log(response); - i++; - } - - console.log(this.drillDownColsList); - - this._columnService.getValueOfColumnDetails(this.reportId) - .subscribe((responseValueOfColumn)=> { - console.log(responseValueOfColumn); - - let k=0; - - while(responseValueOfColumn[k]) - { - this.valueOfColumnsList.push(responseValueOfColumn[k]); - k++; - } - // for(let l=0; l<this.drillDownColsList.length; l++) - // { - // this.valueOfColumnsArr.push("site_state"); - // } + @Input() closable = true; + @Input() visible: boolean; + + @Input('reportId') reportId: number; + @Input('drillDownObj') drillDownObj: {}; + + @Output() completed = new EventEmitter<any>(); + + drillDownColsList: {}[]; + valueOfColumnsList: {}[]; + showSpinner: boolean; + + valueOfColumns: string; + valueOfColumnsArr: any[]; + valueOfFormFieldArr: any[]; + fixedValueArr: any[]; + + noValueRadioArr: any[]; + valueValueArr: any[]; + radioButtonCheckedArr: boolean[]; + fieldValuesArr: string[]; + drillDownModel: DrillDownModel[] = []; + + postDrillDownObj: {}; + drillDownArray: any[]; + formFieldsListObj : any; + + constructor(private _http: HttpClient, private _columnService: ColumnService,private _formFieldsService : FormFieldsService) { + this.drillDownColsList = []; + this.valueOfColumnsList = []; + this.showSpinner = true; + this.valueOfColumnsArr = []; + this.valueOfFormFieldArr = []; + this.postDrillDownObj = {}; + this.noValueRadioArr = []; + this.valueValueArr = []; + this.radioButtonCheckedArr = []; + this.fieldValuesArr = []; + this.drillDownArray = []; + this.formFieldsListObj = []; + } - console.log(this.drillDownObj["drillDownParams"]); + ngOnInit() { + console.log(this.drillDownObj); + this._formFieldsService.getListOfFormFields() + .subscribe((responseFormFields) => { + for (let m = 0; m < responseFormFields.length; m++) { + responseFormFields[m]["orderSeq"] = m + 1; + this.formFieldsListObj.push(responseFormFields[m]); + } + }); + this._columnService.getDrillDownReportColumnDetails(this.drillDownObj['drillDownUrl']) + .subscribe((response) => { + console.log(response); + let i = 0; + while (response[i]) { + this.drillDownColsList.push(response[i]); + const model = new DrillDownModel(response[i]['id'], response[i]['name'], 'No Value'); + this.drillDownModel.push(model); + i++; + } + console.log(this.drillDownColsList); + this._columnService.getColumnList() + .subscribe((responseValueOfColumn) => { + console.log(responseValueOfColumn); + let k = 0; + while (responseValueOfColumn[k]) { + this.valueOfColumnsList.push(responseValueOfColumn[k]); + k++; + } + this.drillDownArray = this.generateDrillDownArray(this.drillDownObj['drillDownParams']) ; + let isFieldValue = false; + let dda_cntr = 0; + for (dda_cntr = 0; dda_cntr < this.drillDownArray.length; dda_cntr++) { + let isFixedValue = true; + let vcl_cntr = 0; + for (vcl_cntr = 0; vcl_cntr < this.valueOfColumnsList.length; vcl_cntr++) { + if (this.drillDownArray[dda_cntr]['value'] === this.valueOfColumnsList[vcl_cntr]['id']) { + let ddm_cntr = 0; + for (ddm_cntr = 0; ddm_cntr < this.drillDownModel.length; ddm_cntr++) { + if (this.drillDownModel[ddm_cntr]['id'] === this.drillDownArray[dda_cntr]['id']) { + this.drillDownModel[ddm_cntr].radioButtonValue = 'column'; + this.drillDownModel[ddm_cntr].valueOfColumnData = this.valueOfColumnsList[vcl_cntr]['name']; + this.drillDownModel[ddm_cntr].selected = 'column'; + this.drillDownModel[ddm_cntr].columnID = this.valueOfColumnsList[vcl_cntr]['id']; + isFixedValue = false; + } + } + } + } + let ddcl_cntr = 0; + for (ddcl_cntr = 0; ddcl_cntr < this.formFieldsListObj.length; ddcl_cntr++) { + if (this.drillDownArray[dda_cntr]['value'] === this.formFieldsListObj[ddcl_cntr]['id']) { + let ddm_cntr = 0; + for (ddm_cntr = 0; ddm_cntr < this.drillDownModel.length; ddm_cntr++) { + if (this.drillDownModel[ddm_cntr]['id'] === this.drillDownArray[dda_cntr]['id']) { + this.drillDownModel[ddm_cntr].radioButtonValue = 'field'; + this.drillDownModel[ddm_cntr].valueOfFormFieldData = this.formFieldsListObj[ddcl_cntr]['name']; + this.drillDownModel[ddm_cntr].selected = 'field'; + isFixedValue = false; + isFieldValue = true; + } + } + } + } + if (isFixedValue && this.drillDownArray[dda_cntr]['value'] !== null) { + let ddm_cntr = 0; + for (ddm_cntr = 0; ddm_cntr < this.drillDownModel.length; ddm_cntr++) { + if (this.drillDownModel[ddm_cntr]['id'] === this.drillDownArray[dda_cntr]['id']) { + this.drillDownModel[ddm_cntr].radioButtonValue = 'fixed'; + this.drillDownModel[ddm_cntr].fixedValueData = this.drillDownArray[dda_cntr]['value']; + this.drillDownModel[ddm_cntr].selected = 'fixed'; + } + } + } + } + this.showSpinner = false; + }); + }); + } - for(let kj=0; kj<this.drillDownObj["drillDownParams"].split("&").length; kj++) - { - for(let aj=0; aj<this.drillDownObj["drillDownParams"].split("&")[kj].split("=").length; aj++) - { - for(let lk=0; lk<this.drillDownColsList.length; lk++) - { - console.log(this.drillDownColsList[lk]["name"], this.drillDownObj["drillDownParams"].split("&")[kj].split("=")[1]); - if(this.drillDownColsList[lk]["id"] == this.drillDownObj["drillDownParams"].split("&")[kj].split("=")[0]) - { - if(this.drillDownColsList[lk]["name"] == this.drillDownObj["drillDownParams"].split("&")[kj].split("=")[1]) - { - let index = (lk*5) + 3; - this.radioButtonCheckedArr[index] = true; - console.log(this.radioButtonCheckedArr); - } + ngDoCheck() { + let outPut = ''; + if (this.drillDownModel.length > 0) { + let ddm_cntr = 0; + for (ddm_cntr = 0; ddm_cntr < this.drillDownModel.length; ddm_cntr++) { + const fixedValue = this.drillDownModel[ddm_cntr].fixedValueData; + if (this.drillDownModel[ddm_cntr].radioButtonValue === 'fixed') { + outPut = outPut + this.drillDownModel[ddm_cntr].id + '=' + + fixedValue + '&;'; + } + if (this.drillDownModel[ddm_cntr].radioButtonValue === 'column') { + let value_counter = 0; + let valueOut = ''; + for (value_counter = 0; value_counter < this.valueOfColumnsList.length; value_counter++) { + if (this.valueOfColumnsList[value_counter]['name'] === this.drillDownModel[ddm_cntr].valueOfColumnData) { + valueOut = this.valueOfColumnsList[value_counter]['id']; + } + } + outPut = outPut + this.drillDownModel[ddm_cntr].id + '=' + '[' + + valueOut + ']' + '&;'; + } + if (this.drillDownModel[ddm_cntr].radioButtonValue === 'field') { + let fieldCntr = 0; + let fieldOut = ''; + for (fieldCntr = 0; fieldCntr < this.formFieldsListObj.length; fieldCntr++) { + if (this.formFieldsListObj[fieldCntr]['name'] === this.drillDownModel[ddm_cntr].valueOfFormFieldData) { + fieldOut = this.formFieldsListObj[fieldCntr]['id']; + } + } + outPut = outPut + this.drillDownModel[ddm_cntr].id + '=' + '[!' + + fieldOut + ']' + '&;'; + } + } + if (outPut.endsWith('&;')) { + outPut = outPut.substring(0, outPut.length - 2); } - } } - } - - - - - this.showSpinner = false; - }); - - - - }); - - - } - - ngDoCheck() - { - let queryParamsString = ""; - // drillDownColsList - console.log(this.noValueRadioArr, this.valueValueArr); + this.completed.emit(outPut); + } - if(this.noValueRadioArr && this.valueValueArr) - { - - for(let j=0; j<this.noValueRadioArr.length; j++) - { - console.log(+this.noValueRadioArr[j]); - if(this.valueValueArr[+this.noValueRadioArr[j]] !== null) - { - - // console.log(this.drillDownColsList[+this.noValueRadioArr[j]/5]["id"]); - // console.log(Math.floor((+this.noValueRadioArr[j]-1)/5)); - - if(Math.floor((+this.noValueRadioArr[j]-1)/5) === 0) - { - queryParamsString = queryParamsString + this.drillDownColsList[Math.floor((+this.noValueRadioArr[j]-1)/5)]["id"] + "=" + this.valueValueArr[+this.noValueRadioArr[j]]; - // console.log(queryParamsString); - } - else - { - queryParamsString = queryParamsString + "&" + this.drillDownColsList[Math.floor((+this.noValueRadioArr[j]-1)/5)]["id"] + "=" + this.valueValueArr[+this.noValueRadioArr[j]]; - // console.log(queryParamsString); - } + generateDrillDownArray(value: String) { + const generatedArray = []; + if (value != null) { + value = value.replace(/\[/g, '').replace(/\]/g, '').replace(/;/g, '').replace(/\!/g, ''); + const firstSplit = value.split('&'); + for (let i = 0; i < firstSplit.length; i++) { + const secondSplit = firstSplit[i].split('='); + generatedArray.push({ + id: secondSplit[0], + value: secondSplit[1] + }); + } } - } - - - // console.log(queryParamsString); - - this.postDrillDownObj["drilldownParams"] = queryParamsString; - this.postDrillDownObj["drilldownType"] = ""; - - // console.log(this.postDrillDownObj); - - this.completed.emit(this.postDrillDownObj); + return generatedArray; } - } - - - + save() { + this.completed.emit('hello'); + } } |