diff --git a/telescope/html/css/main.css b/telescope/html/css/main.css
index 4532dfaa..fc8058b3 100644
--- a/telescope/html/css/main.css
+++ b/telescope/html/css/main.css
@@ -26,6 +26,10 @@ code {
text-align: left;
}
+.checks-chips a {
+ margin-right: 3px;
+}
+
section.project:not(:first-child) {
border-top: 1px solid rgba(0, 40, 100, 0.12);
}
diff --git a/telescope/html/js/app/components/Overview.mjs b/telescope/html/js/app/components/Overview.mjs
index 328f714d..88cbcd8b 100644
--- a/telescope/html/js/app/components/Overview.mjs
+++ b/telescope/html/js/app/components/Overview.mjs
@@ -67,6 +67,9 @@ export default class Overview extends Component {
${this.renderErrorList(failing)}
+ ${this.renderChipsList(
+ Object.values(results)
+ )}
@@ -111,4 +114,37 @@ export default class Overview extends Component {
return columns;
}
+
+ renderChipsList(results) {
+ if (results.length == 0) {
+ return "";
+ }
+
+ return results.map((r) => {
+ let chipColor;
+ if (r.isLoading) {
+ chipColor = "text-gray";
+ } else if (r.isIncomplete) {
+ chipColor = "text-yellow";
+ } else if (r.success) {
+ chipColor = "text-green";
+ } else {
+ chipColor = "text-red";
+ }
+ return html`
+ <${FocusedCheck.Consumer}>
+ ${(focusedCheckContext) =>
+ html` {
+ e.preventDefault();
+ focusedCheckContext.setValue(r.project, r.name);
+ }}
+ >
+
+ `}
+ ${FocusedCheck.Consumer}>
+ `;
+ });
+ }
}