Upload folder using huggingface_hub
Browse files- index.html +12 -1
index.html
CHANGED
|
@@ -887,7 +887,18 @@ function renderCoverageTable(taskKey, tableId, seen) {
|
|
| 887 |
const td = el("td");
|
| 888 |
const hit = seen[`${taskKey}|${v}|${sz}|${p.key}`];
|
| 889 |
if (hit) {
|
| 890 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 891 |
} else {
|
| 892 |
td.innerHTML = '<span class="cell cell-none">—</span>';
|
| 893 |
}
|
|
|
|
| 887 |
const td = el("td");
|
| 888 |
const hit = seen[`${taskKey}|${v}|${sz}|${p.key}`];
|
| 889 |
if (hit) {
|
| 890 |
+
// Build via DOM APIs with scheme validation — snapshot data is
|
| 891 |
+
// trusted at build time, but this page is public; stay defensive.
|
| 892 |
+
const a = el("a", { class: "cell cell-val", target: "_blank", rel: "noopener" });
|
| 893 |
+
let safeUrl = "#";
|
| 894 |
+
try {
|
| 895 |
+
const u = new URL(hit.s.url);
|
| 896 |
+
if (u.protocol === "https:" || u.protocol === "http:") safeUrl = u.href;
|
| 897 |
+
} catch (e) { /* keep '#' */ }
|
| 898 |
+
a.href = safeUrl;
|
| 899 |
+
a.setAttribute("title", `Open validation session ${hit.s.session_id} on EdgeFirst Studio`);
|
| 900 |
+
a.textContent = "✓";
|
| 901 |
+
td.appendChild(a);
|
| 902 |
} else {
|
| 903 |
td.innerHTML = '<span class="cell cell-none">—</span>';
|
| 904 |
}
|