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 10 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
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  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. </style>
  29. <div class="modelarts">
  30. <div class="repository release dataset-list view container">
  31. <div class="alert"></div>
  32. {{template "repo/header" .}}
  33. <div class="ui container">
  34. <div class="ui grid">
  35. {{template "repo/modelarts/navbar" .}}
  36. <!-- 右侧 -->
  37. <div class="ui thirteen wide column">
  38. <div class="ui three column stackable grid">
  39. <div class="column">
  40. <h2>{{.i18n.Tr "repo.cloudbrain2"}}</h2>
  41. </div>
  42. <div class="column">
  43. </div>
  44. <div class="column right aligned">
  45. {{if .Permission.CanWrite $.UnitTypeCloudBrain}}
  46. <a class="ui green button" href="{{.RepoLink}}/modelarts/notebook/create">{{.i18n.Tr "repo.cloudbrain.new"}}</a> {{end}}
  47. </div>
  48. </div>
  49. <div class="ui divider"></div>
  50. <div class="ui grid">
  51. <div class="row">
  52. <div class="ui sixteen wide column">
  53. <div class="ui sixteen wide column">
  54. <div class="ui two column stackable grid">
  55. <div class="column">
  56. </div>
  57. <div class="column right aligned">
  58. <div class="ui right dropdown type jump item">
  59. <span class="text">
  60. {{.i18n.Tr "repo.issues.filter_sort"}}<i class="dropdown icon"></i>
  61. </span>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. <!-- 任务展示 -->
  67. <div class="dataset list">
  68. {{range .Tasks}}
  69. <div class="ui grid stackable item">
  70. <div class="row">
  71. <!-- 任务名 -->
  72. <div class="four wide center column">
  73. <a class="title" href="{{$.Link}}/{{.JobID}}">
  74. <!-- <span class="fitted">{{svg "octicon-tasklist" 16}}</span> -->
  75. <span class="fitted">{{.JobName}}</span>
  76. </a>
  77. </div>
  78. <!--任务状态 -->
  79. <div class="two wide center column job-status" id="{{.JobID}}" data-repopath="{{$.RepoRelPath}}" data-jobid="{{.JobID}}">
  80. {{.Status}}
  81. </div>
  82. <!-- 任务创建时间 -->
  83. <div class="two wide center column">
  84. <span class="ui text center">{{svg "octicon-flame" 16}} {{TimeSinceUnix .CreatedUnix $.Lang}}</span>
  85. </div>
  86. <!-- 查看 -->
  87. <div class="two wide center column">
  88. <span class="ui text clipboard">
  89. <a class="title" href="{{$.Link}}/{{.JobID}}">
  90. <span class="fitted">查看</span>
  91. </a>
  92. </span>
  93. </div>
  94. <!-- 删除任务 -->
  95. <div class="two wide center column">
  96. <div class="ui text center clipboard">
  97. <form id="delForm-{{.JobID}}" action="{{if ne .Status "STOPPED"}}javascript:void(0){{else}}{{$.Link}}/{{.JobID}}/del{{end}}" method="post">
  98. {{$.CsrfTokenHtml}}
  99. <a class="fitted" onclick="assertDelete(this)" style="{{if ne .Status "STOPPED"}}color:#CCCCCC{{end}}; font-size:16px; font-weight:bold">删除</a>
  100. </form>
  101. </div>
  102. </div>
  103. <!-- 调试 -->
  104. <div class="two wide center column">
  105. <div class="ui text center clipboard">
  106. <a class="title" onclick="stop(this)" href="{{if not .CanDebug}}javascript:void(0){{else}}{{$.Link}}/{{.JobID}}/debug{{end}}" style="{{if not .CanDebug}}color:#CCCCCC{{end}}">
  107. <span class="fitted">调试</span>
  108. </a>
  109. </div>
  110. </div>
  111. <!-- 停止 -->
  112. <div class="two wide center 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. // 调试新开窗口
  154. function stop(obj) {
  155. if (obj.style.color != "rgb(204, 204, 204)") {
  156. obj.target = '_blank'
  157. } else {
  158. return
  159. }
  160. }
  161. // 删除时用户确认
  162. function assertDelete(obj) {
  163. if (obj.style.color == "rgb(204, 204, 204)") {
  164. return
  165. } else {
  166. var delId = obj.parentNode.id
  167. flag = 1;
  168. $('.ui.basic.modal')
  169. .modal({
  170. onDeny: function() {
  171. flag = false
  172. },
  173. onApprove: function() {
  174. document.getElementById(delId).submit()
  175. flag = true
  176. },
  177. onHidden: function() {
  178. if (flag == false) {
  179. $('.alert').html('您已取消操作').removeClass('alert-success').addClass('alert-danger').show().delay(1500).fadeOut();
  180. }
  181. }
  182. })
  183. .modal('show')
  184. }
  185. }
  186. // 加载任务状态
  187. $(document).ready(function() {
  188. $(".job-status").each((index, job) => {
  189. const jobID = job.dataset.jobid;
  190. const repoPath = job.dataset.repopath;
  191. if (job.textContent.trim() == 'STOPPED') {
  192. return
  193. }
  194. $.get(`/api/v1/repos/${repoPath}/modelarts/notebook/${jobID}`, (data) => {
  195. const jobID = data.JobID
  196. const status = data.JobStatus
  197. $('#' + jobID).text(status)
  198. // console.log(data)
  199. }).fail(function(err) {
  200. console.log(err);
  201. });
  202. });
  203. });
  204. </script>