diff options
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields')
3 files changed, 328 insertions, 10 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.css index 91456c6a..8bd91148 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.css +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.css @@ -9,6 +9,17 @@ padding: 0.4em; } +.wrapper2 { + display: grid; + grid-template-columns:auto auto auto; + overflow: auto; +} + +.wrapper2 > div { + border-radius: 3px; + padding: 0.4em; +} + mat-button-toggle-group { width: 800px; } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.html index aea6c768..ea413efc 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.html @@ -46,7 +46,7 @@ </div> <div *ngIf="item.validationType == 'DATE'" class="fieldWidth"> <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label> - <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" + <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" [min]="formFieldListValueMap.get(item.fieldId+'_minDate')" [max]="formFieldListValueMap.get(item.fieldId+'_maxDate')" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" [matDatepicker]="picker" class="defaultFontSize" matInput> <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle> @@ -324,10 +324,39 @@ <div *ngIf="navigateToRun"> <!-- <app-run-dashboard-report [reportId]="reportId" [reportMode]="reportMode" [queryString]="getQueryString()" [DashboardReportObj]="DashboardReportObj"></app-run-dashboard-report> --> + <div *ngIf="reportType !== 'Cross-Tab'"> + <div *ngIf="reportHeader !== ''"> + <div [innerHtml]="reportHeader" style="width: 60%; padding-left: 20%;"> + </div> + <br/> + <br/> + </div> <app-run-report [DashboardReportObj]="DashboardReportObj" [TriggerFFArr]="triggerFormFieldArr" - [hitCnt]="hitCnt" - [queryString]="getQueryString()" - [reportId]="reportId" [reportMode]="reportMode" [runAgain]="runReportAgain" [groupSelectValue]="groupSelectValue" [chartType]="chartType" [isGoBack]="downloadPrevReport" ></app-run-report> + [chartType]="chartType" + [groupSelectValue]="groupSelectValue" + [hitCnt]="hitCnt" [isGoBack]="downloadPrevReport" [queryString]="getQueryString()" + [reportId]="reportId" [reportMode]="reportMode" [reportType]="reportType" + [runAgain]="runReportAgain"></app-run-report> + <div [innerHtml]="reportFooter" style="width: 60%; padding-left: 20%;"></div> + + </div> + <div *ngIf="reportType === 'Cross-Tab'"> + <div *ngIf="reportHeader !== ''"> + <div [innerHtml]="reportHeader" style="width: 60%; padding-left: 20%;"> + </div> + <br/> + <br/> + </div> + <app-run-cross-tab-report [groupSelectValue]="groupSelectValue" [hitCnt]="hitCnt" + [parentId]="reportId" + [queryString]="queryString" + [reportId]="reportId" + [reportMode]="reportMode" + [reportType]="reportType" + [isGoBack]="downloadPrevReport"></app-run-cross-tab-report> + <div [innerHtml]="reportFooter" style="width: 60%; padding-left: 20%;"> + </div> + </div> </div> <div *ngIf="error == true"> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.ts index ced812d2..a7b21de2 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.ts @@ -11,7 +11,7 @@ import {HttpCacheService} from '../../../shared/services/cache.service'; styleUrls: ['./run-report-form-fields.component.css'] }) export class RunReportFormFieldsComponent implements OnInit, OnDestroy { - @Input('formFieldList') formFieldList: {}[]; + @Input('formFieldList') formFieldList: any; @Input('reportId') reportId: string; staticFormFieldList: {}[] = []; formFieldListValueArr: any[]; @@ -29,7 +29,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { triggerFormFieldArr = []; initialObject = {}; formFieldGroupObjList: {}[] = []; - toggleFormFieldRenderArr: {}[] = []; + toggleFormFieldRenderArr:any; groupSelectValue = ''; oldGroupSelectValue = ''; unCommonCnt = 0; @@ -65,6 +65,13 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { downloadPrevReport = ''; timeStampArray: any[]; hoursArray : any[]; + private orderSeqArray: any; + minDate:any; + maxDate:any; + reportHeader: string; + reportFooter: string; + reportType: string; + constructor(private _runService: RunService, private _route: ActivatedRoute, private _router: Router, @@ -93,6 +100,10 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { this.downloadPrevReport = ''; this.timeStampArray = []; this.hoursArray = []; + this.orderSeqArray = []; + this.reportHeader = ''; + this.reportFooter = ''; + this.reportType = ''; } @@ -148,6 +159,11 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { this.chartType = ''; this.showRunButton = false; this.downloadPrevReport = ''; + this.minDate = ''; + this.maxDate = ''; + this.reportType = ''; + this.reportHeader=''; + this.reportFooter=''; } ngOnInit() { @@ -158,7 +174,9 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { this.getHours(); this._route.params.subscribe(params => { this.createNewObject(); + if(params['reportId'] !== undefined){ this.reportId = params['reportId']; + } const checkOfCache = this.httpCacheService.getPreviousId(this.reportId) || null; if (!checkOfCache) { this.httpCacheService.clearCache(); @@ -194,9 +212,13 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { for (const ff of this.actualformFieldValues) { const formfiledArray = ff.split('='); const formFieldId = formfiledArray[0]; - const formFieldObj = formfiledArray[1]; + const formFieldObj = formfiledArray[1].replaceAll('||','/'); this.finalQueryParamsObj[formFieldId] = formFieldObj; } + if(this.directCallQueryParams.includes('NULL')){ + this.directCallQueryParams = this.directCallQueryParams.replaceAll('NULL',''); + } + this.directCallQueryParams = this.directCallQueryParams.replaceAll('||','/') this.queryString = this.directCallQueryParams; } @@ -206,6 +228,18 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { this.reportName = responseDefPage['reportName']; this.reportSubTitle = responseDefPage['reportSubTitle']; this.chartType = responseDefPage['chartType']; + this.reportType = responseDefPage['reportType']; + + if (responseDefPage['reportType'] === 'Cross-Tab' || responseDefPage['reportType'] === 'Linear' ) { + if(responseDefPage['reportHeader'] !== undefined){ + this.reportHeader = responseDefPage['reportHeader']; + } + if(responseDefPage['reportFooter'] !== undefined){ + this.reportFooter = responseDefPage['reportFooter']; + } + + } + if (responseDefPage['reportType'] !== 'Dashboard') { if (this.calledWithFormFields == false) { this._runService.getReportData(this.reportId) @@ -249,7 +283,57 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { if (this.finalQueryParamsObj[ff.fieldId]) { if (ff.validationType == 'DATE') { const dateVal = this.finalQueryParamsObj[ff.fieldId]; + dateVal.toString().replace(/%2F/g, '/') this.formFieldListValueMap.set(ff.fieldId, new Date(dateVal.toString().replace(/%2F/g, '/'))); + if (ff.rangeStartDate != null) { + if (ff.rangeStartDate != '') + this.minDate = this.getMinMaxDate(ff.rangeStartDate); + else { + this.minDate = ''; + } + } else { + this.minDate = ''; + } + + if (ff.rangeEndDate != null) { + if (ff.rangeEndDate != '') + this.maxDate = this.getMinMaxDate(ff.rangeEndDate); + else { + this.maxDate = ''; + } + } else { + this.maxDate = ''; + } + + if(this.minDate == '' && this.maxDate ==''){ + + if (ff.rangeStartDateSQL != null) { + if (ff.rangeStartDateSQL != '') + this.minDate = this.getMinMaxDate(ff.rangeStartDateSQL); + else { + this.minDate = ''; + } + } else { + this.minDate = ''; + } + + if (ff.rangeEndDateSQL != null) { + if (ff.rangeEndDateSQL != '') + this.maxDate = this.getMinMaxDate(ff.rangeEndDateSQL); + else { + this.maxDate = ''; + } + } else { + this.maxDate = ''; + } + + + } + this.formFieldListValueMap.set(ff.fieldId+'_minDate', this.minDate); + this.formFieldListValueMap.set(ff.fieldId+'_maxDate', this.maxDate); + + + } else if (ff.fieldType == 'LIST_MULTI_SELECT') { const multiSelectArray = []; let multiVal = this.finalQueryParamsObj[ff.fieldId]; @@ -267,7 +351,34 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { multiSelectArray.push(multiVal); } this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); - } else { + } else if (ff.validationType == 'TIMESTAMP_SEC') { + const dateVal = this.finalQueryParamsObj[ff.fieldId]; + const multiSelectArray = []; + multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/'))); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Sec']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + + } + else if (ff.validationType == 'TIMESTAMP_MIN') { + const dateVal = this.finalQueryParamsObj[ff.fieldId]; + const multiSelectArray = []; + multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/'))); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } + else if (ff.validationType == 'TIMESTAMP_HOUR') { + const dateVal = this.finalQueryParamsObj[ff.fieldId]; + const multiSelectArray = []; + multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/'))); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + + } + + else { let multiVal = this.finalQueryParamsObj[ff.fieldId]; multiVal = multiVal.toString().replace(/%2F/g, '/'); multiVal = multiVal.toString().replace(/%20/g, ' '); @@ -280,6 +391,29 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { if (ff.fieldType == 'LIST_MULTI_SELECT') { const multiSelectArray = []; this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } else if (ff.validationType == 'TIMESTAMP_SEC') { + + const multiSelectArray = []; + multiSelectArray.push(''); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Sec']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } + else if (ff.validationType == 'TIMESTAMP_MIN') { + + const multiSelectArray = []; + multiSelectArray.push(''); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } + else if (ff.validationType == 'TIMESTAMP_HOUR') { + const multiSelectArray = []; + multiSelectArray.push(''); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } else { this.formFieldListValueMap.set(ff.fieldId, ''); } @@ -399,7 +533,33 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { multiSelectArray.push(multiVal); } this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); - } else { + } else if (ff.validationType == 'TIMESTAMP_SEC') { + const dateVal = this.finalQueryParamsObj[ff.fieldId]; + const multiSelectArray = []; + multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/'))); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Sec']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + + } + else if (ff.validationType == 'TIMESTAMP_MIN') { + const dateVal = this.finalQueryParamsObj[ff.fieldId]; + const multiSelectArray = []; + multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/'))); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } + else if (ff.validationType == 'TIMESTAMP_HOUR') { + const dateVal = this.finalQueryParamsObj[ff.fieldId]; + const multiSelectArray = []; + multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/'))); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + + } + else { let multiVal = this.finalQueryParamsObj[ff.fieldId]; multiVal = multiVal.toString().replace(/%2F/g, '/'); multiVal = multiVal.toString().replace(/%20/g, ' '); @@ -416,6 +576,29 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { if (ff.fieldType == 'LIST_MULTI_SELECT') { const multiSelectArray = []; this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } else if (ff.validationType == 'TIMESTAMP_SEC') { + + const multiSelectArray = []; + multiSelectArray.push(''); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Sec']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } + else if (ff.validationType == 'TIMESTAMP_MIN') { + + const multiSelectArray = []; + multiSelectArray.push(''); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } + else if (ff.validationType == 'TIMESTAMP_HOUR') { + const multiSelectArray = []; + multiSelectArray.push(''); + multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']); + this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); + } else { this.formFieldListValueMap.set(ff.fieldId, ''); } @@ -652,6 +835,21 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { } } + let orderSeqArray = []; + for (let ff = 0; ff < this.formFieldList.length; ff++) { + let val = this.formFieldList[ff]['setOrderBySeq']; + orderSeqArray.push(val); + } + + if (!(orderSeqArray.includes(null) || orderSeqArray.length !== new Set(orderSeqArray).size)) { + this.toggleFormFieldRenderArr = this.toggleFormFieldRenderArr.sort(function (a, b) { + if ((a['setOrderBySeq']) === (b['setOrderBySeq'])) { + return a; + } else { + return (a['setOrderBySeq']) - (b['setOrderBySeq']); + } + }); + } } if (this.firstRun) { this.saveGroupSelectValue = this.groupSelectValue; @@ -675,6 +873,13 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { } } + getMinMaxDate(str: any){ + + let date = str; + let tempDate = new Date(date); + return date = new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate()); + } + fetchAndPopulateFormFields(respObj: any, ffReportId: string) { this._runService.getFormFieldGroupsData(ffReportId) .subscribe((responseFormFieldGroups) => { @@ -683,6 +888,22 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { this.formFieldGroupObjList = JSON.parse(responseFormFieldGroups['formFieldGroupsJSON']); this.saveFormFieldGroups = JSON.parse(responseFormFieldGroups['formFieldGroupsJSON']); this.formFieldList = respObj['formFieldList']; + let orderSeqArray = []; + for (let ff = 0; ff < this.formFieldList.length; ff++) { + let val = this.formFieldList[ff]['setOrderBySeq']; + orderSeqArray.push(val); + } + + if (!(orderSeqArray.includes(null) || orderSeqArray.length !== new Set(orderSeqArray).size)) { + this.formFieldList = this.formFieldList.sort(function (a, b) { + if ((a['setOrderBySeq']) === (b['setOrderBySeq'])) { + return a; + } else { + return (a['setOrderBySeq']) - (b['setOrderBySeq']); + } + }); + } + if (this.formFieldList.length === 1 && this.formFieldList[0]['visible'] === false) { this.showRunButton = false; } else if (this.formFieldList.length > 0) { @@ -733,7 +954,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { for (let i = 0; i < this.formFieldList.length; i++) { const formFieldObj = this.formFieldList[i]; if (formFieldObj['formFieldValues'] != null && this.calledWithFormFields != true) { - if ((formFieldObj['validationType'] == 'DATE' && formFieldObj['formFieldValues'].length > 0) || formFieldObj['validationType'] == 'TIMESTAMP_SEC' || formFieldObj['validationType'] == 'TIMESTAMP_MIN' || formFieldObj['validationType'] == 'TIMESTAMP_HOUR') { + if (formFieldObj['validationType'] == 'DATE' || formFieldObj['validationType'] == 'TIMESTAMP_SEC' || formFieldObj['validationType'] == 'TIMESTAMP_MIN' || formFieldObj['validationType'] == 'TIMESTAMP_HOUR') { if (formFieldObj['validationType'] == 'TIMESTAMP_SEC') { const multiSelectArray = []; @@ -785,8 +1006,58 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { } } else{ + if(formFieldObj['formFieldValues'].length > 0){ const date = formFieldObj['formFieldValues'][0]['id']; this.formFieldListValueMap.set(formFieldObj['fieldId'], new Date(date)); + }else{ + this.formFieldListValueMap.set(formFieldObj['fieldId'], ''); + } + if (formFieldObj['rangeStartDate'] != null) { + if (formFieldObj['rangeStartDate'] != '') + this.minDate = this.getMinMaxDate(formFieldObj['rangeStartDate']); + else { + this.minDate = ''; + } + } else { + this.minDate = ''; + } + + if (formFieldObj['rangeEndDate'] != null) { + if (formFieldObj['rangeEndDate'] != '') + this.maxDate = this.getMinMaxDate(formFieldObj['rangeEndDate']); + else { + this.maxDate = ''; + } + } else { + this.maxDate = ''; + } + + if(this.minDate == '' && this.maxDate ==''){ + + if (formFieldObj['rangeStartDateSQL'] != null) { + if (formFieldObj['rangeStartDateSQL'] != '') + this.minDate = this.getMinMaxDate(formFieldObj['rangeStartDateSQL']); + else { + this.minDate = ''; + } + } else { + this.minDate = ''; + } + + if (formFieldObj['rangeEndDateSQL'] != null) { + if (formFieldObj['rangeEndDateSQL'] != '') + this.maxDate = this.getMinMaxDate(formFieldObj['rangeEndDateSQL']); + else { + this.maxDate = ''; + } + } else { + this.maxDate = ''; + } + + + } + this.formFieldListValueMap.set(formFieldObj['fieldId']+'_minDate', this.minDate); + this.formFieldListValueMap.set(formFieldObj['fieldId']+'_maxDate', this.maxDate); } } else if (formFieldObj['fieldType'] == 'LIST_BOX' && formFieldObj['formFieldValues'].length > 0) { let isAdded = false; @@ -943,6 +1214,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { } editReport(reportId: string) { + this.httpCacheService.clearCache(); this._router.navigate(['v2/app/reports', 'Edit', reportId]); } @@ -1003,12 +1275,18 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { getTime(){ for(let i=0; i<=59; i++){ + if(i<=9){ + this.timeStampArray.push('0'+i) + }else this.timeStampArray.push(i); } } getHours(){ for(let i=0; i<=23; i++){ + if(i<=9){ + this.hoursArray.push('0'+i) + }else this.hoursArray.push(i); } } |