From 663cf71a270a166fd22c777fc83bdf4951e7db67 Mon Sep 17 00:00:00 2001 From: QooQooDass Date: Thu, 5 Jan 2023 12:35:01 +0900 Subject: [PATCH] [#9380] Add line-number and location info on call-tree --- .../call-tree-container.component.ts | 4 +- .../call-tree/call-tree.component.ts | 38 ++++++++++++++++++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/web/src/main/angular/src/app/core/components/call-tree/call-tree-container.component.ts b/web/src/main/angular/src/app/core/components/call-tree/call-tree-container.component.ts index 3a4a1d81a112..4bda0c253769 100644 --- a/web/src/main/angular/src/app/core/components/call-tree/call-tree-container.component.ts +++ b/web/src/main/angular/src/app/core/components/call-tree/call-tree-container.component.ts @@ -109,12 +109,12 @@ export class CallTreeContainerComponent implements OnInit, OnDestroy { }); } - onCellDoubleClicked(contents: string): void { + onCellDoubleClicked({type, contents}: {type: string, contents: string}): void { this.dynamicPopupService.openPopup({ data: { title: 'Contents', contents, - type: 'plain' + type }, component: MessagePopupContainerComponent }, { diff --git a/web/src/main/angular/src/app/core/components/call-tree/call-tree.component.ts b/web/src/main/angular/src/app/core/components/call-tree/call-tree.component.ts index 2843291a8478..216f8bedc529 100644 --- a/web/src/main/angular/src/app/core/components/call-tree/call-tree.component.ts +++ b/web/src/main/angular/src/app/core/components/call-tree/call-tree.component.ts @@ -24,6 +24,8 @@ export interface IGridData { methodType: string; hasException: boolean; isAuthorized: boolean; + lineNumber: number; + location: string; folder?: boolean; open?: boolean; children?: any[]; @@ -54,7 +56,7 @@ export class CallTreeComponent implements OnInit, OnChanges, AfterViewInit { @Input() dateFormat: string; @Output() outSelectFormatting = new EventEmitter(); @Output() outRowSelected = new EventEmitter(); - @Output() outCellDoubleClicked = new EventEmitter(); + @Output() outCellDoubleClicked = new EventEmitter<{type: string, contents: string}>(); private originalData: ITransactionDetailData; private ratio: number; @@ -408,7 +410,36 @@ export class CallTreeComponent implements OnInit, OnChanges, AfterViewInit { } onCellDoubleClicked(params: any): void { - this.outCellDoubleClicked.emit(params.data[params.colDef.field]); + const field = params.colDef.field; + let contents = params.data[field]; + let type = 'plain'; + + if (!contents) { + return; + } + + switch (field) { + case 'method': + const location = params.data.location; + const lineNumber = params.data.lineNumber; + const metaInfo = lineNumber ? `${location}:${lineNumber}` : ''; + + type = 'html'; + contents = `${contents} ${metaInfo}`; + + break; + case 'startTime': + contents = moment(params.value).tz(this.timezone).format(this.dateFormat); + + break; + default: + break; + } + + this.outCellDoubleClicked.emit({ + type, + contents + }); } onGridSizeChanged(_: GridOptions): void { @@ -493,6 +524,9 @@ export class CallTreeComponent implements OnInit, OnChanges, AfterViewInit { oRow['methodType'] = callTree[oIndex.methodType]; oRow['hasException'] = callTree[oIndex.hasException]; oRow['isAuthorized'] = callTree[oIndex.isAuthorized]; + oRow['lineNumber'] = callTree[oIndex.lineNumber]; + oRow['location'] = callTree[oIndex.location]; + if (callTree[oIndex.hasChild]) { oRow['folder'] = true; oRow['open'] = true;