Update profil petani

This commit is contained in:
2026-10-16 15:48:42 +07:00
parent fcd79b7cfe
commit 8be0906a2e
14 changed files with 95 additions and 28 deletions
@@ -234,7 +234,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
<button type="submit" class="btn btn-success data-submit wave-effect wave-light"><i class="ti tabler-device-floppy me-2"></i> Simpan Profil</button>
</div>
@@ -339,6 +339,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-device-floppy me-1_5 icon-sm"></i>Simpan Akses Pasar
</button>
@@ -44,13 +44,18 @@
<div class="col-md-3">
<div class="user-avatar-section">
<div class=" d-flex align-items-center flex-column">
<button type="button" class="border-0 bg-transparent p-0 mb-3 rounded-3"
data-bs-toggle="modal" data-bs-target="#fotoProfilModal"
aria-label="Lihat foto profil petani" title="Lihat foto profil petani">
<img id="fotoPreview"
class="mb-3 shadow-sm rounded-3"
class="shadow-sm rounded-3"
src="{{ $petani->foto ? route('petani.show-image', ['id' => $petani->id, 'field' => 'foto']) : asset('assets/img/avatars/3.jpg') }}"
alt="Foto profil petani"
data-bs-toggle="tooltip" data-bs-placement="top"
data-bs-original-title="Klik untuk mengganti foto profil petani"
style="width: 120px !important; height: 120px !important; cursor:pointer; object-fit:cover; display:block; margin: 0 auto;" />
</button>
<button type="button" id="btnGantiFoto" class="btn btn-sm btn-outline-primary mb-3">
Ganti Foto
</button>
<button type="button" id="btnHapusFoto" class="btn btn-sm btn-outline-danger mb-4" style="display: {{ $petani->foto ? 'block' : 'none' }};">
Hapus Foto
@@ -249,7 +254,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
<button type="submit" class="btn btn-success data-submit wave-effect wave-light"><i class="ti tabler-device-floppy me-2"></i> Simpan Profil</button>
</div>
@@ -260,6 +265,20 @@
</div>
</div>
<div class="modal fade" id="fotoProfilModal" tabindex="-1" aria-labelledby="fotoProfilModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="fotoProfilModalLabel">Foto Profil Petani</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Tutup"></button>
</div>
<div class="modal-body text-center">
<img id="fotoProfilBesar" class="img-fluid rounded-3" alt="Foto profil petani" style="max-height: 75vh; object-fit: contain;" />
</div>
</div>
</div>
</div>
<div class="modal fade" id="cropModal" tabindex="-1" aria-labelledby="cropModalLabel" aria-hidden="true" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
@@ -351,7 +370,11 @@
let croppieInstance = null;
$('#fotoPreview').on('click', function () {
$('#fotoProfilModal').on('show.bs.modal', function () {
$('#fotoProfilBesar').attr('src', $('#fotoPreview').attr('src'));
});
$('#btnGantiFoto').on('click', function () {
$('#foto').val('');
$('#foto').click();
});
@@ -2,6 +2,14 @@
@push('style')
<style>
#data-petani {
scroll-margin-top: 7rem;
}
.petani-row {
cursor: pointer;
}
.indicator-filter-row {
padding-bottom: 1.5rem;
padding-top: 1.5rem;
@@ -84,8 +92,8 @@
@section('content')
<div class="container-fluid flex-grow-1 container-p-y">
<div class="d-flex flex-row gap-3 mb-4">
<div class="w-25">
<div class="row g-3 mb-4">
<div class="col-12 col-md-4">
<x-summary-card
title="Petani"
count="{{ number_format($totalPetani ?? 0, 0, ',', '.') }}"
@@ -94,7 +102,7 @@
color="primary"
/>
</div>
<div class="w-25">
<div class="col-12 col-md-4">
<x-summary-card
title="Lahan & Tanaman"
count="{{ number_format($totalLuasLahan ?? 0, 2, ',', '.') }} ha"
@@ -103,7 +111,7 @@
color="success"
/>
</div>
<div class="w-25">
<div class="col-12 col-md-4">
<x-summary-card
title="Segmentasi"
count="{{ number_format((int) ($skor->firstWhere('segmen', 'Penggerak')->total ?? 0), 0, ',', '.') }} Penggerak"
@@ -265,7 +273,7 @@
</div>
</div>
<div class="card">
<div class="card" id="data-petani">
<div class="card-header border-bottom">
<h5 class="card-title mb-0">Data Petani</h5>
</div>
@@ -315,10 +323,10 @@
</thead>
<tbody>
@forelse($petani as $index => $item)
<tr>
<tr class="petani-row">
<td>{{ $loop->iteration }}</td>
<td>
<span class="text-heading d-block">{{ $item->nama }}</span>
<a href="{{ route('petani.edit', $item->id) }}" class="text-heading d-block">{{ $item->nama }}</a>
<small class="text-muted">
{{ $item->jenis_kelamin ? 'Laki-laki' : 'Perempuan' }}
@if(! is_null($item->umur))
@@ -423,6 +431,14 @@
});
});
$(document).on('click', '.petani-row', function (event) {
if ($(event.target).closest('a, button, input, select, textarea, label').length) {
return;
}
window.location.href = this.querySelector('.edit-record').href;
});
$(document).on('click', '.delete-record', function () {
const id = $(this).data('id');
const name = $(this).data('nama');
@@ -517,7 +517,7 @@
<div class="row mt-3">
<div class="col-12 text-end">
<a href="{{ route('petani.index') }}" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
<button type="submit" class="btn btn-success data-submit wave-effect wave-light"><i class="ti tabler-device-floppy me-2"></i> Simpan Lahan</button>
</div>
</div>
@@ -406,8 +406,8 @@
<div class="row mt-3">
<div class="col-12 text-end">
<a href="{{ route('petani.index') }}" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
<button id="delete-lahan"type="button" class="btn btn-danger data-submit wave-effect wave-light"><i class="ti tabler-trash me-2"></i> Hapus Lahan</button>
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
<button type="submit" class="btn btn-success data-submit wave-effect wave-light"><i class="ti tabler-device-floppy me-2"></i> Simpan Lahan</button>
</div>
</div>
@@ -86,6 +86,7 @@
</div>
<div class="mb-3">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-primary">Simpan Perubahan</button>
</div>
</form>
@@ -77,6 +77,7 @@
</table>
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -167,11 +167,14 @@
Tambah Pelatihan
</button>
<div class="d-flex flex-wrap justify-content-end gap-2">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan Riwayat Pelatihan
</button>
</div>
</div>
</form>
</div>
</div>
@@ -347,11 +350,14 @@
Tambah Sertifikasi
</button>
<div class="d-flex flex-wrap justify-content-end gap-2">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan Sertifikasi Keahlian
</button>
</div>
</div>
</form>
</div>
</div>
@@ -499,6 +499,7 @@
</div>
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
Simpan
</button>
@@ -530,6 +530,7 @@
</div>
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -1039,6 +1040,7 @@
</div>
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -1352,6 +1354,7 @@
</div>
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -1542,6 +1545,7 @@
</div>
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -1678,10 +1682,13 @@
Tambah Komoditas
</button>
<div class="d-flex flex-wrap justify-content-end gap-2">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary">Kembali</a>
<button type="submit" class="btn btn-success">
Simpan Produktivitas
Simpan
</button>
</div>
</div>
</form>
</div>
</div>
@@ -1725,6 +1732,7 @@
</div>
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -399,6 +399,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -567,6 +568,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -696,6 +698,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -915,6 +918,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -1043,6 +1047,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -398,6 +398,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -566,6 +567,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -694,6 +696,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -912,6 +915,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -1039,6 +1043,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-secondary me-2">Kembali</a>
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
@@ -85,7 +85,7 @@
</div>
<div class="mt-4 text-end">
<a href="{{ route('petani.index') }}" class="btn btn-label-secondary me-2">Kembali</a>
<a href="{{ route('petani.index') }}#data-petani" class="btn btn-label-secondary me-2">Kembali</a>
</div>
</form>
</div>