Reviewed-on: https://git.openi.org.cn/OpenI/aiforge/pulls/3090 Reviewed-by: chenshihai <chenshh@pcl.ac.cn>tags/v1.22.11.1^2
| @@ -1228,6 +1228,9 @@ modelarts.infer_job.select_model = Select Model | |||||
| modelarts.infer_job.boot_file_helper=The startup file is the entry file for your program execution and must end in.py.Such as inference.py, main.py, example/inference.py, case/main.py. | modelarts.infer_job.boot_file_helper=The startup file is the entry file for your program execution and must end in.py.Such as inference.py, main.py, example/inference.py, case/main.py. | ||||
| modelarts.infer_job.tooltip = The model has been deleted and cannot be viewed. | modelarts.infer_job.tooltip = The model has been deleted and cannot be viewed. | ||||
| modelarts.download_log=Download log file | modelarts.download_log=Download log file | ||||
| modelarts.log_file = Log file | |||||
| modelarts.fullscreen_log_file = View in full screen | |||||
| modelarts.exit_full_screen = Exit fullscreen | |||||
| modelarts.no_node_right = The value of 'Amount of Compute Node' is wrong, you have no right to use the current value of 'Amount of Compute Node'. | modelarts.no_node_right = The value of 'Amount of Compute Node' is wrong, you have no right to use the current value of 'Amount of Compute Node'. | ||||
| @@ -1242,6 +1242,9 @@ modelarts.infer_job.select_model = 选择模型 | |||||
| modelarts.infer_job.boot_file_helper=启动文件是您程序执行的入口文件,必须是以.py结尾的文件。比如inference.py、main.py、example/inference.py、case/main.py。 | modelarts.infer_job.boot_file_helper=启动文件是您程序执行的入口文件,必须是以.py结尾的文件。比如inference.py、main.py、example/inference.py、case/main.py。 | ||||
| modelarts.infer_job.tooltip = 该模型已删除,无法查看。 | modelarts.infer_job.tooltip = 该模型已删除,无法查看。 | ||||
| modelarts.download_log=下载日志文件 | modelarts.download_log=下载日志文件 | ||||
| modelarts.log_file=日志文件 | |||||
| modelarts.fullscreen_log_file=全屏查看 | |||||
| modelarts.exit_full_screen=退出全屏 | |||||
| modelarts.no_node_right = 计算节点数的值配置错误,您没有权限使用当前配置的计算节点数。 | modelarts.no_node_right = 计算节点数的值配置错误,您没有权限使用当前配置的计算节点数。 | ||||
| @@ -578,6 +578,7 @@ func CloudbrainGetLog(ctx *context.APIContext) { | |||||
| endLine += 1 | endLine += 1 | ||||
| } | } | ||||
| } | } | ||||
| result = getLogFromModelDir(job.JobName, startLine, endLine, resultPath) | result = getLogFromModelDir(job.JobName, startLine, endLine, resultPath) | ||||
| if result == nil { | if result == nil { | ||||
| log.Error("GetJobLog failed: %v", err, ctx.Data["MsgID"]) | log.Error("GetJobLog failed: %v", err, ctx.Data["MsgID"]) | ||||
| @@ -724,7 +725,6 @@ func getLogFromModelDir(jobName string, startLine int, endLine int, resultPath s | |||||
| line, error := r.ReadString('\n') | line, error := r.ReadString('\n') | ||||
| if error == io.EOF { | if error == io.EOF { | ||||
| if i >= startLine { | if i >= startLine { | ||||
| fileEndLine = i | |||||
| re = re + line | re = re + line | ||||
| count++ | count++ | ||||
| } | } | ||||
| @@ -0,0 +1,40 @@ | |||||
| <div> | |||||
| <div class="ui modal max-full-log{{.VersionName}} container" style="height: 90%;margin: 3rem auto;"> | |||||
| <div class="file-info" style="padding: 2rem;justify-content: space-between;"> | |||||
| <div id="log-file-title" style="font-size: 16px;font-weight:600"></div> | |||||
| <div> | |||||
| <div class="file-info close-log-dialog" data-version="{{.VersionName}}" style="margin-left: 1rem;color:#0366d6;cursor: pointer;"> | |||||
| <i class="ri-fullscreen-exit-fill" style="font-size: 16px;"></i> | |||||
| <span id="log-file-exit" style="margin-left: 0.3rem;font-size: 12px;"></span> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <div style="margin: 0 2rem;border: 1px solid #e8e8e8;height: 88%;position: relative;"> | |||||
| <span> | |||||
| <a style="position: absolute; right: -32px;cursor: pointer;" | |||||
| class="log_top-max" data-version="{{.VersionName}}" data-max="-max"><i class="icon-to-top"></i></a> | |||||
| </span> | |||||
| <span class="log-info-{{.VersionName}}"> | |||||
| <a style="position: absolute; bottom: 10px;right: -32px;cursor: pointer;" | |||||
| class="log_bottom-max" data-version="{{.VersionName}}" data-max="-max"><i | |||||
| class="icon-to-bottom"></i></a> | |||||
| </span> | |||||
| <div class="ui message message-max{{.VersionName}}" style="display: none;"> | |||||
| <div id="header"></div> | |||||
| </div> | |||||
| <div class="log-scroll-max" id="log-max{{.VersionName}}" data-version="{{.VersionName}}" style="overflow: auto;max-height: 100%;"> | |||||
| <div class="ui inverted active dimmer"> | |||||
| <div class="ui loader"></div> | |||||
| </div> | |||||
| <pre id="log_file-max{{.VersionName}}"></pre> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <script> | |||||
| $(".ui.modal .close-log-dialog").click(function () { | |||||
| let version_name = $(this).data("version"); | |||||
| $(`.ui.modal.max-full-log${version_name}`).modal("hide"); | |||||
| }); | |||||
| </script> | |||||
| @@ -524,14 +524,17 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="ui tab" data-tab="second{{$k}}"> | <div class="ui tab" data-tab="second{{$k}}"> | ||||
| <div> | |||||
| <div class="file-info"> | |||||
| <a id="{{.VersionName}}-log-down" | <a id="{{.VersionName}}-log-down" | ||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}}' | |||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}} file-info' | |||||
| href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file"> | href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file"> | ||||
| <i class="ri-download-cloud-2-line"></i> | <i class="ri-download-cloud-2-line"></i> | ||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | ||||
| </a> | </a> | ||||
| <div class="file-info full-log-dialog" data-version="{{.VersionName}}" data-log="{{$.i18n.Tr "repo.modelarts.log_file"}}" data-exit="{{$.i18n.Tr "repo.modelarts.exit_full_screen"}}" style="margin-left: 1rem;color:#0366d6;cursor: pointer;"> | |||||
| <i class="ri-aspect-ratio-line"></i> | |||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div | <div | ||||
| style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | ||||
| @@ -549,12 +552,16 @@ | |||||
| </div> | </div> | ||||
| <div class="ui attached log log-scroll" id="log{{.VersionName}}" data-version="{{.VersionName}}" | <div class="ui attached log log-scroll" id="log{{.VersionName}}" data-version="{{.VersionName}}" | ||||
| style="height: 300px !important; overflow: auto;"> | style="height: 300px !important; overflow: auto;"> | ||||
| <div class="ui inverted active dimmer"> | |||||
| <div class="ui loader"></div> | |||||
| </div> | |||||
| <input type="hidden" name="end_line" value> | |||||
| <input type="hidden" name="start_line" value> | |||||
| <pre id="log_file{{.VersionName}}"></pre> | |||||
| <div class="ui inverted active dimmer"> | |||||
| <div class="ui loader"></div> | |||||
| </div> | |||||
| <input type="hidden" name="end_line" value> | |||||
| <input type="hidden" name="end_line-max" value> | |||||
| <input type="hidden" name="start_line-max" value> | |||||
| <input type="hidden" name="start_line-max-copy" value> | |||||
| <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="init_log" value> | |||||
| <pre id="log_file{{.VersionName}}"></pre> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -565,6 +572,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "custom/max_log" .}} | |||||
| {{end}} {{template "base/paginate" .}} | {{end}} {{template "base/paginate" .}} | ||||
| </div> | </div> | ||||
| <!-- 确认模态框 --> | <!-- 确认模态框 --> | ||||
| @@ -535,14 +535,17 @@ | |||||
| </div> | </div> | ||||
| <div class="ui tab" data-tab="third"> | <div class="ui tab" data-tab="third"> | ||||
| <div> | |||||
| <div class="file-info"> | |||||
| <a id="{{.VersionName}}-log-down" | <a id="{{.VersionName}}-log-down" | ||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}}' | |||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}} file-info' | |||||
| href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file"> | href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file"> | ||||
| <i class="ri-download-cloud-2-line"></i> | <i class="ri-download-cloud-2-line"></i> | ||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | ||||
| </a> | </a> | ||||
| <div class="file-info full-log-dialog" data-version="{{.VersionName}}" data-log="{{$.i18n.Tr "repo.modelarts.log_file"}}" data-exit="{{$.i18n.Tr "repo.modelarts.exit_full_screen"}}" style="margin-left: 1rem;color:#0366d6;cursor: pointer;"> | |||||
| <i class="ri-aspect-ratio-line"></i> | |||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.fullscreen_log_file"}}</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div | <div | ||||
| style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | ||||
| @@ -559,13 +562,17 @@ | |||||
| <div id="header"></div> | <div id="header"></div> | ||||
| </div> | </div> | ||||
| <div class="ui attached log log-scroll" id="log{{.VersionName}}" data-version="{{.VersionName}}" | <div class="ui attached log log-scroll" id="log{{.VersionName}}" data-version="{{.VersionName}}" | ||||
| style="height: 300px !important; overflow: auto;"> | |||||
| <div class="ui inverted active dimmer"> | |||||
| style="height: 300px !important; overflow: auto;"> | |||||
| <div class="ui inverted active dimmer"> | |||||
| <div class="ui loader"></div> | <div class="ui loader"></div> | ||||
| </div> | |||||
| <input type="hidden" name="end_line" value> | |||||
| <input type="hidden" name="start_line" value> | |||||
| <pre id="log_file{{.VersionName}}"></pre> | |||||
| </div> | |||||
| <input type="hidden" name="end_line" value> | |||||
| <input type="hidden" name="end_line-max" value> | |||||
| <input type="hidden" name="start_line-max" value> | |||||
| <input type="hidden" name="start_line-max-copy" value> | |||||
| <input type="hidden" name="start_line" value> <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="init_log" value> | |||||
| <pre id="log_file{{.VersionName}}"></pre> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -589,7 +596,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "custom/max_log" .}} | |||||
| {{end}} | {{end}} | ||||
| </div> | </div> | ||||
| @@ -524,14 +524,17 @@ | |||||
| </div> | </div> | ||||
| <div class="ui tab" data-tab="third{{$k}}"> | <div class="ui tab" data-tab="third{{$k}}"> | ||||
| <div> | |||||
| <div class="file-info"> | |||||
| <a id="{{.VersionName}}-log-down" | <a id="{{.VersionName}}-log-down" | ||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}}' | |||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}} file-info' | |||||
| href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file"> | href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file"> | ||||
| <i class="ri-download-cloud-2-line"></i> | <i class="ri-download-cloud-2-line"></i> | ||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | ||||
| </a> | </a> | ||||
| <div class="file-info full-log-dialog" data-version="{{.VersionName}}" data-log="{{$.i18n.Tr "repo.modelarts.log_file"}}" data-exit="{{$.i18n.Tr "repo.modelarts.exit_full_screen"}}" style="margin-left: 1rem;color:#0366d6;cursor: pointer;"> | |||||
| <i class="ri-aspect-ratio-line"></i> | |||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.fullscreen_log_file"}}</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | <div style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | ||||
| <span> | <span> | ||||
| @@ -552,7 +555,11 @@ | |||||
| <div class="ui loader"></div> | <div class="ui loader"></div> | ||||
| </div> | </div> | ||||
| <input type="hidden" name="end_line" value> | <input type="hidden" name="end_line" value> | ||||
| <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="end_line-max" value> | |||||
| <input type="hidden" name="start_line-max" value> | |||||
| <input type="hidden" name="start_line-max-copy" value> | |||||
| <input type="hidden" name="start_line" value> <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="init_log" value> | |||||
| <pre id="log_file{{.VersionName}}"></pre> | <pre id="log_file{{.VersionName}}"></pre> | ||||
| </div> | </div> | ||||
| @@ -581,6 +588,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "custom/max_log" .}} | |||||
| {{end}} {{template "base/paginate" .}} | {{end}} {{template "base/paginate" .}} | ||||
| </div> | </div> | ||||
| <!-- 确认模态框 --> | <!-- 确认模态框 --> | ||||
| @@ -520,14 +520,17 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="ui tab" data-tab="second{{$k}}"> | <div class="ui tab" data-tab="second{{$k}}"> | ||||
| <div> | |||||
| <div class="file-info"> | |||||
| <a id="{{.VersionName}}-log-down" | <a id="{{.VersionName}}-log-down" | ||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}}' | |||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}} file-info' | |||||
| href="/api/v1/repos/{{$.RepoRelPath}}/grampus/train-job/{{.JobID}}/download_log"> | href="/api/v1/repos/{{$.RepoRelPath}}/grampus/train-job/{{.JobID}}/download_log"> | ||||
| <i class="ri-download-cloud-2-line"></i> | <i class="ri-download-cloud-2-line"></i> | ||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | ||||
| </a> | </a> | ||||
| <div class="file-info full-log-dialog" data-log-type="c2Net" data-version="{{.VersionName}}" data-log="{{$.i18n.Tr "repo.modelarts.log_file"}}" data-exit="{{$.i18n.Tr "repo.modelarts.exit_full_screen"}}" style="margin-left: 1rem;color:#0366d6;cursor: pointer;"> | |||||
| <i class="ri-aspect-ratio-line"></i> | |||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.fullscreen_log_file"}}</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | <div style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | ||||
| <span> | <span> | ||||
| @@ -548,7 +551,11 @@ | |||||
| <div class="ui loader"></div> | <div class="ui loader"></div> | ||||
| </div> | </div> | ||||
| <input type="hidden" name="end_line" value> | <input type="hidden" name="end_line" value> | ||||
| <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="end_line-max" value> | |||||
| <input type="hidden" name="start_line-max" value> | |||||
| <input type="hidden" name="start_line-max-copy" value> | |||||
| <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="init_log" value> | |||||
| <pre id="log_file{{.VersionName}}"></pre> | <pre id="log_file{{.VersionName}}"></pre> | ||||
| </div> | </div> | ||||
| @@ -576,6 +583,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "custom/max_log" .}} | |||||
| {{end}} {{template "base/paginate" .}} | {{end}} {{template "base/paginate" .}} | ||||
| </div> | </div> | ||||
| <!-- 确认模态框 --> | <!-- 确认模态框 --> | ||||
| @@ -460,14 +460,17 @@ td, th { | |||||
| </div> | </div> | ||||
| <div class="ui tab" data-tab="second"> | <div class="ui tab" data-tab="second"> | ||||
| <div> | |||||
| <div class="file-info"> | |||||
| <a id="{{.VersionName}}-log-down" | <a id="{{.VersionName}}-log-down" | ||||
| class='{{if and ($.canDownload) (eq .Status "KILLED" "FAILED" "START_FAILED" "STOPPED" "COMPLETED") }}ti-download-file{{else}}disabled{{end}}' | |||||
| class='{{if and ($.canDownload) (eq .Status "KILLED" "FAILED" "START_FAILED" "STOPPED" "COMPLETED") }}ti-download-file{{else}}disabled{{end}} file-info' | |||||
| href="{{$.RepoLink}}/modelarts/train-job/{{.JobID}}/download_log_file?version_name={{.VersionName}}"> | href="{{$.RepoLink}}/modelarts/train-job/{{.JobID}}/download_log_file?version_name={{.VersionName}}"> | ||||
| <i class="ri-download-cloud-2-line"></i> | <i class="ri-download-cloud-2-line"></i> | ||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | ||||
| </a> | </a> | ||||
| <div class="file-info full-log-dialog" data-version="{{.VersionName}}" data-log="{{$.i18n.Tr "repo.modelarts.log_file"}}" data-exit="{{$.i18n.Tr "repo.modelarts.exit_full_screen"}}" style="margin-left: 1rem;color:#0366d6;cursor: pointer;"> | |||||
| <i class="ri-aspect-ratio-line"></i> | |||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.fullscreen_log_file"}}</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | <div style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | ||||
| <span> | <span> | ||||
| @@ -486,8 +489,12 @@ td, th { | |||||
| <div class="ui inverted active dimmer"> | <div class="ui inverted active dimmer"> | ||||
| <div class="ui loader"></div> | <div class="ui loader"></div> | ||||
| </div> | </div> | ||||
| <input type="hidden" name="end_line" value> | |||||
| <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="end_line" value> | |||||
| <input type="hidden" name="end_line-max" value> | |||||
| <input type="hidden" name="start_line-max" value> | |||||
| <input type="hidden" name="start_line-max-copy" value> | |||||
| <input type="hidden" name="start_line" value> <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="init_log" value> | |||||
| <pre id="log_file{{.VersionName}}"></pre> | <pre id="log_file{{.VersionName}}"></pre> | ||||
| </div> | </div> | ||||
| @@ -510,12 +517,8 @@ td, th { | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "custom/max_log" .}} | |||||
| {{end}} | {{end}} | ||||
| </div> | </div> | ||||
| <!-- 确认模态框 --> | <!-- 确认模态框 --> | ||||
| </div> | </div> | ||||
| @@ -548,14 +548,17 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="ui tab" data-tab="second{{$k}}"> | <div class="ui tab" data-tab="second{{$k}}"> | ||||
| <div> | |||||
| <div class="file-info"> | |||||
| <a id="{{.VersionName}}-log-down" | <a id="{{.VersionName}}-log-down" | ||||
| class='{{if and (.CanModify) (eq .Status "KILLED" "FAILED" "START_FAILED" "STOPPED" "COMPLETED") }}ti-download-file{{else}}disabled{{end}}' | |||||
| class='{{if and (.CanModify) (eq .Status "KILLED" "FAILED" "START_FAILED" "STOPPED" "COMPLETED") }}ti-download-file{{else}}disabled{{end}} file-info' | |||||
| href="{{$.RepoLink}}/modelarts/train-job/{{.JobID}}/download_log_file?version_name={{.VersionName}}"> | href="{{$.RepoLink}}/modelarts/train-job/{{.JobID}}/download_log_file?version_name={{.VersionName}}"> | ||||
| <i class="ri-download-cloud-2-line"></i> | <i class="ri-download-cloud-2-line"></i> | ||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | ||||
| </a> | </a> | ||||
| <div class="file-info full-log-dialog" data-version="{{.VersionName}}" data-log="{{$.i18n.Tr "repo.modelarts.log_file"}}" data-exit="{{$.i18n.Tr "repo.modelarts.exit_full_screen"}}" style="margin-left: 1rem;color:#0366d6;cursor: pointer;"> | |||||
| <i class="ri-aspect-ratio-line"></i> | |||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.fullscreen_log_file"}}</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div | <div | ||||
| style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | ||||
| @@ -577,7 +580,11 @@ | |||||
| <div class="ui loader"></div> | <div class="ui loader"></div> | ||||
| </div> | </div> | ||||
| <input type="hidden" name="end_line" value> | <input type="hidden" name="end_line" value> | ||||
| <input type="hidden" name="end_line-max" value> | |||||
| <input type="hidden" name="start_line-max" value> | |||||
| <input type="hidden" name="start_line-max-copy" value> | |||||
| <input type="hidden" name="start_line" value> | <input type="hidden" name="start_line" value> | ||||
| <input type="hidden" name="init_log" value> | |||||
| <pre id="log_file{{.VersionName}}"></pre> | <pre id="log_file{{.VersionName}}"></pre> | ||||
| </div> | </div> | ||||
| @@ -609,6 +616,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "custom/max_log" .}} | |||||
| {{end}} {{template "base/paginate" .}} | {{end}} {{template "base/paginate" .}} | ||||
| </div> | </div> | ||||
| <!-- 确认模态框 --> | <!-- 确认模态框 --> | ||||
| @@ -715,6 +723,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "base/footer" .}} | {{template "base/footer" .}} | ||||
| @@ -467,13 +467,17 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="ui tab" data-tab="second0"> | <div class="ui tab" data-tab="second0"> | ||||
| <div> | |||||
| <div class="file-info"> | |||||
| <a id="-log-down" | <a id="-log-down" | ||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}}' | |||||
| class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}} file-info' | |||||
| href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain"> | href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain"> | ||||
| <i class="ri-download-cloud-2-line"></i> | <i class="ri-download-cloud-2-line"></i> | ||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span> | ||||
| </a> | </a> | ||||
| <div class="file-info full-log-dialog" data-version="{{.VersionName}}" data-log="{{$.i18n.Tr "repo.modelarts.log_file"}}" data-exit="{{$.i18n.Tr "repo.modelarts.exit_full_screen"}}" style="margin-left: 1rem;color:#0366d6;cursor: pointer;"> | |||||
| <i class="ri-aspect-ratio-line"></i> | |||||
| <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.fullscreen_log_file"}}</span> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div | <div | ||||
| style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | ||||
| @@ -490,13 +494,17 @@ | |||||
| <div id="header"></div> | <div id="header"></div> | ||||
| </div> | </div> | ||||
| <div class="ui attached log log-scroll" id="log" data-version="" | <div class="ui attached log log-scroll" id="log" data-version="" | ||||
| style="height: 300px !important; overflow: auto;"> | |||||
| <div class="ui inverted active dimmer"> | |||||
| <div class="ui loader"></div> | |||||
| </div> | |||||
| <input type="hidden" name="end_line" value> | |||||
| <input type="hidden" name="start_line" value> | |||||
| <pre id="log_file"></pre> | |||||
| style="height: 300px !important; overflow: auto;"> | |||||
| <div class="ui inverted active dimmer"> | |||||
| <div class="ui loader"></div> | |||||
| </div> | |||||
| <input type="hidden" name="end_line" value> | |||||
| <input type="hidden" name="end_line-max" value> | |||||
| <input type="hidden" name="start_line-max" value> | |||||
| <input type="hidden" name="start_line-max-copy" value> | |||||
| <input type="hidden" name="start_line" value> | |||||
| <input type="hidden" name="init_log" value> | |||||
| <pre id="log_file"></pre> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -571,6 +579,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "custom/max_log" .}} | |||||
| {{template "base/paginate" .}} | {{template "base/paginate" .}} | ||||
| </div> | </div> | ||||
| <!-- 确认模态框 --> | <!-- 确认模态框 --> | ||||
| @@ -14,8 +14,8 @@ export default async function initCloudrainSow() { | |||||
| }; | }; | ||||
| } | } | ||||
| function logScroll(version_name, repoPath, ID) { | |||||
| let container = document.querySelector(`#log${version_name}`); | |||||
| function logScroll(version_name, repoPath, ID, max = "", lines = 60) { | |||||
| let container = document.querySelector(`#log${max}${version_name}`); | |||||
| let scrollTop = container.scrollTop; | let scrollTop = container.scrollTop; | ||||
| let scrollHeight = container.scrollHeight; | let scrollHeight = container.scrollHeight; | ||||
| let clientHeight = container.clientHeight; | let clientHeight = container.clientHeight; | ||||
| @@ -26,46 +26,90 @@ export default async function initCloudrainSow() { | |||||
| parseInt(scrollTop) + clientHeight - 1 == scrollHeight) && | parseInt(scrollTop) + clientHeight - 1 == scrollHeight) && | ||||
| scrollLeft === 0 | scrollLeft === 0 | ||||
| ) { | ) { | ||||
| let end_line = $(`#log${version_name} input[name=end_line]`).val(); | |||||
| let end_line = $(`#log${version_name} input[name=end_line${max}]`).val(); | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css({ | |||||
| "background-color": "#fff", | |||||
| display: "block", | |||||
| }); | |||||
| $.get( | $.get( | ||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=${end_line}&lines=50&order=desc`, | |||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=${end_line}&lines=${lines}&order=desc`, | |||||
| (data) => { | (data) => { | ||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | |||||
| "none" | |||||
| ); | |||||
| if (data.Lines == 0) { | if (data.Lines == 0) { | ||||
| $(`.message${version_name} #header`).text("您已翻阅至日志底部"); | |||||
| $(`.message${version_name}`).css("display", "block"); | |||||
| setTimeout(function () { | |||||
| $(`.message${version_name}`).css("display", "none"); | |||||
| }, 1000); | |||||
| if (max) { | |||||
| $("body").toast({ | |||||
| class: "info", | |||||
| message: `您已翻阅至日志底部,请稍后再试!`, | |||||
| }); | |||||
| } else { | |||||
| $(`.message${version_name} #header`).text("您已翻阅至日志底部"); | |||||
| $(`.message${version_name}`).css("display", "block"); | |||||
| setTimeout(function () { | |||||
| $(`.message${version_name}`).css("display", "none"); | |||||
| }, 1000); | |||||
| } | |||||
| } else { | } else { | ||||
| if (end_line === data.EndLine) { | if (end_line === data.EndLine) { | ||||
| return; | return; | ||||
| } else { | } else { | ||||
| $(`#log${version_name} input[name=end_line]`).val(data.EndLine); | |||||
| $(`#log${version_name}`).append("<pre>" + data.Content); | |||||
| $(`#log${version_name} input[name=end_line${max}]`).val( | |||||
| data.EndLine | |||||
| ); | |||||
| $(`#log${max}${version_name}`).append("<pre>" + data.Content); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| ).fail(function (err) { | ).fail(function (err) { | ||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | |||||
| "none" | |||||
| ); | |||||
| console.log(err); | console.log(err); | ||||
| }); | }); | ||||
| } | } | ||||
| if (scrollTop == 0 && scrollLeft == 0) { | if (scrollTop == 0 && scrollLeft == 0) { | ||||
| let start_line = $(`#log${version_name} input[name=start_line]`).val(); | |||||
| let start_line = $( | |||||
| `#log${version_name} input[name=start_line${max}]` | |||||
| ).val(); | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css({ | |||||
| "background-color": "#fff", | |||||
| display: "block", | |||||
| }); | |||||
| $.get( | $.get( | ||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=${start_line}&lines=50&order=asc`, | |||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=${start_line}&lines=${lines}&order=asc`, | |||||
| (data) => { | (data) => { | ||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | |||||
| "none" | |||||
| ); | |||||
| if (data.Lines == 0) { | if (data.Lines == 0) { | ||||
| $(`.message${version_name} #header`).text("您已翻阅至日志顶部"); | |||||
| $(`.message${version_name}`).css("display", "block"); | |||||
| setTimeout(function () { | |||||
| $(`.message${version_name}`).css("display", "none"); | |||||
| }, 1000); | |||||
| if (max) { | |||||
| $("body").toast({ | |||||
| class: "info", | |||||
| message: `您已翻阅至日志顶部,请稍后再试!`, | |||||
| }); | |||||
| } else { | |||||
| $(`.message${version_name} #header`).text("您已翻阅至日志顶部"); | |||||
| $(`.message${version_name}`).css("display", "block"); | |||||
| setTimeout(function () { | |||||
| $(`.message${version_name}`).css("display", "none"); | |||||
| }, 1000); | |||||
| } | |||||
| } else { | } else { | ||||
| $(`#log${version_name} input[name=start_line]`).val(data.StartLine); //如果变动就改变所对应的值 | |||||
| $(`#log${version_name}`).prepend("<pre>" + data.Content); | |||||
| $(`#log${version_name} input[name=start_line${max}]`).val( | |||||
| data.StartLine | |||||
| ); //如果变动就改变所对应的值 | |||||
| $(`#log${max}${version_name}`).prepend("<pre>" + data.Content); | |||||
| } | } | ||||
| } | } | ||||
| ).fail(function (err) { | ).fail(function (err) { | ||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | |||||
| "none" | |||||
| ); | |||||
| console.log(err); | console.log(err); | ||||
| }); | }); | ||||
| } | } | ||||
| @@ -96,51 +140,71 @@ export default async function initCloudrainSow() { | |||||
| }, 1); | }, 1); | ||||
| } | } | ||||
| $(".log_top").click(function () { | |||||
| // let logContentDom = document.querySelector('.log') | |||||
| // if(!logContentDom) | |||||
| // return | |||||
| // let version_name = $('.log_top').data('version') | |||||
| function logTop(e) { | |||||
| let max = e.currentTarget.getAttribute("data-max") || ""; | |||||
| let lines = !!max ? 100 : 60; | |||||
| let version_name = $(this).data("version"); | let version_name = $(this).data("version"); | ||||
| let logContentDom = document.querySelector(`#log${version_name}`); | |||||
| let logContentDom = document.querySelector(`#log${max}${version_name}`); | |||||
| let ID = $(`#accordion${version_name}`).data("jobid"); | let ID = $(`#accordion${version_name}`).data("jobid"); | ||||
| let repoPath = $(`#accordion${version_name}`).data("repopath"); | let repoPath = $(`#accordion${version_name}`).data("repopath"); | ||||
| $(`#log_file${version_name}`).siblings("pre").remove(); | |||||
| $(`#log${version_name} .ui.inverted.active.dimmer`).css("display", "block"); | |||||
| $(`#log_file${max}${version_name}`).siblings("pre").remove(); | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css({ | |||||
| "background-color": "#fff", | |||||
| display: "block", | |||||
| }); | |||||
| $.get( | $.get( | ||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=&lines=50&order=asc`, | |||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=&lines=${lines}&order=asc`, | |||||
| (data) => { | (data) => { | ||||
| $(".ui.inverted.active.dimmer").css("display", "none"); | |||||
| $(`#log${version_name} input[name=end_line]`).val(data.EndLine); //如果变动就改变所对应的值 | |||||
| $(`#log${version_name} input[name=start_line]`).val(data.StartLine); | |||||
| $(`#log${version_name}`).prepend("<pre>" + data.Content); | |||||
| $(`.message${version_name} #header`).text("您已翻阅至日志顶部"); | |||||
| $(`.message${version_name}`).css("display", "block"); | |||||
| setTimeout(function () { | |||||
| $(`.message${version_name}`).css("display", "none"); | |||||
| }, 1000); | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | |||||
| "none" | |||||
| ); | |||||
| $(`#log${version_name} input[name=end_line${max}]`).val(data.EndLine); //如果变动就改变所对应的值 | |||||
| $(`#log${version_name} input[name=start_line${max}]`).val( | |||||
| data.StartLine | |||||
| ); | |||||
| $(`#log${max}${version_name}`).prepend("<pre>" + data.Content); | |||||
| if (data.Lines == 0) { | |||||
| if (max) { | |||||
| $("body").toast({ | |||||
| class: "info", | |||||
| message: `您已翻阅至日志顶部,请稍后再试!`, | |||||
| }); | |||||
| } else { | |||||
| $(`.message${version_name} #header`).text("您已翻阅至日志顶部"); | |||||
| $(`.message${version_name}`).css("display", "block"); | |||||
| setTimeout(function () { | |||||
| $(`.message${version_name}`).css("display", "none"); | |||||
| }, 1000); | |||||
| } | |||||
| } | |||||
| scrollAnimation(logContentDom, logContentDom.scrollTop, 0); | scrollAnimation(logContentDom, logContentDom.scrollTop, 0); | ||||
| } | } | ||||
| ).fail((err) => { | ).fail((err) => { | ||||
| $(`#log${version_name} .ui.inverted.active.dimmer`).css( | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | "display", | ||||
| "none" | "none" | ||||
| ); | ); | ||||
| throw err; | throw err; | ||||
| }); | }); | ||||
| }); | |||||
| $(".log_bottom").click(function (e) { | |||||
| } | |||||
| function logBottom(e) { | |||||
| let max = e.currentTarget.getAttribute("data-max") || ""; | |||||
| let lines = !!max ? 100 : 60; | |||||
| let version_name = $(this).data("version"); | let version_name = $(this).data("version"); | ||||
| let logContentDom = document.querySelector(`#log${version_name}`); | |||||
| let logContentDom = document.querySelector(`#log${max}${version_name}`); | |||||
| let ID = $(`#accordion${version_name}`).data("jobid"); | let ID = $(`#accordion${version_name}`).data("jobid"); | ||||
| let repoPath = $(`#accordion${version_name}`).data("repopath"); | let repoPath = $(`#accordion${version_name}`).data("repopath"); | ||||
| $(`#log_file${version_name}`).siblings("pre").remove(); | |||||
| let end_line = $(`#log${version_name} input[name=end_line]`).val(); | |||||
| $(`#log${version_name} .ui.inverted.active.dimmer`).css("display", "block"); | |||||
| $(`#log_file${max}${version_name}`).siblings("pre").remove(); | |||||
| let end_line = $(`#log${version_name} input[name=end_line${max}]`).val(); | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css({ | |||||
| "background-color": "#fff", | |||||
| display: "block", | |||||
| }); | |||||
| $.get( | $.get( | ||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=&lines=50&order=desc`, | |||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=&lines=${lines}&order=desc`, | |||||
| (data) => { | (data) => { | ||||
| $(`#log${version_name} .ui.inverted.active.dimmer`).css( | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | "display", | ||||
| "none" | "none" | ||||
| ); | ); | ||||
| @@ -153,39 +217,71 @@ export default async function initCloudrainSow() { | |||||
| .addClass("ti-download-file") | .addClass("ti-download-file") | ||||
| .removeClass("disabled"); | .removeClass("disabled"); | ||||
| } | } | ||||
| $(`#log${version_name} input[name=end_line]`).val(data.EndLine); //如果变动就改变所对应的值 | |||||
| $(`#log${version_name} input[name=start_line]`).val(data.StartLine); | |||||
| $(`#log${version_name}`).append("<pre>" + data.Content); | |||||
| $(`#log${version_name} input[name=end_line${max}]`).val(data.EndLine); //如果变动就改变所对应的值 | |||||
| if ($(this)[0].hasAttribute("data-tab")) { | |||||
| $(`#log${version_name} input[name=end_line-max]`).val(data.EndLine); | |||||
| $(`#log${version_name} input[name=start_line-max]`).val( | |||||
| data.StartLine | |||||
| ); | |||||
| $(`#log${version_name} input[name=start_line-max-copy]`).val( | |||||
| data.StartLine | |||||
| ); | |||||
| } | |||||
| $(`#log${version_name} input[name=start_line${max}]`).val( | |||||
| data.StartLine | |||||
| ); | |||||
| $(`#log${max}${version_name}`).append("<pre>" + data.Content); | |||||
| $.get( | $.get( | ||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=${data.EndLine}&lines=50&order=desc`, | |||||
| `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=${data.EndLine}&lines=${lines}&order=desc`, | |||||
| (data) => { | (data) => { | ||||
| $(".ui.inverted.active.dimmer").css("display", "none"); | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | |||||
| "none" | |||||
| ); | |||||
| if (data.Lines == 0) { | if (data.Lines == 0) { | ||||
| $(`.message${version_name} #header`).text("您已翻阅至日志底部"); | |||||
| $(`.message${version_name}`).css("display", "block"); | |||||
| setTimeout(function () { | |||||
| $(`.message${version_name}`).css("display", "none"); | |||||
| }, 1000); | |||||
| if (max) { | |||||
| $("body").toast({ | |||||
| class: "info", | |||||
| message: `您已翻阅至日志底部,请稍后再试!`, | |||||
| }); | |||||
| } else { | |||||
| $(`.message${version_name} #header`).text("您已翻阅至日志底部"); | |||||
| $(`.message${version_name}`).css("display", "block"); | |||||
| setTimeout(function () { | |||||
| $(`.message${version_name}`).css("display", "none"); | |||||
| }, 1000); | |||||
| } | |||||
| } else { | } else { | ||||
| if (end_line === data.EndLine || end_line === "") { | if (end_line === data.EndLine || end_line === "") { | ||||
| return; | return; | ||||
| } else { | } else { | ||||
| $(`#log${version_name} input[name=end_line]`).val(data.EndLine); | |||||
| $(`#log${version_name}`).append("<pre>" + data.Content); | |||||
| $(`#log${version_name} input[name=end_line${max}]`).val( | |||||
| data.EndLine | |||||
| ); | |||||
| if ($(this)[0].hasAttribute("data-tab")) { | |||||
| $(`#log${version_name} input[name=end_line-max]`).val( | |||||
| data.EndLine | |||||
| ); | |||||
| } | |||||
| $(`#log${max}${version_name}`).append("<pre>" + data.Content); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| ).fail(function (err) { | ).fail(function (err) { | ||||
| $(`#log${version_name} .ui.inverted.active.dimmer`).css( | |||||
| $(`#log${max}${version_name} .ui.inverted.active.dimmer`).css( | |||||
| "display", | "display", | ||||
| "none" | "none" | ||||
| ); | ); | ||||
| console.log(err); | console.log(err); | ||||
| }); | }); | ||||
| let test = $(`#log_file${version_name}`).nextAll(); | |||||
| $(`#log${version_name} input[name=init_log]`).val(test[0].innerHTML); | |||||
| scrollAnimation( | scrollAnimation( | ||||
| logContentDom, | logContentDom, | ||||
| logContentDom.scrollTop + 1, | logContentDom.scrollTop + 1, | ||||
| logContentDom.scrollHeight - logContentDom.clientHeight | |||||
| logContentDom.scrollHeight - logContentDom.clientHeight - 10 | |||||
| ); | ); | ||||
| } | } | ||||
| ).fail((err) => { | ).fail((err) => { | ||||
| @@ -195,6 +291,68 @@ export default async function initCloudrainSow() { | |||||
| ); | ); | ||||
| throw err; | throw err; | ||||
| }); | }); | ||||
| } | |||||
| $(".log_top").click(logTop); | |||||
| $(".log_bottom").click(logBottom); | |||||
| // $(".log-scroll-max").scroll(); | |||||
| $(".full-log-dialog").click(function () { | |||||
| let version_name = $(this).data("version"); | |||||
| let log_type = $(this).data("log-type") || ""; | |||||
| let logContentDom = document.querySelector(`#log-max${version_name}`); | |||||
| $(`.ui.modal.max-full-log${version_name}`) | |||||
| .modal({ | |||||
| closable: false, | |||||
| onShow: function () { | |||||
| $(".ui.dimmer.modals").css({ | |||||
| "background-color": "rgb(136, 136, 136,0.7)", | |||||
| }); | |||||
| $(".log-scroll-max .ui.inverted.active.dimmer").css( | |||||
| "display", | |||||
| "none" | |||||
| ); | |||||
| $(".file-info #log-file-title").text( | |||||
| $(".full-log-dialog").data("log") | |||||
| ); | |||||
| $(".file-info #log-file-exit").text( | |||||
| $(".full-log-dialog").data("exit") | |||||
| ); | |||||
| }, | |||||
| onVisible: function () { | |||||
| $(`#log-max${version_name}`).append( | |||||
| "<pre>" + $(`#log${version_name} input[name=init_log]`).val() | |||||
| ); | |||||
| scrollAnimation( | |||||
| logContentDom, | |||||
| logContentDom.scrollTop + 1, | |||||
| logContentDom.scrollHeight - logContentDom.clientHeight | |||||
| ); | |||||
| if (log_type !== "c2Net") { | |||||
| $(".log-scroll-max").bind("scroll", function () { | |||||
| let version_name = $(this).data("version"); | |||||
| let ID = $(`#accordion${version_name}`).data("jobid"); | |||||
| let repoPath = $(`#accordion${version_name}`).data("repopath"); | |||||
| fn(version_name, repoPath, ID, "-max", 100); | |||||
| }); | |||||
| } | |||||
| $(".log_bottom-max").bind("click", logBottom); | |||||
| $(".log_top-max").bind("click", logTop); | |||||
| }, | |||||
| onHide: function () { | |||||
| let startLine = $( | |||||
| `#log${version_name} input[name=start_line-max-copy]` | |||||
| ).val(); | |||||
| $(`#log_file-max${version_name}`).siblings("pre").remove(); | |||||
| $(`#log${version_name} input[name=start_line-max]`).val(startLine); | |||||
| $(".log-scroll-max").unbind("scroll"); | |||||
| $(".log_bottom-max").unbind("click"); | |||||
| $(".log_top-max").unbind("click"); | |||||
| }, | |||||
| }) | |||||
| .modal("show"); | |||||
| }); | }); | ||||
| function loadLog(version_name) { | function loadLog(version_name) { | ||||
| @@ -245,7 +403,6 @@ export default async function initCloudrainSow() { | |||||
| .modal({ | .modal({ | ||||
| onApprove: function () { | onApprove: function () { | ||||
| $.post(url, { version_name: version_name }, (data) => { | $.post(url, { version_name: version_name }, (data) => { | ||||
| console.log(data); | |||||
| if (data.StatusOK === 0) { | if (data.StatusOK === 0) { | ||||
| if (data.VersionListCount === 0) { | if (data.VersionListCount === 0) { | ||||
| location.href = `/${repoPath}`; | location.href = `/${repoPath}`; | ||||