detail.blade.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. <?php $getStatus = \App\Model\Privillage\Role::where('id',Auth::user()->role_id)->value('akses'); ?>
  2. @extends('dev.core.using')
  3. @section('content')
  4. <style>
  5. input, select {
  6. border: 0 !important;
  7. background: transparent !important;
  8. border-bottom: 1px solid #cdcdcd !important;
  9. }
  10. .tb-container{
  11. background: #fff;
  12. margin-top: 1em;
  13. }
  14. tbody > tr {
  15. line-height: 45px !important;
  16. min-height: 45px !important;
  17. height: 45px !important;
  18. }
  19. .ic {
  20. width: 1.5rem;
  21. height: 1.3rem;
  22. border-radius: .5rem;
  23. text-align: center;
  24. cursor:pointer;
  25. /* background: #cdcdcd; */
  26. /* padding-top: .3rem; */
  27. font-size: 1em;
  28. list-style: none;
  29. color: #000;
  30. }
  31. </style>
  32. <br/>
  33. <br/>
  34. <form action="{{route('aktivasi-program.update',$data->id)}}" method="POST" id="form-edit">
  35. @csrf
  36. <div class="col">
  37. <div class="form-group">
  38. <label for="exampleInputEmail1">Tahun Program *</label>
  39. <input type="" class="form-control" id="tahunProgram" placeholder="No Data Available" value="{{$data->value}}" name="value" required readonly>
  40. <small id="tahunProgramHelp" class="form-text text-muted" style="color:red !important"></small>
  41. <!-- <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small> -->
  42. </div>
  43. <div class="form-group">
  44. <label for="exampleInputEmail1">Status *</label>
  45. <select class="form-control" id="status" name="status" required disabled>
  46. <option value="0" {{$data->status==0?'selected':''}}>Draft</option>
  47. <option value="1" {{$data->status==1?'selected':''}}>Aktif</option>
  48. <option value="2" {{$data->status==2?'selected':''}}>Selesai</option>
  49. </select>
  50. </div>
  51. <div class="btn btn-primary btn-lg btn-block" style="background: #193865;margin-top: 1em">Program</div>
  52. <div class="tb-container">
  53. <table class="table table-bordered">
  54. <thead >
  55. <tr class="table-dark">
  56. <th scope="col" width="300px">Program</th>
  57. <th scope="col" width="300px">Sub Program</th>
  58. <th scope="col">Periode</th>
  59. <th scope="col">Jumlah</th>
  60. </tr>
  61. </thead>
  62. <tbody id="tbody">
  63. <input type="hidden" name="uniqids" id="uniqids">
  64. @foreach($data->tahunProgramDetail as $key => $row)
  65. @php $uniqid = sprintf("%06d", mt_rand(1, 999999)); @endphp
  66. <tr id="tr-{{$uniqid}}">
  67. <input type="hidden" name="id_{{$uniqid}}" value="{{$row->id}}">
  68. <input type="hidden" class="uniqid" value="{{$uniqid}}">
  69. <td>
  70. <select class="form-control program" id="program-{{$uniqid}}" name="id_template_program_{{$uniqid}}" required onChange="selectSubProgram({{$uniqid}})" disabled>
  71. @foreach($templateProgram as $opt)
  72. <option value="{{$opt->id}}" id="{{$uniqid}}" {{$row->id_template_program==$opt->id?'selected':''}}>{{$opt->nama}}</option>
  73. @endforeach
  74. </select>
  75. </td>
  76. <td>
  77. <select class="form-control subprogram" id="subprogram-{{$uniqid}}" name="id_template_program_detail_{{$uniqid}}" required disabled>
  78. @foreach($templateProgramDetail->where('id_template_program',$row->id_template_program) as $opt)
  79. <option value="{{$opt->id}}" id="{{$uniqid}}" {{$row->id_template_program_detail==$opt->id?'selected':''}}>{{$opt->nama}}</option>
  80. @endforeach
  81. </select>
  82. </td>
  83. <td>
  84. <select class="form-control" id="satuan_{{$uniqid}}" name="satuan_{{$uniqid}}" onChange="setJumlah({{$uniqid}})" disabled>
  85. <option value="Tahun" {{$row->satuan=='Tahun'?'selected':''}}>Tahun</option>
  86. <option value="Bulan" {{$row->satuan=='Bulan'?'selected':''}}>Bulan</option>
  87. </select>
  88. </td>
  89. <td>
  90. <select class="form-control" name="jumlah_{{$uniqid}}" id="jumlah_{{$uniqid}}" disabled>
  91. <?php $optJumlah = ($row->satuan == 'Tahun')?12:1; ?>
  92. @for($i=1;$i<=$optJumlah;$i++)
  93. <option value="{{$i}}" {{$row->jumlah==$i?'selected':''}}>{{$i}}</option>
  94. @endfor
  95. </select>
  96. </td>
  97. </tr>
  98. @endforeach
  99. </tbody>
  100. </table>
  101. </div>
  102. <div class="tb-container">
  103. <div class="row" style="padding:20px">
  104. <div class="col-md-10"></div>
  105. <div class="col-md-2">
  106. <a href="{{route('aktivasi-program')}}" class="btn btn-primary" id="btn-back" style="background: #fff;color: #193865">Kembali</a>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </form>
  112. <script>
  113. $('#add-program').click(function() {
  114. var uniqid = Date.now();
  115. var id = '<input type="hidden" class="uniqid" value="'+uniqid+'">';
  116. var program = `<td><select class="form-control program" id="program-`+uniqid+`" name="id_template_program_`+uniqid+`" onChange="selectSubProgram(`+uniqid+`)">`
  117. @foreach($templateProgram as $opt)
  118. program += `<option value="{{$opt->id}}" id="`+uniqid+`">{{$opt->nama}}</option>`
  119. @endforeach
  120. program += `</select></td>`;
  121. var subprogram = `<td><select class="form-control subprogram" id="subprogram-`+uniqid+`" name="id_template_program_detail_`+uniqid+`">`
  122. subprogram += `</select></td>`;
  123. var periode = `<td>
  124. <select class="form-control" name="satuan_`+uniqid+`" id="satuan_`+uniqid+`" onChange="setJumlah(`+uniqid+`)">
  125. <option value="Tahun">Tahun</option>
  126. <option value="Bulan">Bulan</option>
  127. </select>
  128. </td>`;
  129. var jumlah = `<td>
  130. <select class="form-control" name="jumlah_`+uniqid+`" id="jumlah_`+uniqid+`">
  131. </select>
  132. </td>`;
  133. var aksi = '<td><center><a id="btn-remove" onClick="removeData('+uniqid+')"><i class="fas fa-trash" style="color: #E12D2D" ></i></a></center></td>';
  134. var attribute = '<tr id="tr-'+uniqid+'">'+id+program+subprogram+periode+jumlah+aksi+'</tr>';
  135. $('#tbody').append(attribute);
  136. setJumlah(uniqid);
  137. // checkDuplicate();
  138. })
  139. // function checkDuplicate(){
  140. // var selected = [];
  141. // var invalid = 0;
  142. // $('.program option:selected').each(function(i, obj) {
  143. // //remove tooltip
  144. // $('#parent-'+obj.id).tooltip('dispose');
  145. // //check if kolom is duplicate
  146. // if ($.inArray(obj.value, selected) != -1){
  147. // $('#parent-'+obj.id).css({'color':'red'});
  148. // $('#parent-'+obj.id).children('option').css({'color':'#8898aa'});
  149. // $('#parent-'+obj.id).tooltip({title: 'Program "'+obj.value+'" sudah digunakan'});
  150. // invalid++;
  151. // }else{
  152. // $('#parent-'+obj.id).css({'color':'#8898aa'});
  153. // }
  154. // selected.push(obj.value);
  155. // });
  156. // if(invalid>0){
  157. // $('#btn-submit').prop('disabled',true);
  158. // return false;
  159. // }else{
  160. // $('#btn-submit').prop('disabled',false);
  161. // return true;
  162. // }
  163. // }
  164. // checkDuplicate();
  165. function selectSubProgram(uniqid){
  166. var id_program = $('#program-'+uniqid).val();
  167. $.ajax({
  168. url: "{{url('api/template-program')}}/subprogram?id_template_program="+id_program,
  169. dataType: "json",
  170. type: "GET",
  171. async: true,
  172. data: { },
  173. beforeSend: function(){
  174. $('#subprogram-'+uniqid).children('option').remove();
  175. },
  176. success: function (result) {
  177. var opt = '';
  178. $.each( result.data, function( index, value ){
  179. opt += '<option value="'+value.id+'">'+value.nama+'</option>';
  180. });
  181. $('#subprogram-'+uniqid).append(opt);
  182. console.log(result.data);
  183. },
  184. error: function (xhr, exception) {
  185. var msg = "";
  186. if (xhr.status === 0) {
  187. msg = "Not connect.\n Verify Network." + xhr.responseText;
  188. } else if (xhr.status == 404) {
  189. msg = "Requested page not found. [404]" + xhr.responseText;
  190. } else if (xhr.status == 500) {
  191. msg = "Internal Server Error [500]." + xhr.responseText;
  192. } else if (exception === "parsererror") {
  193. msg = "Requested JSON parse failed.";
  194. } else if (exception === "timeout") {
  195. msg = "Time out error." + xhr.responseText;
  196. } else if (exception === "abort") {
  197. msg = "Ajax request aborted.";
  198. } else {
  199. msg = "Error:" + xhr.status + " " + xhr.responseText;
  200. }
  201. console.log(msg);
  202. }
  203. });
  204. }
  205. $('#btn-submit').on('click',function(){
  206. // var check = checkDuplicate();
  207. // if(check){
  208. var uniqids = '';
  209. $('.uniqid').each(function(i, obj) {
  210. if(uniqids!=''){
  211. uniqids += ',';
  212. }
  213. uniqids += obj.value;
  214. });
  215. $('#uniqids').val(uniqids);
  216. // }
  217. });
  218. function removeData(uniqid){
  219. $('#tr-'+uniqid).remove();
  220. // checkDuplicate();
  221. }
  222. function setJumlah(uniqid){
  223. var satuan = $('#satuan_'+uniqid).find(":selected").val();
  224. var jumlah = 0;
  225. if(satuan=='Tahun'){
  226. jumlah = 12;
  227. }else if(satuan=='Bulan'){
  228. jumlah = 1;
  229. }
  230. var option = '';
  231. for(var i = 1;i<=jumlah;i++){
  232. option += '<option value="'+i+'">'+i+'</option>';
  233. }
  234. $('#jumlah_'+uniqid).children('option').remove();
  235. $('#jumlah_'+uniqid).append(option);
  236. }
  237. </script>
  238. @endsection