Update nama folder admin

This commit is contained in:
daffarahman11 2025-04-23 23:07:01 +07:00
parent 145d8ea2a8
commit 12a3efe645
21 changed files with 1595 additions and 0 deletions

View File

@ -0,0 +1,211 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid">
<div class="row">
<div class="col-lg-4">
<div class="card card-transparent card-block card-stretch card-height border-none">
<div class="card-body p-0 mt-lg-2 mt-0">
<h3 class="mb-3">Hai {{ Auth::user()->nama }}</h3>
<p class="mb-0 mr-4">Selamat Datang di Dashboard Admin Sistem Informasi Geografis (SIG) PROTECT</p>
</div>
</div>
</div>
<div class="col-lg-8">
<div class="row">
<div class="col-lg-4 col-md-4">
<div class="card card-block card-stretch card-height">
<div class="card-body">
<div class="d-flex align-items-center mb-4 card-total-sale">
<div class="icon iq-icon-box-2 bg-info-light">
<img src="../assets/images/product/1.png" class="img-fluid" alt="image">
</div>
<div>
<p class="mb-2">
<strong> Kecamatan Rawan Curas </strong>
</p>
<h4>{{ $jumlahRawanCuras }}</h4>
</div>
</div>
<div class="iq-progress-bar mt-2">
<span class="bg-info iq-progress progress-1" data-percent="{{ $prosentaseCuras }}">
</span>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-4">
<div class="card card-block card-stretch card-height">
<div class="card-body">
<div class="d-flex align-items-center mb-4 card-total-sale">
<div class="icon iq-icon-box-2 bg-danger-light">
<img src="../assets/images/product/2.png" class="img-fluid" alt="image">
</div>
<div>
<p class="mb-2">
<strong> Kecamatan Rawan Ranmor </strong>
</p>
<h4>{{ $jumlahRawanCuranmor }}</h4>
</div>
</div>
<div class="iq-progress-bar mt-2">
<span class="bg-danger iq-progress progress-1" data-percent="{{ $prosentaseCuranmor }}">
</span>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-4">
<div class="card card-block card-stretch card-height">
<div class="card-body">
<div class="d-flex align-items-center mb-4 card-total-sale">
<div class="icon iq-icon-box-2 bg-success-light">
<img src="../assets/images/product/3.png" class="img-fluid" alt="image">
</div>
<div>
<p class="mb-2">
<strong>Kecamatan Kab Probolinggo</strong>
</p>
<h4>{{ $totalKecamatan }}</h4>
</div>
</div>
<div class="iq-progress-bar mt-2">
<span class="bg-success iq-progress progress-1" data-percent="100">
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="card card-block card-stretch card-height">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Pemetaan Curas dan Curanmor Kab Probolinggo</h4>
</div>
<div class="card-header-toolbar d-flex align-items-center">
<div class="dropdown">
<span id="dropdownMenuButton001" class="dropdown-toggle dropdown-bg btn" data-toggle="dropdown">
<span id="currentMapLabel">Curas</span> <i class="ri-arrow-down-s-line ml-1"></i>
</span>
<div class="dropdown-menu dropdown-menu-right shadow-none"
aria-labelledby="dropdownMenuButton001">
<a class="dropdown-item" href="#" id="btn-curas">Curas</a>
<a class="dropdown-item" href="#" id="btn-curanmor">Curanmor</a>
</div>
</div>
</div>
</div>
<div class="card-body">
<div id="map" style="width: 100%; height: 500px;" ></div>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
{{-- Script MAP --}}
<script>
let map;
let geoLayer;
let mapTitle = document.querySelector('.card-title');
let apiUrl = "{{ url('/api/map/curas') }}"; // default awal curas
let curasData = {};
function fetchAndLoadMap(url, titleText) {
fetch(url)
.then(res => res.json())
.then(data => {
curasData = {};
data.forEach(item => {
curasData[item.kecamatan] = item;
});
mapTitle.textContent = titleText;
if (geoLayer) {
geoLayer.remove(); // hapus layer lama
}
geoLayer = new L.GeoJSON.AJAX(["{{ asset('/assets/map/gisProbolinggo.geojson') }}"], {
style: styleFeature,
onEachFeature: popUp
});
geoLayer.addTo(map);
});
}
function getColor(warna) {
return warna || '#cccccc';
}
function styleFeature(feature) {
let namaKecamatan = feature.properties.WADMKC;
let data = curasData[namaKecamatan];
return {
fillColor: data ? getColor(data.warna) : '#cccccc',
weight: 1,
opacity: 1,
color: 'white',
fillOpacity: 0.7
};
}
function popUp(feature, layer) {
let namaKecamatan = feature.properties.WADMKC;
let data = curasData[namaKecamatan];
let content = `<strong>Kecamatan ${namaKecamatan}</strong><br/><br/>`;
if (data) {
if ('jumlah_curas' in data) {
content += `Jumlah Curas: ${data.jumlah_curas}<br/>Kategori: ${data.klaster}`;
} else if ('jumlah_curanmor' in data) {
content += `Jumlah Curanmor: ${data.jumlah_curanmor}<br/>Kategori: ${data.klaster}`;
}
} else {
content += `Data tidak tersedia`;
}
layer.bindPopup(content);
}
function loadInitialMap() {
map = L.map('map').setView([-7.843271790154591, 113.2990930356143], 10);
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}).addTo(map);
fetchAndLoadMap(apiUrl, 'Pemetaan Curas Kab Probolinggo');
}
// Event dropdown
document.addEventListener('DOMContentLoaded', () => {
loadInitialMap();
document.getElementById('btn-curas').addEventListener('click', (e) => {
e.preventDefault();
fetchAndLoadMap("{{ url('/api/map/curas') }}", "Pemetaan Curas Kab Probolinggo");
});
document.getElementById('btn-curanmor').addEventListener('click', (e) => {
e.preventDefault();
fetchAndLoadMap("{{ url('/api/map/curanmor') }}", "Pemetaan Curanmor Kab Probolinggo");
});
});
</script>
<script>
document.querySelectorAll('.dropdown-item').forEach(function(item) {
item.addEventListener('click', function(e) {
e.preventDefault();
document.getElementById('currentMapLabel').textContent = this.textContent;
});
});
</script>
</x-layoutAdmin>

View File

@ -0,0 +1,3 @@
<x-layout-admin>
</x-layout-admin>

View File

@ -0,0 +1,72 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="d-flex flex-wrap align-items-center justify-content-between mb-4">
<div>
<h4 class="mb-3">Detail Kasus Curanmor Per Tanggal</h4>
<p class="mb-0">Berikut ini merupakan rincian kasus Pencurian Kendaraan Bermotor (CURANMOR)
yang dikelompokkan berdasarkan tanggal di inputkannya kasus CURANMOR yang terjadi</p>
</div>
</div>
@if (session()->has('succes'))
<div class="alert alert-success" role="alert">
{{ session('succes') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
</div>
<div class="col-lg-12">
<div class="table-responsive rounded mb-3">
<table class="data-table table mb-0 tbl-server-info">
<thead class="bg-white text-uppercase">
<tr class="ligth ligth-data">
<th>Tanggal</th>
<th>Nama Kecamatan</th>
<th>Tambahan Kasus Curanmor</th>
<th>Total Curanmor Per Kecamatan</th>
<th>Batalkan Update Kasus</th>
</tr>
</thead>
<tbody class="ligth-body">
@php
$grouped = $detail_curanmor->groupBy(function($item) {
return $item->created_at->format('Y-m-d');
});
@endphp
@foreach($grouped as $tanggal => $items)
@foreach($items as $index => $detail)
<tr>
@if ($index == 0)
<td rowspan="{{ $items->count() }}">{{ \Carbon\Carbon::parse($tanggal)->translatedFormat('d F Y') }}</td>
@endif
<td class="text-left">{{ $detail->detailCuranmor_Kecamatan->nama_kecamatan }}</td>
<td class="text-center">{{ $detail->tambahan_curanmor }}</td>
<td class="text-center">{{ $detail->detailCuranmor_Curanmor->jumlah_curanmor }}</td>
<td>
<div class="d-flex align-items-center list-action">
<form action="/dashboard/detail-curanmor/{{ $detail->id }}" method="post" class="d-inline">
@method('delete')
@csrf
<button type="submit" class="badge bg-warning mr-2 border-0"><i class="ri-delete-bin-line mr-0"></i></button>
</form>
</div>
</td>
</tr>
@endforeach
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,72 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="d-flex flex-wrap align-items-center justify-content-between mb-4">
<div>
<h4 class="mb-3">Detail Kasus Curas Per Tanggal</h4>
<p class="mb-0">Berikut ini merupakan rincian kasus Pencurian Dengan Kekerasan (CURAS)
yang dikelompokkan berdasarkan tanggal di inputkannya kasus CURAS yang terjadi</p>
</div>
</div>
@if (session()->has('succes'))
<div class="alert alert-success" role="alert">
{{ session('succes') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
</div>
<div class="col-lg-12">
<div class="table-responsive rounded mb-3">
<table class="data-table table mb-0 tbl-server-info">
<thead class="bg-white text-uppercase">
<tr class="ligth ligth-data">
<th>Tanggal</th>
<th>Nama Kecamatan</th>
<th>Tambahan Kasus Curas</th>
<th>Total Curas Per Kecamatan</th>
<th>Batalkan Update Kasus</th>
</tr>
</thead>
<tbody class="ligth-body">
@php
$grouped = $detail_curas->groupBy(function($item) {
return $item->created_at->format('Y-m-d');
});
@endphp
@foreach($grouped as $tanggal => $items)
@foreach($items as $index => $detail)
<tr>
@if ($index == 0)
<td rowspan="{{ $items->count() }}">{{ \Carbon\Carbon::parse($tanggal)->translatedFormat('d F Y') }}</td>
@endif
<td class="text-left">{{ $detail->detailCuras_Kecamatan->nama_kecamatan }}</td>
<td class="text-center">{{ $detail->tambahan_curas }}</td>
<td class="text-center">{{ $detail->detailCuras_Curas->jumlah_curas }}</td>
<td>
<div class="d-flex align-items-center list-action">
<form action="/dashboard/detail-curas/{{ $detail->id }}" method="post" class="d-inline">
@method('delete')
@csrf
<button type="submit" class="badge bg-warning mr-2 border-0"><i class="ri-delete-bin-line mr-0"></i></button>
</form>
</div>
</td>
</tr>
@endforeach
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,60 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid add-form-list">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Ubah Data Kasus CURANMOR Pada Kecamatan
{{ $curanmor->punyaKecamatanCuranmor->nama_kecamatan}}</h4>
</div>
</div>
<div class="card-body">
<form action="/dashboard/curanmor/{{ $curanmor->id }}" data-toggle="validator" method="post">
@method('put')
@csrf
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Nama Kecamatan *</label>
<input type="text" class="form-control" placeholder="Nama Kecamatan"
id="nama_kecamatan" name="nama_kecamatan"
value="{{ $curanmor->punyaKecamatanCuranmor->nama_kecamatan }}"
readonly>
<!-- Input hidden untuk mengirim ID kecamatan -->
<input type="hidden" name="kecamatan_id" value="{{ $curanmor->kecamatan_id }}">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Jumlah Kasus Curanmor *</label>
<input type="text" class="form-control" placeholder="Jumlah Kasus Curanmor" id="jumlah_curanmor" name="jumlah_curanmor" value="{{ old('jumlah_curanmor', $curanmor ->jumlah_curanmor )}}">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Klaster *</label>
<select class="selectpicker form-control" data-style="py-0" name="klaster_id" id="klaster_id">
<option value="" selected disabled>Pilih Klaster</option>
@foreach ( $klasters as $klaster )
<option value="{{ $klaster->id }}" style="background-color: {{ $klaster->warna }}" {{ old('klaster_id', $curanmor->klaster_id) == $klaster->id ? 'selected' : '' }}>{{ $klaster->nama_klaster }}</option>
@endforeach
</select>
</div>
</div>
</div>
<button type="submit" class="btn btn-primary mr-2">Ubah Data Kasus CURANMOR</button>
<button type="reset" class="btn btn-danger">Reset</button>
</form>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,64 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid add-form-list">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Ubah Data Kasus CURAS Pada Kecamatan
{{ $curas->punyaKecamatanCuras->nama_kecamatan}}</h4>
</div>
</div>
<div class="card-body">
<form action="/dashboard/curas/{{ $curas->id }}" data-toggle="validator" method="post">
@method('put')
@csrf
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Nama Kecamatan *</label>
<input type="text" class="form-control" placeholder="Nama Kecamatan"
id="nama_kecamatan" name="nama_kecamatan"
value="{{ $curas->punyaKecamatanCuras->nama_kecamatan }}"
readonly>
<input type="hidden" name="kecamatan_id" value="{{ $curas->kecamatan_id }}">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Jumlah Kasus Curas *</label>
<input type="text" class="form-control" placeholder="Jumlah Kasus Curas" id="jumlah_curas" name="jumlah_curas" value="{{ old('jumlah_curas', $curas ->jumlah_curas )}}">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Klaster *</label>
<select class="selectpicker form-control" data-style="py-0" name="klaster_id" id="klaster_id">
<option value="" selected disabled>Pilih Klaster</option>
@foreach ( $klasters as $klaster )
<option value="{{ $klaster->id }}" style="background-color: {{ $klaster->warna }}" {{ old('klaster_id', $curas->klaster_id) == $klaster->id ? 'selected' : '' }}>{{ $klaster->nama_klaster }}</option>
@endforeach
</select>
</div>
</div>
</div>
<button type="submit" class="btn btn-primary mr-2">Ubah Data Kasus Curas</button>
<button type="reset" class="btn btn-danger">Reset</button>
</form>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,39 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid add-form-list">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Ubah Data Kecamatan</h4>
</div>
</div>
<div class="card-body">
<form action="/dashboard/kecamatan/{{ $kecamatan -> id }}" data-toggle="validator" method="post">
@method('put')
@csrf
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Nama Kecamatan</label>
<input type="text" class="form-control @error('detail') is-invalid @enderror" placeholder="Nama Kecamatan" value="{{ old('nama_kecamatan', $kecamatan -> nama_kecamatan )}}" id="nama_kecamatan" name="nama_kecamatan">
@error('nama_kecamatan')
<div class="invalid-feedback">{{$message}}
</div>
@enderror
</div>
</div>
</div>
<button type="submit" class="btn btn-primary mr-2">Ubah Data Kecamatan</button>
<button type="reset" class="btn btn-danger">Reset</button>
</form>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,49 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid add-form-list">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Ubah Data Klaster</h4>
</div>
</div>
<div class="card-body">
<form action="/dashboard/klaster/{{ $klaster->id }}" data-toggle="validator" method="POST">
@method('put')
@csrf
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Nama Klaster</label>
<input type="text" class="form-control @error('nama_klaster') is-invalid @enderror" placeholder="Nama Klaster" id="nama_klaster" name="nama_klaster" value="{{ old('nama_klaster', $klaster -> nama_klaster )}}">
@error('nama_klaster')
<div class="invalid-feedback">{{$message}}
</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Pilih Warna</label>
<input type="color" class="form-control @error('warna') is-invalid @enderror" placeholder="warna" id="warna" name="warna" value="{{ old('warna', $klaster -> warna )}}">
@error('warna')
<div class="invalid-feedback">{{$message}}
</div>
@enderror
</div>
</div>
</div>
<button type="submit" class="btn btn-primary mr-2">Ubah Data Klaster </button>
<button type="reset" class="btn btn-danger">Reset</button>
</form>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,70 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="d-flex flex-wrap align-items-center justify-content-between mb-4">
<div>
<h4 class="mb-3">Iterasi K-Means Untuk Kasus Curas</h4>
<p class="mb-0">Sales enables you to effectively control sales KPIs and monitor them in one central<br>
place while helping teams to reach sales goals. </p>
</div>
<a href="/curas/create" class="btn btn-primary add-list"><i class="las la-plus mr-3"></i>Tambah Kasus Curas</a>
</div>
@if (session()->has('succes'))
<div class="alert alert-success" role="alert">
{{ session('succes') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
</div>
<div class="col-lg-12">
@foreach ($iterasi as $i => $baris)
<h4>Iterasi {{ $i + 1 }}</h4>
<div class="table-responsive rounded mb-3">
<table class="data-table table mb-0 tbl-server-info">
<thead class="bg-white text-uppercase">
<tr class="ligth ligth-data">
<th>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox1">
<label for="checkbox1" class="mb-0"></label>
</div>
</th>
<th>No</th>
<th>Nama Kecamatan</th>
<th>Jarak Ke Centroid 1</th>
<th>Jarak Ke Centroid 2</th>
<th>Jarak Ke Centroid 3</th>
</tr>
</thead>
@foreach ($baris as $row)
<tbody class="ligth-body">
<tr>
<td>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox2">
<label for="checkbox2" class="mb-0"></label>
</div>
</td>
<td>{{ $loop->iteration }}</td>
<td>{{ $row['kecamatan_id'] }}</td>
<td>{{ $row['jarakC1'] }}</td>
<td>{{ $row['jarakC2'] }}</td>
<td>{{ $row['jarakC3'] }}</td>
</tr>
</tbody>
@endforeach
</table>
</div>
@endforeach
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,65 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="d-flex flex-wrap align-items-center justify-content-between mb-4">
<div>
<h4 class="mb-3">Daftar Kasus Pencurian Kendaraan Bermotor (CURANMOR)</h4>
<p class="mb-0">Berikut ini merupakan data kasus Pencurian Kendaraan Bermotor (CURANMOR) pada <br>
masing masing kecamatan di Kabupaten Probolinggo</p>
</div>
<a href="/dashboard/curanmor/create" class="btn btn-primary add-list"><i class="las la-plus mr-3"></i>Tambah Kasus Curanmor</a>
</div>
@if (session()->has('succes'))
<div class="alert alert-success" role="alert">
{{ session('succes') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
</div>
<div class="col-lg-12">
<div class="table-responsive rounded mb-3">
<table class="data-table table mb-0 tbl-server-info">
<thead class="bg-white text-uppercase">
<tr class="ligth ligth-data">
<th>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox1">
<label for="checkbox1" class="mb-0"></label>
</div>
</th>
<th>No</th>
<th>Nama Kecamatan</th>
<th>Jumlah Kasus Curanmor</th>
<th>Klaster</th>
</tr>
</thead>
@foreach ( $curanmors as $curanmor )
<tbody class="ligth-body">
<tr>
<td>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox2">
<label for="checkbox2" class="mb-0"></label>
</div>
</td>
<td>{{ $loop->iteration }}</td>
<td>{{ $curanmor->punyaKecamatanCuranmor->nama_kecamatan}}</td>
<td>{{ $curanmor->jumlah_curanmor }}</td>
<td style="background-color: {{ $curanmor->punyaKlasterCuranmor->warna }}">{{ $curanmor->punyaKlasterCuranmor->nama_klaster }}</td>
</tr>
</tbody>
@endforeach
</table>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,65 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="d-flex flex-wrap align-items-center justify-content-between mb-4">
<div>
<h4 class="mb-3">Daftar Kasus Pencurian Dengan Kekerasan (CURAS)</h4>
<p class="mb-0">Berikut ini merupakan data kasus Pencurian Dengan Kekerasan (CURAS) pada <br>
masing masing kecamatan di Kabupaten Probolinggo</p>
</div>
<a href="/dashboard/curas/create" class="btn btn-primary add-list"><i class="las la-plus mr-3"></i>Tambah Kasus Curas</a>
</div>
@if (session()->has('succes'))
<div class="alert alert-success" role="alert">
{{ session('succes') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
</div>
<div class="col-lg-12">
<div class="table-responsive rounded mb-3">
<table class="data-table table mb-0 tbl-server-info">
<thead class="bg-white text-uppercase">
<tr class="ligth ligth-data">
<th>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox1">
<label for="checkbox1" class="mb-0"></label>
</div>
</th>
<th>No</th>
<th>Nama Kecamatan</th>
<th>Jumlah Kasus Curas</th>
<th>Klaster</th>
</tr>
</thead>
@foreach ( $curases as $curas )
<tbody class="ligth-body">
<tr>
<td>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox2">
<label for="checkbox2" class="mb-0"></label>
</div>
</td>
<td>{{ $loop->iteration }}</td>
<td>{{ $curas->punyaKecamatanCuras->nama_kecamatan}}</td>
<td>{{ $curas->jumlah_curas }}</td>
<td style="background-color: {{ $curas->punyaKlasterCuras->warna }}">{{ $curas->punyaKlasterCuras->nama_klaster }}</td>
</tr>
</tbody>
@endforeach
</table>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,75 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="d-flex flex-wrap align-items-center justify-content-between mb-4">
<div>
<h4 class="mb-3">Daftar Kecamatan Kabupaten Probolinggo</h4>
<p class="mb-0">Berikut merupakan data seluruh kecamatan yang berada di wilayah <br>
Kabupaten Probolinggo. </p>
</div>
<a href="/dashboard/kecamatan/create" class="btn btn-primary add-list"><i class="las la-plus mr-3"></i>Tambah Kecamatan</a>
</div>
@if (session()->has('succes'))
<div class="alert alert-success" role="alert">
{{ session('succes') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
</div>
<div class="col-lg-12">
<div class="table-responsive rounded mb-3">
<table class="data-table table mb-0 tbl-server-info">
<thead class="bg-white text-uppercase">
<tr class="ligth ligth-data">
<th>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox1">
<label for="checkbox1" class="mb-0"></label>
</div>
</th>
<th>No</th>
<th>Nama Kecamatan</th>
<th>Action</th>
</tr>
</thead>
@foreach ( $kecamatans as $kecamatan )
<tbody class="ligth-body">
<tr>
<td>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox2">
<label for="checkbox2" class="mb-0"></label>
</div>
</td>
<td>{{ $kecamatan -> id }}</td>
<td>{{ $kecamatan -> nama_kecamatan }}</td>
<td>
<div class="d-flex align-items-center list-action">
<a class="badge bg-success mr-2" data-toggle="tooltip" data-placement="top" title=""
href="/dashboard/kecamatan/{{ $kecamatan ->id}}/edit"><i class="ri-pencil-line mr-0"></i></a>
<form action="/dashboard/kecamatan/{{ $kecamatan->id }}" method="post" class="d-inline">
@method('delete')
@csrf
<button type="submit" class="badge bg-warning mr-2 border-0"><i class="ri-delete-bin-line mr-0"></i></button>
</form>
</div>
</td>
</tr>
</tbody>
@endforeach
</table>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,76 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="d-flex flex-wrap align-items-center justify-content-between mb-4">
<div>
<h4 class="mb-3">Daftar Klaster</h4>
<p class="mb-0">Berikut merupakan data Klaster atau Kategori yang dijadikan sebagai acuan pemetaan.<br>
Ingat dalam pengisian data klaster, kategori aman atau rendah dimulai dari id 1</p>
</div>
<a href="/dashboard/klaster/create" class="btn btn-primary add-list"><i class="las la-plus mr-3"></i>Tambah Klaster</a>
</div>
</div>
@if (session()->has('succes'))
<div class="alert alert-success" role="alert">
{{ session('succes') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
<div class="col-lg-12">
<div class="table-responsive rounded mb-3">
<table class="data-table table mb-0 tbl-server-info">
<thead class="bg-white text-uppercase">
<tr class="ligth ligth-data">
<th>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox1">
<label for="checkbox1" class="mb-0"></label>
</div>
</th>
<th>id</th>
<th>Nama Klaster</th>
<th>Warna</th>
<th>Action</th>
</tr>
</thead>
@foreach ( $klasters as $klaster )
<tbody class="ligth-body">
<tr>
<td>
<div class="checkbox d-inline-block">
<input type="checkbox" class="checkbox-input" id="checkbox2">
<label for="checkbox2" class="mb-0"></label>
</div>
</td>
<td>{{ $klaster -> id }}</td>
<td>{{ $klaster -> nama_klaster }}</td>
<td style="background-color: {{ $klaster->warna }}" >{{ $klaster -> warna }}</td>
<td>
<div class="d-flex align-items-center list-action">
<a class="badge bg-success mr-2" data-toggle="tooltip" data-placement="top" title=""
href="/dashboard/klaster/{{ $klaster->id }}/edit"><i class="ri-pencil-line mr-0"></i></a>
<form action="/dashboard/klaster/{{ $klaster->id }}" method="post" class="d-inline">
@method('delete')
@csrf
<button type="submit" class="badge bg-warning mr-2 border-0"><i class="ri-delete-bin-line mr-0"></i></button>
</form>
</div>
</td>
</tr>
</tbody>
@endforeach
</table>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,71 @@
<x-layoutAdmin>
<div class="content-page">
<div id="map" style="width: 100%; height: 500px;" ></div>
<div id="map" style="width: 100%; height: 500px;"></div>
<script>
let curanmorData = {};
fetch("{{ url('/api/map/curanmor') }}")
.then(res => res.json())
.then(data => {
data.forEach(item => {
curanmorData[item.kecamatan] = item;
});
loadMap();
});
function getColor(warna) {
return warna || '#cccccc';
}
function styleFeature(feature) {
let namaKecamatan = feature.properties.WADMKC;
let curanmor = curanmorData[namaKecamatan];
return {
fillColor: curanmor ? getColor(curanmor.warna) : '#cccccc',
weight: 1,
opacity: 1,
color: 'white',
fillOpacity: 0.7
};
}
function popUp(feature, layer) {
let namaKecamatan = feature.properties.WADMKC;
let curanmor = curanmorData[namaKecamatan];
let content = `<strong>Kecamatan ${namaKecamatan}</strong><br/><br/>`;
if (curanmor) {
content += `Jumlah Curanmor : ${curanmor.jumlah_curanmor}<br/>Kategori : ${curanmor.klaster}`;
} else {
content += `Data tidak tersedia`;
}
layer.bindPopup(content);
}
function loadMap() {
var map = L.map('map').setView([-7.843271790154591, 113.2990930356143], 10);
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}).addTo(map);
new L.GeoJSON.AJAX(["{{ asset('/assets/map/gisProbolinggo.geojson') }}"], {
style: styleFeature,
onEachFeature: popUp
}).addTo(map);
}
</script>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,69 @@
<x-layoutAdmin>
<div class="content-page">
<div id="map" style="width: 100%; height: 500px;" ></div>
<script>
let curasData = {};
fetch("{{ url('/api/map/curas') }}")
.then(res => res.json())
.then(data => {
data.forEach(item => {
curasData[item.kecamatan] = item;
});
loadMap(); // setelah data siap, jalankan ini
});
function getColor(klasterWarna) {
return klasterWarna || '#cccccc'; // fallback
}
function styleFeature(feature) {
let namaKecamatan = feature.properties.WADMKC;
let curas = curasData[namaKecamatan];
return {
fillColor: curas ? getColor(curas.warna) : '#cccccc',
weight: 1,
opacity: 1,
color: 'white',
fillOpacity: 0.7
};
}
function popUp(feature, layer) {
let namaKecamatan = feature.properties.WADMKC;
let curas = curasData[namaKecamatan];
let content = `<strong>Kecamatan ${namaKecamatan}</strong><br/><br/>`;
if (curas) {
content += `Jumlah Curas : ${curas.jumlah_curas}<br/>Kategori : ${curas.klaster}`;
} else {
content += `Data tidak tersedia`;
}
layer.bindPopup(content);
}
function loadMap() {
var map = L.map('map').setView([-7.843271790154591, 113.2990930356143], 10);
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}).addTo(map);
new L.GeoJSON.AJAX(["{{ asset('/assets/map/gisProbolinggo.geojson') }}"], {
style: styleFeature,
onEachFeature: popUp
}).addTo(map);
}
</script>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,47 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid add-form-list">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Tambah Data Kasus Pencurian Kendaraan Bermotor ( CURANMOR )</h4>
</div>
</div>
<div class="card-body">
<form action="/dashboard/curanmor" data-toggle="validator" method="post">
@csrf
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>Nama Kecamatan *</label>
<select class="selectpicker form-control" data-style="py-0" id="kecamatan_id" name="kecamatan_id">
<option value="" selected disabled>Pilih Kecamatan</option>
@foreach ( $kecamatans as $kecamatan )
<option value="{{ $kecamatan -> id }}" >{{ $kecamatan -> nama_kecamatan }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Jumlah Kasus Curanmor *</label>
<input type="text" class="form-control" placeholder="Jumlah Kasus Curanmor" id="curanmor" name="jumlah_curanmor">
</div>
</div>
</div>
<button type="submit" class="btn btn-primary mr-2">Tambah Data Kasus Curanmor</button>
<button type="reset" class="btn btn-danger">Reset</button>
</form>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,45 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid add-form-list">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Tambah Data Kasus CURAS Hari Ini</h4>
</div>
</div>
<div class="card-body">
<form action="/dashboard/curas" data-toggle="validator" method="post">
@csrf
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>Nama Kecamatan *</label>
<select class="selectpicker form-control" data-style="py-0" id="kecamatan_id" name="kecamatan_id">
<option value="" selected disabled>Pilih Kecamatan</option>
@foreach ( $kecamatans as $kecamatan )
<option value="{{ $kecamatan -> id }}" >{{ $kecamatan -> nama_kecamatan }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Jumlah Kasus Curas *</label>
<input type="text" class="form-control" placeholder="Jumlah Kasus Curas" id="jumlah_curas" name="jumlah_curas">
</div>
</div>
</div>
<button type="submit" class="btn btn-primary mr-2">Tambah Data Kasus Curas</button>
<button type="reset" class="btn btn-danger">Reset</button>
</form>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,38 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid add-form-list">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Tambah Data Kecamatan Baru</h4>
</div>
</div>
<div class="card-body">
<form action="/dashboard/kecamatan" data-toggle="validator" method="POST">
@csrf
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Nama Kecamatan</label>
<input type="text" class="form-control @error('nama_kecamatan') is-invalid @enderror" placeholder="Nama Kecamatan" id="nama_kecamatan" name="nama_kecamatan">
@error('nama_kecamatan')
<div class="invalid-feedback">{{$message}}
</div>
@enderror
</div>
</div>
</div>
<button type="submit" class="btn btn-primary mr-2">Tambah Data Kecamatan</button>
<button type="reset" class="btn btn-danger">Reset</button>
</form>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,48 @@
<x-layoutAdmin>
<div class="content-page">
<div class="container-fluid add-form-list">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header d-flex justify-content-between">
<div class="header-title">
<h4 class="card-title">Tambah Klaster Baru</h4>
</div>
</div>
<div class="card-body">
<form action="/dashboard/klaster" data-toggle="validator" method="POST">
@csrf
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Nama Klaster</label>
<input type="text" class="form-control @error('nama_klaster') is-invalid @enderror" placeholder="Nama Klaster" id="nama_klaster" name="nama_klaster">
@error('nama_klaster')
<div class="invalid-feedback">{{$message}}
</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Pilih Warna</label>
<input type="color" class="form-control @error('warna') is-invalid @enderror" placeholder="warna" id="warna" name="warna">
@error('warna')
<div class="invalid-feedback">{{$message}}
</div>
@enderror
</div>
</div>
</div>
<button type="submit" class="btn btn-primary mr-2">Tambah Klaster</button>
<button type="reset" class="btn btn-danger">Reset</button>
</form>
</div>
</div>
</div>
</div>
<!-- Page end -->
</div>
</div>
</x-layoutAdmin>

View File

@ -0,0 +1,180 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<title>
KPROTECT | Probolinggo Threat & Crime Tracker
</title>
<!-- Favicon -->
<link rel="shortcut icon" href="{{ asset('assets/assetLanding/images/favicon2.png') }}" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="{{ asset('assets/assetLanding/css/bootstrap.min.css') }}" />
<!-- Typography CSS -->
<link rel="stylesheet" href="{{ asset('assets/assetLanding/css/typography.css') }}" />
<!-- Style CSS -->
<link rel="stylesheet" href="{{ asset('assets/assetLanding/css/style.css') }}" />
<!-- Responsive CSS -->
<link rel="stylesheet" href="{{ asset('assets/assetLanding/css/responsive.css') }}" />
</head>
<body>
<!-- loading -->
<div id="loading">
<div id="loading-center">
<img src="{{ asset('assets/assetLanding/images/loader.gif') }}" alt="loder" />
</div>
</div>
<!-- loading End -->
<div class="login-from header-navbar light-gray-bg position-relative">
<div class="row no-gutters">
<div class="col-lg-6 align-items-stretch position-relative white-bg">
<nav class="navbar navbar-expand-lg navbar-light">
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Privacy</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Terms</a>
</li>
</ul>
</div>
</nav>
<div class="login-info">
<h2 class="iq-fw-9 mb-3">Login</h2>
<h6>
Selamat Datang Di <span class="main-color">PROTECT</span> Silakan Masuk Ke Akun Anda
</h6>
@if (session()->has('loginError'))
<div class="alert alert-danger alert-dismissible fade show" role="alert">
{{ session('loginError') }}
</div>
@endif
<form action="/login" method="POST">
@csrf
<div class="form-group">
<label>Masukkan Email</label>
<input
id="email"
type="email"
name="email"
class="form-control"
placeholder="Email"
autocomplete="email"
autofocus
required @error('email') is-invalid
@enderror value="{{ old('email') }}"
/>
</div>
<div class="form-group">
<label>Masukkan Password</label>
<input
id="password"
type="password"
name="password"
class="form-control"
placeholder="Password"
required
/>
</div>
<button type="submit" class="slide-button button mr-3 w-100">
<div class="first">Login</div>
<div class="second">Login</div>
</button>
</form>
</div>
<ul class="social-list">
<li>
<a href="#"><i class="fab fa-facebook-f"></i></a>
</li>
<li>
<a href="#"><i class="fab fa-twitter"></i></a>
</li>
<li>
<a href="#"><i class="fab fa-google-plus-g"></i></a>
</li>
</ul>
</div>
<div class="col-lg-6 align-self-center position-relative">
<div class="login-right-bar h-100 text-center">
<img src="{{ asset('assets/assetLanding/images/login/login.png') }}" class="img-fluid" alt="" />
</div>
</div>
</div>
<img src="{{ asset('assets/assetLanding/images/login/2.png') }}" class="img-fluid login-footer-one" alt="" />
<img src="{{ asset('assets/assetLanding/images/login/3.png') }}" class="img-fluid login-footer-two" alt="" />
<img
src="{{ asset('assets/assetLanding/images/login/1.png') }}"
class="img-fluid login-footer-three"
alt=""
/>
<!-- back-to-top -->
<div id="back-to-top">
<a class="top" id="top" href="#top"
><i class="ion-ios-arrow-thin-up"></i
></a>
</div>
<!-- back-to-top End -->
</div>
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="{{ asset('assets/assetLanding/js/jquery-min.js') }}"></script>
<!-- popper -->
<script src="{{ asset('assets/assetLanding/js/popper.min.js') }}"></script>
<!-- bootstrap -->
<script src="{{ asset('assets/assetLanding/js/bootstrap.min.js') }}"></script>
<!-- Modernizr JavaScript -->
<script src="{{ asset('assets/assetLanding/js/modernizr.js') }}"></script>
<!-- Appear JavaScript -->
<script src="{{ asset('assets/assetLanding/js/appear.min.js') }}"></script>
<!-- Megamenu -->
<script src="{{ asset('assets/assetLanding/js/mega_menu.min.js') }}"></script>
<!-- Timeline JavaScript -->
<script src="{{ asset('assets/assetLanding/js/timeline.js') }}"></script>
<!-- Wow -->
<script src="{{ asset('assets/assetLanding/js/wow.min.js') }}"></script>
<!-- scrollme -->
<script src="{{ asset('assets/assetLanding/js/jquery.scrollme.min.js') }}"></script>
<!-- countdown JavaScript -->
<script src="{{ asset('assets/assetLanding/js/countdown.js') }}"></script>
<!-- waypoints JavaScript -->
<script src="{{ asset('assets/assetLanding/js/waypoints.min.js') }}"></script>
<!-- Counterup JavaScript -->
<script src="{{ asset('assets/assetLanding/js/jquery.counterup.min.js') }}"></script>
<!-- Owl Carousel JavaScript -->
<script src="{{ asset('assets/assetLanding/js/owl.carousel.min.js') }}"></script>
<!-- Magnific Popup JavaScript -->
<script src="{{ asset('assets/assetLanding/js/jquery.magnific-popup.min.js') }}"></script>
<!-- Isotope JavaScript -->
<script src="{{ asset('assets/assetLanding/js/isotope.pkgd.min.js') }}"></script>
<!-- Progressbar JavaScript -->
<script src="{{ asset('assets/assetLanding/js/circle-progress.min.js') }}"></script>
<!-- Canvas JavaScript -->
<script src="{{ asset('assets/assetLanding/js/canvasjs.min.js') }}"></script>
<!-- Retina JavaScript -->
<script src="{{ asset('assets/assetLanding/js/retina.min.js') }}"></script>
<!-- Custom JavaScript -->
<script src="{{ asset('assets/assetLanding/js/custom.js') }}"></script>
</body>
</html>

File diff suppressed because one or more lines are too long