penjadwalan.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  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. constructor(props) {
  11. super(props);
  12. }
  13. static getInitialProps = async () => {
  14. const res = await fetch("http://localhost:1880/pelaporan");
  15. const data = await res.json();
  16. return { data };
  17. };
  18. renderTable = () => {
  19. return this.props.data.map((value) => {
  20. return (
  21. <tr>
  22. <td>BI:{value._number}</td>
  23. <td className="text-nowrap">
  24. <div className="media align-items-center">
  25. <a className="mr-3" href="">
  26. <img className="img-fluid rounded thumb64" src="/static/img/dummy-search.png" alt="Dummy" />
  27. </a>
  28. <div className="media-body d-flex">
  29. <div>
  30. <h4 className="m-0">Universitas Satyagama</h4>
  31. <small className="text-muted">0742/O/1990 - www.satyagama.ac.id - info@satyagama.ac.id</small>
  32. <p>Jalan Kamal Raya No 2-A Cengkareng</p>
  33. <p> </p>
  34. </div>
  35. </div>
  36. </div>
  37. </td>
  38. <td>{moment(value.created_at).fromNow()}</td>
  39. <td>
  40. <div className="ml-auto">
  41. <button class="btn-oval btn btn-primary" size="sm" onClick={(e) => this.newProcessClick(e)}>
  42. Proses
  43. </button>
  44. </div>
  45. </td>
  46. </tr>
  47. );
  48. });
  49. };
  50. newProcessClick = (e, PT_ID) => {
  51. //router = useRouter();
  52. //const query = { ptId: PT_ID };
  53. // '/app/profile'
  54. e.preventDefault();
  55. Router.push({
  56. pathname: "/app/penjadwalan.todo",
  57. });
  58. };
  59. render() {
  60. return (
  61. <ContentWrapper>
  62. <div className="content-heading">Pemeriksaan</div>
  63. <Row>
  64. <Col lg="4">
  65. {/* Aside card */}
  66. <div className="card b">
  67. <div className="card-body bb">
  68. <p>Overvall progress</p>
  69. <div className="d-flex align-items-center mb-2">
  70. <div className="w-100">
  71. <Progress className="progress-xs m0" color="info" value={20} />
  72. </div>
  73. <div className="ml-auto">
  74. <div className="col wd-xxs text-right">
  75. <div className="text-bold text-muted">20%</div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. <div className="card-body">
  81. <p>Metrics</p>
  82. <div className="row text-center">
  83. <div className="col-6 col-lg-6 col-xl-6">
  84. <Sparkline
  85. values={[20, 80]}
  86. options={{
  87. type: "pie",
  88. height: "50",
  89. sliceColors: ["#edf1f2", "#23b7e5"],
  90. }}
  91. className="sparkline"
  92. />
  93. <p className="mt-3">Open Case</p>
  94. </div>
  95. <div className="col-6 col-lg-6 col-xl-6">
  96. <Sparkline
  97. values={[80, 20]}
  98. options={{
  99. type: "pie",
  100. height: "50",
  101. sliceColors: ["#edf1f2", "#27c24c"],
  102. }}
  103. className="sparkline"
  104. />
  105. <p className="mt-3">Close Case</p>
  106. </div>
  107. {/* <div className="col-3 col-lg-6 col-xl-3">
  108. <Sparkline values={[20,80]}
  109. options={{
  110. type:"pie",
  111. height:"50",
  112. sliceColors:["#edf1f2", "#ff902b"]
  113. }}
  114. className="sparkline"/>
  115. <p className="mt-3">Hours</p>
  116. </div>
  117. <div className="col-3 col-lg-6 col-xl-3">
  118. <Sparkline values={[30,70]}
  119. options={{
  120. type:"pie",
  121. height:"50",
  122. sliceColors:["#edf1f2", "#f05050"]
  123. }}
  124. className="sparkline"/>
  125. <p className="mt-3">Assigned</p>
  126. </div> */}
  127. </div>
  128. </div>
  129. <table className="table bb">
  130. <tbody>
  131. {/* <tr>
  132. <td>
  133. <strong>Assigned Hours</strong>
  134. </td>
  135. <td>68 hs</td>
  136. </tr>
  137. <tr>
  138. <td>
  139. <strong>Time Consumed</strong>
  140. </td>
  141. <td>32 hs</td>
  142. </tr> */}
  143. <tr>
  144. <td>
  145. <strong>Open Case</strong>
  146. </td>
  147. <td>80</td>
  148. </tr>
  149. <tr>
  150. <td>
  151. <strong>Close Case</strong>
  152. </td>
  153. <td>20</td>
  154. </tr>
  155. <tr>
  156. <td>
  157. <strong>Performance</strong>
  158. </td>
  159. <td>
  160. <em className="far fa-smile fa-lg text-warning"></em>
  161. </td>
  162. </tr>
  163. {/* <tr>
  164. <td>
  165. <strong>Commits</strong>
  166. </td>
  167. <td>140</td>
  168. </tr> */}
  169. {/* <tr>
  170. <td>
  171. <strong>Last Case Closed</strong>
  172. </td>
  173. <td>
  174. <Scrollable height="120px" className="list-group">
  175. <table className="table table-bordered bg-transparent">
  176. <tbody>
  177. <tr>
  178. <td>
  179. <a className="text-muted" href="">BI:54678</a>
  180. </td>
  181. </tr>
  182. <tr>
  183. <td>
  184. <a className="text-muted" href="">BI:55778</a>
  185. </td>
  186. </tr>
  187. <tr>
  188. <td>
  189. <a className="text-muted" href="">BI:56878</a>
  190. </td>
  191. </tr>
  192. <tr>
  193. <td>
  194. <a className="text-muted" href="">BI:57978</a>
  195. </td>
  196. </tr>
  197. <tr>
  198. <td>
  199. <a className="text-muted" href="">BI:1107</a>
  200. </td>
  201. </tr>
  202. </tbody>
  203. </table>
  204. </Scrollable>
  205. </td>
  206. </tr> */}
  207. <tr>
  208. <td>
  209. <strong>Last Case Closed</strong>
  210. </td>
  211. <td>BI:1107 - 12/01/2016</td>
  212. </tr>
  213. </tbody>
  214. </table>
  215. </div>
  216. {/* end Aside card */}
  217. </Col>
  218. <Col lg="8">
  219. {/* <div className="mb-3 d-flex"> */}
  220. {/* <div> */}
  221. {/* <button className="btn btn-sm btn-info" type="button" onClick={(e) => this.newReportClick(e)}>Laporan Baru</button> */}
  222. {/* <Button color="info" size="sm" onClick={(e) => this.handleClick(e, pt.id)}>View</Button> */}
  223. {/* <button className="btn btn-sm btn-secondary" type="button">
  224. <em className="fa fa-user-plus"></em>
  225. </button>
  226. <button className="btn btn-sm btn-secondary" type="button">
  227. <em className="fas fa-pencil-alt"></em>
  228. </button>
  229. <button className="btn btn-sm btn-secondary" type="button">
  230. <em className="fas fa-share"></em>
  231. </button>
  232. <button className="btn btn-sm btn-secondary" type="button">
  233. <em className="fa fa-print"></em>
  234. </button> */}
  235. {/* </div> */}
  236. {/* <div className="ml-auto">
  237. <p className="mb-0 mt-1">19 bugs / 16 issues</p>
  238. </div> */}
  239. {/* </div> */}
  240. <div className="card b">
  241. <div className="card-body">
  242. <Datatable options={{ responsive: true }}>
  243. <table className="table w-100">
  244. <thead>
  245. <tr>
  246. {/* <th>Type</th> */}
  247. <th>#ID</th>
  248. <th>Description</th>
  249. <th>Created</th>
  250. {/* <th>Priority</th>
  251. <th>Asigned</th> */}
  252. <th>Status</th>
  253. {/* <th>Action</th> */}
  254. </tr>
  255. </thead>
  256. <tbody>
  257. {this.renderTable()}
  258. {/*//{" "}
  259. <tr>
  260. // <td>BI:54678</td>
  261. //{" "}
  262. <td className="text-nowrap">
  263. //{" "}
  264. <div className="media align-items-center">
  265. //{" "}
  266. <a className="mr-3" href="">
  267. // <img className="img-fluid rounded thumb64" src="/static/img/dummy-search.png" alt="Dummy" />
  268. //{" "}
  269. </a>
  270. //{" "}
  271. <div className="media-body d-flex">
  272. //{" "}
  273. <div>
  274. // <h4 className="m-0">Universitas Satyagama</h4>
  275. // <small className="text-muted">0742/O/1990 - www.satyagama.ac.id - info@satyagama.ac.id</small>
  276. // <p>Jalan Kamal Raya No 2-A Cengkareng</p>
  277. // <p> </p>
  278. //{" "}
  279. </div>
  280. //{" "}
  281. </div>
  282. //{" "}
  283. </div>
  284. //{" "}
  285. </td>
  286. // <td>{moment("2020-04-04 11:45:26.123").fromNow()}</td>
  287. //{" "}
  288. <td>
  289. //{" "}
  290. <div className="ml-auto">
  291. //{" "}
  292. <button class="btn-oval btn btn-primary" size="sm" onClick={(e) => this.newProcessClick(e)}>
  293. Proses
  294. </button>
  295. //{" "}
  296. </div>
  297. //{" "}
  298. </td>
  299. //{" "}
  300. </tr> */}
  301. </tbody>
  302. </table>
  303. </Datatable>
  304. </div>
  305. </div>
  306. </Col>
  307. </Row>
  308. </ContentWrapper>
  309. );
  310. }
  311. }
  312. export default BugTracker;