|
|
@@ -224,7 +224,17 @@ td, th { |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.start_time"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w"> |
|
|
|
<span style="font-size: 12px;" class="">{{TimeSinceUnix1 .CreatedUnix}}</span> |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.dura_time"}} |
|
|
@@ -237,6 +247,40 @@ td, th { |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.migrate_items_labels"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-duration"> |
|
|
|
-- |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.model.manage.description"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-duration"> |
|
|
|
-- |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
创建人 |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-duration"> |
|
|
|
-- |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<!-- <tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.standard"}} |
|
|
|
</td> |
|
|
@@ -256,7 +300,7 @@ td, th { |
|
|
|
{{.WorkServerNumber}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
</tr> --> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
@@ -329,6 +373,27 @@ td, th { |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.standard"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w"> |
|
|
|
{{.FlavorName}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.compute_node"}} |
|
|
|
</td> |
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w"> |
|
|
|
{{.WorkServerNumber}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
|
|
|
|
</tbody> |
|
|
@@ -339,6 +404,21 @@ td, th { |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="ui tab" data-tab="second"> |
|
|
|
<div> |
|
|
|
<div class="ui message message{{.VersionName}}" style="display: none;"> |
|
|
|
<div id="header"></div> |
|
|
|
</div> |
|
|
|
<div class="ui attached log" onscroll="logScroll({{.VersionName}})" id="log{{.VersionName}}" style="height: 300px !important; overflow: auto;"> |
|
|
|
<input type="hidden" name="end_line" value> |
|
|
|
<input type="hidden" name="start_line" value> |
|
|
|
<pre id="log_file{{.VersionName}}"></pre> |
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
{{end}} |
|
|
|
</div> |
|
|
|
|
|
|
@@ -371,4 +451,71 @@ td, th { |
|
|
|
{{template "base/footer" .}} |
|
|
|
<script> |
|
|
|
console.log({{.task}}) |
|
|
|
let userName |
|
|
|
let repoPath |
|
|
|
let jobID |
|
|
|
$(document).ready(function(){ |
|
|
|
let url = window.location.href; |
|
|
|
let urlArr = url.split('/') |
|
|
|
userName = urlArr.slice(-5)[0] |
|
|
|
repoPath = urlArr.slice(-4)[0] |
|
|
|
jobID = urlArr.slice(-1)[0] |
|
|
|
}) |
|
|
|
function loadLog(version_name){ |
|
|
|
$.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/inference-job/${jobID}/log?version_name=${version_name}&lines=50&order=asc`, (data) => { |
|
|
|
$('input[name=end_line]').val(data.EndLine) |
|
|
|
$('input[name=start_line]').val(data.StartLine) |
|
|
|
$(`#log_file${version_name}`).text(data.Content) |
|
|
|
}).fail(function(err) { |
|
|
|
console.log(err); |
|
|
|
}); |
|
|
|
} |
|
|
|
function logScroll(version_name) { |
|
|
|
|
|
|
|
let container = document.querySelector(`#log${version_name}`) |
|
|
|
let scrollTop = container.scrollTop |
|
|
|
let scrollHeight = container.scrollHeight |
|
|
|
let clientHeight = container.clientHeight |
|
|
|
let scrollLeft = container.scrollLeft |
|
|
|
if((parseInt(scrollTop) + clientHeight == scrollHeight || parseInt(scrollTop) + clientHeight +1 == scrollHeight || parseInt(scrollTop) + clientHeight - 1 == scrollHeight) && (scrollLeft===0)){ |
|
|
|
let end_line = $(`#log${version_name} input[name=end_line]`).val() |
|
|
|
$.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${end_line}&lines=50&order=desc`, (data) => { |
|
|
|
if (data.Lines == 0){ |
|
|
|
$(`.message${version_name} #header`).text('您已翻阅至日志底部') |
|
|
|
$(`.message${version_name}`).css('display', 'block') |
|
|
|
setTimeout(function(){ |
|
|
|
$(`.message${version_name}`).css('display', 'none') |
|
|
|
}, 1000) |
|
|
|
}else{ |
|
|
|
if(end_line===data.EndLine){ |
|
|
|
return |
|
|
|
} |
|
|
|
else{ |
|
|
|
$(`#log${version_name} input[name=end_line]`).val(data.EndLine) |
|
|
|
$(`#log${version_name}`).append('<pre>' + data.Content) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
}).fail(function(err) { |
|
|
|
console.log(err); |
|
|
|
}); |
|
|
|
} |
|
|
|
if(scrollTop == 0 && scrollLeft==0){ |
|
|
|
let start_line = $(`#log${version_name} input[name=start_line]`).val() |
|
|
|
$.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${start_line}&lines=50&order=asc`, (data) => { |
|
|
|
if (data.Lines == 0){ |
|
|
|
$(`.message${version_name} #header`).text('您已翻阅至日志顶部') |
|
|
|
$(`.message${version_name}`).css('display', 'block') |
|
|
|
setTimeout(function(){ |
|
|
|
$(`.message${version_name}`).css('display', 'none') |
|
|
|
}, 1000) |
|
|
|
}else{ |
|
|
|
$(`#log${version_name} input[name=start_line]`).val(data.StartLine) //如果变动就改变所对应的值 |
|
|
|
$(`#log${version_name}`).prepend('<pre>' + data.Content) |
|
|
|
} |
|
|
|
}).fail(function(err) { |
|
|
|
console.log(err); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |