slicing: CMS Informasi Kontak

main-dlh
Regiaaaaaa 2025-12-05 11:12:01 +07:00
parent 4c68cce18d
commit 8bfb0b7cfc
4 changed files with 224 additions and 0 deletions

View File

@ -0,0 +1,18 @@
using Microsoft.AspNetCore.Mvc;
namespace BpsRwApp.Controllers
{
[Route("[controller]/[action]")]
public class InformasiKontakController : AppControllerBase
{
public IActionResult Index()
{
return View();
}
public IActionResult Edit()
{
return View();
}
}
}

View File

@ -0,0 +1,105 @@
@{
ViewData["Title"] = "Ubah Informasi Kontak";
}
<div class="breadcrumbs text-sm mb-6">
<ul>
<li class="text-gray-500"><a href="/InformasiKontak/Index">CMS</a></li>
<li class="text-gray-500"><a href="/InformasiKontak/Index">Informasi Kontak</a></li>
<li>Ubah Informasi Kontak</li>
</ul>
</div>
<!-- Header -->
<h2 class="text-2xl font-semibold mb-6">Ubah Informasi Kontak</h2>
<div class="bg-white rounded-xl p-8 shadow-sm">
<form>
<div class="space-y-5">
<!-- Nama Kantor -->
<div>
<label class="block font-medium mb-2">
Nama Kantor <span class="text-red-500">*</span>
</label>
<input type="text"
class="input input-bordered w-full"
placeholder="Masukkan nama kantor"
value="BPS-RW Mawar Indah"
required>
</div>
<!-- Alamat Kantor -->
<div>
<label class="block font-medium mb-2">
Alamat Kantor <span class="text-red-500">*</span>
</label>
<textarea class="textarea textarea-bordered w-full"
rows="3"
placeholder="Masukkan alamat kantor"
required>Jl. Medan-Ungu No. 12, Jakarta</textarea>
</div>
<!-- Email & No Telepon Row -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-5">
<!-- Email -->
<div>
<label class="block font-medium mb-2">
Email <span class="text-red-500">*</span>
</label>
<input type="email"
class="input input-bordered w-full"
placeholder="email@address.com"
value="bps.mawarindah@dlhpbps.go.id"
required>
</div>
<!-- No Telepon -->
<div>
<label class="block font-medium mb-2">
No Telepon <span class="text-red-500">*</span>
</label>
<input type="text"
class="input input-bordered w-full"
placeholder="021-567-8910"
value="021-567-8910"
required>
</div>
</div>
<!-- Jam Operasional -->
<div>
<label class="block font-medium mb-2">
Jam Operasional <span class="text-red-500">*</span>
</label>
<textarea class="textarea textarea-bordered w-full"
rows="2"
placeholder="Masukkan jam operasional"
required>Senin - Jumat, 08.00 - 16.00</textarea>
</div>
<!-- Respon Email -->
<div>
<label class="block font-medium mb-2">
Respon Email <span class="text-red-500">*</span>
</label>
<textarea class="textarea textarea-bordered w-full"
rows="4"
placeholder="Masukkan respon email"
required>Lorem ipsum</textarea>
</div>
<!-- Action Buttons -->
<div class="flex justify-end gap-3 pt-4">
<button type="reset"
class="btn btn-outline btn-error rounded-full px-8">
Reset
</button>
<button type="button"
onclick="window.location.href='/InformasiKontak/Index?success=true'"
class="btn btn-primary rounded-full px-8">
Simpan
</button>
</div>
</div>
</form>
</div>

View File

@ -0,0 +1,94 @@
@{
ViewData["Title"] = "Informasi Kontak";
}
<!-- Toast Notification -->
<div id="successToast" class="fixed top-20 right-6 z-[9999] hidden">
<div class="alert bg-green-50 border border-green-200 shadow-lg flex items-start gap-3 pr-12 min-w-[320px]">
<div class="flex-shrink-0">
<div class="w-5 h-5 rounded-full bg-green-500 flex items-center justify-center">
<span class="icon text-white text-xs">check</span>
</div>
</div>
<div class="flex-1">
<h3 class="font-semibold text-gray-900">Konten berhasil diubah!</h3>
<p class="text-sm text-gray-600">Berhasil! Konten telah berhasil diubah.</p>
</div>
<button onclick="closeToast()" class="absolute top-3 right-3 text-gray-400 hover:text-gray-600">
<span class="icon text-lg">close</span>
</button>
</div>
</div>
<div class="breadcrumbs text-sm mb-6">
<ul>
<li class="text-gray-500"><a>CMS</a></li>
<li>Informasi Kontak</li>
</ul>
</div>
<div class="flex justify-between items-center mb-6">
<h2 class="text-2xl font-semibold">Informasi Kontak</h2>
<a href="/InformasiKontak/Edit" class="btn btn-primary btn-sm rounded-full px-6">
<span class="icon text-base mr-1">edit</span>
Edit
</a>
</div>
<!-- Card Informasi Kontak -->
<div class="bg-white rounded-xl p-8 shadow-sm">
<div class="space-y-6">
<!-- Nama Kantor -->
<div>
<label class="text-xs text-gray-500 font-medium">Nama Kantor</label>
<p class="text-sm text-gray-900 mt-1">BPS-RW Mawar Indah</p>
</div>
<!-- Alamat Kantor -->
<div>
<label class="text-xs text-gray-500 font-medium">Alamat Kantor</label>
<p class="text-sm text-gray-900 mt-1">Jl. Medan-Ungu No. 12, Jakarta</p>
</div>
<!-- Email -->
<div>
<label class="text-xs text-gray-500 font-medium">Email</label>
<p class="text-sm text-gray-900 mt-1">bps.mawarindah@dlhpbps.go.id</p>
</div>
<!-- No Telepon -->
<div>
<label class="text-xs text-gray-500 font-medium">No Telepon</label>
<p class="text-sm text-gray-900 mt-1">021-567-8910</p>
</div>
<!-- Jam Operasional -->
<div>
<label class="text-xs text-gray-500 font-medium">Jam Operasional</label>
<p class="text-sm text-gray-900 mt-1">Senin - Jumat, 08.00 - 16.00</p>
</div>
<!-- Respon Email -->
<div>
<label class="text-xs text-gray-500 font-medium">Respon Email</label>
<p class="text-sm text-gray-900 mt-1">Lorem ipsum</p>
</div>
</div>
</div>
<script>
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('success') === 'true') {
showSuccessToast();
}
function showSuccessToast() {
const toast = document.getElementById('successToast');
toast.classList.remove('hidden');
setTimeout(() => closeToast(), 5000);
}
function closeToast() {
document.getElementById('successToast').classList.add('hidden');
}
</script>

View File

@ -283,6 +283,13 @@
Tentang Rumah Memilah
</a>
</li>
<li>
<a asp-controller="InformasiKontak" asp-action="Index"
class="@(controller == "InformasiKontak" ? "menu-active" : "")">
<span class="icon icon-fill">call</span>
Informasi Kontak
</a>
</li>
</ul>
</details>
</li>