blob: b4ab49b8e6da9bff4558f4d4261e81c3fca57eb6 [file] [log] [blame]
<link rel="import" href="/bower_components/iron-pages/iron-pages.html">
<link rel="import" href="/bower_components/paper-tabs/paper-tabs.html">
<link rel="import" href="/bower_components/paper-tooltip/paper-tooltip.html">
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="/ui/elements/flake_report/top_components.html">
<dom-module id="flake-report">
<template>
<style>
table {
border-collapse: collapse;
border: 1px solid gray;
}
table th {
padding: 5px;
white-space: nowrap;
}
.main-header, #plain-tabs {
color: #FFF;
background-color: #4285F4;
}
table td {
max-width: 0;
padding: 2px;
padding-right: 10px;
height: 30px;
vertical-align: top;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
}
tr:nth-child(odd) {
background-color: #E8F0FE;
}
tr:nth-child(even) {
background-color: #FFF;
}
#tabs-container {
background-color: #1F78B4;
width: 90vw;
height: 60px;
}
#plain-tabs {
font-size: 16px;
width: calc(90vw - 3px);
}
.rank_by {
background-color: #1F78B4;
color: #ffff8d;
font-size: 18px;
}
paper-tab:not(:first-child) {
border-left: 2px solid white;
}
#total-report-table {
border-top: 2px solid #1F78B4;
}
</style>
<table width="98%">
<tr>
<th class="main-header" width="16%">Top 10 Components</th>
<th class="main-header rank_by" id="rank_test" width="14%">
<paper-button noink id="0" on-tap="selectRankBy">Flaky Tests
<iron-icon id="0" icon="arrow-downward"></iron-icon></paper-button>
<paper-tooltip position="top" offset="0" fit-to-visible-bounds="true">Count of distinct tests have appeared flaky.</paper-tooltip>
</th>
<th class="main-header" id="rank_bug" width="14%">
<paper-button noink id="1" on-tap="selectRankBy">Flake Bugs
<iron-icon id="1" icon="arrow-downward"></iron-icon></paper-button>
<paper-tooltip position="top" offset="0" fit-to-visible-bounds="true">Count of bugs for flaky tests that occurred.</paper-tooltip>
</th>
<th class="main-header" id="rank_new_bug" width="14%">
<paper-button noink id="2" on-tap="selectRankBy">New Bugs
<iron-icon id="2" icon="arrow-downward"></iron-icon></paper-button>
<paper-tooltip position="top" offset="0" fit-to-visible-bounds="true">Count of newly created bugs for flaky tests that occurred.</paper-tooltip>
</th>
<th class="main-header" id="rank_false_rejection" width="14%">
<paper-button noink id="3" on-tap="selectRankBy">False Rejects
<iron-icon id="3" icon="arrow-downward"></iron-icon></paper-button>
<paper-tooltip position="top" offset="0" fit-to-visible-bounds="true">Count of falsely rejected CLs because of flaky tests.</paper-tooltip>
</th>
<th class="main-header" width="14%">Total Impacted CLs</th>
<th class="main-header" width="14%">Total Flake Occurrences</th>
</tr>
</table>
<iron-pages selected="{{selected}}">
<template is="dom-repeat" items="[[top_components]]">
<div>
<top-components rank_by="{{item.rank_by}}" top_components="{{item.components}}"></top-components>
</div>
</template>
</iron-pages>
<table width="98%" id="total-report-table">
<tr>
<th width="16%"><a target="_blank" href="/p/chromium/flake-portal/report/component?total=1">Total</a></th>
<td width="14%"><b>[[total_report.test_count]]</b></td>
<td width="14%"><b>[[total_report.bug_count]]</b></td>
<td width="14%"><b>[[total_report.new_bug_count]]</b></td>
<td width="14%"><b>[[total_report.impacted_cl_counts.cq_false_rejection]]</b></td>
<td width="14%"><b>[[total_report.impacted_cl_counts.total]]</b></td>
<td width="14%"><b>[[total_report.occurrence_counts.total]]</b></td>
</tr>
</table>
</template>
<script>
(function () {
"use strict";
Polymer({
is: "flake-report",
properties: {
total_report: {
type: Object
},
// A list of component report objects.
top_components: {
type: Array
},
selected: {
type: Number,
value: 0
}
},
// Event handlers.
selectRankBy: function (e) {
this.selected = e.target.id;
// Resets all headers.
this.$.rank_test.classList.remove("rank_by");
this.$.rank_bug.classList.remove("rank_by");
this.$.rank_new_bug.classList.remove("rank_by");
this.$.rank_false_rejection.classList.remove("rank_by");
// Highlights the selected header.
e.target.closest('th').classList.add("rank_by");
},
});
})();
</script>
</dom-module>