diff --git a/web/index.html b/web/index.html
index be60f7e..670f182 100644
--- a/web/index.html
+++ b/web/index.html
@@ -267,6 +267,8 @@
border-radius:999px; padding:2px 9px;
}
.resumo-file{ font-size:10.5px; color:var(--ink-3); line-height:1.5; overflow-wrap:anywhere; }
+ .resumo-file a{ color:inherit; text-decoration:none; }
+ .resumo-file a:hover{ color:var(--accent); text-decoration:underline; }
.resumo-processo-btn{
width:100%; text-align:center; font:inherit; font-size:12.5px; font-weight:600; color:var(--accent);
@@ -357,6 +359,7 @@
thead th:hover{ color:var(--ink); }
thead th .arrow{ opacity:.5; margin-left:3px; }
tbody td{ padding:9px 12px; border-bottom:1px solid var(--grid); vertical-align:top; color:var(--ink-2); }
+ tbody tr{ cursor:pointer; }
tbody tr:hover td{ background:var(--accent-wash); }
td.date{ font-family:"IBM Plex Mono",monospace; font-size:12px; white-space:nowrap; color:var(--ink); }
td.lane{ white-space:nowrap; }
@@ -367,9 +370,10 @@
td.text{ color:var(--ink); max-width:520px; }
td.file{
font-family:"IBM Plex Mono",monospace; font-size:10.5px; color:var(--ink-3); max-width:220px;
- overflow-wrap:anywhere; cursor:pointer;
+ overflow-wrap:anywhere;
}
- td.file:hover{ color:var(--accent); text-decoration:underline; }
+ td.file a{ color:inherit; text-decoration:none; }
+ td.file a:hover{ color:var(--accent); text-decoration:underline; }
.table-foot{ display:flex; align-items:center; justify-content:center; gap:12px; padding:14px; }
.table-foot button{
border:1px solid var(--border); background:var(--page); color:var(--ink);
@@ -1309,7 +1313,13 @@
document.getElementById("resumoId").textContent = p.id;
document.getElementById("resumoType").textContent = p.type;
document.getElementById("resumoText").textContent = p.text;
- document.getElementById("resumoFile").textContent = p.file;
+ var fileEl = document.getElementById("resumoFile");
+ fileEl.innerHTML = "";
+ var fileLink = document.createElement("a");
+ fileLink.href = originalMdUrl(p.file);
+ fileLink.target = "_blank"; fileLink.rel = "noopener noreferrer";
+ fileLink.textContent = p.file;
+ fileEl.appendChild(fileLink);
var peopleBlock = document.getElementById("resumoPeopleBlock");
var peopleWrap = document.getElementById("resumoPeople");
@@ -1410,6 +1420,13 @@
return out.join("\n");
}
+ // r.file (docs.json) is always a path under originals/Parte2/ — every lane
+ // in docs.json has a matching folder there (verified: no lane needs Parte1).
+ function originalMdUrl(file){
+ return "https://git.rodado.xyz/rodado/pet16704/src/branch/main/originals/Parte2/"
+ + file.split("/").map(encodeURIComponent).join("/");
+ }
+
var processoCache = {}; // process number -> rendered HTML, or null if not found
// resumos/parte1/ and resumos/parte2/ live one level above web/ in the
// intended (repo-root) deployment, but a local server started from inside
@@ -1668,6 +1685,11 @@
slice.forEach(function(r){
var lane = LANES[laneIndex[r.lane]];
var tr = document.createElement("tr");
+ tr.title = "Ver resumo deste documento";
+ tr.addEventListener("click", function(){
+ setView("chart");
+ openResumo(r, laneIndex[r.lane]);
+ });
var tdDate = document.createElement("td");
tdDate.className = "date";
@@ -1694,12 +1716,14 @@
tdPeople.textContent = (r.people && r.people.length) ? r.people.join(", ") : "—";
tr.appendChild(tdPeople);
- var tdFile = document.createElement("td"); tdFile.className="file"; tdFile.textContent = r.file;
- tdFile.title = "Ver resumo deste documento";
- tdFile.addEventListener("click", function(){
- setView("chart");
- openResumo(r, laneIndex[r.lane]);
- });
+ var tdFile = document.createElement("td"); tdFile.className="file";
+ tdFile.title = "Abrir o documento original";
+ var fileLink = document.createElement("a");
+ fileLink.href = originalMdUrl(r.file);
+ fileLink.target = "_blank"; fileLink.rel = "noopener noreferrer";
+ fileLink.textContent = r.file;
+ fileLink.addEventListener("click", function(e){ e.stopPropagation(); });
+ tdFile.appendChild(fileLink);
tr.appendChild(tdFile);
frag.appendChild(tr);