SPKNETLAB / resources / views / dashboards / tugas / index.blade.php
index.blade.php
Raw
@extends('dashboards.layouts.dash-layout')
@section('title', 'Tugas')

@section('content')

<!-- Content Header (Page header) -->
<section class="content-header">
    <div class="container-fluid mt-2 px-3">
      <div class="row mb-2">
        <div class="col-sm-6">
          <h1>Tugas</h1>
        </div>
        <div class="col-sm-6">
          <ol class="breadcrumb float-sm-right">
            <li class="breadcrumb-item"><a href="{{ Route('adminIndexTugas') }}">Tugas</a></li>
          </ol>
        </div>
      </div>
    </div><!-- /.container-fluid -->
    
    @if ($message = Session::get('success'))
    <div class="container-fluid px-3">
      <div class="card card-success">
        <div class="card-header">
          <h3 class="card-title">SUKSES</h3>
    
          <div class="card-tools">
            <button type="button" class="btn btn-tool" data-card-widget="remove"><i class="fas fa-times"></i>
            </button>
          </div>
          <!-- /.card-tools -->
        </div>
        <!-- /.card-header -->
        <div class="card-body">
          <strong> {{ $message }} </strong>
          @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
          @endforeach
        </div>
        <!-- /.card-body -->
      </div>
      </div>
      @endif

      @if ($message = Session::get('gagal'))
    <div class="container-fluid px-3">
      <div class="card card-danger">
        <div class="card-header">
          <h3 class="card-title">DATA KODE PRAKTIKUM TIDAK DITEMUKAN!</h3>
    
          <div class="card-tools">
            <button type="button" class="btn btn-tool" data-card-widget="remove"><i class="fas fa-times"></i>
            </button>
          </div>
          <!-- /.card-tools -->
        </div>
        <!-- /.card-header -->
        <div class="card-body">
          <strong> {{ $message }} </strong>
          @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
          @endforeach
        </div>
        <!-- /.card-body -->
      </div>
      </div>
      @endif
  </section>

  <section class="content">
    <div class="container-fluid px-3">
      <div class="row">
        <div class="col-12">          
          <div class="card card-warning collapsed-card">
            <div class="card-header">
              <h3 class="card-title">Tambah Data Dari Excel</h3>

              <div class="card-tools">
                <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fas fa-plus"></i>
                </button>
              </div>
              <!-- /.card-tools -->
            </div>
            <!-- /.card-header -->
            <!-- form start -->
            <div class="card-body">
              <div class="form-group">
                <label for="">PENTING!</label>
                <P>Sebelum anda mengunggah data, bentuk header tabel excel untuk halaman ini adalah sebagai berikut:</P>
                <p>| NO | NIM | NAMA | PRAKTIKUM | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | RERATA |</p>
                <P>*Data excel harus berupa tabel dengan header huruf kapital dan nama seperti tertera diatas. <br> **Isi KOLOM PRAKTIKUM adalah [ KODE PRAKTIKUM][YY - YY] contoh JARKOM20-21</p>
              </div>
              <div class="form-group">
                <label for="exampleInputFile">Ungah File Excel</label>
                <div class="input-group">
                  <div class="custom-file">
                    <form action="{{ Route('adminImportTugas') }}" method="POST" enctype="multipart/form-data">
                    @csrf
                      <input type="file" class="custom-file-input" id="exampleInputFile" name="file">
                      <label class="custom-file-label" for="exampleInputFile">Pilih File</label>
                    </div>
                    <div class="input-group-append">
                      <button class="btn btn-secondary input-group-text">Unggah</span>
                    </div>
                  </form>
                  </div>
                </div>
              <!-- /.card-body -->
          </div>
          <!-- /.card -->
      </div>
      <!-- /.col -->
    </div>
    <!-- /.row -->
  </div>
  </div>
  <!-- /.container-fluid -->
</section>

  <!-- Main content -->
  <section class="content">
    <div class="container-fluid px-3">
      <div class="row">
        <div class="col-12">          
          <div class="card">
            <div class="card-header">
              <div class="card-tools">
                <div class="btn-group float-right">
                <a class="btn btn-default" href="{{ Route('adminCreateTugas') }}">Tambah Tugas</a>
                <a class="btn btn-danger delete_all" data-url="{{ url('tugassDeleteAll') }}">Hapus Terpilih</a>
                {{-- <a class="btn btn-default" href="{{ Route('adminEksportTugas') }}">Export Excel</a> --}}
                <button type="button" class="btn btn-default" data-card-widget="maximize"><i class="fas fa-expand"></i>
                </button>
            </div>
              </div>
            </div>
            <!-- /.card-header -->
            <div class="card-body">
              <table id="example1" class="table table-bordered table-striped">
                <thead>
                <tr>
                    <th width="5px">No</th>
                    <th>Nim</th>
                    <th>Nama</th>
                    <th>Kode Praktikum</th>
                    <th>1</th>
                    <th>2</th>
                    <th>3</th>
                    <th>4</th>
                    <th>5</th>
                    <th>6</th>
                    <th>7</th>
                    <th>8</th>
                    <th>9</th>
                    <th>10</th>
                    <th width="5%">Rerata</th>
                    <th width="15%">Aksi</th>
                    <th width="5px"><input type="checkbox" id="master"></th>
                </tr>
                </thead>
                <tbody>
                    @foreach ($tugass as $tugas)

                  <tr id="tr_{{$tugas->idtugas}}">
                      <td>{{ $loop->iteration }}</td>
                      <td>{{ $tugas->nim }}</td>
                      <td>{{ $tugas->nama }}</td>
                      <td>{{ $tugas->kodeprak }}</td>
                      <td>{{ $tugas->satu }}</td>
                      <td>{{ $tugas->dua }}</td>
                      <td>{{ $tugas->tiga }}</td>
                      <td>{{ $tugas->empat }}</td>
                      <td>{{ $tugas->lima }}</td>
                      <td>{{ $tugas->enam }}</td>
                      <td>{{ $tugas->tujuh }}</td>
                      <td>{{ $tugas->delapan }}</td>
                      <td>{{ $tugas->sembilan }}</td>
                      <td>{{ $tugas->sepuluh }}</td>
                      <td>{{ number_format($tugas->rerata,2) }}</td>
                      <td>
                          <form action="{{ route('adminDestroyTugas',$tugas->idtugas) }}" method="POST">
                              
                              <a class="btn btn-primary" href="{{ route('adminEditTugas',$tugas->idtugas) }}">Edit</a>
             
                              @csrf
                              @method('DELETE')
                
                              <button type="submit" class="btn btn-danger">Delete</button>
                          </form>
                      </td>
                      <td><input type="checkbox" class="sub_chk" data-id="{{$tugas->idtugas}}"></td>
                  </tr>
                  @endforeach
                </tfoot>
              </table>
            </div>
            <!-- /.card-body -->
          </div>
          <!-- /.card -->
        </div>
        <!-- /.col -->
      </div>
      <!-- /.row -->
    </div>
    <!-- /.container-fluid -->
  </section>
  @push('js')
  
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script>
  <script type="text/javascript" src="https://cdn.datatables.net/v/dt/dt-1.13.1/b-2.3.3/b-html5-2.3.3/b-print-2.3.3/datatables.min.js"></script>

  <script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.13.1/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.13.1/js/dataTables.bootstrap4.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/2.3.2/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/2.3.2/js/buttons.bootstrap4.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/2.3.2/js/buttons.html5.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/2.3.2/js/buttons.print.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/2.3.2/js/buttons.colVis.min.js"></script>

<script>
  $(document).on('change', '.custom-file-input', function(event) {
    $(this).next('.custom-file-label').html(event.target.files[0].name);
  })
</script>

<script>
  $(document).ready(function() {
    var table = $('#example1').DataTable({
      buttons: [{
          extend: 'copy',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
          }
        },
        {
          extend: 'csv',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
          }
        },
        {
          extend: 'excel',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
          }
        },
        {
          extend: 'pdf',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
          }
        },
        {
          extend: 'print',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
          }
        },
      ],
      // columnDefs: [ {
      //     targets: -1,
      //     visible: false
      // } ],
      lengthMenu: [
        [10, 25, 50, 100, -1],
        [10, 25, 50, 100, "All"]
      ],
      language: {
        lengthMenu: "Tampilkan _MENU_ data per halaman",
        zeroRecords: "Tidak ada data - Maaf",
        info: "Menampilkan halaman ke- _PAGE_ dari _PAGES_",
        infoEmpty: "Tidak ada data yang tersedia",
        infoFiltered: "(Filterisasi dari _MAX_ total data)",
        search: "Cari :",
        paginate: {
          first: "Awal",
          last: "Akhir",
          next: "Selanjutnya",
          previous: "Sebelumnya"
        },
      }
    });

    table.buttons().container()
      .appendTo('#example1_wrapper .col-md-6:eq(0)');


      $('#master').on('click', function(e) {
         if($(this).is(':checked',true))  
         {
            $(".sub_chk").prop('checked', true);  
         } else {  
            $(".sub_chk").prop('checked',false);  
         }  
        });

        $('.delete_all').on('click', function(e) {

            var allVals = [];  
            $(".sub_chk:checked").each(function() {  
                allVals.push($(this).attr('data-id'));
            });  

            if(allVals.length <=0)  
            {  
                alert("Silahkan Centang Data Terlebih Dahulu.");  
            }  else {  

                var check = confirm("Anda Akan Menghapus Data Terpilih, Apakah Yakin?");  
                if(check == true){  

                    var join_selected_values = allVals.join(","); 

                    $.ajax({
                        url: $(this).data('url'),
                        type: 'DELETE',
                        headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                        data: 'ids='+join_selected_values,
                        success: function (data) {
                            if (data['success']) {
                                $(".sub_chk:checked").each(function() {  
                                    $(this).parents("tr").remove();
                                });
                                if(!alert(data['success'])){window.location.reload();}
                                // alert(data['success']);
                            } else if (data['error']) {
                                alert(data['error']);
                            } else {
                                alert('Whoops Something went wrong!!');
                            }
                        },
                        error: function (data) {
                            alert(data.responseText);
                        }
                    });

                  $.each(allVals, function( index, value ) {
                      $('table tr').filter("[data-row-id='" + value + "']").remove();
                  });
                }  
            }  
        });

        // $('[data-toggle=confirmation]').confirmation({
        //     rootSelector: '[data-toggle=confirmation]',
        //     onConfirm: function (event, element) {
        //         element.trigger('confirm');
        //     }
        // });

        $(document).on('confirm', function (e) {
            var ele = e.target;
            e.preventDefault();

            $.ajax({
                url: ele.href,
                type: 'DELETE',
                headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                success: function (data) {
                    if (data['success']) {
                        $("#" + data['tr']).slideUp("fast");
                        alert(data['success']);
                    } else if (data['error']) {
                        alert(data['error']);
                    } else {
                        alert('Whoops Something went wrong!!');
                    }
                },
                error: function (data) {
                    alert(data.responseText);
                }
            });

            return false;
        });
    } );
  </script>
  @endpush
@endsection