|
|
|
@ -80,6 +80,12 @@
|
|
|
|
|
</style> |
|
|
|
|
</head> |
|
|
|
|
<div class="container"> |
|
|
|
|
<div style="position: absolute; top: 10px; right: 12px;"> |
|
|
|
|
<button id="download-log-btn" |
|
|
|
|
style="background-color: #1ab394; color: white; padding: 5px 10px; border: none; border-radius: 4px; cursor: pointer;"> |
|
|
|
|
{% trans 'Download' %} |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="header"> |
|
|
|
|
<ul class="info"> |
|
|
|
|
<li class="item"> |
|
|
|
@ -111,7 +117,6 @@
|
|
|
|
|
var term; |
|
|
|
|
var ws; |
|
|
|
|
var extraQuery = Object.fromEntries(new URLSearchParams(window.location.search)); |
|
|
|
|
|
|
|
|
|
$(document).ready(function () { |
|
|
|
|
term = new Terminal({ |
|
|
|
|
cursorBlink: false, |
|
|
|
@ -164,4 +169,20 @@
|
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function downloadLog() { |
|
|
|
|
term.selectAll() |
|
|
|
|
let logData = term.getSelection() |
|
|
|
|
const blob = new Blob([logData], {type: 'text/plain'}); |
|
|
|
|
const url = window.URL.createObjectURL(blob); |
|
|
|
|
const a = document.createElement('a'); |
|
|
|
|
a.href = url; |
|
|
|
|
a.download = `log_${taskId}.txt`; |
|
|
|
|
document.body.appendChild(a); |
|
|
|
|
a.click(); |
|
|
|
|
document.body.removeChild(a); |
|
|
|
|
window.URL.revokeObjectURL(url); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
document.getElementById('download-log-btn').addEventListener('click', downloadLog); |
|
|
|
|
</script> |
|
|
|
|