fix exclude is_valid false and clickable dashboard simbg

This commit is contained in:
arifal
2025-08-19 14:06:07 +07:00
parent e9a70a827c
commit 3cddd271c8
6 changed files with 278 additions and 30 deletions

View File

@@ -43,19 +43,29 @@ class PbgTasks {
handleFilterDatatable() {
const form = document.getElementById("filter-form");
const filterSelect = document.getElementById("filter-select");
const yearSelect = document.getElementById("year-select");
const resetBtn = document.getElementById("reset-filter");
const urlParams = new URLSearchParams(window.location.search);
const initialFilter = urlParams.get("filter") || "";
const initialYear = urlParams.get("year") || "2025"; // Default to 2025
this.initTableRequestAssignment(initialFilter); // Initial load with query param
// Set initial year if not in URL
if (!urlParams.get("year")) {
yearSelect.value = "2025";
}
this.initTableRequestAssignment(initialFilter, initialYear); // Initial load with query params
form.addEventListener("submit", (e) => {
e.preventDefault();
const selectedFilter = filterSelect.value;
const selectedYear = yearSelect.value;
const params = new URLSearchParams(window.location.search);
params.set("filter", selectedFilter);
params.set("year", selectedYear);
// Update the URL without reloading
window.history.replaceState(
@@ -64,12 +74,27 @@ class PbgTasks {
`${location.pathname}?${params}`
);
// Call the method again with the selected filter
this.initTableRequestAssignment(selectedFilter);
// Call the method again with the selected filter and year
this.initTableRequestAssignment(selectedFilter, selectedYear);
});
// Handle reset button
resetBtn.addEventListener("click", (e) => {
e.preventDefault();
// Reset form values
filterSelect.value = "";
yearSelect.value = "2025";
// Clear URL parameters
window.history.replaceState({}, "", location.pathname);
// Reload table with default values
this.initTableRequestAssignment("", "2025");
});
}
initTableRequestAssignment(filterValue = "") {
initTableRequestAssignment(filterValue = "", yearValue = "2025") {
const urlBase = `${GlobalConfig.apiHost}/api/request-assignments`;
// Ambil token
@@ -179,7 +204,7 @@ class PbgTasks {
},
sort: true,
server: {
url: `${urlBase}?filter=${filterValue}`,
url: `${urlBase}?filter=${filterValue}&year=${yearValue}`,
credentials: "include",
headers: {
Authorization: `Bearer ${token}`,
@@ -365,7 +390,18 @@ class PbgTasks {
self.toastMessage.innerText =
"File uploaded successfully!";
self.toast.show();
self.initTableRequestAssignment();
// Get current filter and year values to refresh table
const currentFilter =
document.getElementById("filter-select").value ||
"";
const currentYear =
document.getElementById("year-select").value ||
"2025";
self.initTableRequestAssignment(
currentFilter,
currentYear
);
});
dz.on("error", (file, message) => {

View File

@@ -58,7 +58,7 @@
'document_id' => 'chart-total-potensi',
'visible_small_circle' => true,
'style' => 'left:400px;top:150px;',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'potention'])
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'potention', 'year' => date('Y')])
])
@endcomponent
@@ -82,16 +82,7 @@
<div class="square dia-top-right-bottom-left" style="top:150px;left:550px;">
</div>
@component('components.circle', [
'document_title' => 'Non Usaha',
'document_color' => '#399787',
'document_type' => 'Berkas',
'document_id' => 'chart-non-business',
'visible_small_circle' => true,
'style' => 'left:900px;top:150px;',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'non-business'])
])
@endcomponent
<div class="square dia-top-right-bottom-left" style="top:80px;left:1050px;width:150px;height:150px;">
</div>
@@ -143,6 +134,17 @@
/>
</div>
@component('components.circle', [
'document_title' => 'Non Usaha',
'document_color' => '#399787',
'document_type' => 'Berkas',
'document_id' => 'chart-non-business',
'visible_small_circle' => true,
'style' => 'left:900px;top:150px;',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'non-business', 'year' => date('Y')])
])
@endcomponent
@component('components.circle', [
'document_title' => 'Usaha',
'document_color' => '#5e7c89',
@@ -150,7 +152,7 @@
'document_id' => 'chart-business',
'visible_small_circle' => true,
'style' => 'left:900px;top:400px;',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'business'])
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'business', 'year' => date('Y')])
])
@endcomponent
@@ -161,7 +163,7 @@
'document_id' => 'chart-berkas-terverifikasi',
'visible_small_circle' => true,
'style' => 'top:300px;left:200px;',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'verified'])
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'verified', 'year' => date('Y')])
])
@endcomponent
@@ -178,7 +180,7 @@
'document_id' => 'chart-berkas-belum-terverifikasi',
'visible_small_circle' => true,
'style' => 'top:300px;left:600px;',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'non-verified'])
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'non-verified', 'year' => date('Y')])
])
@endcomponent
@@ -196,7 +198,7 @@
'document_id' => 'chart-realisasi-tebit-pbg',
'visible_small_circle' => true,
'style' => 'top:550px;left:100px;',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'issuance-realization-pbg'])
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'issuance-realization-pbg', 'year' => date('Y')])
])
@endcomponent
@@ -210,7 +212,7 @@
'document_id' => 'chart-menunggu-klik-dpmptsp',
'visible_small_circle' => true,
'style' => 'top:550px;left:400px',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'waiting-click-dpmptsp'])
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'waiting-click-dpmptsp', 'year' => date('Y')])
])
@endcomponent
@@ -224,7 +226,7 @@
'document_id' => 'chart-proses-dinas-teknis',
'visible_small_circle' => true,
'style' => 'top:550px;left:700px',
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'process-in-technical-office'])
'document_url' => route('pbg-task.index', ['menu_id' => $menus->where('url','pbg-task.index')->first()->id, 'filter' => 'process-in-technical-office', 'year' => date('Y')])
])
@endcomponent
</div>

View File

@@ -44,9 +44,10 @@
</div>
<form id="filter-form">
<div class="row pb-3">
<div class="col-md-4">
<select name="filter" id="filter-select" class="form-select">
<div class="row pb-3 align-items-end">
<div class="col-lg-3 col-md-4 mb-2">
<label for="filter-select" class="form-label fw-semibold text-dark">Filter Type</label>
<select name="filter" id="filter-select" class="form-select form-select-sm border-2">
@foreach ($filterOptions as $key => $label)
<option value="{{ $key }}" {{ request('filter') == $key ? 'selected' : '' }}>
{{ $label }}
@@ -55,8 +56,32 @@
</select>
<input name="menu_id" value="13" type="hidden" />
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-primary w-100">Apply</button>
<div class="col-lg-2 col-md-3 mb-2">
<label for="year-select" class="form-label fw-semibold text-dark">Tahun</label>
<select name="year" id="year-select" class="form-select form-select-sm border-2">
@php
$currentYear = date('Y');
$selectedYear = request('year', 2025); // Default to 2025
@endphp
@for ($year = $currentYear; $year >= 2020; $year--)
<option value="{{ $year }}" {{ $selectedYear == $year ? 'selected' : '' }}>
{{ $year }}
</option>
@endfor
</select>
</div>
<div class="col-lg-4 col-md-4 mb-2">
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary btn-sm py-2 fw-semibold shadow-sm">
<i class="fas fa-filter me-1"></i>Terapkan
</button>
<button type="button" id="reset-filter" class="btn btn-outline-secondary btn-sm py-2 fw-semibold">
<i class="fas fa-undo me-1"></i>Reset
</button>
</div>
</div>
<div class="col-lg-1 col-md-0">
<!-- Space for additional controls if needed -->
</div>
</div>
</form>