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

@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>Keaktifan</h1>
      </div>
      <div class="col-sm-6">
        <ol class="breadcrumb float-sm-right">
          <li class="breadcrumb-item"><a href="{{ Route('adminIndexKeaktifan') }}">Keaktifan</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 | JUMLAH | KESIMPULAN |</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('adminImportKeaktifan') }}" 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('adminCreateKeaktifan') }}">Tambah Keaktifan</a>
                <a class="btn btn-danger delete_all" data-url="{{ url('keaktifansDeleteAll') }}">Hapus Terpilih</a>
                {{-- <a class="btn btn-default" href="{{ Route('adminEksportKeaktifan') }}">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="10%">Jumlah</th>
                  <th>Kesimpulan</th>
                  <th width="15%">Aksi</th>
                  <th width="5px"><input type="checkbox" id="master"></th>
                </tr>
              </thead>
              <tbody>
                @foreach ($keaktifans as $keaktifan)

                <tr id="tr_{{$keaktifan->idkeaktifan}}">
                  <td>{{ $loop->iteration }}</td>
                  <td>{{ $keaktifan->nim }}</td>
                  <td>{{ $keaktifan->nama }}</td>
                  <td>{{ $keaktifan->kodeprak }}</td>
                  <td>{{ $keaktifan->satu }}</td>
                  <td>{{ $keaktifan->dua }}</td>
                  <td>{{ $keaktifan->tiga }}</td>
                  <td>{{ $keaktifan->empat }}</td>
                  <td>{{ $keaktifan->lima }}</td>
                  <td>{{ $keaktifan->enam }}</td>
                  <td>{{ $keaktifan->tujuh }}</td>
                  <td>{{ $keaktifan->delapan }}</td>
                  <td>{{ $keaktifan->sembilan }}</td>
                  <td>{{ $keaktifan->sepuluh }}</td>
                  <td>{{ $keaktifan->jumlah }}</td>
                  <td>{{ $keaktifan->kesimpulan }}</td>
                  <td>
                    <form action="{{ route('adminDestroyKeaktifan',$keaktifan->idkeaktifan) }}" method="POST">

                      <a class="btn btn-primary" href="{{ route('adminEditKeaktifan',$keaktifan->idkeaktifan) }}">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="{{$keaktifan->idkeaktifan}}"></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, 15]
          }
        },
        {
          extend: 'csv',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
          }
        },
        {
          extend: 'excel',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
          }
        },
        {
          extend: 'pdf',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
          }
        },
        {
          extend: 'print',
          exportOptions: {
            columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
          }
        },
      ],
      // 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