1 //- Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 //- Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 //- you may not use this file except in compliance with the License. #
\r
5 //- You may obtain a copy of the License at #
\r
7 //- http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 //- Unless required by applicable law or agreed to in writing, software #
\r
10 //- distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 //- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 //- See the License for the specific language governing permissions and #
\r
13 //- limitations under the License. #
\r
14 //- #############################################################################
\r
17 div([@routerTransition], style="margin-top: -15px")
\r
18 .row.fullWidth.mb-4(style="position:relative")
\r
21 mat-card#canvas-card(style="width: 100%; resize:vertical; overflow: hidden")
\r
22 mat-card-content#canvas(style="height: 100%")
\r
23 div(style="position: absolute; bottom: 5px; left: 10px")
\r
24 div.small.text-muted Test Definition: {{ testResult?.historicTestDefinition?.testName }}
\r
25 div.small.text-muted Version: {{ testResult?.historicTestDefinition?.bpmnInstances[0]?.version }}
\r
26 div(style="position: absolute; bottom: 5px; right: 25px")
\r
27 div.small.text-muted(*ngIf="processState")
\r
28 | Status: {{ processState }}
\r
32 h3 {{ testResult?.historicTestInstance?.testInstanceName }} Execution Log
\r
33 div {{ testResult?.historicTestInstance?.testInstanceDescription }}
\r
34 button.mr-2.pull-right(color="accent", mat-raised-button, (click)="refreshAllData()") Refresh
\r
35 i.fa.fa-2x.fa-fw.fa-refresh.fast-spin(*ngIf="spin")
\r
36 button.mr-2.pull-right(*ngIf="processState && processState == 'Running'", color="warn", mat-raised-button, (click)="cancelExecution()") Cancel Execution
\r
39 mat-tab-group([selectedIndex]="0", dinamicHeight, color="accent", backgroundColor="primary")
\r
40 mat-tab(label="Overview")
\r
42 .row.mb-4(style="text-align:center")
\r
45 div {{ testResult?.testResult }}
\r
48 div {{ testResult?.startTime }}
\r
51 div {{ testResult?.endTime }}
\r
54 div {{ testResult?.totalTime }}
\r
57 div {{ testResult?.date }}
\r
60 div {{ testResult?.historicEmail }}
\r
62 .row.mb-4(*ngIf="testResult?.testResultMessage")
\r
64 h5 Test Result Message
\r
65 | {{ testResult?.testResultMessage }}
\r
69 //- table(datatable, [dtOptions]="dtOptions", class="row-border hover")
\r
72 //- th(*ngFor="let column of columns") {{ column.title }}
\r
74 //- tr(*ngFor="let key of data")
\r
75 //- td(*ngFor="let column of columns") {{ key[column.data] }}
\r
76 ngx-json-viewer(*ngIf="testResult && testResult.testDetails != {}", [json]="testResult.testDetails", style="font-size: 1.3em")
\r
77 //- div(*ngIf="testResult && testResult.testDetails != {}", [innerHTML]="json2html(testResult.testDetails)")
\r
78 //- div(*ngIf="testResult") {{ json2html(testResult.testDetails) != '' ? '' : 'No test details were set during execution.' }}
\r
80 mat-tab(*ngIf="testResult?.testInstanceResults.length > 0", label="Test Instance Results")
\r
86 mat-list-item(style="cursor: pointer", *ngFor="let key of objectKeys(instanceDataSource); last as last; first as first", (click)="selectTestInstance(key)")
\r
87 h5 {{ instanceDataSource[key][0].historicTestInstance.testInstanceName }}
\r
88 mat-icon([hidden]="selectedTestInstance != key") keyboard_arrow_left
\r
89 mat-divider([inset]="true", *ngIf="!last")
\r
90 mat-divider(vertical)
\r
93 mat-accordion([multi]="true")
\r
94 mat-expansion-panel(*ngFor="let element of instanceDataSource[selectedTestInstance]; let i = index;")
\r
95 mat-expansion-panel-header()
\r
96 mat-panel-title {{ '#' + (i + 1)}}
\r
97 mat-panel-description
\r
98 | {{ element.testResult }}
\r
100 .row(style="text-align:center")
\r
103 div {{ element.testResult }}
\r
106 div {{ element.startTime }}
\r
109 div {{ element.endTime }}
\r
112 div {{ element.totalTime }}
\r
115 div {{ element.date }}
\r
117 div(style="float:right")
\r
118 button(mat-raised-button, color="primary", [routerLink]="['/control-panel']", [queryParams]="{id: element._id}") Full Execution
\r
119 .row.mb-4(*ngIf="element.testResultMessage")
\r
121 h5 Test Result Message
\r
122 | {{ element.testResultMessage }}
\r
126 ngx-json-viewer(*ngIf="element && element.testDetails != {}", [json]="element.testDetails")
\r
127 //- div(*ngIf="element && element.testDetails != {}", [innerHTML]="json2html(element.testDetails)")
\r
128 //- div(*ngIf="testResult") {{ json2html(element.testDetails) != '' ? '' : 'No test details were set during execution.' }}
\r
130 mat-tab(*ngIf="testResult?.testHeadResults.length > 0", label="Test Head Results")
\r
136 mat-list-item(style="cursor: pointer", *ngFor="let key of objectKeys(dataSource); last as last; first as first", (click)="selectTestHead(key)")
\r
138 h5 {{ dataSource[key][0].testHeadName }}
\r
139 div.small(style="margin-top:-11px;") {{ dataSource[key][0].bpmnVthTaskId }}
\r
140 mat-icon([hidden]="selectedTestHead != key") keyboard_arrow_left
\r
141 mat-divider([inset]="true", *ngIf="!last")
\r
142 mat-divider(vertical)
\r
145 div(*ngFor="let testHead of testHeads")
\r
146 mat-accordion([multi]="true", *ngIf="selectedTestHead == testHead.testHeadId + testHead.bpmnVthTaskId")
\r
147 mat-expansion-panel(*ngFor="let element of dataSource[testHead.testHeadId + testHead.bpmnVthTaskId]; let i = index;")
\r
148 mat-expansion-panel-header()
\r
149 mat-panel-title {{ '#' + (i + 1)}}
\r
150 mat-panel-description
\r
151 | {{ element.totalTime }}
\r
152 ngx-json-viewer([json]="element.testHeadRequestResponse")
\r
153 app-robot-report(*ngIf="element.testHeadResponse", [response]="element.testHeadResponse")
\r
155 //- (*ngFor="let testHead of testHeads")
\r
157 //- mat-card-header.COMPLETED-dash
\r
158 //- mat-card-title.pull-left {{testHead.testHeadName}} Results
\r
159 //- .pull-right {{testHead.bpmnVthTaskId}}
\r
160 //- mat-card-content
\r
161 //- table(mat-table, multiTemplateDataRows, [dataSource]="dataSource[testHead.testHeadId + testHead.bpmnVthTaskId]")
\r
163 //- ng-container(matColumnDef="startTime")
\r
164 //- th(mat-header-cell, *matHeaderCellDef) Start Time
\r
165 //- td(mat-cell, *matCellDef="let element") {{ element.startTime}}
\r
167 //- ng-container(matColumnDef="endTime")
\r
168 //- th(mat-header-cell, *matHeaderCellDef) End Time
\r
169 //- td(mat-cell, *matCellDef="let element") {{ element.endTime }}
\r
171 //- ng-container(matColumnDef="totalTime")
\r
172 //- th(mat-header-cell, *matHeaderCellDef) Total Time
\r
173 //- td(mat-cell, *matCellDef="let element") {{ element.totalTime }}
\r
175 //- ng-container(matColumnDef="expandedDetail")
\r
176 //- td(mat-cell, style="padding:0px", *matCellDef="let element; let i = dataIndex", [attr.colspan]="displayedColumns.length")
\r
177 //- div([@detailExpand]="(testHead.testHeadId + testHead.bpmnVthTaskId + i) == expandedElement ? 'expanded' : 'collapsed'")
\r
178 //- codemirror([config]="codeConfig", [value]='element.testHeadResponse', name="testHeadResult")
\r
179 //- app-robot-report(*ngIf="element.testHeadResponse", [response]="element.testHeadResponse")
\r
181 //- tr(mat-header-row, *matHeaderRowDef="displayedColumns")
\r
182 //- tr.example-element-row(mat-row, *matRowDef="let element; columns: displayedColumns; let i = dataIndex", [class.example-expanded-row]="expandedElement === element", (click)="expand(testHead.testHeadId + testHead.bpmnVthTaskId + i)")
\r
183 //- tr.example-detail-row(mat-row, *matRowDef="let row; columns: ['expandedDetail']")
\r
185 mat-tab(label="Task Log", *ngIf="taskLog != ''")
\r
190 mat-tab(label="Test Parameters", *ngIf="testResult?.historicTestInstance")
\r
193 ngx-json-viewer([json]="testResult.historicTestInstance.testData", [expanded]="false", style="font-size: 1.3em")
\r
194 //- div([innerHTML]="json2html(testResult.historicTestInstance.testData, 1)")
\r
195 //- | {{ testResult.historicTestInstance.testData ? '' : 'No test data set.'}}
\r
196 h5.mt-1 Test Head Input
\r
197 ngx-json-viewer([json]="testResult.historicTestInstance.vthInput", [expanded]="false", style="font-size: 1.3em")
\r
198 //- div([innerHTML]="json2html(testResult.historicTestInstance.vthInput, 1)")
\r
199 //- | {{ testResult.historicTestInstance.vthInput ? '' : 'No test head input set.'}}
\r
202 mat-tab(*ngIf="executionJobLogDataSource != undefined", label="Execution Job Log")
\r
206 h5 Execution Job Log
\r
208 mat-list-item(style="cursor: pointer", *ngFor="let key of objectKeys(executionJobLogDataSource); last as last; first as first", (click)="selectExecutionJobLog(key)")
\r
209 h5 {{ executionJobLogDataSource[key][0].activityId }}
\r
210 mat-icon([hidden]="selectedExecutionJobLog != key") keyboard_arrow_left
\r
211 mat-divider([inset]="true", *ngIf="!last")
\r
212 mat-divider(vertical)
\r
215 mat-accordion([multi]="true")
\r
216 mat-expansion-panel(*ngFor="let element of executionJobLogDataSource[selectedExecutionJobLog]; let i = index;")
\r
217 mat-expansion-panel-header()
\r
218 mat-panel-title {{ '#' + (i + 1)}}
\r
219 mat-panel-description
\r
221 ngx-json-viewer([json]="element")
\r
222 //- div([innerHTML]="json2html(element)")
\r
223 //- | {{ element ? '' : 'No job log' }}
\r
225 mat-tab(*ngIf="executionExternalTaskLogDataSource != undefined", label="Execution External Task Log")
\r
229 h5 Execution External Task Log
\r
231 mat-list-item(style="cursor: pointer", *ngFor="let key of objectKeys(executionExternalTaskLogDataSource); last as last; first as first", (click)="selectExecutionExternalTaskLog(key)")
\r
232 h5 {{ executionExternalTaskLogDataSource[key][0].activityId }}
\r
233 mat-icon([hidden]="selectedExecutionExternalTaskLog != key") keyboard_arrow_left
\r
234 mat-divider([inset]="true", *ngIf="!last")
\r
235 mat-divider(vertical)
\r
238 mat-accordion([multi]="true")
\r
239 mat-expansion-panel(*ngFor="let element of executionExternalTaskLogDataSource[selectedExecutionExternalTaskLog]; let i = index;")
\r
240 mat-expansion-panel-header()
\r
241 mat-panel-title {{ '#' + (i + 1)}}
\r
242 mat-panel-description
\r
244 ngx-json-viewer([json]="element")
\r
245 //- div([innerHTML]="json2html(element)")
\r
246 //- | {{ element ? '' : 'No external task log' }}
\r
249 mat-tab(*ngIf="executionVariablesDataSource != undefined", label="Execution Variables")
\r
253 h5 Execution Variables
\r
255 mat-list-item(style="cursor: pointer", *ngFor="let key of objectKeys(executionVariablesDataSource); last as last; first as first", (click)="selectExecutionVariable(key)")
\r
256 h5 {{ executionVariablesDataSource[key][0].variableName }}
\r
257 mat-icon([hidden]="selectedExecutionVariable != key") keyboard_arrow_left
\r
258 mat-divider([inset]="true", *ngIf="!last")
\r
259 mat-divider(vertical)
\r
262 mat-accordion([multi]="true")
\r
263 mat-expansion-panel(*ngFor="let element of executionVariablesDataSource[selectedExecutionVariable]; let i = index;")
\r
264 mat-expansion-panel-header()
\r
265 mat-panel-title {{ '#' + (i + 1)}}
\r
266 mat-panel-description
\r
268 ngx-json-viewer([json]="element")
\r
269 //- div([innerHTML]="json2html(element)")
\r
270 //- | {{ element ? '' : 'No variables' }}
\r