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 9.2 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. {{template "base/head" .}}
  2. <style>
  3. #deletemodel {
  4. width: 100%;
  5. height: 100%;
  6. }
  7. .alert {
  8. display: none;
  9. position: fixed;
  10. width: 100%;
  11. z-index: 1001;
  12. padding: 15px;
  13. border: 1px solid transparent;
  14. border-radius: 4px;
  15. text-align: center;
  16. font-weight: bold;
  17. }
  18. .alert-success {
  19. color: #3c763d;
  20. background-color: #dff0d8;
  21. border-color: #d6e9c6;
  22. }
  23. .alert-danger {
  24. color: #a94442;
  25. background-color: #f2dede;
  26. border-color: #ebccd1;
  27. }
  28. /*
  29. .disabled {
  30. cursor: pointer;
  31. pointer-events: none;
  32. }
  33. .ui.segment.bottom.attached {
  34. border: none;
  35. }
  36. .ui.secondary.vertical.pointing.menu{
  37. border-right-width: 0px !important;
  38. }
  39. .vertical.menu .item {
  40. border-right-color: white !important;
  41. }
  42. .vertical.menu .activate.item {
  43. font-weight: 700;
  44. } */
  45. </style>
  46. <div class="modelarts">
  47. <div class="repository release modelarts train_job view container">
  48. <div class="alert"></div>
  49. {{template "repo/header" .}}
  50. <div class="ui container">
  51. {{template "base/alert" .}}
  52. <div class="ui grid">
  53. {{template "repo/modelarts/navbar" .}}
  54. <!-- 右侧 -->
  55. <div class="ui thirteen wide column">
  56. <div class="ui three column stackable grid">
  57. <div class="column">
  58. <h2>{{.i18n.Tr "repo.modelarts.train_job"}}</h2>
  59. </div>
  60. <div class="column">
  61. </div>
  62. <div class="column right aligned">
  63. <a class="ui green button" href="{{.RepoLink}}/modelarts/train-job/create">{{.i18n.Tr "repo.modelarts.train_job.new"}}</a>
  64. </div>
  65. </div>
  66. <div class="ui divider"></div>
  67. <div class="ui grid">
  68. <div class="row">
  69. <div class="ui sixteen wide column">
  70. <div class="ui sixteen wide column">
  71. <div class="ui two column stackable grid">
  72. <div class="column">
  73. </div>
  74. <div class="column right aligned">
  75. <div class="ui right dropdown type jump item">
  76. <span class="text">
  77. {{.i18n.Tr "repo.issues.filter_sort"}}<i class="dropdown icon"></i>
  78. </span>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. <!-- 任务展示 -->
  84. <div class="dataset list">
  85. {{range .Tasks}}
  86. <div class="ui grid stackable item">
  87. <div class="row">
  88. <!-- 任务名 -->
  89. <div class="four wide center column">
  90. <a class="title" href="{{$.Link}}/{{.JobID}}">
  91. <!-- <span class="fitted">{{svg "octicon-tasklist" 16}}</span> -->
  92. <span class="fitted">{{.JobName}}</span>
  93. </a>
  94. </div>
  95. <!--任务状态 -->
  96. <div class="five wide center column job-status" id="{{.JobID}}" data-repopath="{{$.RepoRelPath}}" data-jobid="{{.JobID}}">
  97. {{.Status}}
  98. </div>
  99. <!-- 运行时长 -->
  100. <div class="three wide center column">
  101. <span class="ui text center">{{svg "octicon-flame" 16}} {{TimeSinceUnix .CreatedUnix $.Lang}}</span>
  102. </div>
  103. <!-- 删除 -->
  104. <div class="two wide center column">
  105. <div class="ui text center clipboard">
  106. <form id="delForm-{{.JobID}}" action="{{$.Link}}/{{.JobID}}/del" method="post">
  107. {{$.CsrfTokenHtml}}
  108. <a class="fitted" onclick="assertDelete(this)" style="font-size:16px; font-weight:bold">删除</a>
  109. </form>
  110. </div>
  111. </div>
  112. <!-- 停止 -->
  113. <div class="two wide column">
  114. <div class="ui text center clipboard">
  115. <form id="stopForm-{{.JobID}}" action="{{if ne .Status "RUNNING"}}javascript:void(0){{else}}{{$.Link}}/{{.JobID}}/stop{{end}}" method="post">
  116. {{$.CsrfTokenHtml}}
  117. <a class="fitted" onclick="document.getElementById('stopForm-{{.JobID}}').submit();" style="{{if ne .Status "RUNNING"}}color:#CCCCCC{{end}};font-size:16px; font-weight:bold">停止</a>
  118. </form>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. {{end}} {{template "base/paginate" .}}
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. <!-- 确认模态框 -->
  133. <div id="deletemodel">
  134. <div class="ui basic modal">
  135. <div class="ui icon header">
  136. <i class="trash icon"></i> 删除任务
  137. </div>
  138. <div class="content">
  139. <p>你确认删除该任务么?此任务一旦删除不可恢复。</p>
  140. </div>
  141. <div class="actions">
  142. <div class="ui red basic inverted cancel button">
  143. <i class="remove icon"></i> 取消操作
  144. </div>
  145. <div class="ui green basic inverted ok button">
  146. <i class="checkmark icon"></i> 确定操作
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. {{template "base/footer" .}}
  153. <script>
  154. $(".vertical.menu a").click(function(){
  155. $(this).siblings().removeClass("activate")
  156. $(this).addClass("activate")
  157. })
  158. // 删除时用户确认
  159. function assertDelete(obj) {
  160. if (obj.style.color == "rgb(204, 204, 204)") {
  161. return
  162. } else {
  163. var delId = obj.parentNode.id
  164. flag = 1;
  165. $('.ui.basic.modal')
  166. .modal({
  167. onDeny: function() {
  168. flag = false
  169. },
  170. onApprove: function() {
  171. document.getElementById(delId).submit()
  172. flag = true
  173. },
  174. onHidden: function() {
  175. if (flag == false) {
  176. $('.alert').html('您已取消操作').removeClass('alert-success').addClass('alert-danger').show().delay(1500).fadeOut();
  177. }
  178. }
  179. })
  180. .modal('show')
  181. }
  182. }
  183. // 加载任务状态
  184. $(document).ready(function() {
  185. $(".job-status").each((index, job) => {
  186. const jobID = job.dataset.jobid;
  187. const repoPath = job.dataset.repopath;
  188. if (job.textContent.trim() == 'STOPPED') {
  189. return
  190. }
  191. $.get(`/api/v1/repos/${repoPath}/modelarts/train-job/${jobID}`, (data) => {
  192. const jobID = data.JobID
  193. const status = data.JobStatus
  194. $('#' + jobID).text(status)
  195. // console.log(data)
  196. }).fail(function(err) {
  197. console.log(err);
  198. });
  199. });
  200. });
  201. </script>