You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.tmpl 11 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <!-- 头部导航栏 -->
  2. {{template "base/head" .}}
  3. <!-- 弹窗 -->
  4. <div id="mask">
  5. <div id="loadingPage">
  6. <div class="rect1"></div>
  7. <div class="rect2"></div>
  8. <div class="rect3"></div>
  9. <div class="rect4"></div>
  10. <div class="rect5"></div>
  11. </div>
  12. </div>
  13. {{$repository := .Repository.ID}}
  14. <!-- 提示框 -->
  15. <div class="alert"></div>
  16. <div class="repository release dataset-list view">
  17. {{template "repo/header" .}}
  18. <!-- 列表容器 -->
  19. <div class="ui container {{if ne $.MODEL_COUNT 0}}active loader {{end}}" id="loadContainer">
  20. {{template "base/alert" .}}
  21. <div class="ui two column stackable grid">
  22. <div class="column"></div>
  23. <div class="column right aligned">
  24. <!-- -->
  25. <a class="ui button {{if .Permission.CanWrite $.UnitTypeModelManage}} green {{else}} disabled {{end}}" onclick="showcreate(this)">{{$.i18n.Tr "repo.model.manage.import_new_model"}}</a>
  26. </div>
  27. </div>
  28. {{if eq $.MODEL_COUNT 0}}
  29. <div class="ui placeholder segment bgtask-none">
  30. <div class="ui icon header bgtask-header-pic"></div>
  31. <div class="bgtask-content-header">未创建过模型</div>
  32. <div class="bgtask-content">
  33. {{if $.RepoIsEmpty}}
  34. <div class="bgtask-content-txt">代码版本:您还没有初始化代码仓库,请先<a href="{{.RepoLink}}">创建代码版本;</a></div>
  35. {{end}}
  36. {{if eq $.TRAIN_COUNT 0}}
  37. <div class="bgtask-content-txt">训练任务:您还没创建过训练任务,请先创建<a href="{{.RepoLink}}/modelarts/train-job">训练任务</a>。</div>
  38. {{end}}
  39. <div class="bgtask-content-txt">使用说明:可以参考启智AI协作平台<a href="https://git.openi.org.cn/zeizei/OpenI_Learning">小白训练营课程。</a></div>
  40. </div>
  41. <div style="display: none;">
  42. <div id="model_list"></div>
  43. </div>
  44. </div>
  45. {{else}}
  46. <!-- 中下列表展示区 -->
  47. <div class="ui grid" style="display: none;">
  48. <div class="row" style="padding-top: 0;">
  49. <div class="ui sixteen wide column">
  50. <!-- 任务展示 -->
  51. <div class="dataset list" id="model_list">
  52. <!-- 表头 -->
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. {{end}}
  58. </div>
  59. </div>
  60. <!-- div full height-->
  61. </div>
  62. <!-- 确认模态框 -->
  63. <div id="deletemodel">
  64. <div class="ui basic modal first">
  65. <div class="ui icon header">
  66. <i class="trash icon"></i> 删除模型
  67. </div>
  68. <div class="content">
  69. <p>你确认删除该模型么?此模型一旦删除不可恢复。</p>
  70. </div>
  71. <div class="actions">
  72. <div class="ui red basic inverted cancel button">
  73. <i class="remove icon"></i> 取消操作
  74. </div>
  75. <div class="ui green basic inverted ok button">
  76. <i class="checkmark icon"></i> 确定操作
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. <div id="newmodel">
  82. <div class="ui modal second">
  83. <div class="header" style="padding: 1rem;background-color: rgba(240, 240, 240, 100);">
  84. <h4 id="model_header"></h4>
  85. </div>
  86. <div class="content content-padding">
  87. <form id="formId" method="POST" class="ui form">
  88. <input type="hidden" name="initModel" value="{{$.MODEL_COUNT}}">
  89. <div class="ui error message">
  90. <!-- <p>asdasdasd</p> -->
  91. </div>
  92. <input type="hidden" name="_csrf" value="">
  93. <div class="two inline fields ">
  94. <div class="required ten wide field">
  95. <label style="margin-left: -23px;">选择训练任务</label>
  96. <div class="ui dropdown selection search width83 loading" id="choice_model">
  97. <input type="hidden" id="JobId" name="JobId" required>
  98. <div class="default text">选择训练任务</div>
  99. <i class="dropdown icon"></i>
  100. <div class="menu" id="job-name">
  101. </div>
  102. </div>
  103. </div>
  104. <div class="required six widde field">
  105. <label>版本</label>
  106. <div class="ui dropdown selection search width70" id="choice_version">
  107. <input type="hidden" id="VersionName" name="VersionName" required>
  108. <div class="default text">选择版本</div>
  109. <i class="dropdown icon"></i>
  110. <div class="menu" id="job-version">
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. <div class="required inline field" id="modelname">
  116. <label>模型名称</label>
  117. <input style="width: 45%;" id="name" name="Name" required maxlength="25" onkeyup="this.value=this.value.replace(/[, ]/g,'')">
  118. </div>
  119. <div class="required inline field" id="verionname">
  120. <label>模型版本</label>
  121. <input style="width: 45%;" id="version" name="Version" value="" readonly required maxlength="255">
  122. </div>
  123. <div class="inline field">
  124. <label>模型标签</label>
  125. <input style="width: 83%;margin-left: 7px;" id="label" name="Label" maxlength="255" placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'>
  126. </div>
  127. <div class="inline field">
  128. <label for="description">模型描述</label>
  129. <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>
  130. </div>
  131. <div class="inline field" style="margin-left: 75px;">
  132. <button id="submitId" type="button" class="ui create_train_job green button" style="position: absolute;">
  133. {{.i18n.Tr "repo.model.manage.sava_model"}}
  134. </button>
  135. </div>
  136. </form>
  137. <div class="actions" style="display: inline-block;margin-left: 180px;">
  138. <button class="ui button cancel" >{{.i18n.Tr "repo.cloudbrain.cancel"}}</button>
  139. </div>
  140. </div>
  141. </div>
  142. {{template "base/footer" .}}
  143. <script>
  144. let repolink = {{.RepoLink}}
  145. let repoId = {{$repository}}
  146. const {_AppSubUrl, _StaticUrlPrefix, csrf} = window.config;
  147. $('input[name="_csrf"]').val(csrf)
  148. function createModelName(){
  149. let repoName = location.pathname.split('/')[2]
  150. let modelName = repoName + '_model_' + Math.random().toString(36).substr(2, 4)
  151. $('#name').val(modelName)
  152. $('#version').val("0.0.1")
  153. }
  154. function showcreate(obj){
  155. $('.ui.modal.second')
  156. .modal({
  157. centered: false,
  158. onShow:function(){
  159. $('#model_header').text("导入新模型")
  160. $('input[name="Version"]').addClass('model_disabled')
  161. $('.ui.dimmer').css({"background-color":"rgb(136, 136, 136,0.7)"})
  162. $("#job-name").empty()
  163. createModelName()
  164. loadTrainList()
  165. },
  166. onHide:function(){
  167. document.getElementById("formId").reset();
  168. $('#choice_model').dropdown('clear')
  169. $('#choice_version').dropdown('clear')
  170. $('.ui.dimmer').css({"background-color":""})
  171. $('.ui.error.message').text()
  172. $('.ui.error.message').css('display','none')
  173. }
  174. })
  175. .modal('show')
  176. }
  177. $(function(){
  178. $('#choice_model').dropdown({
  179. onChange:function(value){
  180. $(".ui.dropdown.selection.search.width70").addClass("loading")
  181. $('#choice_version').dropdown('clear')
  182. $("#job-version").empty()
  183. loadTrainVersion(value)
  184. }
  185. })
  186. })
  187. function versionAdd(version){
  188. let versionArray = version.split('.')
  189. if(versionArray[2]=='9'){
  190. if(versionArray[1]=='9'){
  191. versionArray[0] = String(Number(versionArray[1])+1)
  192. versionArray[1] = '0'
  193. }else{
  194. versionArray[1]=String(Number(versionArray[1])+1)
  195. }
  196. versionArray[2]='0'
  197. }else{
  198. versionArray[2]=String(Number(versionArray[2])+1)
  199. }
  200. return versionArray.join('.')
  201. }
  202. function loadTrainList(){
  203. $.get(`${repolink}/modelmanage/query_train_job?repoId=${repoId}`, (data) => {
  204. const n_length = data.length
  205. let train_html=''
  206. for (let i=0;i<n_length;i++){
  207. train_html += `<div class="item" data-value="${data[i].JobID}">${data[i].JobName}</div>`
  208. train_html += '</div>'
  209. }
  210. $("#job-name").append(train_html)
  211. $(".ui.dropdown.selection.search.width83").removeClass("loading")
  212. $('#choice_model .default.text').text(data[0].JobName)
  213. $('#choice_model input[name="JobId"]').val(data[0].JobID)
  214. loadTrainVersion()
  215. })
  216. }
  217. function loadTrainVersion(value){
  218. let JobID = !value ?$('#choice_model input[name="JobId"]').val(): value
  219. $.get(`${repolink}/modelmanage/query_train_job_version?JobID=${JobID}`, (data) => {
  220. const n_length = data.length
  221. let train_html=''
  222. for (let i=0;i<n_length;i++){
  223. train_html += `<div class="item" data-value="${data[i].VersionName}">${data[i].VersionName}</div>`
  224. train_html += '</div>'
  225. }
  226. if(data.length){
  227. $("#job-version").append(train_html)
  228. $(".ui.dropdown.selection.search.width70").removeClass("loading")
  229. $('#choice_version .default.text').text(data[0].VersionName)
  230. $('#choice_version input[name="VersionName"]').val(data[0].VersionName)
  231. }
  232. })
  233. }
  234. </script>