diff --git a/modules/storage/minio_ext.go b/modules/storage/minio_ext.go index 05b692335..4b738c068 100755 --- a/modules/storage/minio_ext.go +++ b/modules/storage/minio_ext.go @@ -214,47 +214,6 @@ func GetOneLevelAllObjectUnderDirMinio(bucket string, prefixRootPath string, rel ParenDir: ParenDir, } fileInfos = append(fileInfos, fileInfo) - - // log.Info("val key=" + val.Key) - // var isDir bool - // var fileName string - // if val.Key == Prefix { - // continue - // } - - // fileName = val.Key[prefixLen:] - // log.Info("fileName =" + fileName) - // files := strings.Split(fileName, "/") - // if fileMap[files[0]] { - // continue - // } else { - // fileMap[files[0]] = true - // } - // ParenDir := relativePath - // fileName = files[0] - // if len(files) > 1 { - // isDir = true - // ParenDir += fileName + "/" - // } else { - // isDir = false - // } - - // // if strings.HasSuffix(val.Key, "/") { - // // isDir = true - // // fileName = val.Key[prefixLen : len(val.Key)-1] - // // relativePath += val.Key[prefixLen:] - // // } else { - // // isDir = false - // // fileName = val.Key[prefixLen:] - // // } - // fileInfo := FileInfo{ - // ModTime: val.LastModified.Local().Format("2006-01-02 15:04:05"), - // FileName: fileName, - // Size: val.Size, - // IsDir: isDir, - // ParenDir: relativePath, - // } - // fileInfos = append(fileInfos, fileInfo) } return fileInfos, err } else { diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index c4b59f501..0d35cc326 100755 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3117,7 +3117,8 @@ dataset_path_rule = The dataset location is stored in the environment variable d view_sample = View sample inference_output_path_rule = The inference output path is stored in the environment variable result_url. model_file_path_rule=The model file location is stored in the environment variable ckpt_url - +model_file_postfix_rule = The supported format of the model file is [ckpt, pb, h5, json, pkl, pth, t7, pdparams, onnx, pbtxt, keras, mlmodel, cfg, pt] +model_convert_postfix_rule = The supported format of the model file is [.pth, .pkl, .onnx, .mindir, .ckpt, .pb] delete_task = Delete task task_delete_confirm = Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered. operate_confirm = confirm diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index 8006bf1fe..d34a18cc1 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -3132,7 +3132,8 @@ dataset_path_rule = 数据集位置存储在环境变量data_url中,训练输 view_sample = 查看样例 inference_output_path_rule = 推理输出路径存储在环境变量result_url中。 model_file_path_rule = 模型文件位置存储在环境变量ckpt_url中。 - +model_file_postfix_rule = 模型文件支持的格式为 [ckpt, pb, h5, json, pkl, pth, t7, pdparams, onnx, pbtxt, keras, mlmodel, cfg, pt] +model_convert_postfix_rule = 模型文件支持的格式为 [.pth, .pkl, .onnx, .mindir, .ckpt, .pb] delete_task = 删除任务 task_delete_confirm = 你确认删除该任务么?此任务一旦删除不可恢复。 operate_confirm = 确定操作 diff --git a/routers/repo/grampus.go b/routers/repo/grampus.go index c31143a33..3e9f64f3b 100755 --- a/routers/repo/grampus.go +++ b/routers/repo/grampus.go @@ -805,7 +805,13 @@ func generateCommand(repoName, processorType, codeRemotePath, dataRemotePath, bo } } - commandCode := "cd " + workDir + "code/" + strings.ToLower(repoName) + ";python " + bootFile + paramCode + ";" + var commandCode string + if processorType == grampus.ProcessorTypeNPU { + commandCode = "/bin/bash /home/work/run_train_for_openi.sh " + workDir + "code/" + strings.ToLower(repoName) + "/" + bootFile + " /tmp/log/train.log" + paramCode + ";" + } else if processorType == grampus.ProcessorTypeGPU { + commandCode = "cd " + workDir + "code/" + strings.ToLower(repoName) + ";python " + bootFile + paramCode + ";" + } + command += commandCode //get exec result diff --git a/templates/custom/global_mask.tmpl b/templates/custom/global_mask.tmpl new file mode 100644 index 000000000..fd2dfcbe6 --- /dev/null +++ b/templates/custom/global_mask.tmpl @@ -0,0 +1,21 @@ +
+
+
+
+
+
+
+
+
+
+ 任务正在准备中,喝杯水回来再看看~ +
+
+
diff --git a/templates/repo/attachment/upload.tmpl b/templates/repo/attachment/upload.tmpl index a78931b13..abda92b07 100644 --- a/templates/repo/attachment/upload.tmpl +++ b/templates/repo/attachment/upload.tmpl @@ -3,7 +3,7 @@ {{template "repo/header" .}}
-
+

{{$.i18n.Tr "dataset.upload_dataset_file"}}

@@ -54,7 +54,7 @@
-
+
-
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
diff --git a/templates/repo/cloudbrain/inference/new.tmpl b/templates/repo/cloudbrain/inference/new.tmpl index bfc8b1c51..fc2c37bc7 100644 --- a/templates/repo/cloudbrain/inference/new.tmpl +++ b/templates/repo/cloudbrain/inference/new.tmpl @@ -36,15 +36,7 @@ white-space: nowrap !important; } -
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
@@ -141,6 +133,9 @@
+ + +
diff --git a/templates/repo/cloudbrain/new.tmpl b/templates/repo/cloudbrain/new.tmpl index 9552c80c0..e2d1b2993 100755 --- a/templates/repo/cloudbrain/new.tmpl +++ b/templates/repo/cloudbrain/new.tmpl @@ -1,91 +1,7 @@ {{template "base/head" .}} -
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}} @@ -330,7 +232,6 @@ let min_value_task = value_task.toLowerCase() $("input[name='display_job_name']").attr("value", min_value_task) document.getElementById("mask").style.display = "block" - } // 页面加载完毕后遮罩层隐藏 @@ -345,44 +246,11 @@ .dropdown({ placeholder: "选择数据集类别", }) - - console.log("=======================") - // $(document).ready(function(){ - // let waitNums = $('.cloudbrain-type').data('queue').split('map')[1] - // let test = new Map() - // let waitNumsArray = waitNums.split(' ') - // waitNumsArray.forEach((element,index) => { - // if(index===0){ - // test.set(element.slice(1,-2),parseInt(element.slice(-1))) - // }else if(index===waitNumsArray.length-1){ - // test.set(element.slice(0,-3),parseInt(element.slice(-2,-1))) - // }else{ - // test.set(element.slice(0,-2),parseInt(element.slice(-1))) - // } - // }); - // console.log(test) - // $('.ui.search.dropdown.gpu-type').dropdown({ - // onChange: function(value, text, $selectedItem) { - // console.log("=-------------",value) - // console.log("=-------------",test.get(value)) - // let gpuTypeNums= test.get(value) - // $('#gpu-nums').text("{{.i18n.Tr "repo.wait_count_start"}}"+gpuTypeNums+"{{.i18n.Tr "repo.wait_count_end"}}") - - // } - // }); - // }) - - // $('#cloudbrain_image').select2({ - // placeholder: "选择镜像" - // }); - - $(".ui.button.reset").click(function (e) { e.preventDefault() $('#cloudbrain_benchmark_category') .dropdown("clear", true) }) - $(".ui.positive.button.active.all_selected").click(function (e) { e.preventDefault() var selected_value = new Array() diff --git a/templates/repo/cloudbrain/trainjob/new.tmpl b/templates/repo/cloudbrain/trainjob/new.tmpl index 79a52d565..72e22f730 100755 --- a/templates/repo/cloudbrain/trainjob/new.tmpl +++ b/templates/repo/cloudbrain/trainjob/new.tmpl @@ -64,18 +64,7 @@ } - -
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
diff --git a/templates/repo/cloudbrain/trainjob/show.tmpl b/templates/repo/cloudbrain/trainjob/show.tmpl index c22c557a4..72cbaee02 100644 --- a/templates/repo/cloudbrain/trainjob/show.tmpl +++ b/templates/repo/cloudbrain/trainjob/show.tmpl @@ -272,6 +272,8 @@ class="cti-mgRight-sm">{{$.i18n.Tr "repo.modelarts.train_job.dura_time"}}: {{$.duration}} +
diff --git a/templates/repo/debugjob/index.tmpl b/templates/repo/debugjob/index.tmpl index 206b99a4e..2756b49fd 100755 --- a/templates/repo/debugjob/index.tmpl +++ b/templates/repo/debugjob/index.tmpl @@ -19,90 +19,6 @@ height: 100%; } - /* 弹窗 */ - - #mask { - position: fixed; - top: 0px; - left: 0px; - right: 0px; - bottom: 0px; - filter: alpha(opacity=60); - background-color: #777; - z-index: 1000; - display: none; - opacity: 0.8; - -moz-opacity: 0.5; - padding-top: 100px; - color: #000000 - } - - #loadingPage { - margin: 200px auto; - width: 50px; - height: 40px; - text-align: center; - font-size: 10px; - display: block; - } - - #loadingPage>div { - background-color: green; - height: 100%; - width: 6px; - display: inline-block; - -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; - animation: sk-stretchdelay 1.2s infinite ease-in-out; - } - - #loadingPage .rect2 { - -webkit-animation-delay: -1.1s; - animation-delay: -1.1s; - } - - #loadingPage .rect3 { - -webkit-animation-delay: -1.0s; - animation-delay: -1.0s; - } - - #loadingPage .rect4 { - -webkit-animation-delay: -0.9s; - animation-delay: -0.9s; - } - - #loadingPage .rect5 { - -webkit-animation-delay: -0.8s; - animation-delay: -0.8s; - } - - @-webkit-keyframes sk-stretchdelay { - - 0%, - 40%, - 100% { - -webkit-transform: scaleY(0.4) - } - - 20% { - -webkit-transform: scaleY(1.0) - } - } - - @keyframes sk-stretchdelay { - - 0%, - 40%, - 100% { - transform: scaleY(0.4); - -webkit-transform: scaleY(0.4); - } - - 20% { - transform: scaleY(1.0); - -webkit-transform: scaleY(1.0); - } - } - /* 消息框 */ .alert { @@ -203,17 +119,6 @@ } - -
-
-
-
-
-
-
-
-
-
{{template "repo/header" .}} @@ -502,6 +407,16 @@
+
{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/repo/modelarts/inferencejob/index.tmpl b/templates/repo/modelarts/inferencejob/index.tmpl index d3f854731..27a5eb6e7 100644 --- a/templates/repo/modelarts/inferencejob/index.tmpl +++ b/templates/repo/modelarts/inferencejob/index.tmpl @@ -10,16 +10,6 @@ } - -
-
-
-
-
-
-
-
-
diff --git a/templates/repo/modelarts/inferencejob/new.tmpl b/templates/repo/modelarts/inferencejob/new.tmpl index 05044d8ab..3b2150e41 100644 --- a/templates/repo/modelarts/inferencejob/new.tmpl +++ b/templates/repo/modelarts/inferencejob/new.tmpl @@ -35,15 +35,7 @@ white-space: nowrap !important; } -
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
@@ -141,7 +133,7 @@
- +
diff --git a/templates/repo/modelarts/inferencejob/show.tmpl b/templates/repo/modelarts/inferencejob/show.tmpl index 7be35a581..1137aad01 100644 --- a/templates/repo/modelarts/inferencejob/show.tmpl +++ b/templates/repo/modelarts/inferencejob/show.tmpl @@ -465,7 +465,7 @@ td, th { - + @@ -474,6 +474,9 @@ td, th {
+
+
+

diff --git a/templates/repo/modelarts/notebook/new.tmpl b/templates/repo/modelarts/notebook/new.tmpl
index 3b9dcfafb..30449a1a4 100755
--- a/templates/repo/modelarts/notebook/new.tmpl
+++ b/templates/repo/modelarts/notebook/new.tmpl
@@ -5,15 +5,7 @@
 }
 
 
-
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
diff --git a/templates/repo/modelarts/notebook/show.tmpl b/templates/repo/modelarts/notebook/show.tmpl index ae9ab9cd8..2469117c6 100755 --- a/templates/repo/modelarts/notebook/show.tmpl +++ b/templates/repo/modelarts/notebook/show.tmpl @@ -208,15 +208,6 @@ padding-top: 0.5rem; } -
-
-
-
-
-
-
-
-
{{template "repo/header" .}}
diff --git a/templates/repo/modelarts/trainjob/new.tmpl b/templates/repo/modelarts/trainjob/new.tmpl index 081d39f70..51f447f46 100755 --- a/templates/repo/modelarts/trainjob/new.tmpl +++ b/templates/repo/modelarts/trainjob/new.tmpl @@ -58,15 +58,7 @@ -
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
diff --git a/templates/repo/modelarts/trainjob/show.tmpl b/templates/repo/modelarts/trainjob/show.tmpl index ea556e854..7ae5d5c6b 100755 --- a/templates/repo/modelarts/trainjob/show.tmpl +++ b/templates/repo/modelarts/trainjob/show.tmpl @@ -215,15 +215,7 @@ box-shadow: 0 2px 3px 0 rgb(34 36 38 / 15%); } -
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
@@ -518,7 +510,7 @@ - + @@ -528,6 +520,9 @@
+
+
+

@@ -911,154 +906,7 @@
 
     }
 
-    function loadLog(version_name) {
-        $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-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)
-            if(!data.CanLogDownload){
-                $(`#${version_name}-log-down`).removeClass('ti-download-file').addClass('disabled')
-            }
-        }).fail(function (err) {
-            console.log(err);
-        });
-    }
-    function debounce(fn, delay) {
-        let timer;
-        return (...args) => {
-            // 判断定时器是否存在,清除定时器
-            if (timer) {
-                clearTimeout(timer);
-            }
-
-            // 重新调用setTimeout
-            timer = setTimeout(() => {
-                fn.apply(this, args);
-            }, delay);
-        };
-    }
-    const fn = debounce(logScroll, 500)
-    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)) && parseInt(scrollTop) !== 0 && 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('
' + data.Content)
-                    }
-
-                }
-            }).fail(function (err) {
-                console.log(err);
-            });
-        }
-        if ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].includes(scrollTop) && 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('
' + data.Content)
-                }
-            }).fail(function (err) {
-                console.log(err);
-            });
-        }
-    }
-    function scrollAnimation(dom, currentY, targetY, currentX) {
-        let needScrollTop = targetY - currentY;
-        let _currentY = currentY;
-        setTimeout(() => {
-            // 一次调用滑动帧数,每次调用会不一样
-            //取总距离的十分之一
-            const dist = Math.ceil(needScrollTop / 10);
-            _currentY += dist;
-            //移动一个十分之一
-            dom.scrollTo(currentX || 0, _currentY, 'smooth');
-            // 如果移动幅度小于十个像素,直接移动,否则递归调用,实现动画效果
-            if (needScrollTop > 10 || needScrollTop < -10) {
-                scrollAnimation(dom, _currentY, targetY)
-            } else {
-                dom.scrollTo(0, targetY, 'smooth')
-            }
-        }, 1)
-    }
-
-    $('.log_top').click(function () {
-        // let logContentDom = document.querySelector('.log')
-        // if(!logContentDom)
-        //     return
-        // let version_name = $('.log_top').data('version')
-        let version_name = $(this).data('version')
-        let logContentDom = document.querySelector(`#log${version_name}`)
-
-        $(`#log_file${version_name}`).siblings('pre').remove()
-        $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=asc`, (data) => {
-
-            $(`#log${version_name} input[name=end_line]`).val(data.EndLine)   //如果变动就改变所对应的值
-            $(`#log${version_name} input[name=start_line]`).val(data.StartLine)
-            $(`#log${version_name}`).prepend('
' + data.Content)
-            $(`.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);
-        })
-
-    })
-    $('.log_bottom').click(function (e) {
-        let version_name = $(this).data('version')
-        let logContentDom = document.querySelector(`#log${version_name}`)
-        $(`#log_file${version_name}`).siblings('pre').remove()
-        $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=desc`, (data) => {
-
-            $(`#log${version_name} input[name=end_line]`).val(data.EndLine)   //如果变动就改变所对应的值
-            $(`#log${version_name} input[name=start_line]`).val(data.StartLine)
-            $(`#log${version_name}`).append('
' + data.Content)
-            $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${data.EndLine}&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('
' + data.Content)
-                    }
-
-                }
-            }).fail(function (err) {
-                console.log(err);
-            });
-            scrollAnimation(logContentDom, logContentDom.scrollTop + 1, logContentDom.scrollHeight - logContentDom.clientHeight);
-        })
-    })
+   
 
 
     
diff --git a/templates/repo/modelarts/trainjob/version_new.tmpl b/templates/repo/modelarts/trainjob/version_new.tmpl
index 886469d4c..6712f5e7d 100644
--- a/templates/repo/modelarts/trainjob/version_new.tmpl
+++ b/templates/repo/modelarts/trainjob/version_new.tmpl
@@ -51,18 +51,7 @@
 }
 
 
-
-
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
diff --git a/templates/repo/modelmanage/convertIndex.tmpl b/templates/repo/modelmanage/convertIndex.tmpl index 4032b28d5..ee2d56ee3 100644 --- a/templates/repo/modelmanage/convertIndex.tmpl +++ b/templates/repo/modelmanage/convertIndex.tmpl @@ -254,6 +254,10 @@
+
+ +
+
@@ -347,7 +351,6 @@ return true; } } - $('#submitId').click(function(){ let data={}; data['_csrf']=csrf diff --git a/templates/repo/modelmanage/convertshowinfo.tmpl b/templates/repo/modelmanage/convertshowinfo.tmpl index 984b5944f..0744ff777 100644 --- a/templates/repo/modelmanage/convertshowinfo.tmpl +++ b/templates/repo/modelmanage/convertshowinfo.tmpl @@ -166,15 +166,7 @@ td, th { padding-top: 0.5rem ; } -
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
diff --git a/templates/repo/modelmanage/index.tmpl b/templates/repo/modelmanage/index.tmpl index c42f1ba7b..52b042c46 100644 --- a/templates/repo/modelmanage/index.tmpl +++ b/templates/repo/modelmanage/index.tmpl @@ -325,6 +325,7 @@ $('#name').val(modelName) $('#version').val("0.0.1") } + let dirKey="isOnlyDir--:&"; function showcreate(obj) { $('.ui.modal.second') .modal({ @@ -460,7 +461,7 @@ var zNodes=[]; var nodesMap={}; for (let i=0;i0){ - node["children"]=[]; - if(isFirst){ - node["open"] = true; - isFirst= false; + if(nodesMap[keyList[i]][dirKey] != null){ + node["open"] = false; + node["isParent"] = true; + }else{ + node["children"]=[]; + if(isFirst){ + node["open"] = true; + isFirst= false; + } + convertToNode(node["children"],nodesMap[keyList[i]]); } - convertToNode(node["children"],nodesMap[keyList[i]]); + } } } diff --git a/templates/repo/modelmanage/showinfo.tmpl b/templates/repo/modelmanage/showinfo.tmpl index 25ec72dea..4b4434908 100644 --- a/templates/repo/modelmanage/showinfo.tmpl +++ b/templates/repo/modelmanage/showinfo.tmpl @@ -472,10 +472,15 @@ function renderBrend(ID,version_name,parents,filename,init){ $('input[name=modelback]').val(filename) }else{ $('input[name=model]').val(parents) - $('input[name=modelbac]').val(filename) - $('#file_breadcrumb a.section:contains(${filename})').nextAll().remove() - $('#file_breadcrumb a.section:contains(${filename})').replaceWith(`
${filename}
`) - $('#file_breadcrumb div.section:contains(${filename})').append("
/
") + $('input[name=modelback]').val(filename) + let selectEle = $('#file_breadcrumb a.section').filter( + (index, item) => { + return item.text == filename; + } + ); + selectEle.nextAll().remove(); + selectEle.after("
/
"); + selectEle.replaceWith(`
${filename}
`); } } diff --git a/templates/user/dashboard/cloudbrains.tmpl b/templates/user/dashboard/cloudbrains.tmpl index 8019bc51d..910531549 100755 --- a/templates/user/dashboard/cloudbrains.tmpl +++ b/templates/user/dashboard/cloudbrains.tmpl @@ -1,14 +1,4 @@ {{template "base/head" .}} - -
-
-
-
-
-
-
-
-
diff --git a/web_src/js/components/MinioUploader.vue b/web_src/js/components/MinioUploader.vue index 167bb8c5a..3c975600f 100755 --- a/web_src/js/components/MinioUploader.vue +++ b/web_src/js/components/MinioUploader.vue @@ -1,81 +1,122 @@ - \ No newline at end of file + diff --git a/web_src/js/features/cloudbrainShow.js b/web_src/js/features/cloudbrainShow.js index 12e0b71a4..b4b56bd8f 100644 --- a/web_src/js/features/cloudbrainShow.js +++ b/web_src/js/features/cloudbrainShow.js @@ -14,7 +14,7 @@ export default async function initCloudrainSow() { }; } - function logScroll(version_name) { + function logScroll(version_name, repoPath, ID) { let container = document.querySelector(`#log${version_name}`); let scrollTop = container.scrollTop; let scrollHeight = container.scrollHeight; @@ -28,7 +28,7 @@ export default async function initCloudrainSow() { ) { let end_line = $(`#log${version_name} input[name=end_line]`).val(); $.get( - `/api/v1/repos/${userName}/${repoPath}/modelarts/inference-job/${jobID}/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=50&order=desc`, (data) => { if (data.Lines == 0) { $(`.message${version_name} #header`).text("您已翻阅至日志底部"); @@ -52,7 +52,7 @@ export default async function initCloudrainSow() { if (scrollTop == 0 && scrollLeft == 0) { let start_line = $(`#log${version_name} input[name=start_line]`).val(); $.get( - `/api/v1/repos/${userName}/${repoPath}/modelarts/inference-job/${jobID}/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=50&order=asc`, (data) => { if (data.Lines == 0) { $(`.message${version_name} #header`).text("您已翻阅至日志顶部"); @@ -73,7 +73,9 @@ export default async function initCloudrainSow() { const fn = debounce(logScroll, 500); $(".log-scroll").scroll(function () { let version_name = $(this).data("version"); - fn(version_name); + let ID = $(`#accordion${version_name}`).data("jobid"); + let repoPath = $(`#accordion${version_name}`).data("repopath"); + fn(version_name, repoPath, ID); }); function scrollAnimation(dom, currentY, targetY, currentX) { let needScrollTop = targetY - currentY; @@ -101,11 +103,14 @@ export default async function initCloudrainSow() { // let version_name = $('.log_top').data('version') let version_name = $(this).data("version"); let logContentDom = document.querySelector(`#log${version_name}`); - + let ID = $(`#accordion${version_name}`).data("jobid"); + let repoPath = $(`#accordion${version_name}`).data("repopath"); $(`#log_file${version_name}`).siblings("pre").remove(); + $(".ui.inverted.active.dimmer").css("display", "block"); $.get( - `/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=asc`, + `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=&lines=50&order=asc`, (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("
" + data.Content);
@@ -121,10 +126,15 @@ export default async function initCloudrainSow() {
   $(".log_bottom").click(function (e) {
     let version_name = $(this).data("version");
     let logContentDom = document.querySelector(`#log${version_name}`);
+    let ID = $(`#accordion${version_name}`).data("jobid");
+    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();
+    $(".ui.inverted.active.dimmer").css("display", "block");
     $.get(
-      `/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=desc`,
+      `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=&lines=50&order=desc`,
       (data) => {
+        $(".ui.inverted.active.dimmer").css("display", "none");
         if (!data.CanLogDownload) {
           $(`#${version_name}-log-down`)
             .removeClass("ti-download-file")
@@ -134,8 +144,9 @@ export default async function initCloudrainSow() {
         $(`#log${version_name} input[name=start_line]`).val(data.StartLine);
         $(`#log${version_name}`).append("
" + data.Content);
         $.get(
-          `/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/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=50&order=desc`,
           (data) => {
+            $(".ui.inverted.active.dimmer").css("display", "none");
             if (data.Lines == 0) {
               $(`.message${version_name} #header`).text("您已翻阅至日志底部");
               $(`.message${version_name}`).css("display", "block");
@@ -143,7 +154,7 @@ export default async function initCloudrainSow() {
                 $(`.message${version_name}`).css("display", "none");
               }, 1000);
             } else {
-              if (end_line === data.EndLine) {
+              if (end_line === data.EndLine || end_line === "") {
                 return;
               } else {
                 $(`#log${version_name} input[name=end_line]`).val(data.EndLine);
@@ -163,6 +174,49 @@ export default async function initCloudrainSow() {
     );
   });
 
+  function loadLog(version_name) {
+    document.getElementById("mask").style.display = "block";
+    $.get(
+      `/api/v1/repos/${userName}/${repoPath}/grampus/train-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);
+        document.getElementById("mask").style.display = "none";
+      }
+    ).fail(function (err) {
+      document.getElementById("mask").style.display = "none";
+      console.log(err);
+    });
+  }
+  $("#refresh-status").click(function (e) {
+    let version_name = $(this).data("version");
+    let ID = $(`#accordion${version_name}`).data("jobid");
+    let repoPath = $(`#accordion${version_name}`).data("repopath");
+    refreshStatusShow(version_name, ID, repoPath);
+    $(".log-info .log_bottom").trigger("click");
+    e.stopPropagation();
+  });
+
+  function refreshStatusShow(version_name, ID, repoPath) {
+    $.get(
+      `/api/v1/repos/${repoPath}/${ID}?version_name=${version_name}`,
+      (data) => {
+        //accroding下的状态
+        $(`#${version_name}-status-span span`).text(data.JobStatus);
+        //accroding下的状态图标
+        $(`#${version_name}-status-span i`).attr("class", data.JobStatus);
+        //accroding下的运行时长
+        $(`#${version_name}-duration-span`).text(data.JobDuration);
+        //配置信息详情页的状态
+        $(`#${version_name}-status`).text(data.JobStatus);
+        //配置信息详情页的状态
+        $(`#${version_name}-duration`).text(data.JobDuration);
+      }
+    ).fail(function (err) {
+      console.log(err);
+    });
+  }
   //
   $(".content-pad").on("click", ".load-model-file", function () {
     let downloadFlag = $(this).data("download-flag") || "";
@@ -175,8 +229,8 @@ export default async function initCloudrainSow() {
     let url = `/api/v1/repos${path}?version_name=${version_name}&parentDir=${parents}`;
     $.get(url, (data) => {
       $(`#dir_list${version_name}`).empty();
-      if(data.Dirs){
-      	renderDir(path, data, version_name, downloadFlag, gpuFlag);
+      if (data.Dirs) {
+        renderDir(path, data, version_name, downloadFlag, gpuFlag);
       }
       if (init === "init") {
         $(`input[name=model${version_name}]`).val("");
@@ -191,7 +245,15 @@ export default async function initCloudrainSow() {
         htmlBread += "
/
"; $(`#file_breadcrumb${version_name}`).append(htmlBread); } else { - renderBrend(path, version_name, parents, filename, init, downloadFlag,gpuFlag); + renderBrend( + path, + version_name, + parents, + filename, + init, + downloadFlag, + gpuFlag + ); } }).fail(function (err) { console.log(err, version_name); @@ -253,15 +315,15 @@ export default async function initCloudrainSow() { } else { $(`input[name=model${version_name}]`).val(parents); $(`input[name=modelback${version_name}]`).val(filename); - $(`#file_breadcrumb${version_name} a.section:contains(${filename})`) - .nextAll() - .remove(); - $( - `#file_breadcrumb${version_name} a.section:contains(${filename})` - ).replaceWith(`
${filename}
`); - $( - `#file_breadcrumb${version_name} div.section:contains(${filename})` - ).append("
/
"); + + let selectEle = $(`#file_breadcrumb${version_name} a.section`).filter( + (index, item) => { + return item.text == filename; + } + ); + selectEle.nextAll().remove(); + selectEle.after("
/
"); + selectEle.replaceWith(`
${filename}
`); } } diff --git a/web_src/js/features/cloudrbanin.js b/web_src/js/features/cloudrbanin.js index 172e6b0bd..892d2ab41 100644 --- a/web_src/js/features/cloudrbanin.js +++ b/web_src/js/features/cloudrbanin.js @@ -347,33 +347,6 @@ export default async function initCloudrain() { e.stopPropagation(); }); - $("#refresh-status").click(function (e) { - let version_name = $(this).data("version"); - let ID = $(`#accordion${version_name}`).data("jobid"); - let repoPath = $(`#accordion${version_name}`).data("repopath"); - refreshStatusShow(version_name, ID, repoPath); - e.stopPropagation(); - }); - - function refreshStatusShow(version_name, ID, repoPath) { - $.get( - `/api/v1/repos/${repoPath}/${ID}?version_name=${version_name}`, - (data) => { - //accroding下的状态 - $(`#${version_name}-status-span span`).text(data.JobStatus); - //accroding下的状态图标 - $(`#${version_name}-status-span i`).attr("class", data.JobStatus); - //accroding下的运行时长 - $(`#${version_name}-duration-span`).text(data.JobDuration); - //配置信息详情页的状态 - $(`#${version_name}-status`).text(data.JobStatus); - //配置信息详情页的状态 - $(`#${version_name}-duration`).text(data.JobDuration); - } - ).fail(function (err) { - console.log(err); - }); - } function refreshStatus(version_name, ID, repoPath) { const url = `/api/v1/repos/${repoPath}/${ID}/?version_name${version_name}`; $.get(url, (data) => { diff --git a/web_src/less/openi.less b/web_src/less/openi.less index b9622924f..fe002ceb7 100644 --- a/web_src/less/openi.less +++ b/web_src/less/openi.less @@ -522,6 +522,60 @@ i.SUCCEEDED { // } /* 弹窗 */ +// #mask { +// position: fixed; +// top: 0px; +// left: 0px; +// right: 0px; +// bottom: 0px; +// filter: alpha(opacity=60); +// background-color: #777; +// z-index: 1000; +// display: none; +// opacity: 0.8; +// -moz-opacity: 0.5; +// padding-top: 100px; +// color: #000000; +// } + +#loadingPage { + margin: 300px auto; + width: 50px; + height: 40px; + text-align: center; + font-size: 10px; + display: block; +} + +#loadingPage > div { + background-color: green; + height: 100%; + width: 6px; + display: inline-block; + -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; + animation: sk-stretchdelay 1.2s infinite ease-in-out; +} + +#loadingPage .rect2 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} + +#loadingPage .rect3 { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} + +#loadingPage .rect4 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} + +#loadingPage .rect5 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} + #mask { position: fixed; top: 0px; @@ -529,17 +583,29 @@ i.SUCCEEDED { right: 0px; bottom: 0px; filter: alpha(opacity=60); - background-color: #777; + background-color: rgba(119, 119, 119, 0.8); z-index: 1000; display: none; - opacity: 0.8; - -moz-opacity: 0.5; - padding-top: 100px; color: #000000; } - -#loadingPage { - margin: 200px auto; +.loadingWrap { + width: 20%; + height: 25%; + border: 1px solid #bbb; + background-color: #fff; + margin: auto; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + border-radius: 20px; +} +#loading-page { width: 50px; height: 40px; text-align: center; @@ -547,7 +613,7 @@ i.SUCCEEDED { display: block; } -#loadingPage > div { +#loading-page > div { background-color: green; height: 100%; width: 6px; @@ -556,26 +622,25 @@ i.SUCCEEDED { animation: sk-stretchdelay 1.2s infinite ease-in-out; } -#loadingPage .rect2 { +#loading-page .rect2 { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } -#loadingPage .rect3 { +#loadin-page .rect3 { -webkit-animation-delay: -1s; animation-delay: -1s; } -#loadingPage .rect4 { +#loading-page .rect4 { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } -#loadingPage .rect5 { +#loading-page .rect5 { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } - @-webkit-keyframes sk-stretchdelay { 0%, 40%,