/
logviewer.html
133 lines (125 loc) · 4.97 KB
/
logviewer.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<!DOCTYPE html>
<html ng-controller="LogviewerCtrl" ng-init="init()" ng-app="logviewer" ng-strict-di>
<head>
<meta charset="utf-8">
<title ng-bind="::logViewerTitle">Log viewer</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link id="favicon" type="image/png" rel="shortcut icon" href="img/logviewerIcon.png">
<style>
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
</style>
</head>
<body class="body-logviewer">
<!-- Logviewer navbar -->
<nav class="navbar navbar-light bg-light" role="navigation" ng-cloak>
<div class="container-fluid">
<ul class="nav mr-auto navbar-row">
<!-- Logo menu button -->
<li>
<span class="dropdown">
<button id="lv-logo" title="Treeherder services" role="button"
data-toggle="dropdown"
class="dropdown-toggle">Logviewer
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="lv-logo">
<li><a class="dropdown-item" href="/">Treeherder</a></li>
<li><a class="dropdown-item" href="perf.html">Perfherder</a></li>
</ul>
</span>
</li>
<!-- Job status -->
<li ng-if="jobExists" class="{{::resultStatusShading}}">
<div>
<span ng-cloak><strong>{{result.label}}: </strong></span>
<span ng-cloak>{{result.value}}</span>
</div>
</li>
<li ng-if="!jobExists" class="alert-danger">
<div>
<span title="The job does not exist or has expired">Unavailable: {{jobError}}</span>
</div>
</li>
<!-- Raw log button -->
<li ng-if="jobExists">
<a title="{{logError ? 'Raw log link no longer exists or has expired (click for path)' :
'Open the raw log in a new window'}}"
target="_blank" rel="noopener"
href="{{rawLogURL}}">
<span ng-class="logError ? 'fa-warning actionbtn-warning' : 'fa-file-text-o actionbtn-icon'"
class="fa"></span>
<span>open raw log</span>
</a>
</li>
<!-- Ref test button -->
<li ng-if="reftestUrl" ng-cloak>
<a title="Open the Reftest Analyser in a new window"
target="_blank" rel="noopener"
href="{{reftestUrl}}">
<span class="fa fa-bar-chart-o actionbtn-icon"></span>
<span>open analyser</span>
</a>
</li>
<!-- Show successful steps button -->
<li ng-if="hasFailedSteps()"
class="lv-actionbtn">
<div id="lv-successful-steps">
<input type="checkbox"
ng-model="showSuccessful"
ng-change="toggleSuccessfulSteps()"
ng-disabled="isTaskClusterLog"
ng-attr-title="{{isTaskClusterLog ? 'Not available on TaskCluster jobs' : ''}}"/>
<span>show successful steps</span>
</div>
</li>
</ul>
</div>
</nav>
<!-- Job header and steps navigation -->
<div class="run-data container-fluid">
<div class="row">
<div class="col" >
<div class="job-header">
<table class="table table-sm" >
<tr ng-repeat="property in logProperties">
<th ng-cloak>{{property.label}}</th>
<td ng-if="property.label == 'Revision'" class="break-word">
<a href="{{::property.value | getRevisionUrl:repoName}}&selectedJob={{job_id}}"
title="Open push"
ng-cloak>{{property.value}}</a>
</td>
<td ng-if="property.label != 'Revision'"
ng-cloak class="break-word">{{property.value}}</td>
</tr>
<tr ng-if="taskId" ng-cloak>
<th>
Task
</th>
<td>
<a href="{{ getInspectTaskUrl(taskId) }}">
{{ taskId }}
</a>
</td>
</tr>
<tr ng-repeat="line in job_details | orderBy:'title'">
<th ng-cloak>
<span ng-if="line.title">
{{line.title}}:
</span>
</th>
<td ng-cloak>
<a ng-if="line.url" title="{{line.value}}"
href="{{line.url}}" target="_blank" rel="noopener">{{line.value}}</a>
<span ng-if="!line.url" ng-bind-html="line.value"></span>
</td>
</tr>
</table>
</div>
</div>
<div class="col" lv-log-steps></div>
</div>
</div>
<th-log-viewer class="logview-container"></th-log-viewer>
</body>
</html>