summaryrefslogtreecommitdiffstats
path: root/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
diff options
context:
space:
mode:
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.ts338
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');
+ }
}