Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add option to display message context #889

Merged
merged 9 commits into from
Feb 11, 2025
2 changes: 2 additions & 0 deletions src/app/compare/compare.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,12 @@
<div class="flex flex-column">
<app-report-alert-message [report]="leftNode"/>
<app-metadata-table class="w-50" [report]="leftNode"/>
<app-messagecontext-table class="w-50" [report]="leftNode"/>
</div>
<div class="flex flex-column">
<app-report-alert-message [report]="rightNode"/>
<app-metadata-table class="w-50" [report]="rightNode"/>
<app-messagecontext-table class="w-50" [report]="rightNode"/>
</div>
</div>
}
Expand Down
3 changes: 3 additions & 0 deletions src/app/compare/compare.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { DiffEditorModel, MonacoEditorModule } from 'ngx-monaco-editor-v2';
import { TabService } from '../shared/services/tab.service';
import { ActivatedRoute, Router } from '@angular/router';
import { MetadataTableComponent } from '../shared/components/metadata-table/metadata-table.component';
import { MessagecontextTableComponent } from '../shared/components/messagecontext-table/messagecontext-table.component';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { TitleCasePipe } from '@angular/common';
import { NodeLinkStrategy, nodeLinkStrategyConst } from '../shared/enums/node-link-strategy';
Expand All @@ -30,6 +31,7 @@ import { ReportAlertMessageComponent } from '../report/report-alert-message/repo
imports: [
CompareTreeComponent,
MetadataTableComponent,
MessagecontextTableComponent,
MonacoEditorModule,
ReactiveFormsModule,
TitleCasePipe,
Expand All @@ -40,6 +42,7 @@ import { ReportAlertMessageComponent } from '../report/report-alert-message/repo
],
})
export class CompareComponent implements AfterViewInit, OnInit {
protected readonly ReportUtil = ReportUtil;
static readonly ROUTER_PATH: string = 'compare';
@ViewChild(CompareTreeComponent) compareTreeComponent!: CompareTreeComponent;
protected readonly nodeLinkStrategyConst = nodeLinkStrategyConst;
Expand Down
12 changes: 12 additions & 0 deletions src/app/report/edit-display/edit-display.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,15 @@
(click)="toggleMetadataTable()">
{{ metadataTableVisible|booleanToString:'Hide' :'Show' }} metadata
</button>
@if (ReportUtil.isCheckPoint(selectedNode)) {
<button
data-cy-open-metadata-table
class="btn btn-info h-fit"
title="Open message context table"
(click)="toggleMessageContextTable()">
{{ messageContextTableVisible|booleanToString:'Hide' :'Show' }} messagecontext
</button>
}
<app-toggle-button
#editToggleButton
data-cy-report="toggleEdit"
Expand Down Expand Up @@ -111,6 +120,9 @@
@if (metadataTableVisible) {
<app-metadata-table [report]="selectedNode"/>
}
@if (messageContextTableVisible) {
<app-messagecontext-table [report]="selectedNode"/>
}
}
</div>

Expand Down
7 changes: 7 additions & 0 deletions src/app/report/edit-display/edit-display.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { HelperService } from '../../shared/services/helper.service';
import { EditorComponent } from '../../editor/editor.component';
import { Report } from '../../shared/interfaces/report';
import { MetadataTableComponent } from '../../shared/components/metadata-table/metadata-table.component';
import { MessagecontextTableComponent } from '../../shared/components/messagecontext-table/messagecontext-table.component';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BooleanToStringPipe } from '../../shared/pipes/boolean-to-string.pipe';
import { catchError } from 'rxjs';
Expand Down Expand Up @@ -52,6 +53,7 @@ import { Router } from '@angular/router';
ReactiveFormsModule,
EditorComponent,
MetadataTableComponent,
MessagecontextTableComponent,
BooleanToStringPipe,
ClipboardModule,
EditFormComponent,
Expand Down Expand Up @@ -84,6 +86,7 @@ export class EditDisplayComponent implements OnChanges {
editingChildNode: boolean = false;
editingRootNode: boolean = false;
metadataTableVisible: boolean = false;
messageContextTableVisible: boolean = false;
displayReport: boolean = false;
rerunResult?: TestResult;
selectedNode?: Report | Checkpoint;
Expand Down Expand Up @@ -323,6 +326,10 @@ export class EditDisplayComponent implements OnChanges {
this.metadataTableVisible = !this.metadataTableVisible;
}

toggleMessageContextTable(): void {
this.messageContextTableVisible = !this.messageContextTableVisible;
}

showEditorPossibilitiesModal(modal: any): void {
this.modalService.open(modal, {
backdrop: true,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<div class="d-flex flex-column mb-2">
@if (messageContextData.length > 0) {
<div class="title">MessageContext:</div>
<div data-cy-metadata-table="table" class="metadata-table">
@for (entry of messageContextData; track entry[0]) {
<div class="table-col first-table-col">
<div class="key">{{ entry[0] }}</div>
<div class="value" [appCopyTooltip]="entry[1]">{{ entry[1] }}</div>
</div>
}
</div>
}
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';
import { ClipboardModule } from '@angular/cdk/clipboard';
import { MatTooltipModule } from '@angular/material/tooltip';
import { CommonModule } from '@angular/common';
import { CopyTooltipDirective } from '../../directives/copy-tooltip.directive';
import { Report } from '../../interfaces/report';
import { Checkpoint } from '../../interfaces/checkpoint';
import { ReportUtil } from '../../util/report-util';

@Component({
selector: 'app-messagecontext-table',
templateUrl: './messagecontext-table.component.html',
styleUrls: ['./../metadata-table/metadata-table.component.css'],
standalone: true,
imports: [ClipboardModule, MatTooltipModule, CopyTooltipDirective, CommonModule],
})
export class MessagecontextTableComponent implements OnInit, OnChanges {
protected readonly ReportUtil = ReportUtil;

@Input({ required: true }) report!: Report | Checkpoint;
messageContextData: [string, string][] = [];

ngOnInit() {
this.updateMessageContextData();
}

ngOnChanges(changes: SimpleChanges) {
if (changes.report) {
this.updateMessageContextData();
}
}

private updateMessageContextData() {
const messageContext = ReportUtil.isCheckPoint(this.report) ? this.report.messageContext : null;
this.messageContextData = messageContext ? Object.entries(messageContext) : [];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,7 @@ table {
background-color: rgba(154, 152, 152, 0.5);
}
}

.title {
font-weight: bold;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<div class="d-flex flex-column mb-2">
<div class="title">Metadata:</div>
<div data-cy-metadata-table="table" class="metadata-table">
<div class="table-col first-table-col">
<div class="key">Name</div>
Expand Down
1 change: 1 addition & 0 deletions src/app/shared/interfaces/checkpoint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export interface Checkpoint {
index: number;
level: number;
message: string;
messageContext: Record<string, string>;
messageClassName?: string;
name: string;
noCloseReceivedForStream?: boolean;
Expand Down
Loading