|
- {{template "base/head" .}}
- <link rel="stylesheet" href="/self/ztree/css/zTreeStyle/zTreeStyle.css?v={{MD5 AppVer}}" type="text/css">
- <style>
- .model_file_bread {
- margin-bottom: -0.5rem !important;
- padding-left: 1rem;
- padding-top: 0.5rem;
- }
- .menuContent{
- position: absolute;
- background: #ffffff;
- left: 0;
- right: 26px;
- top: 36px;
- z-index:999;
- border: 1px solid #96c8da;
- border-top: 0;
- border-bottom-right-radius: 4px;
- border-bottom-left-radius: 4px;
- box-shadow: 0 2px 3px 0 rgb(34 36 38 / 15%);
- }
- </style>
- <div id="mask">
- <div id="loadingPage">
- <div class="rect1"></div>
- <div class="rect2"></div>
- <div class="rect3"></div>
- <div class="rect4"></div>
- <div class="rect5"></div>
- </div>
- </div>
- <div class="repository">
- {{template "repo/header" .}}
- <div class="ui container">
- <h4 class="ui header" id="vertical-segment">
- <div class="ui breadcrumb">
- <a class="section" href="{{.RepoLink}}/debugjob?debugListType=all">
- {{.i18n.Tr "repo.cloudbrain"}}
- </a>
- <div class="divider"> / </div>
- <a class="section" href="{{$.RepoLink}}/modelarts/train-job">
- {{$.i18n.Tr "repo.modelarts.train_job"}}
- </a>
- <div class="divider"> / </div>
- <div class="active section">{{.displayJobName}}</div>
- </div>
- </h4>
- {{range $k ,$v := .version_list_task}}
- <div class="ui accordion border-according" id="accordion{{.VersionName}}"
- data-repopath="{{$.RepoRelPath}}/cloudbrain" data-jobid="{{.ID}}" data-version="{{.VersionName}}">
- <input type="hidden" id="jobId_input" name="jobId_input" value="{{.JobID}}">
- <div class="{{if eq $k 0}}active{{end}} title padding0">
- <div class="according-panel-heading">
- <div class="accordion-panel-title">
- <i class="dropdown icon"></i>
- <span class="accordion-panel-title-content">
- <span>
- <div style="float: right;">
- {{if and ($.canDownload) (ne .Status "WAITING") ($.Permission.CanWrite $.UnitTypeModelManage) }}
- <a class="ti-action-menu-item" id="{{.VersionName}}-create-model"
- onclick="showcreate({DisplayJobName:{{.DisplayJobName}},JobName:{{.JobName}},JobID:{{.JobID}},VersionName:{{.VersionName}}})">{{$.i18n.Tr "repo.modelarts.create_model"}}</a>
- {{else}}
- <a class="ti-action-menu-item disabled" id="{{.VersionName}}-create-model">{{$.i18n.Tr "repo.modelarts.create_model"}}</a>
- {{end}}
-
- </div>
- <div class="ac-display-inblock title_text acc-margin-bottom">
- <span class="cti-mgRight-sm">{{TimeSinceUnix1 .CreatedUnix}}</span>
-
- <span class="cti-mgRight-sm">{{$.i18n.Tr "repo.modelarts.status"}}:
- <span id="{{.VersionName}}-status-span"><i id="icon"
- style="vertical-align: middle;" class="{{.Status}}"></i><span id="text"
- style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span></span>
- </span>
- <span
- class="cti-mgRight-sm">{{$.i18n.Tr "repo.modelarts.train_job.dura_time"}}:</span>
- <span class="cti-mgRight-sm uc-accordionTitle-black"
- id="{{.VersionName}}-duration-span">{{$.duration}}</span>
- <span class="refresh-status" data-tooltip="刷新" style="cursor: pointer;" data-inverted="" data-version="{{.VersionName}}"><i
- class="redo icon redo-color"></i></span>
-
- </div>
- </span>
- </span>
- </div>
- </div>
- </div>
- <div class="{{if eq $k 0}}active{{end}} content">
- <div class="content-pad">
- <div class="ui pointing secondary menu" style="border-bottom: 1px solid rgba(34,36,38,.15);">
- <a class="active item"
- data-tab="first{{$k}}">{{$.i18n.Tr "repo.modelarts.train_job.config"}}</a>
-
- <a class="item log_bottom" data-tab="third{{$k}}"
- data-version="{{.VersionName}}">{{$.i18n.Tr "repo.modelarts.log"}}</a>
- <a class="item load-model-file" data-tab="four{{$k}}" data-gpu-flag="true" data-download-flag="{{$.canDownload}}" data-path="{{$.RepoLink}}/cloudbrain/train-job/{{.JobID}}/model_list" data-version="{{.VersionName}}" data-parents="" data-filename="" data-init="init" >{{$.i18n.Tr "repo.model_download"}}</a>
- </div>
- <div class="ui tab active" data-tab="first{{$k}}">
- <div style="padding-top: 10px;">
- <div class="tab_2_content">
- <div class="ac-grid ac-grid-col2">
- <div class="ac-grid-col">
- <table class="ti-form">
- <tbody class="ti-text-form">
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.cloudbrain_task"}}
- </td>
- <td class="ti-text-form-content">
- <div class="text-span text-span-w">
- {{.DisplayJobName}}
- </div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.status"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w" id="{{.VersionName}}-status">
- {{.Status}}
- </div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.cloudbrain_creator"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w" id="{{.VersionName}}-mirror">
- {{.User.Name}}
- </div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.train_job.start_time"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w">
- <span style="font-size: 12px;" id="{{.VersionName}}-startTime">
- {{if not (eq .StartTime 0)}}
- {{TimeSinceUnix1 .StartTime}}
- {{else}}
- --
- {{end}}
- </span>
- </div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.train_job.dura_time"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w"
- id="{{.VersionName}}-duration">
- {{$.duration}}
- </div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.model_name"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w">{{if .ModelName}}{{.ModelName}}{{else}}--{{end}}</div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelconvert.modelversion"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w">{{if .ModelVersion}}{{.ModelVersion}}{{else}}--{{end}}</div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.infer_job_model_file"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w">{{if .CkptName}}{{.CkptName}}{{else}}--{{end}}</div>
- </td>
- </tr>
-
- </tbody>
- </table>
- </div>
- <div class="ac-grid-col">
- <table class="ti-form">
- <tbody class="ti-text-form">
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "cloudbrain.mirror"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w" id="{{.VersionName}}-mirror">
- <span class="ui poping up clipboard" data-position="top center" id="clipboard-btn" style="cursor:pointer"
- data-clipboard-text="{{.Image}}"
- data-success="{{$.i18n.Tr "repo.copy_link_success"}}"
- data-error="{{$.i18n.Tr "repo.copy_link_error"}}"
- data-content="{{$.i18n.Tr "repo.copy_link"}}"
- data-variation="inverted tiny"
- >
- <span title="{{.Image}}">{{.Image}}</span>
- </span>
- </div>
- </td>
- </tr>
-
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.code_version"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w">
- {{.BranchName}}
- <span style="margin-left:1rem" class="ui label">{{SubStr .CommitID 0 10}}</span>
- </div>
- </td>
- </tr>
-
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.train_job.start_file"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w">
- {{.BootFile}}
- </div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.train_job.run_parameter"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w" title="{{.Parameters}}">
- {{if .Parameters}}{{.Parameters}}{{else}}--{{end}}
- </div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.train_job.resource_type"}}
- </td>
-
- <td class="ti-text-form-content resorce_type">
- <div class="text-span text-span-w"></div>
- </td>
- </tr>
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.train_job.standard"}}
- </td>
-
- <td class="ti-text-form-content spec">
- <div class="text-span text-span-w"></div>
- </td>
- </tr>
-
- <tr class="ti-no-ng-animate">
- <td class="ti-no-ng-animate ti-text-form-label text-width80">
- {{$.i18n.Tr "repo.modelarts.train_job.description"}}
- </td>
-
- <td class="ti-text-form-content">
- <div class="text-span text-span-w" title="{{.Description}}">
- {{if .Description}}{{.Description}}{{else}}--{{end}}
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div style="clear:both">
- {{if $.datasetDownload}}
- <table style="border:none" class="ui fixed small stackable table">
- <thead>
- <tr><th style="color: #8a8e99;font-size:12px" class="three wide left aligned">{{$.i18n.Tr "dataset.file"}}</th>
- </tr></thead>
- <tbody>
- {{range $m ,$n := $.datasetDownload}}
- <tr>
- <td style="word-wrap: break-word;word-break: break-all;">
- {{if eq .IsDelete true}}
- {{.DatasetName}}({{$.i18n.Tr "dataset.file_deleted"}})
- {{else}}
- <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a>
- {{end}}
- </td>
- </tr>
-
- {{end}}
-
- </tbody>
- </table>
- {{end}}
- </div>
- </div>
-
- </div>
- </div>
- <div class="ui tab" data-tab="third{{$k}}">
- <div class="file-info">
- <a id="{{.VersionName}}-log-down"
- class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}} file-info'
- href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file">
- <i class="ri-download-cloud-2-line"></i>
- <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span>
- </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;"
- data-log-down="{{$.i18n.Tr "repo.modelarts.download_log"}}" data-href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file"
- data-scroll-top="{{$.i18n.Tr "repo.log_scroll_start"}}" data-scroll-bottom="{{$.i18n.Tr "repo.log_scroll_end"}}">
- <i class="ri-aspect-ratio-line"></i>
- <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.fullscreen_log_file"}}</span>
- </div>
- </div>
- <div style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;">
- <span>
- <a title="{{$.i18n.Tr "repo.log_scroll_start"}}" style="position: absolute; right: -32px;cursor: pointer;"
- class="log_top" data-version="{{.VersionName}}"><i class="icon-to-top"></i></a>
- </span>
- <span class="log-info-{{.VersionName}}">
- <a title="{{$.i18n.Tr "repo.log_scroll_end"}}" style="position: absolute; bottom: 10px;right: -32px;cursor: pointer;"
- class="log_bottom" data-version="{{.VersionName}}"><i
- class="icon-to-bottom"></i></a>
- </span>
- <div class="ui message message{{.VersionName}}" style="display: none;">
- <div id="header"></div>
- </div>
- <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">
- <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 class="ui tab" data-tab="four{{$k}}">
- <input type="hidden" name="model{{.VersionName}}" value="-1">
- <input type="hidden" name="modelback{{.VersionName}}" value="-1">
- <div style="display: flex;justify-content: space-between;">
- <div class='ui breadcrumb model_file_bread' id='file_breadcrumb{{.VersionName}}'>
- <div class="active section">result</div>
- <div class="divider"> / </div>
-
- </div>
- <a id="{{.VersionName}}-result-down" style="padding-right: 1%;display: none;"
- class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}} file-info'
- href="{{$.RepoLink}}/cloudbrain/train-job/{{.JobID}}/download_multi_model?version_name={{.VersionName}}&jobName={{.JobName}}">
- <i class="ri-download-cloud-2-line"></i>
- <span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.all_result_download"}}</span>
- </a>
- </div>
- <div id="dir_list{{.VersionName}}">
- </div>
- <div style="display:flex;align-items: center;justify-content: end;color: #f2711c;">
- <i class="ri-error-warning-line" style="margin-right:0.5rem;"></i>
- <span>{{$.i18n.Tr "repo.file_limit_100"}}</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- {{template "custom/max_log" .}}
- {{end}} {{template "base/paginate" .}}
- </div>
- <!-- 确认模态框 -->
- <div id="deletemodel">
- <div class="ui basic modal">
- <div class="ui icon header">
- <i class="trash icon"></i> 删除任务
- </div>
-
- <div class="content">
- <p>你确认删除该任务么?此任务一旦删除不可恢复。</p>
- </div>
- <div class="actions">
- <div class="ui red basic inverted cancel button">
- <i class="remove icon"></i> 取消操作
- </div>
- <div class="ui green basic inverted ok button">
- <i class="checkmark icon"></i> 确定操作
- </div>
- </div>
- </div>
- </div>
- <!--
- <div id="menuContent" class="menuContent" style="display:none; position: absolute;z-index:9999">
- <ul id="treeDemo" class="ztree" style="margin-top:0; width: 83%; height: 100%;"></ul>
- </div> -->
- <!-- 创建模型 -->
- <div id="newmodel">
- <div class="ui modal second">
- <div class="header" style="padding: 1rem;background-color: rgba(240, 240, 240, 100);">
- <h4 id="model_header">{{.i18n.Tr "repo.model.manage.import_new_model"}}</h4>
- </div>
- <div class="content content-padding">
- <form id="formId" method="POST" class="ui form">
- <div class="ui error message">
- </div>
- {{$.CsrfTokenHtml}}
- <input type="hidden" name="trainTaskCreate" value="true">
-
- <div class="required inline field">
- <label>{{.i18n.Tr "repo.modelarts.train_job"}}</label>
- <input type="hidden" class="width83" id="jobId" name="jobId" readonly required>
- <input type="hidden" id="versionName" name="versionName" value="V0001">
- <input style="width: 45%;" id="JobName" readonly required>
- </div>
-
- <div class="required inline field" id="modelname">
- <label>{{.i18n.Tr "repo.model.manage.model_name"}}</label>
- <input style="width: 45%;" id="name" name="name" required maxlength="25"
- onkeyup="this.value=this.value.replace(/[, ]/g,'')">
- </div>
- <div class="required inline field" id="verionname">
- <label>{{.i18n.Tr "repo.modelconvert.modelversion"}}</label>
- <input style="width: 45%;" id="version" name="version" value="" readonly required maxlength="255">
- </div>
- <div class="unite min_title inline field required">
- <label>{{.i18n.Tr "repo.model.manage.engine"}}</label>
- <div class="ui dropdown selection search width70" id="choice_Engine">
- <input type="hidden" id="engine" name="engine" required>
- <div class="default text">{{.i18n.Tr "repo.model.manage.select.engine"}}</div>
- <i class="dropdown icon"></i>
- <div class="menu" id="job-Engine">
- <option class="active item" data-value="0">PyTorch</option>
- <option class="item" data-value="1">TensorFlow</option>
- <option class="item" data-value="4">PaddlePaddle</option>
- <option class="item" data-value="5">OneFlow</option>
- <option class="item" data-value="6">MXNet</option>
- <option class="item" data-value="3">Other</option>
- </div>
- </div>
-
- </div>
- <div class="unite min_title inline fields required">
- <div class="field required">
- <label for="modelSelectedFile">{{.i18n.Tr "repo.model.manage.modelfile"}}</label>
- </div>
- <div class="thirteen wide field" style="position:relative">
- <input id="modelSelectedFile" type="text" readonly required onclick="showMenu();" name="modelSelectedFile">
- <div id="menuContent" class="menuContent" style="display:none;">
- <ul id="treeDemo" class="ztree"></ul>
- </div>
- </div>
- </div>
- <div class="inline field">
- <label>{{.i18n.Tr "repo.model.manage.modellabel"}}</label>
- <input style="width: 83%;margin-left: 7px;" id="label" name="label" maxlength="255"
- placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'>
- </div>
- <div class="inline fields">
-
- <label>{{.i18n.Tr "repo.model.manage.modelaccess"}} </label>
-
- <div class="field">
- <div class="ui radio checkbox">
- <input type="radio" name="isPrivate" checked="checked" value="false">
- <label>{{.i18n.Tr "repo.model.manage.modelaccess.public"}}</label>
- </div>
- </div>
- <div class="field">
- <div class="ui radio checkbox">
- <input type="radio" name="isPrivate" value="true">
- <label>{{.i18n.Tr "repo.model.manage.modelaccess.private"}}</label>
- </div>
- </div>
- </div>
- <div class="inline field">
- <label for="description">{{.i18n.Tr "repo.model.manage.modeldesc"}}</label>
- <textarea style="width: 83%;margin-left: 7px;" id="description" name="description" rows="3"
- maxlength="255" placeholder='{{.i18n.Tr "repo.modelarts.train_job.new_place"}}'
- onchange="this.value=this.value.substring(0, 255)"
- onkeydown="this.value=this.value.substring(0, 255)"
- onkeyup="this.value=this.value.substring(0, 256)"></textarea>
- </div>
-
- <div class="inline field" style="margin-left: 75px;">
- <button onclick="createModel()" type="button" class="ui create_train_job green button"
- style="position: absolute;">
- {{.i18n.Tr "repo.model.manage.sava_model"}}
- </button>
- </div>
- </form>
- <div class="actions" style="display: inline-block;margin-left: 180px;">
- <button class="ui button cancel">{{.i18n.Tr "repo.cloudbrain.cancel"}}</button>
- </div>
- </div>
- </div>
- </div>
- </div>
- {{template "base/footer" .}}
- <script type="text/javascript" src="/self/ztree/js/jquery.ztree.core.js?v={{MD5 AppVer}}"></script>
- <script type="text/javascript" src="/self/ztree/js/jquery.ztree.excheck.js?v={{MD5 AppVer}}"></script>
- <script src="{{StaticUrlPrefix}}/js/specsuse.js?v={{MD5 AppVer}}" type="text/javascript"></script>
-
- <script>
- var userName;
- var repoPath;
- $(document).ready(function(){
- var url = window.location.href;
- var urlArr = url.split('/')
- userName = urlArr.slice(-5)[0]
- repoPath = urlArr.slice(-4)[0]
- });
- var setting = {
- check: {
- enable: true,
- chkboxType: {"Y":"ps", "N":"ps"}
- },
- view: {
- dblClickExpand: false
- },
- callback: {
- beforeClick: beforeClick,
- onCheck: onCheck
- }
- };
-
- function beforeClick(treeId, treeNode) {
- var zTree = $.fn.zTree.getZTreeObj("treeDemo");
- zTree.checkNode(treeNode, !treeNode.checked, null, true);
- return false;
- }
-
- function onCheck(e, treeId, treeNode) {
- var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
- nodes = zTree.getCheckedNodes(true),
- v = "";
- for (var i=0, l=nodes.length; i<l; i++) {
- if(nodes[i].isParent){
- continue;
- }
- var pathNodes = nodes[i].getPath();
- var path ="";
- for(var j=0;j<pathNodes.length;j++){
- if(j ==0){
- path += pathNodes[j].name;
- }else{
- path += "/" + pathNodes[j].name;
- }
- }
- v += path + ";";
- }
- if (v.length > 0 ) v = v.substring(0, v.length-1);
- var cityObj = $("#modelSelectedFile");
- cityObj.attr("value", v);
- }
-
- function showMenu() {
- var cityObj = $("#modelSelectedFile");
- var cityOffset = $("#modelSelectedFile").offset();
- //$("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");
- $("#menuContent").slideDown("fast");
- $("body").bind("mousedown", onBodyDown);
- }
- function hideMenu() {
- $("#menuContent").fadeOut("fast");
- $("body").unbind("mousedown", onBodyDown);
- }
- function onBodyDown(event) {
- if (!(event.target.id == "menuBtn" || event.target.id == "modelSelectedFile" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
- hideMenu();
- }
- }
- let dirKey="isOnlyDir--:&";
- function loadSelectedModelFile(trainJob){
- console.log("trainJob=" + trainJob);
- $('#choice_file').dropdown('clear')
- $("#model-file").empty()
- if(trainJob ==null || trainJob ==""){
- console.log("trainJob is null");
- }else{
- $.get(`/${userName}/${repoPath}/modelmanage/query_train_model?jobName=${trainJob.JobName}&type=0&VersionName=${trainJob.VersionName}`, (data) => {
- const n_length = data.length
- let file_html=''
- let firstFileName =''
- var zNodes=[];
- var nodesMap={};
- for (let i=0;i<n_length;i++){
- var parentNodeMap = nodesMap;
- var fileSplits = data[i].FileName.split("/");
- for(let j=0;j < fileSplits.length;j++){
- if(fileSplits[j] == ""){
- break;
- }
- if(parentNodeMap[fileSplits[j]] == null){
- parentNodeMap[fileSplits[j]] = {};
- }
- parentNodeMap = parentNodeMap[fileSplits[j]];
- }
- }
- for (let i=0;i<n_length;i++){
- var parentNodeMap = nodesMap;
- var fileSplits = data[i].FileName.split("/");
- for(let j=0;j < fileSplits.length;j++){
- if(fileSplits[j] == ""){
- if(data[i].FileName[data[i].FileName.length -1] =="/"){
- if(Object.keys(parentNodeMap).length ==0){
- parentNodeMap[dirKey]="true";
- }
- }
- break;
- }
- parentNodeMap = parentNodeMap[fileSplits[j]];
- }
- }
- convertToNode(zNodes,nodesMap);
- $.fn.zTree.init($("#treeDemo"), setting, zNodes);
- })
- }
- }
-
- function convertToNode(nodeList,nodesMap){
- var keyList = Object.keys(nodesMap);
- keyList.sort(function(a,b){
- return a-b;
- });
- var isFirst = true;
- for(var i=0; i<keyList.length;i++){
- var node = {};
- node["name"] = keyList[i];
- nodeList.push(node);
- if(nodesMap[keyList[i]] != null && Object.keys(nodesMap[keyList[i]]).length >0){
- 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]]);
- }
- }
- }
- }
- function showcreate(obj) {
- $('.ui.modal.second')
- .modal({
- centered: false,
- onShow: function () {
- $('input[name="version"]').addClass('model_disabled')
- $('#JobName').val(obj.DisplayJobName).addClass('model_disabled')
- $('input[name="jobId"]').val(obj.JobID)
- $('input[name="versionName"]').val("V0001")
-
- $('#choice_Engine .default.text').text("PyTorch");
- $('#choice_Engine input[name="engine"]').val(0)
- $('#choice_Engine .default.text').css({ "color": "rgb(0, 0, 0,0.87)" })
- $('.ui.dimmer').css({ "background-color": "rgb(136, 136, 136,0.7)" })
- createModelName();
- loadSelectedModelFile(obj);
- },
- onHide: function () {
- $('.ui.dimmer').css({ "background-color": "" })
- $('.ui.error.message').text()
- $('.ui.error.message').css('display', 'none')
- }
- })
- .modal('show')
- }
- function createModel() {
- if(!$('input#modelSelectedFile').val()){
- $('input#modelSelectedFile').parent().addClass('error')
- return
- }
- let url_href = `/${userName}/${repoPath}/modelmanage/create_new_model`
- let data = $("#formId").serialize()
- var radio = document.getElementsByName("isPrivate");
- if(radio == null || radio.length == 0){
- data +="&isPrivate=true";
- }
- $("#mask").css({ "display": "block", "z-index": "9999" })
- $.ajax({
- url: url_href,
- type: 'POST',
- data: data,
- success: function (res) {
- $('input[name="engine_name"]').val("");
- $('input[name="engine"]').val("");
- $('input[name="jobId"]').val("");
- $('input[name="label"]').val("");
- $('input[name="description"]').val("");
- var cityObj = $("#modelSelectedFile");
- cityObj.attr("value", "");
- document.getElementById("formId").reset();
- location.href = `/${userName}/${repoPath}/modelmanage/show_model`
- $('.ui.modal.second').modal('hide')
- },
- error: function (xhr) {
- // 隐藏 loading
- // 只有请求不正常(状态码不为200)才会执行
- $('.ui.error.message').text(xhr.responseText)
- $('.ui.error.message').css('display', 'block')
- },
- complete: function (xhr) {
- $("#mask").css({ "display": "none", "z-index": "1" })
- }
- })
-
- }
- function createModelName() {
- let repoName = location.pathname.split('/')[2]
- let modelName = repoName + '_model_' + Math.random().toString(36).substr(2, 4)
- $('#name').val(modelName)
- $('#version').val("0.0.1")
- }
-
- $('.menu .item').tab()
-
- $(document).ready(function () {
- $('.ui.accordion').accordion({ selector: { trigger: '.icon' } });
- });
- $(document).ready(function () {
- $('.secondary.menu .item').tab();
- });
-
-
- ;(function() {
- var SPEC = {{ .Spec }};
- var showPoint = false;
- var specStr = window.renderSpecStr(SPEC, showPoint, {
- gpu_memory: {{$.i18n.Tr "cloudbrain.gpu_memory"}},
- free: {{$.i18n.Tr "cloudbrain.free"}},
- point_hr: {{$.i18n.Tr "cloudbrain.point_hr"}},
- memory: {{$.i18n.Tr "cloudbrain.memory"}},
- shared_memory: {{$.i18n.Tr "cloudbrain.shared_memory"}},
- });
- $('td.ti-text-form-content.spec div').text(specStr);
- SPEC && $('td.ti-text-form-content.resorce_type div').text(getListValueWithKey(ACC_CARD_TYPE, SPEC.AccCardType));
- })();
- </script>
|