Fossil SCM
The tooltip pop-up contains a hyperlink to the branch
Commit
19ba7390e2ea63ab7bf69b163dec141e909a54fb2df266b61156594af78df896
Parent
9dc74546513b070…
1 file changed
+10
-1
+10
-1
| --- src/graph.js | ||
| +++ src/graph.js | ||
| @@ -412,10 +412,11 @@ | ||
| 412 | 412 | drawNode(tx.rowinfo[i], btm); |
| 413 | 413 | } |
| 414 | 414 | } |
| 415 | 415 | var selRow; |
| 416 | 416 | function clickOnNode(e){ |
| 417 | + tooltipObj.style.display = "none" | |
| 417 | 418 | var p = tx.rowinfo[parseInt(this.id.match(/\d+$/)[0], 10)-tx.iTopRow]; |
| 418 | 419 | if( !selRow ){ |
| 419 | 420 | selRow = p; |
| 420 | 421 | this.className += " sel"; |
| 421 | 422 | canvasDiv.className += " sel"; |
| @@ -460,11 +461,19 @@ | ||
| 460 | 461 | function clickOnGraph(e){ |
| 461 | 462 | var ix = findTxIndex(e); |
| 462 | 463 | if( ix<0 ){ |
| 463 | 464 | tooltipObj.style.display = "none" |
| 464 | 465 | }else{ |
| 465 | - tooltipObj.textContent = tx.rowinfo[ix].br | |
| 466 | + var br = tx.rowinfo[ix].br | |
| 467 | + var dest = tx.baseUrl + "/timeline?r=" + encodeURIComponent(br) | |
| 468 | + dest += "&c=" + encodeURIComponent(tx.rowinfo[ix].h) | |
| 469 | + var hbr = br.replace(/&/g, "&") | |
| 470 | + .replace(/</g, "<") | |
| 471 | + .replace(/>/g, ">") | |
| 472 | + .replace(/"/g, """) | |
| 473 | + .replace(/'/g, "'"); | |
| 474 | + tooltipObj.innerHTML = "<a href=\""+dest+"\">"+hbr+"</a>" | |
| 466 | 475 | tooltipObj.style.display = "inline" |
| 467 | 476 | tooltipObj.style.position = "absolute" |
| 468 | 477 | var x = e.x + 4 + window.pageXOffset |
| 469 | 478 | tooltipObj.style.left = x+"px" |
| 470 | 479 | var y = e.y + window.pageYOffset - tooltipObj.clientHeight - 4 |
| 471 | 480 |
| --- src/graph.js | |
| +++ src/graph.js | |
| @@ -412,10 +412,11 @@ | |
| 412 | drawNode(tx.rowinfo[i], btm); |
| 413 | } |
| 414 | } |
| 415 | var selRow; |
| 416 | function clickOnNode(e){ |
| 417 | var p = tx.rowinfo[parseInt(this.id.match(/\d+$/)[0], 10)-tx.iTopRow]; |
| 418 | if( !selRow ){ |
| 419 | selRow = p; |
| 420 | this.className += " sel"; |
| 421 | canvasDiv.className += " sel"; |
| @@ -460,11 +461,19 @@ | |
| 460 | function clickOnGraph(e){ |
| 461 | var ix = findTxIndex(e); |
| 462 | if( ix<0 ){ |
| 463 | tooltipObj.style.display = "none" |
| 464 | }else{ |
| 465 | tooltipObj.textContent = tx.rowinfo[ix].br |
| 466 | tooltipObj.style.display = "inline" |
| 467 | tooltipObj.style.position = "absolute" |
| 468 | var x = e.x + 4 + window.pageXOffset |
| 469 | tooltipObj.style.left = x+"px" |
| 470 | var y = e.y + window.pageYOffset - tooltipObj.clientHeight - 4 |
| 471 |
| --- src/graph.js | |
| +++ src/graph.js | |
| @@ -412,10 +412,11 @@ | |
| 412 | drawNode(tx.rowinfo[i], btm); |
| 413 | } |
| 414 | } |
| 415 | var selRow; |
| 416 | function clickOnNode(e){ |
| 417 | tooltipObj.style.display = "none" |
| 418 | var p = tx.rowinfo[parseInt(this.id.match(/\d+$/)[0], 10)-tx.iTopRow]; |
| 419 | if( !selRow ){ |
| 420 | selRow = p; |
| 421 | this.className += " sel"; |
| 422 | canvasDiv.className += " sel"; |
| @@ -460,11 +461,19 @@ | |
| 461 | function clickOnGraph(e){ |
| 462 | var ix = findTxIndex(e); |
| 463 | if( ix<0 ){ |
| 464 | tooltipObj.style.display = "none" |
| 465 | }else{ |
| 466 | var br = tx.rowinfo[ix].br |
| 467 | var dest = tx.baseUrl + "/timeline?r=" + encodeURIComponent(br) |
| 468 | dest += "&c=" + encodeURIComponent(tx.rowinfo[ix].h) |
| 469 | var hbr = br.replace(/&/g, "&") |
| 470 | .replace(/</g, "<") |
| 471 | .replace(/>/g, ">") |
| 472 | .replace(/"/g, """) |
| 473 | .replace(/'/g, "'"); |
| 474 | tooltipObj.innerHTML = "<a href=\""+dest+"\">"+hbr+"</a>" |
| 475 | tooltipObj.style.display = "inline" |
| 476 | tooltipObj.style.position = "absolute" |
| 477 | var x = e.x + 4 + window.pageXOffset |
| 478 | tooltipObj.style.left = x+"px" |
| 479 | var y = e.y + window.pageYOffset - tooltipObj.clientHeight - 4 |
| 480 |