diff --git a/assets/sai.css b/assets/sai.css
index bca011c..f63aa1a 100644
--- a/assets/sai.css
+++ b/assets/sai.css
@@ -216,6 +216,27 @@ div.taskinfo {
margin-top: -3px;
}
+#sai_task_logs_container div.taskinfo.taskstate1, div.taskinfo.taskstate1 { background: #d0d0d0; border-color: #d0d0d0; transition: background-color 500ms linear; }
+#sai_task_logs_container div.taskinfo.taskstate2, div.taskinfo.taskstate2 { background: #a0a0a0; border-color: #a0a0a0; transition: background-color 500ms linear; }
+#sai_task_logs_container div.taskinfo.taskstate3, div.taskinfo.taskstate3 { background: #01ff70; border-color: #01ff70; transition: background-color 500ms linear; }
+#sai_task_logs_container div.taskinfo.taskstate4, div.taskinfo.taskstate4 { background: #ff851b; border-color: #ff851b; transition: background-color 500ms linear; }
+#sai_task_logs_container div.taskinfo.taskstate5, div.taskinfo.taskstate5 { background: #808080; border-color: #808080; transition: background-color 500ms linear; }
+#sai_task_logs_container div.taskinfo.taskstate6, div.taskinfo.taskstate6 { background: #df3030; border-color: #df3030; transition: background-color 500ms linear; }
+#sai_task_logs_container div.taskinfo.taskstate10, div.taskinfo.taskstate10 { background: #ffdc00; border-color: #ffdc00; transition: background-color 500ms linear; }
+
+#sai_task_logs_container div.taskinfo.taskstate6, #sai_task_logs_container div.taskinfo.taskstate6 span.ti1, #sai_task_logs_container div.taskinfo.taskstate6 span.ti5, #sai_task_logs_container div.taskinfo.taskstate6 div.sai_arts,
+div.taskinfo.taskstate6, div.taskinfo.taskstate6 span.ti1, div.taskinfo.taskstate6 span.ti5, div.taskinfo.taskstate6 div.sai_arts {
+ color: #ffffff;
+}
+#sai_task_logs_container div.taskinfo.taskstate5, #sai_task_logs_container div.taskinfo.taskstate5 span.ti1, #sai_task_logs_container div.taskinfo.taskstate5 span.ti5, #sai_task_logs_container div.taskinfo.taskstate5 div.sai_arts,
+div.taskinfo.taskstate5, div.taskinfo.taskstate5 span.ti1, div.taskinfo.taskstate5 span.ti5, div.taskinfo.taskstate5 div.sai_arts {
+ color: #ffffff;
+}
+#sai_task_logs_container div.taskinfo.taskstate6 a, #sai_task_logs_container div.taskinfo.taskstate5 a,
+div.taskinfo.taskstate6 a, div.taskinfo.taskstate5 a {
+ color: #ffffff;
+}
+
table.scrollogs {
margin-top: 64px;
}
@@ -296,8 +317,8 @@ img.ip1 {
}
img.ip2 {
- width: 19px;
- height: 19px;
+ width: 28px;
+ height: 28px;
vertical-align:text-bottom;
}
@@ -370,7 +391,7 @@ img.bico {
.taskstate6 {
background:#df3030;
- color:#300000;
+ color:#ffffff;
opacity:1;
transition: background-color 500ms linear;
}
@@ -1464,7 +1485,7 @@ canvas.power-graph {
}
.runs-header-container {
- margin-top: -8px;
+ margin-top: 4px;
}
.runs-table {
@@ -1491,12 +1512,17 @@ canvas.power-graph {
position: relative;
border-radius: 4px;
display: inline-block;
+ margin-right: 6px;
+ margin-bottom: 6px;
}
.run-decal {
position: relative;
border-radius: 4px;
display: inline-block;
+ border: 1px solid #bbb;
+ margin-right: 6px;
+ margin-bottom: 6px;
}
.runs-time-cell {
diff --git a/assets/sai.js b/assets/sai.js
index 9a1bf49..0370d72 100644
--- a/assets/sai.js
+++ b/assets/sai.js
@@ -1091,7 +1091,7 @@ function sai_taskinfo_render(t, now_ut)
s = "<table><tr class=\"nomar\"><td class=\"atop\"><table>" +
sai_event_render(t, now_ut, 0) + "</table></td><td class=\"ti\">" +
"<span class=\"ti1\">" + sai_plat_icon(t.t.platform, 2) +
- san(t.t.platform) + "</span> " +
+ san(t.t.builder_name ? t.t.builder_name : t.t.platform) + "</span> " +
sai_stateful_taskname(t.t.state, t.t.taskname, 1) + " ";
if (auth_state === SaiAuthState.LOGGED_IN_GRANT_ADMIN && t.t.state != 0 && t.t.state != 3 && t.t.state != 4 && t.t.state != 5)
s += "<img class=\"rebuild\" alt=\"stop build\" src=\"stop.svg\" " +
@@ -1103,11 +1103,9 @@ function sai_taskinfo_render(t, now_ut)
if (t.t.builder_name) {
var now_ut = Math.round((new Date().getTime() / 1000));
- s += " <span class=\"ti5\"><img class=\"bico\" src=\"/sai/builder-instance.png\"> " +
- san(t.t.builder_name) + "</span>";
if (t.t.started)
/* started is a unix time, in seconds */
- s += ", <span class=\"ti5\"> " +
+ s += "<span class=\"ti5\"> " +
agify(now_ut, t.t.started) + " ago, Dur: " +
(t.t.duration ? t.t.duration / 1000000 :
now_ut - t.t.started).toFixed(1) +
@@ -1116,19 +1114,21 @@ function sai_taskinfo_render(t, now_ut)
}
if (t.runs && t.runs.length >= 2) {
- var r1 = "", r2 = "";
- s += "<div class=\"runs-header-container\"><table class=\"runs-table\"><tr>";
+ s += "<div class=\"runs-header-container\" style=\"display:flex; flex-wrap:wrap; gap:6px; margin-top:2px;\">";
for (var n = t.runs.length - 1; n >= 0; n--) {
var r = t.runs[n];
var ridx = typeof r.run !== 'undefined' ? r.run : 0;
var current = (ridx == (typeof t.t.run !== 'undefined' ? t.t.run : 0));
var dcl = current ? "run-current-decal" : "run-decal";
- var decal = "<div class=\"taskstate taskstate" + r.state + " " + dcl + "\"><a href=\"index.html?task=" + t.t.uuid + "&run=" + ridx + "\">" + sai_plat_icon(r.platform, 0) + "</a></div>";
var timeStr = r.started ? agify(now_ut, r.started) + " ago" : "pending";
- r1 += "<td>" + decal + "</td>";
- r2 += "<td><span class=\"ti5\">" + timeStr + "</span></td>";
+ var decal = "<div class=\"taskstate taskstate" + r.state + " " + dcl + "\" style=\"padding:4px; text-align:center; border-radius:6px;\">" +
+ "<a href=\"index.html?task=" + t.t.uuid + "&run=" + ridx + "\" style=\"text-decoration:none; color:inherit; display:block;\">" +
+ "<div>" + sai_plat_icon(r.platform, 0) + "</div>" +
+ "<div class=\"ti5\" style=\"margin-top:2px;\">" + timeStr + "</div>" +
+ "</a></div>";
+ s += decal;
}
- s += r1 + "</tr><tr>" + r2 + "</tr></table></div>";
+ s += "</div>";
}
s += "</td></tr>";
@@ -2938,7 +2938,9 @@ function ws_open_sai()
window.history.replaceState({}, '', path + '?' + par.toString());
}
window.current_task_run = jso.t.run;
- document.getElementById("taskinfo-" + jso.t.uuid).innerHTML = sai_taskinfo_render(jso);
+ var ti_el = document.getElementById("taskinfo-" + jso.t.uuid);
+ ti_el.className = "taskinfo taskstate" + jso.t.state;
+ ti_el.innerHTML = sai_taskinfo_render(jso);
if (jso.e) {
if (document.getElementById("esr-" + jso.e.uuid))
document.getElementById("esr-" + jso.e.uuid).innerHTML =
@@ -2966,7 +2968,7 @@ function ws_open_sai()
document.getElementById("sai_sticky")) {
window.current_task_run = jso.t.run;
document.getElementById("sai_sticky").innerHTML =
- "<div class=\"taskinfo\" id=\"taskinfo-" +
+ "<div class=\"taskinfo taskstate" + jso.t.state + "\" id=\"taskinfo-" +
san(jso.t.uuid) + "\">" +
sai_taskinfo_render(jso) +
"</div>";