templates/backend/dashboard/_card1.html.twig line 1

Open in your IDE?
  1. <style>
  2.     #dashboard-default[style*="display: none"] {
  3.   display: none !important;
  4.   visibility: hidden !important;
  5.   opacity: 0 !important;
  6. }
  7. </style>
  8. <div class="col-xxl-8 d-flex align-items-stretch">
  9.     <div class="card w-100 overflow-hidden rounded-4">
  10.         <div class="card-body position-relative p-4">
  11.             <div class="row">
  12.                 <div class="col-12 col-sm-10">
  13.                     <div class="d-flex align-items-center gap-3 mb-5">
  14.                         <img src="{{ asset('frontend/img/home.png') }}" class="rounded-circle bg-grd-info p-1" width="60" height="60" alt="user">
  15.                         <div class="">
  16.                             <p class="mb-0 fw-semibold">Welcome to</p>
  17.                             <h4 class="fw-semibold mb-0 fs-4 mb-0">Dashboard SGN</h4>
  18.                         </div>
  19.                     </div>
  20.                     <div class="d-flex align-items-center gap-3" id="dashboard-default">
  21.                         <div class="">
  22.                             <h4 class="mb-1 fw-semibold d-flex align-content-center">{{ res_dash['m_plant'][0]['jumlah'] }}<i class="ti ti-arrow-up-right fs-5 lh-base text-success"></i>
  23.                             </h4>
  24.                             <p class="mb-3">PG
  25.                                 <font style="font-size:8px">+
  26.                                     {{ res_dash['m_plant'][1]['jumlah'] }}
  27.                                     MKSO</font>
  28.                             </p>
  29.                             <div
  30.                                 class="progress mb-0" style="height:5px;">{# <div class="progress-bar bg-grd-danger" role="progressbar" style="width: 60%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div> #}
  31.                             </div>
  32.                         </div>
  33.                         <div class="vr"></div>
  34.                         <div class="" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-theme="dark" title="Jumlah PR dari Kolom no_pr Berdasarkan Filter Tahun Anggaran atau Tahun Kalender (tgl_verifikasi_pr)">
  35.                             <h4 class="mb-1 fw-semibold d-flex align-content-center">{{ ungroup[0]['total_pr']  }}<i class="ti ti-arrow-up-right fs-5 lh-base text-success"></i>
  36.                             </h4>
  37.                             <p class="mb-3">Jumlah PR</p>
  38.                             <div
  39.                                 class="progress mb-0" style="height:5px;">{# <div class="progress-bar bg-grd-danger" role="progressbar" style="width: 60%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div> #}
  40.                             </div>
  41.                         </div>
  42.                         <div class="vr"></div>
  43.                         <div class="" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-theme="dark" title="Jumlah PK dari Kolom no_pk Berdasarkan Filter Tahun Anggaran atau Tahun Kalender (tgl_submit_pk_ke_hps)">
  44.                             <h4 class="mb-1 fw-semibold d-flex align-content-center">{{ ungroup[0]['total_pk']  }}<i class="ti ti-arrow-up-right fs-5 lh-base text-success"></i>
  45.                             </h4>
  46.                             <p class="mb-3">Jumlah PK</p>
  47.                             <div
  48.                                 class="progress mb-0" style="height:5px;">{# <div class="progress-bar bg-grd-danger" role="progressbar" style="width: 60%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div> #}
  49.                             </div>
  50.                         </div>
  51.                         <div class="vr"></div>
  52.                         <div class="" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-theme="dark" title="Jumlah PP dari Kolom no_pp Berdasarkan Filter Tahun Anggaran atau Tahun Kalender (tgl_approval_sppbj)">
  53.                             <h4 class="mb-1 fw-semibold d-flex align-content-center">{{ ungroup[0]['total_pp']  }}<i class="ti ti-arrow-up-right fs-5 lh-base text-success"></i>
  54.                             </h4>
  55.                             <p class="mb-3">Jumlah PP</p>
  56.                             <div
  57.                                 class="progress mb-0" style="height:5px;">{# <div class="progress-bar bg-grd-success" role="progressbar" style="width: 60%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div> #}
  58.                             </div>
  59.                         </div>
  60.                         <div class="vr"></div>
  61.                         <div class="" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-theme="dark" title="Nilai Paket Pengadaan diambil dari Kolom Total Nilai Berdasarkan Filter Tahun Anggaran atau Tahun Kalender (tgl_verifikasi_pr)">
  62.                             <h4 class="mb-1 fw-semibold d-flex align-content-center">{{ (ungroup[0]['total_nilai']/1000000000000) |number_format(2, '.', ',')  }}T
  63.                                 <i class="ti ti-arrow-up-right fs-5 lh-base text-success"></i>
  64.                             </h4>
  65.                             <p class="mb-3">Nilai PK</p>
  66.                             <div
  67.                                 class="progress mb-0" style="height:5px;">{# <div class="progress-bar bg-grd-success" role="progressbar" style="width: 60%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div> #}
  68.                             </div>
  69.                         </div>
  70.                         <div class="vr"></div>
  71.                         <div class="" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-theme="dark" title="Jumlah SPPBJ dari Kolom no_sppbj Berdasarkan Filter kategori_tahap Selesai(pemilihan penyedia), Tahun Anggaran atau Tahun Kalender (tgl_approval_sppbj)">
  72.                             <h4 class="mb-1 fw-semibold d-flex align-content-center">{{ ungroup[0]['total_sppbj'] }}
  73.                                 <i class="ti ti-arrow-up-right fs-5 lh-base text-success"></i>
  74.                             </h4>
  75.                             <p class="mb-3">Jumlah SPPBJ</p>
  76.                             <div
  77.                                 class="progress mb-0" style="height:5px;">{# <div class="progress-bar bg-grd-success" role="progressbar" style="width: 60%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div> #}
  78.                             </div>
  79.                         </div>
  80.                         <div class="vr"></div>
  81.                         <div class="" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-theme="dark" title="Jumlah Vendor Pememenang dari Kolom vendor_pememang Berdasarkan Filter kategori_tahap Selesai(pemilihan penyedia), Tahun Anggaran atau Tahun Kalender (tgl_approval_sppbj)">
  82.                             <h4 class="mb-1 fw-semibold d-flex align-content-center">{{ ungroup[0]['total_vendor_pemenang']  }}
  83.                                 <i class="ti ti-arrow-up-right fs-5 lh-base text-success"></i>
  84.                             </h4>
  85.                             <p class="mb-3">Jumlah Vendor Pemenang</p>
  86.                             <div
  87.                                 class="progress mb-0" style="height:5px;">{# <div class="progress-bar bg-grd-success" role="progressbar" style="width: 60%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div> #}
  88.                             </div>
  89.                         </div>
  90.                     </div>
  91.                     <div class="d-flex align-items-center gap-3" id="dashboard-ajax" style="display:none;">
  92.                     </div>
  93.                 </div>
  94.                 {# <div class="col-12 col-sm-2">
  95.                     <div class="welcome-back-img pt-4">
  96.                         <img src="{{ asset('frontend/img/logo.png') }}" height="100" alt="">
  97.                     </div>
  98.                 </div> #}
  99.             </div>
  100.             <!--end row-->
  101.         </div>
  102.     </div>
  103. </div>
  104. <script>
  105. $(document).ready(function() {
  106.  // 1️⃣ Saat pertama kali halaman load — langsung isi nilai tahun ke hidden input
  107.   var tahun_awal = $("#tahun").val();
  108.   $("#tahun_anggaran_hidden").val(tahun_awal);
  109.   // 2️⃣ Kalau user ubah tahun — otomatis update hidden input juga
  110.   $("#tahun").on("change", function() {
  111.     $("#tahun_anggaran_hidden").val($(this).val());
  112.   });
  113.   // === tampilkan field sesuai pilihan ===
  114.   function toggleFilter(tipe) {
  115.     if (tipe == 1) {
  116.       $('.mingguan').show();
  117.       $('.bulanan, .tahunan').hide();
  118.     } else if (tipe == 2) {
  119.       $('.bulanan').show();
  120.       $('.mingguan, .tahunan').hide();
  121.     } else {
  122.       $('.tahunan').show();
  123.       $('.mingguan, .bulanan').hide();
  124.     }
  125.   }
  126.   // tampilkan default: mingguan
  127.   toggleFilter(1);
  128.   // saat dropdown periode berubah
  129.   $("#tipe_filter").change(function() {
  130.     toggleFilter($(this).val());
  131.   });
  132. });
  133. // === kirim AJAX saat form disubmit ===
  134.   // === kirim AJAX saat form disubmit ===
  135. $("#form_id").on("submit", function(e) {
  136.   e.preventDefault();
  137.   // Langsung sembunyikan dashboard default dulu
  138.   $("#dashboard-default").css("display", "none");
  139.   
  140.   // Kosongkan dashboard ajax supaya gak dobel
  141.   $("#dashboard-ajax").html("").show();
  142.   $.ajax({
  143.     url: "{{ path('dashboard_card_ungroup') }}",
  144.     type: "POST",
  145.     data: $(this).serialize(),
  146.     beforeSend: function() {
  147.       $("#dashboard-ajax").html(
  148.         `<div class="text-center p-3">
  149.           <div class="spinner-border text-primary" role="status"></div><br/>Loading...
  150.         </div>`
  151.       );
  152.     },
  153.     success: function(result) {
  154.       // pastikan default tetap tersembunyi
  155.       $("#dashboard-default").css("display", "none");
  156.       // tampilkan hasil AJAX
  157.       $("#dashboard-ajax").html(result).show();
  158.     },
  159.     error: function() {
  160.       // kalau error, tampilkan default kembali
  161.       $("#dashboard-default").css("display", "block");
  162.       $("#dashboard-ajax").html(
  163.         `<div class="alert alert-danger p-3 text-center">
  164.           Terjadi kesalahan saat memuat data.
  165.         </div>`
  166.       );
  167.     }
  168.   });
  169. });
  170. </script>