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
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. <div class="ui grid">
  52. {{template "repo/modelarts/navbar" .}}
  53. <!-- 右侧 -->
  54. <div class="ui thirteen wide column">
  55. <div class="ui three column stackable grid">
  56. <div class="column">
  57. <h2>{{.i18n.Tr "repo.modelarts.train_job"}}</h2>
  58. </div>
  59. <div class="column">
  60. </div>
  61. <div class="column right aligned">
  62. <a class="ui green button" href="{{.RepoLink}}/modelarts/train-job/create">{{.i18n.Tr "repo.modelarts.train_job.new"}}</a>
  63. </div>
  64. </div>
  65. <div class="ui divider"></div>
  66. <div class="ui grid">
  67. <div class="row">
  68. <div class="ui sixteen wide column">
  69. <div class="ui sixteen wide column">
  70. <div class="ui two column stackable grid">
  71. <div class="column">
  72. </div>
  73. <div class="column right aligned">
  74. <div class="ui right dropdown type jump item">
  75. <span class="text">
  76. {{.i18n.Tr "repo.issues.filter_sort"}}<i class="dropdown icon"></i>
  77. </span>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. <!-- 任务展示 -->
  83. <div class="dataset list">
  84. {{range .Tasks}}
  85. <div class="ui grid stackable item">
  86. <div class="row">
  87. <!-- 任务名 -->
  88. <div class="four wide center column">
  89. <a class="title" href="{{$.Link}}/{{.JobID}}">
  90. <!-- <span class="fitted">{{svg "octicon-tasklist" 16}}</span> -->
  91. <span class="fitted">{{.JobName}}</span>
  92. </a>
  93. </div>
  94. <!--任务状态 -->
  95. <div class="five wide center column job-status" id="{{.JobID}}" data-repopath="{{$.RepoRelPath}}" data-jobid="{{.JobID}}">
  96. {{.Status}}
  97. </div>
  98. <!-- 运行时长 -->
  99. <div class="three wide center column">
  100. <span class="ui text center">{{svg "octicon-flame" 16}} {{TimeSinceUnix .CreatedUnix $.Lang}}</span>
  101. </div>
  102. <!-- 删除 -->
  103. <div class="two wide center column">
  104. <div class="ui text center clipboard">
  105. <form id="delForm-{{.JobID}}" action="{{$.Link}}/{{.JobID}}/del" method="post">
  106. {{$.CsrfTokenHtml}}
  107. <a class="fitted" onclick="assertDelete(this)" style="font-size:16px; font-weight:bold">删除</a>
  108. </form>
  109. </div>
  110. </div>
  111. <!-- 停止 -->
  112. <div class="two wide column">
  113. <div class="ui text center clipboard">
  114. <form id="stopForm-{{.JobID}}" action="{{if ne .Status "RUNNING"}}javascript:void(0){{else}}{{$.Link}}/{{.JobID}}/stop{{end}}" method="post">
  115. {{$.CsrfTokenHtml}}
  116. <a class="fitted" onclick="document.getElementById('stopForm-{{.JobID}}').submit();" style="{{if ne .Status "RUNNING"}}color:#CCCCCC{{end}}; font-size:16px; font-weight:bold">停止</a>
  117. </form>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. {{end}} {{template "base/paginate" .}}
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. <!-- 确认模态框 -->
  132. <div id="deletemodel">
  133. <div class="ui basic modal">
  134. <div class="ui icon header">
  135. <i class="trash icon"></i> 删除任务
  136. </div>
  137. <div class="content">
  138. <p>你确认删除该任务么?此任务一旦删除不可恢复。</p>
  139. </div>
  140. <div class="actions">
  141. <div class="ui red basic inverted cancel button">
  142. <i class="remove icon"></i> 取消操作
  143. </div>
  144. <div class="ui green basic inverted ok button">
  145. <i class="checkmark icon"></i> 确定操作
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. {{template "base/footer" .}}
  152. <script>
  153. $(".vertical.menu a").click(function(){
  154. $(this).siblings().removeClass("activate")
  155. $(this).addClass("activate")
  156. })
  157. // 删除时用户确认
  158. function assertDelete(obj) {
  159. if (obj.style.color == "rgb(204, 204, 204)") {
  160. return
  161. } else {
  162. var delId = obj.parentNode.id
  163. flag = 1;
  164. $('.ui.basic.modal')
  165. .modal({
  166. onDeny: function() {
  167. flag = false
  168. },
  169. onApprove: function() {
  170. document.getElementById(delId).submit()
  171. flag = true
  172. },
  173. onHidden: function() {
  174. if (flag == false) {
  175. $('.alert').html('您已取消操作').removeClass('alert-success').addClass('alert-danger').show().delay(1500).fadeOut();
  176. }
  177. }
  178. })
  179. .modal('show')
  180. }
  181. }
  182. // 加载任务状态
  183. $(document).ready(function() {
  184. $(".job-status").each((index, job) => {
  185. const jobID = job.dataset.jobid;
  186. const repoPath = job.dataset.repopath;
  187. if (job.textContent.trim() == 'STOPPED') {
  188. return
  189. }
  190. $.get(`/api/v1/repos/${repoPath}/modelarts/train-job/${jobID}`, (data) => {
  191. const jobID = data.JobID
  192. const status = data.JobStatus
  193. $('#' + jobID).text(status)
  194. // console.log(data)
  195. }).fail(function(err) {
  196. console.log(err);
  197. });
  198. });
  199. });
  200. </script>