PageRenderTime 24ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/application/modules/jadwal_pelajaran/views/view_jadwal_pelajaran.php

https://gitlab.com/imadd23/sijs
PHP | 303 lines | 246 code | 36 blank | 21 comment | 29 complexity | 3327b168ed653c39c8703574c0bfeab7 MD5 | raw file
  1. <style type="text/css">
  2. .btn-container{
  3. padding: 3px;
  4. float: left;
  5. }
  6. .dropped-area{
  7. color: white;
  8. cursor: pointer;
  9. }
  10. .dropped-area-ruang{
  11. background-color: #FFB752;
  12. color: white;
  13. cursor: pointer;
  14. font-size: 9px;
  15. white-space: nowrap;
  16. max-width: 30px;
  17. overflow-x: hidden;
  18. }
  19. .label-drag-area{
  20. display: inline-block;
  21. position: absolute;
  22. line-height: initial;
  23. }
  24. th.width-32, td.width-32 {
  25. width: 50px !important;
  26. min-width: 50px !important;
  27. max-width: 50px !important;
  28. }
  29. thead, tbody { display: block; }
  30. tbody {
  31. height: 350px; /* Just for the demo */
  32. overflow-y: auto; /* Trigger vertical scroll */
  33. overflow-x: hidden; /* Hide the horizontal scroll */
  34. }
  35. th.freezedCol, td.freezedCol{
  36. /*position:absolute; */
  37. /*width:5em; */
  38. /*left:0;
  39. top:auto;
  40. overflow-x: visible; */
  41. /*border-right: 0px none black; */
  42. /*border-top-width:3px;*/ /*only relevant for first row*/
  43. /*margin-top:-3px;*/ /*compensate for top border*/
  44. }
  45. </style>
  46. <!--<link rel="stylesheet" type="text/css" href="<?php echo base_url('assets/ace/plugin/perfect-scrollbar/css/perfect-scrollbar.css');?>">-->
  47. <div class="row">
  48. <div class="col-xs-12">
  49. <h3 class="row header smaller lighter blue">
  50. <span class="col-sm-6"> Jadwal Pelajaran <?php echo $semester;?></span><!-- /.col -->
  51. <span class="col-sm-6">
  52. <label class="pull-right inline">
  53. <?php if ($obj->has_access('jadwal_pelajaran', 'view')){ ?>
  54. <a class="btn btn-xs btn-primary" target="_blank" href="<?php echo site_url('jadwal_pelajaran/export');?>">
  55. <i class="ace-icon fa fa-file-excel-o bigger-110"></i>
  56. Export
  57. </a>
  58. <?php } ?>
  59. <?php if ($obj->has_access('jadwal_pelajaran', 'add')){ ?>
  60. <a class="btn btn-xs btn-primary" href="<?php echo site_url('jadwal_pelajaran/edit');?>">
  61. <i class="ace-icon fa fa-pencil bigger-110"></i>
  62. Kelola Jadwal
  63. </a>
  64. <a class="btn btn-xs btn-primary" href="<?php echo site_url('jadwal_pelajaran/edit_ruang');?>">
  65. <i class="ace-icon fa fa-pencil bigger-110"></i>
  66. Kelola Ruang
  67. </a>
  68. <?php }?>
  69. </label>
  70. </span><!-- /.col -->
  71. </h3>
  72. <?php if (!empty($pesan)){ ?>
  73. <div class="alert alert-block alert-<?php echo $pesan[0];?>">
  74. <button type="button" class="close" data-dismiss="alert">
  75. <i class="ace-icon fa fa-times"></i>
  76. </button>
  77. <?php echo $pesan[1];?>
  78. </div>
  79. <?php } ?>
  80. <div class="table-responsive scrollable-horizontal scrollable-vertical" data-size="800">
  81. <table class="table table-bordered" id="table-jadwal">
  82. <?php
  83. $aDataJam = [];
  84. if (!empty($listAlokasiJam)){
  85. // $headerKelas = '<th colspan="4" rowspan="2" class="text-center nama_kelas" style="vertical-align:middle; width: 128px;">NAMA KELAS</th>';
  86. echo '<thead><tr><th colspan="4" class="text-center nama_kelas freezedCol" style="width: 200px !important;">NAMA</th>';
  87. // echo $headerKelas;
  88. foreach ($listAlokasiJam as $key => $value) {
  89. echo '<th class="text-center width-32" colspan="'.$value['jumlah_data'].'">'.$value['hari'].'</th>';
  90. }
  91. echo '</tr><tr><th colspan="4" class="text-center nama_kelas freezedCol" style="width: 200px !important;">KELAS</th>';
  92. foreach ($listAlokasiJam as $key => $value) {
  93. $_jam = str_replace("#", '"', $value['jam']);
  94. $jam = json_decode($_jam, true);
  95. if (!empty($jam)){
  96. foreach ($jam as $key => $value) {
  97. $aDataJam[] = $value['id'];
  98. echo '<th class="text-center width-32"><div style="width:32px">'.$value['kode_jam'].'</div></th>';
  99. }
  100. }
  101. }
  102. echo '</tr></thead>';
  103. }
  104. if (!empty($listDetailKelas)){
  105. echo '<tbody>';
  106. foreach ($listDetailKelas as $key => $value) {
  107. $_aJenjang = str_replace('#', '"', $value['jenjang']);
  108. $aJenjang = json_decode($_aJenjang, true);
  109. $rowspanJurusan = $value['jumlah_data'] * 2;
  110. echo "<tr>";
  111. echo "<th class='text-center width-32 freezedCol' style='writing-mode: vertical-rl; vertical-align: middle;' rowspan='".$rowspanJurusan."' nowrap>".$value['nama_jurusan'].'</th>';
  112. if (!empty($aJenjang)){
  113. foreach ($aJenjang as $k => $v) {
  114. $aId = $this->model_jadwal->getJenjangById($value['id_ref_jurusan'], $v['id_jenjang'], $value['id_ref_tahun_ajaran']);
  115. $rowspanJenjang = $v['jumlah_data'] * 2;
  116. echo '<th class="text-center width-32 freezedCol" style="writing-mode: vertical-rl; vertical-align: middle;" rowspan="'.$rowspanJenjang.'" nowrap>'.$v['jenjang'].'</th>';
  117. if (!empty($aId)){
  118. foreach ($aId as $kk => $vv) {
  119. $dKelas = $this->model_jadwal->getDetailKelasById($vv['id_detail_kelas']);
  120. if ($kk == 0 && !empty($dKelas)){
  121. echo '<th class="text-center width-32 freezedCol" style="writing-mode: vertical-rl; vertical-align: middle;" rowspan="2" nowrap>'.$dKelas['nama_singkat_jurusan'].'</th>
  122. <th class="text-center width-32 freezedCol" style="vertical-align: middle;" rowspan="2" nowrap>'.$dKelas['nama_kelas'].'</th>';
  123. if (!empty($aDataJam)){
  124. foreach ($aDataJam as $kkk => $vvv) {
  125. echo '<td class="text-center drop-area width-32" data-id-detail-kelas="'.$vv['id_detail_kelas'].'" data-id-alokasi-jam="'.$vvv.'"></td>';
  126. }
  127. }
  128. echo "</tr>";
  129. }else
  130. if (!empty($dKelas)){
  131. echo '<tr>
  132. <th class="text-center width-32 freezedCol" style="writing-mode: vertical-rl; vertical-align: middle;" rowspan="2" nowrap>'.$dKelas['nama_singkat_jurusan'].'</th>
  133. <th class="text-center width-32 freezedCol" style="vertical-align: middle;" rowspan="2" nowrap>'.$dKelas['nama_kelas'].'</th>';
  134. if (!empty($aDataJam)){
  135. foreach ($aDataJam as $kkk => $vvv) {
  136. echo '<td class="text-center drop-area width-32" data-id-detail-kelas="'.$vv['id_detail_kelas'].'" data-id-alokasi-jam="'.$vvv.'"></td>';
  137. }
  138. }
  139. echo "</tr>";
  140. }
  141. // make space for ruang kelas
  142. echo '<tr>';
  143. if (!empty($aDataJam)){
  144. foreach ($aDataJam as $kkk => $vvv) {
  145. echo '<td class="text-center drop-area-ruang width-32" data-id-detail-kelas="'.$vv['id_detail_kelas'].'" data-id-alokasi-jam="'.$vvv.'"></td>';
  146. }
  147. }
  148. echo "</tr>";
  149. }
  150. }
  151. }
  152. }
  153. }
  154. echo '</tbody>';
  155. }
  156. ?>
  157. </table>
  158. </div>
  159. </div>
  160. </div>
  161. <!-- confirm delete -->
  162. <div id="dialog-confirm" class="hide">
  163. <div class="space-6"></div>
  164. <p class="bigger-110 bolder center grey">
  165. <i class="ace-icon fa fa-hand-o-right blue bigger-120"></i>
  166. Apakah Anda yakin akan menghapus kelas?
  167. </p>
  168. </div><!-- #dialog-confirm -->
  169. <!--<script type="text/javascript" src="<?php echo base_url('assets/ace/plugin/perfect-scrollbar/js/perfect-scrollbar.jquery.js');?>"></script>-->
  170. <script type="text/javascript">
  171. var widthT = $('#table-jadwal').closest('div').width();
  172. jQuery(function($) {
  173. });
  174. function makeTable(){
  175. }
  176. $('#table-jadwal').ready(function(){
  177. var td = $('td.drop-area');
  178. var total = td.length;
  179. var limit = 100;
  180. var childs = new Array();
  181. var params = new Array();
  182. var i = 0;
  183. var j = 0;
  184. var td_ruang = $('td.drop-area-ruang');
  185. var total_ruang = $('td.drop-area-ruang').length;
  186. var childs_ruang = new Array();
  187. var params_ruang = new Array();
  188. $.each(td, function(index, value){
  189. // pre condition
  190. var id_detail_kelas = $(this).attr('data-id-detail-kelas');
  191. var id_alokasi_jam = $(this).attr('data-id-alokasi-jam');
  192. if (j == limit || (index + 1) == total){
  193. // send to background;
  194. params.push(childs);
  195. $.ajax({
  196. url : '<?php echo site_url('jadwal_pelajaran/get_child_json');?>',
  197. type : 'post',
  198. dataType : 'jSON',
  199. data : {
  200. ids : childs
  201. },
  202. success : function(response){
  203. if (typeof (response) && response.success){
  204. $.each(response.data, function(i, v){
  205. var contentHtml = '<div href="#" class="popover-info" data-rel="popover" data-placement="bottom" title="Detail" data-content="'+v.detail+'">'+v.kode_guru+'</div>';
  206. $('td.drop-area:eq('+v.index+')').addClass(v.class).css('background-color', v.warna).html(contentHtml);
  207. });
  208. }
  209. // $('th.nama_kelas').css({'width' : '150px'});
  210. $('[data-rel=popover]').popover({html:true});
  211. // if (index + 1 == total){
  212. // makeTable();
  213. // }
  214. },
  215. error : function(response){
  216. }
  217. });
  218. childs = [];
  219. j = 0;
  220. }
  221. childs[j] = {
  222. 'index' : index,
  223. 'id_detail_kelas' : id_detail_kelas,
  224. 'id_alokasi_jam' : id_alokasi_jam
  225. };
  226. j++;
  227. });
  228. $.each(td_ruang, function(index, value){
  229. // pre condition
  230. var id_detail_kelas = $(this).attr('data-id-detail-kelas');
  231. var id_alokasi_jam = $(this).attr('data-id-alokasi-jam');
  232. if (i == limit || (index + 1) == total_ruang){
  233. // send to background;
  234. // params_ruang.push(childs_ruang);
  235. $.ajax({
  236. url : '<?php echo site_url('jadwal_pelajaran/get_child_ruang_json');?>',
  237. type : 'post',
  238. dataType : 'jSON',
  239. data : {
  240. ids : childs_ruang
  241. },
  242. success : function(response){
  243. if (typeof (response) && response.success){
  244. $.each(response.data, function(i, v){
  245. $('td.drop-area-ruang:eq('+v.index+')').addClass(v.class).html(v.nama_ruang);
  246. if ((index + 1) == total_ruang){
  247. makeTable();
  248. }
  249. });
  250. }
  251. // $('th.nama_kelas').css({'width' : '150px'});
  252. },
  253. error : function(response){
  254. }
  255. });
  256. childs_ruang = [];
  257. i = 0;
  258. }
  259. childs_ruang[i] = {
  260. 'index' : index,
  261. 'id_detail_kelas' : id_detail_kelas,
  262. 'id_alokasi_jam' : id_alokasi_jam
  263. };
  264. i++;
  265. });
  266. });
  267. </script>