sanksi.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. import React, { Component } from 'react';
  2. import Router from 'next/router'
  3. import ContentWrapper from '@/components/Layout/ContentWrapper';
  4. import { Row, Col, Progress, Button } from 'reactstrap';
  5. import Sparkline from '@/components/Common/Sparklines';
  6. import Scrollable from '@/components/Common/Scrollable'
  7. import Datatable from '@/components/Tables/Datatable';
  8. import moment from 'moment';
  9. class BugTracker extends Component {
  10. newProcessClick = (e, PT_ID) => {
  11. //temp variable for dev
  12. PT_ID='0BCE4DB7-B207-445D-8D03-0C54B7688252';
  13. const query = { ptId: PT_ID };
  14. e.preventDefault();
  15. Router.push(
  16. {
  17. pathname: '/app/sanksi.proses',
  18. query: { ptId: PT_ID }
  19. }
  20. );
  21. }
  22. render() {
  23. return (
  24. <ContentWrapper>
  25. <div className="content-heading">Sanksi</div>
  26. <Row>
  27. <Col lg="4">
  28. {/* Aside card */}
  29. <div className="card b">
  30. <div className="card-body bb">
  31. <p>Overvall progress</p>
  32. <div className="d-flex align-items-center mb-2">
  33. <div className="w-100">
  34. <Progress className="progress-xs m0" color="info" value={ 20 } />
  35. </div>
  36. <div className="ml-auto">
  37. <div className="col wd-xxs text-right">
  38. <div className="text-bold text-muted">20%</div>
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. <div className="card-body">
  44. <p>Metrics</p>
  45. <div className="row text-center">
  46. <div className="col-6 col-lg-6 col-xl-6">
  47. <Sparkline values={[20,80]}
  48. options={{
  49. type:"pie",
  50. height:"50",
  51. sliceColors:["#edf1f2", "#23b7e5"]
  52. }}
  53. className="sparkline"/>
  54. <p className="mt-3">Open Case</p>
  55. </div>
  56. <div className="col-6 col-lg-6 col-xl-6">
  57. <Sparkline values={[80,20]}
  58. options={{
  59. type:"pie",
  60. height:"50",
  61. sliceColors:["#edf1f2", "#27c24c"]
  62. }}
  63. className="sparkline"/>
  64. <p className="mt-3">Close Case</p>
  65. </div>
  66. {/* <div className="col-3 col-lg-6 col-xl-3">
  67. <Sparkline values={[20,80]}
  68. options={{
  69. type:"pie",
  70. height:"50",
  71. sliceColors:["#edf1f2", "#ff902b"]
  72. }}
  73. className="sparkline"/>
  74. <p className="mt-3">Hours</p>
  75. </div>
  76. <div className="col-3 col-lg-6 col-xl-3">
  77. <Sparkline values={[30,70]}
  78. options={{
  79. type:"pie",
  80. height:"50",
  81. sliceColors:["#edf1f2", "#f05050"]
  82. }}
  83. className="sparkline"/>
  84. <p className="mt-3">Assigned</p>
  85. </div> */}
  86. </div>
  87. </div>
  88. <table className="table bb">
  89. <tbody>
  90. {/* <tr>
  91. <td>
  92. <strong>Assigned Hours</strong>
  93. </td>
  94. <td>68 hs</td>
  95. </tr>
  96. <tr>
  97. <td>
  98. <strong>Time Consumed</strong>
  99. </td>
  100. <td>32 hs</td>
  101. </tr> */}
  102. <tr>
  103. <td>
  104. <strong>Open Case</strong>
  105. </td>
  106. <td>80</td>
  107. </tr>
  108. <tr>
  109. <td>
  110. <strong>Close Case</strong>
  111. </td>
  112. <td>20</td>
  113. </tr>
  114. <tr>
  115. <td>
  116. <strong>Performance</strong>
  117. </td>
  118. <td>
  119. <em className="far fa-smile fa-lg text-warning"></em>
  120. </td>
  121. </tr>
  122. {/* <tr>
  123. <td>
  124. <strong>Commits</strong>
  125. </td>
  126. <td>140</td>
  127. </tr> */}
  128. {/* <tr>
  129. <td>
  130. <strong>Last Case Closed</strong>
  131. </td>
  132. <td>
  133. <Scrollable height="120px" className="list-group">
  134. <table className="table table-bordered bg-transparent">
  135. <tbody>
  136. <tr>
  137. <td>
  138. <a className="text-muted" href="">BI:54678</a>
  139. </td>
  140. </tr>
  141. <tr>
  142. <td>
  143. <a className="text-muted" href="">BI:55778</a>
  144. </td>
  145. </tr>
  146. <tr>
  147. <td>
  148. <a className="text-muted" href="">BI:56878</a>
  149. </td>
  150. </tr>
  151. <tr>
  152. <td>
  153. <a className="text-muted" href="">BI:57978</a>
  154. </td>
  155. </tr>
  156. <tr>
  157. <td>
  158. <a className="text-muted" href="">BI:1107</a>
  159. </td>
  160. </tr>
  161. </tbody>
  162. </table>
  163. </Scrollable>
  164. </td>
  165. </tr> */}
  166. <tr>
  167. <td>
  168. <strong>Last Case Closed</strong>
  169. </td>
  170. <td>BI:1107 - 12/01/2016</td>
  171. </tr>
  172. </tbody>
  173. </table>
  174. </div>
  175. {/* end Aside card */}
  176. </Col>
  177. <Col lg="8">
  178. {/* <div className="mb-3 d-flex"> */}
  179. {/* <div> */}
  180. {/* <button className="btn btn-sm btn-info" type="button" onClick={(e) => this.newReportClick(e)}>Laporan Baru</button> */}
  181. {/* <Button color="info" size="sm" onClick={(e) => this.handleClick(e, pt.id)}>View</Button> */}
  182. {/* <button className="btn btn-sm btn-secondary" type="button">
  183. <em className="fa fa-user-plus"></em>
  184. </button>
  185. <button className="btn btn-sm btn-secondary" type="button">
  186. <em className="fas fa-pencil-alt"></em>
  187. </button>
  188. <button className="btn btn-sm btn-secondary" type="button">
  189. <em className="fas fa-share"></em>
  190. </button>
  191. <button className="btn btn-sm btn-secondary" type="button">
  192. <em className="fa fa-print"></em>
  193. </button> */}
  194. {/* </div> */}
  195. {/* <div className="ml-auto">
  196. <p className="mb-0 mt-1">19 bugs / 16 issues</p>
  197. </div> */}
  198. {/* </div> */}
  199. <div className="card b">
  200. <div className="card-body">
  201. <Datatable options={{responsive: true}}>
  202. <table className="table w-100">
  203. <thead>
  204. <tr>
  205. {/* <th>Type</th> */}
  206. <th>#ID</th>
  207. <th>Description</th>
  208. <th>Created</th>
  209. {/* <th>Priority</th>
  210. <th>Asigned</th> */}
  211. <th>Status</th>
  212. <th>Action</th>
  213. </tr>
  214. </thead>
  215. <tbody>
  216. <tr>
  217. {/* <td>
  218. <div className="badge bg-gray-lighter">bug</div>
  219. </td> */}
  220. <td>BI:54678</td>
  221. <td className="text-nowrap">
  222. <div className="media align-items-center">
  223. <a className="mr-3" href="">
  224. <img className="img-fluid rounded thumb64" src="/static/img/dummy-search.png" alt="Dummy"/>
  225. </a>
  226. <div className="media-body d-flex">
  227. <div>
  228. <h4 className="m-0">Universitas Satyagama</h4>
  229. <small className="text-muted">0742/O/1990 - www.satyagama.ac.id - info@satyagama.ac.id</small>
  230. <p>Jalan Kamal Raya No 2-A Cengkareng</p>
  231. <p> </p>
  232. </div>
  233. {/* <div className="ml-auto">
  234. <Button color="info" size="sm" onClick={(e) => this.handleClick(e, pt.id)}>Proses Sangsi</Button>
  235. </div> */}
  236. </div>
  237. </div>
  238. {/* <small>Maecenas mollis egestas convallis.</small> */}
  239. </td>
  240. <td>{moment("2020-04-04 11:45:26.123").fromNow()}</td>
  241. {/* <td>
  242. <div className="circle circle-lg bg-warning" data-title="normal"></div>
  243. </td> */}
  244. {/* <td>
  245. <a href="">Sylvia Daniels</a>
  246. </td> */}
  247. <td>
  248. <div className="inline wd-xxs badge badge-success">open</div>
  249. </td>
  250. <td>
  251. <div className="ml-auto">
  252. <button class="btn-oval btn btn-primary" size="sm" onClick={(e) => this.newProcessClick(e)}>Proses Sanksi</button>
  253. </div>
  254. </td>
  255. </tr>
  256. </tbody>
  257. </table>
  258. </Datatable>
  259. </div>
  260. </div>
  261. </Col>
  262. </Row>
  263. </ContentWrapper>
  264. );
  265. }
  266. }
  267. export default BugTracker;