blob: 55f073e8d8d01e63c80810b474b4988ed9ebdf24 [file] [log] [blame]
<div class="message-interface message-element-interface-button-header">
<button mat-raised-button (click)="openSettingsDialog()" style="float:right">Settings</button>
</div>
<button *ngIf="editMode===true" mat-fab (click)="openNewMessageDialog()" class="new-message-button" color="primary">+</button>
<div class="message-interface message-element-interface-top-level-table">
<mat-form-field class="message-interface-table-view-width-100 message-interface-table-filter-padding">
<mat-label>Filter Message Information</mat-label>
<input matInput type="text" (keyup)="applyFilter($event)" #input>
<mat-hint>Enter text to filter Message Table.
Only full text matches will display results.
<!-- To filter inner tables, use sub message: in the filter. -->
</mat-hint>
</mat-form-field>
<table mat-table [dataSource]="dataSource" multiTemplateDataRows class="mat-elevation-z8">
<ng-container [matColumnDef]="header" *ngFor="let header of headers; let i = index; trackBy:valueTracker;">
<th mat-header-cell *matHeaderCellDef [attr.colspan]="headers[i]" class="message-interface-table-view-message-header" [matTooltip]="header">
<ng-container>
{{header |convertMessageTableTitlesToString}}
</ng-container>
</th>
<td mat-cell *matCellDef="let element; let i = dataIndex" [ngClass]="i%2===0? 'message-table-row-even':'message-table-row-odd'">
<div class="flex-row">
<ng-container *ngIf="header==='name'">
<button mat-icon-button [@expandButton]="!expandedElement.includes(element.id) ? 'closed' : 'open'" (click)="rowChange(element.id,!expandedElement.includes(element.id))">V</button>
</ng-container>
<ng-container *ngIf="editMode===true;else no_edit">
<osee-messaging-edit-message-field [messageId]="element.id" [header]="header" [value]="element[header]"></osee-messaging-edit-message-field>
</ng-container>
<ng-template #no_edit>
<div appHighlightFilteredText [searchTerms]="searchTerms" [text]="element[header]" classToApply="ple-message-interface-table-highlighted-text">
{{element[header]}}
</div>
</ng-template>
</div>
</td>
</ng-container>
<ng-container matColumnDef="expandedMessage">
<td mat-cell *matCellDef="let element" [attr.colspan]="headers.length" class="no-pad">
<div class="sub-message-table-message-table-detail message-element-interface-table-view-width-100"
[@detailExpand]="expandedElement.includes(element.id) ? 'expanded' : 'collapsed'">
<ng-container *ngIf="expandedElement.includes(element.id)">
<ple-messaging-sub-message-table [data]="element.subMessages" [filter]="filter" [element]="element" (expandRow)="expandRow($event)" [editMode]="editMode"></ple-messaging-sub-message-table>
</ng-container>
</div>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="headers; sticky:true">
</tr>
<tr mat-row *matRowDef= "let row; columns: headers;"
class="message-detail-row"
[class.message-expanded-detail-row]="expandedElement.includes(row.id)">
</tr>
<tr mat-row *matRowDef="let row; columns: ['expandedMessage']" class="message-expanded-detail-row">
</tr>
</table>
</div>