(function () {
let form = document.getElementById("form_id");
let createFlag = false;
let flag;
form.onsubmit = function (e) {
if (createFlag) return false;
createFlag = true;
};
// $("select.dropdown").dropdown();
$(document).keydown(function (event) {
switch (event.keyCode) {
case 13:
return false;
}
});
$(".menu .item").tab();
$(document).ready(createParamter());
function createParamter() {
let params = $(".dynamic.field").data("params");
params &&
params.parameter.forEach((item, index) => {
Add_parameter(index, (flag = true), item);
});
}
// 参数增加、删除、修改、保存
function Add_parameter(i, flag = false, paramsObject = {}) {
let value = "";
value += `
`;
value += '
';
let placeholder_value = $(".dynamic.field").data("params-value");
let placeholder_name = $(".dynamic.field").data("params-name");
if (flag) {
value += ``;
} else {
value +=
'';
}
value += "
";
value += '
';
if (flag) {
value += ``;
} else {
value +=
'';
}
value += "
";
value += '';
value += "
";
$(".dynamic.field").append(value);
}
$("#add_run_para").click(function () {
var len = $(".dynamic.field .two.fields").length;
Add_parameter(len);
});
$(".dynamic.field").on("click", ".trash.icon", function () {
var index = $(this).parent().parent().index();
$(this).parent().parent().remove();
var len = $(".dynamic.field .two.fields").length;
$(".dynamic.field .two.fields").each(function () {
var cur_index = $(this).index();
$(this).attr("id", "para" + cur_index);
});
});
var isValidate = false;
function validate() {
$(".ui.form").form({
on: "blur",
fields: {
boot_file: {
identifier: "boot_file",
rules: [
{
type: "regExp[/.+.py$/g]",
},
],
},
job_name: {
identifier: "job_name",
rules: [
{
type: "regExp[/^[a-z0-9][a-z0-9-_]{1,34}[a-z0-9-]$/]",
},
],
},
display_job_name: {
identifier: "display_job_name",
rules: [
{
type: "regExp[/^[a-z0-9][a-z0-9-_]{1,34}[a-z0-9-]$/]",
},
],
},
attachment: {
identifier: "attachment",
rules: [
{
type: "empty",
},
],
},
spec_id: {
identifier: "spec_id",
rules: [{ type: "empty" }],
},
branch_name: {
identifier: "branch_name",
rules: [{ type: "empty" }],
},
},
onSuccess: function () {
// $('.ui.page.dimmer').dimmer('show')
document.getElementById("mask").style.display = "block";
isValidate = true;
},
onFailure: function (e) {
isValidate = false;
createFlag = false;
return false;
},
});
}
document.onreadystatechange = function () {
if (document.readyState === "complete") {
document.getElementById("mask").style.display = "none";
}
};
function send_run_para() {
var run_parameters = [];
var msg = {};
let paraFlag = true;
$(".dynamic.field .two.fields").each(function () {
var para_name = $(this).find("input.shipping_first-name").val();
var para_value = $(this).find("input.shipping_last-name").val();
if (!para_name) {
$(this).find("input.shipping_first-name").parent().addClass("error");
paraFlag = false;
return;
} else {
$(this).find("input.shipping_first-name").parent().removeClass("error");
}
if (!para_value) {
$(this).find("input.shipping_last-name").parent().addClass("error");
paraFlag = false;
return;
} else {
$(this).find("input.shipping_last-name").parent().removeClass("error");
}
run_parameters.push({ label: para_name, value: para_value });
});
msg["parameter"] = run_parameters;
msg = JSON.stringify(msg);
$("#store_run_para").val(msg);
return paraFlag;
}
function get_name() {
let name1 = $("#engine_name .text").text();
let name2 = $("#flaver_name .text").text();
$("input#ai_engine_name").val(name1);
$("input#ai_flaver_name").val(name2);
if ($(".cloudbrain_image .text").text()) {
$("input[name='image']").val($(".cloudbrain_image .text").text());
}
}
validate();
$(".ui.create_train_job.green.button").click(function (e) {
get_name();
let paramNotValue = send_run_para();
if (!paramNotValue) {
return false;
}
if($('input[name="model_name"]').val() && !$('input[name="ckpt_name"]').val()){
$('input[name="ckpt_name"]').parent().addClass("error")
return false
}
validate();
});
//管理镜像相关的东西
let nameMap, nameList;
let RepoLink = $(".cloudbrain-type").data("repo-link");
let type = $(".cloudbrain-type").data("cloudbrain-type");
let flagModel = $(".cloudbrain-type").data("flag-model");
// 获取模型列表和模型名称对应的模型版本
$(document).ready(function () {
if (!flagModel) return;
else {
$.get(
`${RepoLink}/modelmanage/query_model_for_predict?type=${type}`,
(data) => {
nameMap = data.nameMap;
nameList = data.nameList;
let html = ``;
nameList.forEach((element) => {
html += `
${element}
`;
});
if (nameList.length !== 0) {
$("#model_name").append(html);
}
let faildModelName = $('input[name="model_name"]').val();
let faildModelVersion = $('input[name="model_version"]').val();
let dataID;
// 新建错误的表单返回初始化
if (faildModelName && nameList.includes(faildModelName)) {
$("#select_model").dropdown("set text", faildModelName);
$("#select_model").dropdown("set value", faildModelName);
nameMap[faildModelName].forEach((element) => {
if (element.version === faildModelVersion) {
dataID = element.id;
}
});
initModelVerison(faildModelName, nameMap, faildModelVersion);
initModelckpt(dataID);
}
}
);
}
$("#select_model").dropdown({
onChange: function (value, text, $selectedItem) {
$("#model_name_version").empty();
if (value) {
let html = "";
nameMap[value].forEach((element) => {
//let { trainTaskInfo } = element;
//trainTaskInfo = JSON.parse(trainTaskInfo);
html += `