Browse Source

Merge branch 'V202108' of git.openi.org.cn:OpenI/aiforge into V202108

pull/250/head
lewis 3 years ago
parent
commit
3bc25f0dd4
5 changed files with 59 additions and 15 deletions
  1. +8
    -1
      routers/repo/cloudbrain.go
  2. +1
    -1
      routers/repo/modelarts.go
  3. +32
    -7
      templates/repo/cloudbrain/new.tmpl
  4. +18
    -4
      web_src/js/components/MinioUploader.vue
  5. +0
    -2
      web_src/less/_base.less

+ 8
- 1
routers/repo/cloudbrain.go View File

@@ -8,6 +8,7 @@ import (
"net/http"
"os"
"os/exec"
"regexp"
"strconv"
"strings"
"time"
@@ -86,11 +87,17 @@ func cutString(str string, lens int) string {
return str[:lens]
}

func jobNamePrefixValid(s string) string {
lowStr := strings.ToLower(s)
re := regexp.MustCompile(`[^a-z0-9\\.\\-]+`)
return re.ReplaceAllString(lowStr, "")
}

func CloudBrainNew(ctx *context.Context) {
ctx.Data["PageIsCloudBrain"] = true

t := time.Now()
var jobName = cutString(ctx.User.Name, 5) + t.Format("2006010215") + strconv.Itoa(int(t.Unix()))[5:]
var jobName = jobNamePrefixValid(cutString(ctx.User.Name, 5)) + t.Format("2006010215") + strconv.Itoa(int(t.Unix()))[5:]
ctx.Data["job_name"] = jobName

result, err := cloudbrain.GetImages()


+ 1
- 1
routers/repo/modelarts.go View File

@@ -71,7 +71,7 @@ func ModelArtsNew(ctx *context.Context) {
ctx.Data["PageIsCloudBrain"] = true

t := time.Now()
var jobName = cutString(ctx.User.Name, 5) + t.Format("2006010215") + strconv.Itoa(int(t.Unix()))[5:]
var jobName = jobNamePrefixValid(cutString(ctx.User.Name, 5)) + t.Format("2006010215") + strconv.Itoa(int(t.Unix()))[5:]
ctx.Data["job_name"] = jobName

attachs, err := models.GetModelArtsUserAttachments(ctx.User.ID)


+ 32
- 7
templates/repo/cloudbrain/new.tmpl View File

@@ -110,12 +110,13 @@
<div class="rect5"></div>
</div>
</div>

<div class="repository">
{{template "repo/header" .}}
<div class="repository new repo ui middle very relaxed page grid">
<div class="column">
{{template "base/alert" .}}
<form class="ui form" action="{{.Link}}" method="post">
<form id="form_id" class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<h3 class="ui top attached header">
{{.i18n.Tr "repo.cloudbrain.new"}}
@@ -192,15 +193,15 @@

<div class="inline required field">
<label>数据集存放路径</label>
<input name="dataset_path" id="cloudbrain_dataset_path" value="{{.dataset_path}}" tabindex="3" autofocus required maxlength="255" readonly="readonly">
<input name="dataset_path" id="cloudbrain_dataset_path" value="{{.dataset_path}}" tabindex="3" disabled autofocus required maxlength="255" readonly="readonly">
</div>
<div class="inline required field">
<label>模型存放路径</label>
<input name="model_path" id="cloudbrain_model_path" value="{{.model_path}}" tabindex="3" autofocus required maxlength="255" readonly="readonly">
<input name="model_path" id="cloudbrain_model_path" value="{{.model_path}}" tabindex="3" disabled autofocus required maxlength="255" readonly="readonly">
</div>
<div class="inline required field">
<label>代码存放路径</label>
<input name="code_path" id="cloudbrain_code_path" value="{{.code_path}}" tabindex="3" autofocus required maxlength="255" readonly="readonly">
<input name="code_path" id="cloudbrain_code_path" value="{{.code_path}}" tabindex="3" disabled autofocus required maxlength="255" readonly="readonly">
</div>
<div class="inline required field cloudbrain_benchmark">
<label>benchmark脚本存放路径</label>
@@ -217,13 +218,15 @@

<div class="inline field">
<label></label>
<button class="ui green button" onclick="showmask()">
<button class="ui green button" >
{{.i18n.Tr "repo.cloudbrain.new"}}
</button>
<a class="ui button" href="/">{{.i18n.Tr "repo.cloudbrain.cancel"}}</a>
</div>
</div>
</form>

</div>
</div>
</div>
@@ -231,9 +234,31 @@
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script>
// 点击按钮后遮罩层显示
function showmask() {

let url_href = window.location.pathname.split('create')[0]
$(".ui.button").attr('href',url_href)
let form = document.getElementById('form_id');
let value_image = $("input[name='image']").val()
console.log("value_image",$("input[name='image']").val())
form.onsubmit = function(e){
let value_task = $("input[name='job_name']").val()
let value_image = $("input[name='image']").val()
let re = /^[a-zA-Z0-9-.]+$/
let flag = re.test(value_task)
if(!flag){
alert("任务名称只能包含字母,数字,'-',和'.'")
return false
}
if(!value_image){
alert("镜像为空")
return false
}
let min_value_task = value_task.toLowerCase()
console.log(min_value_task)
$("input[name='job_name']").attr("value",min_value_task)
document.getElementById("mask").style.display = "block"
}

// 页面加载完毕后遮罩层隐藏


+ 18
- 4
web_src/js/components/MinioUploader.vue View File

@@ -335,8 +335,19 @@ export default {

async function uploadMinio(url, e) {
const res = await axios.put(url, e.target.result);
delete e.target.result
delete e.target.result
etags[currentChunk] = res.headers.etag;
}
async function uploadMinioNewMethod(url,e){
var xhr = new XMLHttpRequest();
xhr.open('PUT', url, false);
xhr.setRequestHeader('Content-Type', 'text/plain')
xhr.send(e.target.result);
var etagValue = xhr.getResponseHeader('etag');
//console.log(etagValue);
etags[currentChunk] = etagValue;
}

async function updateChunk(currentChunk) {
@@ -359,8 +370,10 @@ export default {
// 获取分片上传url
await getUploadChunkUrl(currentChunk, partSize);
if (urls[currentChunk] != '') {
// 上传到minio
await uploadMinio(urls[currentChunk], e);
// 上传到minio
//await uploadMinio(urls[currentChunk], e);
await uploadMinioNewMethod(urls[currentChunk], e);
if (etags[currentChunk] != '') {
// 更新数据库:分片上传结果
//await updateChunk(currentChunk);
@@ -372,8 +385,9 @@ export default {
}
}
} catch (error) {
this.emitDropzoneFailed(file);
console.log(error);
//this.emitDropzoneFailed(file);
//console.log(error);
}
}



+ 0
- 2
web_src/less/_base.less View File

@@ -890,8 +890,6 @@ footer {

.ui.menu.new-menu {
justify-content: center !important;
padding-top: 15px !important;
margin-top: -15px !important;
margin-bottom: 15px !important;
background-color: #fafafa !important;
border-width: 1px !important;


Loading…
Cancel
Save