Reviewed-on: https://git.openi.org.cn/OpenI/aiforge/pulls/438pull/441/head
@@ -2,6 +2,13 @@ | |||||
{{template "base/head" .}} | {{template "base/head" .}} | ||||
<style> | <style> | ||||
.label_after::after{ | |||||
margin: -.2em 0 0 .2em; | |||||
content: '\00a0'; | |||||
} | |||||
.selectcloudbrain .active.item{ | .selectcloudbrain .active.item{ | ||||
color: #0087f5 !important; | color: #0087f5 !important; | ||||
border: 1px solid #0087f5; | border: 1px solid #0087f5; | ||||
@@ -232,13 +239,13 @@ | |||||
<div class="ui two column stackable grid"> | <div class="ui two column stackable grid"> | ||||
<div class="column"> | <div class="column"> | ||||
</div> | </div> | ||||
<div class="column right aligned"> | |||||
<!-- <div class="column right aligned"> | |||||
<div class="ui right dropdown type jump item"> | <div class="ui right dropdown type jump item"> | ||||
<span class="text"> | <span class="text"> | ||||
{{.i18n.Tr "repo.issues.filter_sort"}}<i class="dropdown icon"></i> | {{.i18n.Tr "repo.issues.filter_sort"}}<i class="dropdown icon"></i> | ||||
</span> | </span> | ||||
</div> | </div> | ||||
</div> | |||||
</div> --> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -320,37 +327,40 @@ | |||||
<!-- 镜像列表弹窗 --> | <!-- 镜像列表弹窗 --> | ||||
<div id="imageModal" class="modal" style="display: none;"> | <div id="imageModal" class="modal" style="display: none;"> | ||||
<div class="modal-content"> | <div class="modal-content"> | ||||
<span class="close">×</span> | |||||
<!-- 表格 --> | <!-- 表格 --> | ||||
<form id="commitImageForm" action="{{$.Link}}/{{.JobID}}/commit_image" method="post" target="iframeContent"> | |||||
{{$.CsrfTokenHtml}} | |||||
<p>提交任务镜像</p> | |||||
<div class="ui divider"></div> | |||||
<div class="inline required field dis"> | |||||
<label>镜像标签:</label> | |||||
<input name="tag" id="image_tag" tabindex="3" autofocus required maxlength="255" style="width:75%"> | |||||
</div> | |||||
<div class="inline required field" style="position:relative;height:180px;"> | |||||
<div style="height:20px;width:75px;"> | |||||
<label>镜像描述:</label> | |||||
<div class="ui form"> | |||||
<form id="commitImageForm" action="{{$.Link}}/{{.JobID}}/commit_image" method="post" target="iframeContent"> | |||||
{{$.CsrfTokenHtml}} | |||||
<div class="row"> | |||||
<p style="display: inline;">提交任务镜像</p> | |||||
<span class="close">×</span> | |||||
</div> | </div> | ||||
<div style="position:absolute;left:75px;top:0;width:75%"> | |||||
<textarea name="description" rows="10" style="width:100%"></textarea> | |||||
<div class="ui divider"></div> | |||||
<div class="inline required field dis"> | |||||
<label>镜像标签:</label> | |||||
<input name="tag" id="image_tag" tabindex="3" autofocus required maxlength="255" style="width:75%"> | |||||
</div> | </div> | ||||
</div> | |||||
<div class="ui divider"></div> | |||||
<div class="inline field"> | |||||
<label></label> | |||||
<button class="ui green button" onclick="showmask()"> | |||||
{{$.i18n.Tr "repo.cloudbrain.commit_image"}} | |||||
</button> | |||||
</div> | |||||
</form> | |||||
<div class="inline field"> | |||||
<label class="label_after">镜像描述:</label> | |||||
<textarea name="description" rows="8" style="width:75%;margin-left: 0.2em;"></textarea> | |||||
</div> | |||||
<div class="ui divider"></div> | |||||
<div class="inline field"> | |||||
<label></label> | |||||
<button class="ui green button" onclick="showmask()"> | |||||
{{$.i18n.Tr "repo.cloudbrain.commit_image"}} | |||||
</button> | |||||
</div> | |||||
</form> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -487,6 +497,11 @@ | |||||
// 显示弹窗,弹出相应的信息 | // 显示弹窗,弹出相应的信息 | ||||
function showmask() { | function showmask() { | ||||
var image_tag = !$('#image_tag').val() | |||||
console.log("image_tag",image_tag) | |||||
if(image_tag){ | |||||
return | |||||
} | |||||
$('#imageModal').css('display', 'none') | $('#imageModal').css('display', 'none') | ||||
$('#mask').css('display', 'block') | $('#mask').css('display', 'block') | ||||
@@ -177,8 +177,9 @@ | |||||
</div> | </div> | ||||
<div class="inline required field"> | <div class="inline required field"> | ||||
<label>数据集(只有zip格式的数据集才能发起云脑任务)</label> | |||||
<select id="cloudbrain_dataset" class="ui search dropdown" placeholder="选择数据集" style='width:385px' name="attachment"> | |||||
<label>数据集</label> | |||||
<select id="cloudbrain_dataset" class="ui search dropdown" placeholder="选择数据集" style='width:385px' name="attachment" required> | |||||
{{range .attachments}} | {{range .attachments}} | ||||
<option name="attachment" value="{{.UUID}}">{{.Attachment.Name}}</option> | <option name="attachment" value="{{.UUID}}">{{.Attachment.Name}}</option> | ||||
{{end}} | {{end}} | ||||
@@ -241,15 +242,14 @@ | |||||
let url_href = window.location.pathname.split('create')[0] | let url_href = window.location.pathname.split('create')[0] | ||||
$(".ui.button").attr('href',url_href) | $(".ui.button").attr('href',url_href) | ||||
let form = document.getElementById('form_id'); | let form = document.getElementById('form_id'); | ||||
let value_image = $("input[name='image']").val() | |||||
console.log("value_image",$("input[name='image']").val()) | |||||
$('#messageInfo').css('display','none') | $('#messageInfo').css('display','none') | ||||
form.onsubmit = function(e){ | form.onsubmit = function(e){ | ||||
let value_task = $("input[name='job_name']").val() | let value_task = $("input[name='job_name']").val() | ||||
let value_image = $("input[name='image']").val() | let value_image = $("input[name='image']").val() | ||||
let value_data = $("input[name='attachment']").val() | |||||
let re = /^[a-z0-9][a-z0-9-_]{1,36}$/ | let re = /^[a-z0-9][a-z0-9-_]{1,36}$/ | ||||
let flag = re.test(value_task) | let flag = re.test(value_task) | ||||
if(!flag){ | if(!flag){ | ||||
@@ -258,13 +258,10 @@ | |||||
$('#messageInfo p').text(str) | $('#messageInfo p').text(str) | ||||
return false | return false | ||||
} | } | ||||
if(!value_image){ | |||||
if(!value_image || !value_data){ | |||||
return false | return false | ||||
} | } | ||||
let min_value_task = value_task.toLowerCase() | let min_value_task = value_task.toLowerCase() | ||||
console.log(min_value_task) | |||||
$("input[name='job_name']").attr("value",min_value_task) | $("input[name='job_name']").attr("value",min_value_task) | ||||
document.getElementById("mask").style.display = "block" | document.getElementById("mask").style.display = "block" | ||||
@@ -232,13 +232,13 @@ | |||||
<div class="ui two column stackable grid"> | <div class="ui two column stackable grid"> | ||||
<div class="column"> | <div class="column"> | ||||
</div> | </div> | ||||
<div class="column right aligned"> | |||||
<!-- <div class="column right aligned"> | |||||
<div class="ui right dropdown type jump item"> | <div class="ui right dropdown type jump item"> | ||||
<span class="text"> | <span class="text"> | ||||
{{.i18n.Tr "repo.issues.filter_sort"}}<i class="dropdown icon"></i> | {{.i18n.Tr "repo.issues.filter_sort"}}<i class="dropdown icon"></i> | ||||
</span> | </span> | ||||
</div> | </div> | ||||
</div> | |||||
</div> --> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -100,7 +100,10 @@ | |||||
<div class="repository new repo ui middle very relaxed page grid"> | <div class="repository new repo ui middle very relaxed page grid"> | ||||
<div class="column"> | <div class="column"> | ||||
{{template "base/alert" .}} | {{template "base/alert" .}} | ||||
<form class="ui form" action="{{.Link}}" method="post"> | |||||
<div class="ui positive message" id="messageInfo"> | |||||
<p></p> | |||||
</div> | |||||
<form class="ui form" id="form_id" action="{{.Link}}" method="post"> | |||||
{{.CsrfTokenHtml}} | {{.CsrfTokenHtml}} | ||||
<h3 class="ui top attached header"> | <h3 class="ui top attached header"> | ||||
{{.i18n.Tr "repo.cloudbrain.new"}} | {{.i18n.Tr "repo.cloudbrain.new"}} | ||||
@@ -125,11 +128,11 @@ | |||||
<div class="inline required field"> | <div class="inline required field"> | ||||
<label>工作环境</label> | <label>工作环境</label> | ||||
<input name="de" id="cloudbrain_de" value="{{.env}}" tabindex="3" autofocus required maxlength="255" readonly="readonly"> | |||||
<input name="de" id="cloudbrain_de" value="{{.env}}" tabindex="3" disabled autofocus required maxlength="255" readonly="readonly"> | |||||
</div> | </div> | ||||
<div class="inline required field"> | <div class="inline required field"> | ||||
<label>类型</label> | <label>类型</label> | ||||
<input name="job_type" id="cloudbrain_job_type" value="{{.notebook_type}}" tabindex="3" autofocus required maxlength="255" readonly="readonly"> | |||||
<input name="job_type" id="cloudbrain_job_type" value="{{.notebook_type}}" tabindex="3" disabled autofocus required maxlength="255" readonly="readonly"> | |||||
</div> | </div> | ||||
<div class="inline required field"> | <div class="inline required field"> | ||||
<label>规格</label> | <label>规格</label> | ||||
@@ -142,7 +145,7 @@ | |||||
</div> | </div> | ||||
<div class="inline required field"> | <div class="inline required field"> | ||||
<label>数据集存放路径</label> | <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> | ||||
<div class="inline field"> | <div class="inline field"> | ||||
<label>描述</label> | <label>描述</label> | ||||
@@ -150,7 +153,7 @@ | |||||
</div> | </div> | ||||
<div class="inline field"> | <div class="inline field"> | ||||
<label></label> | <label></label> | ||||
<button class="ui green button" onclick="showmask()"> | |||||
<button class="ui green button"> | |||||
{{.i18n.Tr "repo.cloudbrain.new"}} | {{.i18n.Tr "repo.cloudbrain.new"}} | ||||
</button> | </button> | ||||
<a class="ui button" href="/">{{.i18n.Tr "repo.cloudbrain.cancel"}}</a> | <a class="ui button" href="/">{{.i18n.Tr "repo.cloudbrain.cancel"}}</a> | ||||
@@ -163,10 +166,38 @@ | |||||
{{template "base/footer" .}} | {{template "base/footer" .}} | ||||
<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'); | |||||
$('#messageInfo').css('display','none') | |||||
form.onsubmit = function(e){ | |||||
let value_task = $("input[name='job_name']").val() | |||||
let re = /^[a-z0-9][a-z0-9-_]{1,36}$/ | |||||
let flag = re.test(value_task) | |||||
if(!flag){ | |||||
$('#messageInfo').css('display','block') | |||||
let str = '只能以小写字母或数字开头且只包含小写字母、数字、_和-、最长36个字符。' | |||||
$('#messageInfo p').text(str) | |||||
return false | |||||
} | |||||
let min_value_task = value_task.toLowerCase() | |||||
$("input[name='job_name']").attr("value",min_value_task) | |||||
document.getElementById("mask").style.display = "block" | document.getElementById("mask").style.display = "block" | ||||
} | } | ||||
// 点击按钮后遮罩层显示 | |||||
// function showmask() { | |||||
// document.getElementById("mask").style.display = "block" | |||||
// } | |||||
// 页面加载完毕后遮罩层隐藏 | // 页面加载完毕后遮罩层隐藏 | ||||
document.onreadystatechange = function() { | document.onreadystatechange = function() { | ||||