update halmana

This commit is contained in:
nylaaptr 2026-04-06 10:15:29 +07:00
parent f7c0675e9e
commit e66a4987b5
19 changed files with 974 additions and 312 deletions

View File

@ -40,7 +40,7 @@ public function login(Request $request)
// Redirect berdasarkan role // Redirect berdasarkan role
if ($user->role_user === 'admin') { if ($user->role_user === 'admin') {
// ✅ Lebih baik pakai route name daripada hardcoded URL // ✅ Lebih baik pakai route name daripada hardcoded URL
return redirect()->route('admin.dashboard'); return redirect()->route('admin.welcome');
// Jika admin di project terpisah, gunakan: // Jika admin di project terpisah, gunakan:
// return redirect('http://127.0.0.1:8001/admin'); // return redirect('http://127.0.0.1:8001/admin');
} }
@ -89,11 +89,17 @@ public function updatePassword(Request $request)
// Logout // Logout
public function logout(Request $request) public function logout(Request $request)
{ {
Auth::logout(); $role = Auth::user()->role_user; // ← cek role sebelum logout
Auth::logout();
$request->session()->invalidate(); $request->session()->invalidate();
$request->session()->regenerateToken(); $request->session()->regenerateToken();
return redirect()->route('welcome'); // Redirect ke halaman utama setelah logout // Redirect berdasarkan role
if ($role === 'admin') {
return redirect()->route('login'); // ← admin ke login
}
return redirect()->route('welcome'); // ← pengguna ke welcome
} }
} }

View File

@ -1,10 +1,23 @@
<?php <?php
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Notifikasi extends Model class Notifikasi extends Model
{ {
// protected $table = 'notifikasi'; // ← tambahkan ini
} protected $primaryKey = 'id_notifikasi';
public $timestamps = false;
protected $fillable = [
'id_user',
'judul',
'pesan',
'tipe',
'status_baca',
'status_kirim',
'channel',
'referensi_id',
'referensi_tipe',
'created_at',
];
}

View File

@ -695,40 +695,40 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div> </div>
</div> </div>
</div> </div>
@ -747,7 +747,7 @@ class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}">
</div> </div>
</div> </div>
<form method="GET" action="{{ route('data_rumah') }}" id="searchForm"> <form method="GET" action="{{ route('admin.data_rumah') }}" id="searchForm">
<div class="search-bar"> <div class="search-bar">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
<input type="text" name="search" <input type="text" name="search"
@ -762,7 +762,7 @@ class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}">
<div class="table-header"> <div class="table-header">
<div class="table-title">Daftar Properti Tersedia</div> <div class="table-title">Daftar Properti Tersedia</div>
<div class="table-actions"> <div class="table-actions">
<a href="{{ route('tambah-rumah') }}" class="btn-action btn-primary"> <a href="{{ route('admin.tambah-rumah') }}" class="btn-action btn-primary">
<i class="fas fa-plus"></i> Tambah Properti <i class="fas fa-plus"></i> Tambah Properti
</a> </a>
</div> </div>
@ -847,12 +847,12 @@ class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}">
</td> </td>
<td> <td>
<div class="action-group"> <div class="action-group">
<a href="{{ route('edit_rumah', $p->id_properti) }}" <a href="{{ route('admin.edit_rumah', $p->id_properti) }}"
class="action-btn btn-edit"> class="action-btn btn-edit">
<i class="fas fa-edit"></i> <i class="fas fa-edit"></i>
</a> </a>
<form method="POST" <form method="POST"
action="{{ route('hapus_rumah', $p->id_properti) }}" action="{{ route('admin.hapus_rumah', $p->id_properti) }}"
style="display:inline;" style="display:inline;"
onsubmit="return confirm('Yakin hapus properti ini?')"> onsubmit="return confirm('Yakin hapus properti ini?')">
@csrf @csrf

View File

@ -580,40 +580,40 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div> </div>
</div> </div>
</div> </div>
@ -631,7 +631,7 @@ class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}">
</div> </div>
</div> </div>
<form method="GET" action="{{ route('data_user') }}" id="searchForm"> <form method="GET" action="{{ route('admin.data_user') }}" id="searchForm">
<div class="search-bar"> <div class="search-bar">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
<input type="text" name="search" <input type="text" name="search"
@ -646,7 +646,7 @@ class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}">
<div class="table-header"> <div class="table-header">
<div class="table-title">Daftar Pengguna Sistem</div> <div class="table-title">Daftar Pengguna Sistem</div>
<div class="table-actions"> <div class="table-actions">
<a href="{{ route('tambah-datauser') }}" class="btn-action btn-primary"> <a href="{{ route('admin.tambah-datauser') }}" class="btn-action btn-primary">
<i class="fas fa-plus"></i> Tambah User <i class="fas fa-plus"></i> Tambah User
</a> </a>
</div> </div>
@ -692,12 +692,12 @@ class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}">
@endif @endif
</td> </td>
<td> <td>
<a href="{{ route('edit_user', $user->id_user) }}" class="action-btn btn-edit"> <a href="{{ route('admin.edit_user', $user->id_user) }}" class="action-btn btn-edit">
<i class="fas fa-edit"></i> Edit <i class="fas fa-edit"></i> Edit
</a> </a>
<form method="POST" <form method="POST"
action="{{ route('admin.user.hapus', $user->id_user) }}" action="{{ route('admin.hapus_user', $user->id_user) }}"
style="display:inline;" style="display:inline;"
onsubmit="return confirm('Yakin hapus user {{ $user->nama_user }}?')"> onsubmit="return confirm('Yakin hapus user {{ $user->nama_user }}?')">
@csrf @csrf

View File

@ -574,40 +574,40 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -553,40 +553,41 @@
<div class="company-name">PT. Carani Bhanu Balakosa</div> <div class="company-name">PT. Carani Bhanu Balakosa</div>
</div> </div>
<div class="nav-menu"> <div class="nav-menu" id="navMenu">
<a href="data_user.html"> <a href="{{ route('admin.welcome') }}"
<div class="nav-item"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-tachometer-alt"></i>
<span>Data User</span> <span>Dashboard</span>
</div>
</a> </a>
<a href="data_rumah.html"> <a href="{{ route('admin.data_user') }}"
<div class="nav-item active"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-users"></i>
<span>Data Rumah</span> <span>Data User</span>
</div>
</a> </a>
<a href="verfikasi_data.html"> <a href="{{ route('admin.data_rumah') }}"
<div class="nav-item"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-house"></i>
<span>Verifikasi Data</span> <span>Data Rumah</span>
</div>
</a> </a>
<a href="halaman_chatbot.html"> <a href="{{ route('admin.halaman_verifikasi') }}"
<div class="nav-item"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-check-circle"></i>
<span>ChatBot</span> <span>Verifikasi Data</span>
</div>
</a> </a>
</div>
<a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i>
<span>Chatbot</span>
</a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div>
</div> </div>
</div> </div>

View File

@ -845,40 +845,40 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -719,40 +719,40 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -549,40 +549,40 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div> </div>
</div> </div>
</div> </div>
@ -617,7 +617,7 @@ class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}">
<p class="form-subtitle">Isi data user baru dengan lengkap dan valid</p> <p class="form-subtitle">Isi data user baru dengan lengkap dan valid</p>
</div> </div>
<form method="POST" action="{{ route('tambah-datauser.simpan') }}"> <form method="POST" action="{{ route('admin.tambah-datauser.simpan') }}">
@csrf @csrf
<div class="form-section"> <div class="form-section">
<h3 class="section-title"> <h3 class="section-title">

View File

@ -580,40 +580,40 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -859,40 +859,40 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <div class="logout-btn">
<i class="fas fa-sign-out-alt"></i> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span> <span>Logout</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -156,6 +156,7 @@
margin-top: auto; margin-top: auto;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
color: #ffff;
} }
.logout-btn:hover { .logout-btn:hover {
@ -571,40 +572,43 @@
</div> </div>
<div class="nav-menu" id="navMenu"> <div class="nav-menu" id="navMenu">
<a href="{{ route('welcome') }}" <a href="{{ route('admin.welcome') }}"
class="nav-item {{ request()->routeIs('welcome') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<i class="fas fa-tachometer-alt"></i> <i class="fas fa-tachometer-alt"></i>
<span>Dashboard</span> <span>Dashboard</span>
</a> </a>
<a href="{{ route('data_user') }}" <a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('data_user') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-users"></i> <i class="fas fa-users"></i>
<span>Data User</span> <span>Data User</span>
</a> </a>
<a href="{{ route('data_rumah') }}" <a href="{{ route('admin.data_rumah') }}"
class="nav-item {{ request()->routeIs('data_rumah') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.data_rumah') ? 'active' : '' }}">
<i class="fas fa-house"></i> <i class="fas fa-house"></i>
<span>Data Rumah</span> <span>Data Rumah</span>
</a> </a>
<a href="{{ route('halaman_verifikasi') }}" <a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('halaman_verifikasi') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i> <i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span> <span>Verifikasi Data</span>
</a> </a>
<a href="{{ route('halaman_chatbot') }}" <a href="{{ route('admin.halaman_chatbot') }}"
class="nav-item {{ request()->routeIs('halaman_chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('admin.halaman_chatbot') ? 'active' : '' }}">
<i class="fas fa-comments"></i> <i class="fas fa-comments"></i>
<span>Chatbot</span> <span>Chatbot</span>
</a> </a>
<div class="logout-btn"> <form method="POST" action="{{ route('logout') }}">
<i class="fas fa-sign-out-alt"></i> @csrf
<span>Logout</span> <button type="submit" class="logout-btn" style="width:100%; background:none; border:none; cursor:pointer; text-align:left;">
</div> <i class="fas fa-sign-out-alt"></i>
<span>Logout</span>
</button>
</form>
</div> </div>
</div> </div>

View File

@ -1567,6 +1567,18 @@ class="action-btn btn-contact">Login</a>
function toggleMenu(){ function toggleMenu(){
document.getElementById('navMenu').classList.toggle('show'); document.getElementById('navMenu').classList.toggle('show');
} }
// PROFILE DROPDOWN
function toggleDropdown() {
document.getElementById('dropdownMenu').classList.toggle('show');
}
// Tutup dropdown kalau klik di luar
window.addEventListener('click', function(e) {
if (!e.target.closest('.profile-dropdown')) {
document.getElementById('dropdownMenu').classList.remove('show');
}
});
</script> </script>
<!-- JavaScript untuk Thumbnail & Tabs --> <!-- JavaScript untuk Thumbnail & Tabs -->

View File

@ -168,6 +168,61 @@
.menu-toggle:hover{ .menu-toggle:hover{
background: rgba(255,255,255,0.15); background: rgba(255,255,255,0.15);
} }
.profile-dropdown {
position: relative;
cursor: pointer;
}
.profile-icon {
display: flex;
align-items: center;
gap: 8px;
}
.dropdown-menu {
display: none;
position: absolute;
right: 0;
top: 100%;
background: white;
border: 1px solid #ddd;
border-radius: 8px;
min-width: 180px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
z-index: 999;
}
.dropdown-menu a,
.dropdown-menu button {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
color: #333;
text-decoration: none;
width: 100%;
background: none;
border: none;
cursor: pointer;
font-size: 14px;
}
.dropdown-menu a:hover,
.dropdown-menu button:hover {
background: #f5f5f5;
}
.dropdown-menu hr {
margin: 4px 0;
border: none;
border-top: 1px solid #eee;
}
/* Tampilkan dropdown */
.dropdown-menu.show {
display: block;
}
/* Chat Container */ /* Chat Container */
.chat-container { .chat-container {

View File

@ -1229,5 +1229,7 @@ function toggleDropdown() {
}); });
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -165,10 +165,66 @@
.menu-toggle:hover{ .menu-toggle:hover{
background: rgba(255,255,255,0.15); background: rgba(255,255,255,0.15);
} }
/* PROFILE DROPDOWN */
.profile-dropdown {
position: relative;
cursor: pointer;
}
.profile-icon {
display: flex;
align-items: center;
gap: 8px;
}
.dropdown-menu {
display: none;
position: absolute;
right: 0;
top: 100%;
background: white;
border: 1px solid #ddd;
border-radius: 8px;
min-width: 180px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
z-index: 999;
}
.dropdown-menu a,
.dropdown-menu button {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
color: #333;
text-decoration: none;
width: 100%;
background: none;
border: none;
cursor: pointer;
font-size: 14px;
}
.dropdown-menu a:hover,
.dropdown-menu button:hover {
background: #f5f5f5;
}
.dropdown-menu hr {
margin: 4px 0;
border: none;
border-top: 1px solid #eee;
}
/* Tampilkan dropdown */
.dropdown-menu.show {
display: block;
}
/* Main Content */ /* Main Content */
.main-content { .main-content {
margin: 80px auto 30px; margin: 100px auto 30px;
max-width: 600px; max-width: 600px;
padding: 0 20px; padding: 0 20px;
} }
@ -356,11 +412,6 @@
font-size: 1rem; font-size: 1rem;
} }
.nav-menu {
display: none;
margin-bottom: 20px;
}
.user-actions { .user-actions {
margin-left: auto; /* ← dorong ke kanan */ margin-left: auto; /* ← dorong ke kanan */
display: flex; display: flex;
@ -422,7 +473,6 @@
</style> </style>
</head> </head>
<body> <body>
<!-- Header -->
<!-- Header --> <!-- Header -->
<header class="header"> <header class="header">
<div class="header-container"> <div class="header-container">
@ -453,17 +503,19 @@ class="nav-item {{ request()->routeIs('halaman-katalog') ? 'active' : '' }}">
class="nav-item {{ request()->routeIs('halaman-chatbot') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('halaman-chatbot') ? 'active' : '' }}">
ChatBot ChatBot
</a> </a>
<a href="{{ route('riwayat-pemesanan') }}" @auth
class="nav-item {{ request()->routeIs('riwayat-pemesanan') ? 'active' : '' }}"> <a href="{{ route('riwayat-pemesanan') }}" class="nav-item {{ request()->routeIs('riwayat-pemesanan') ? 'active' : '' }}">
Riwayat Pemesanan Riwayat Pemesanan
</a> </a>
@endauth
<a href="{{ route('halaman-kontak') }}" <a href="{{ route('halaman-kontak') }}"
class="nav-item {{ request()->routeIs('halaman-kontak') ? 'active' : '' }}"> class="nav-item {{ request()->routeIs('kontak') ? 'active' : '' }}">
Kontak Kontak
</a> </a>
</nav> </nav>
<div class="user-actions"> <div class="user-actions">
{{-- Notifikasi hanya muncul kalau sudah login --}} {{-- Notifikasi hanya muncul kalau sudah login --}}
@auth @auth
<a href="{{ route('halaman-notifikasi') }}" class="notification-icon" style="position:relative;"> <a href="{{ route('halaman-notifikasi') }}" class="notification-icon" style="position:relative;">

View File

@ -418,6 +418,7 @@
line-height: 1.6; line-height: 1.6;
} }
/* STATISTIK */
.stats-section { .stats-section {
padding: 60px 30px; padding: 60px 30px;
background: linear-gradient(135deg, var(--dark-blue) 0%, #1a365d 100%); background: linear-gradient(135deg, var(--dark-blue) 0%, #1a365d 100%);
@ -1005,6 +1006,86 @@
width: 45px; width: 45px;
height: 45px; height: 45px;
} }
/* TENTANG KAMI VISI DAN MISI */
.vision-mission-section {
padding: 50px 15px;
}
.section-title {
font-size: 1.6rem;
text-align: center;
}
.section-subtitle {
font-size: 0.9rem;
text-align: center;
margin-bottom: 30px;
}
.vision-mission-grid {
grid-template-columns: 1fr; /* jadi 1 kolom */
gap: 20px;
}
.vision-card, .mission-card {
padding: 20px;
}
.card-icon {
width: 50px;
height: 50px;
font-size: 20px;
margin-bottom: 15px;
}
.card-title {
font-size: 1.1rem;
}
.card-description {
font-size: 0.9rem;
line-height: 1.5;
}
/* TENTANG KAMI TEAM */
.team-section {
padding: 50px 15px;
}
.team-grid {
grid-template-columns: 1fr; /* jadi 1 kolom */
gap: 20px;
}
.team-member {
padding: 18px;
}
.member-photo {
width: 90px;
height: 90px;
font-size: 32px;
margin-bottom: 12px;
}
.member-name {
font-size: 1rem;
}
.member-position {
font-size: 0.85rem;
}
.member-social {
gap: 8px;
}
.social-icon {
width: 28px;
height: 28px;
font-size: 12px;
}
} }
@ -1728,5 +1809,22 @@ function toggleDropdown() {
}); });
}); });
</script> </script>
<script>
function toggleMenu() {
document.getElementById('navMenu').classList.toggle('show');
}
function toggleDropdown() {
document.getElementById('dropdownMenu').classList.toggle('show');
}
// Tutup dropdown kalau klik luar
window.addEventListener('click', function(e) {
if (!e.target.closest('.profile-dropdown')) {
document.getElementById('dropdownMenu').classList.remove('show');
}
});
</script>
</body> </body>
</html> </html>

View File

@ -484,55 +484,395 @@
object-fit: cover; object-fit: cover;
} }
/* Features Section */ /* ===============================
.features-section { SERVICES SECTION - 4 Grid
padding: 80px 30px; =============================== */
background: #f8fafc; .services-section {
padding: 100px 30px;
background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
position: relative;
overflow: hidden;
} }
.features-grid { /* Background decorative elements */
display: grid; .services-section::before {
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); content: '';
gap: 30px; position: absolute;
} top: -100px;
right: -100px;
.feature-card { width: 300px;
background: white; height: 300px;
border-radius: 16px; background: radial-gradient(circle, rgba(122, 178, 211, 0.1) 0%, transparent 70%);
padding: 30px;
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
transition: transform 0.3s ease;
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}
.feature-icon {
width: 60px;
height: 60px;
background: var(--primary-blue);
border-radius: 50%; border-radius: 50%;
display: flex; pointer-events: none;
align-items: center;
justify-content: center;
margin-bottom: 20px;
color: white;
font-size: 24px;
} }
.feature-title { .services-section::after {
font-size: 1.3rem; content: '';
position: absolute;
bottom: -150px;
left: -100px;
width: 400px;
height: 400px;
background: radial-gradient(circle, rgba(30, 58, 95, 0.05) 0%, transparent 70%);
border-radius: 50%;
pointer-events: none;
}
.services-section .container {
position: relative;
z-index: 1;
}
/* Section Header */
.services-header {
text-align: center;
max-width: 700px;
margin: 0 auto 60px;
}
.services-badge {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 20px;
background: var(--light-blue);
color: var(--dark-blue);
border-radius: 30px;
font-size: 0.9rem;
font-weight: 600;
margin-bottom: 20px;
border: 1px solid rgba(122, 178, 211, 0.3);
}
.services-title {
font-size: 2.2rem;
font-weight: 700; font-weight: 700;
color: var(--dark-blue); color: var(--dark-blue);
margin-bottom: 15px; margin-bottom: 15px;
line-height: 1.3;
} }
.feature-description { .services-subtitle {
font-size: 1.1rem;
color: #64748b;
line-height: 1.6;
}
/* Services Grid - 4 Columns */
.services-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 25px;
margin-bottom: 50px;
}
/* Service Card */
.service-card {
background: white;
border-radius: 20px;
padding: 35px 30px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
border: 1px solid rgba(226, 232, 240, 0.6);
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
position: relative;
overflow: hidden;
height: 100%;
display: flex;
flex-direction: column;
}
.service-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, var(--primary-blue), var(--dark-blue));
transform: scaleX(0);
transform-origin: left;
transition: transform 0.4s ease;
}
.service-card:hover {
transform: translateY(-8px);
box-shadow: 0 20px 40px rgba(30, 58, 95, 0.12);
border-color: rgba(122, 178, 211, 0.4);
}
.service-card:hover::before {
transform: scaleX(1);
}
/* Icon Wrapper with Glow Effect */
.service-icon-wrapper {
position: relative;
width: 70px;
height: 70px;
margin-bottom: 25px;
}
.service-icon {
width: 70px;
height: 70px;
background: linear-gradient(135deg, var(--primary-blue), var(--dark-blue));
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
z-index: 2;
transition: transform 0.3s ease;
}
.service-card:hover .service-icon {
transform: scale(1.05) rotate(-3deg);
}
.service-icon i {
font-size: 1.8rem;
color: white;
}
.service-icon-glow {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
height: 100%;
background: radial-gradient(circle, rgba(122, 178, 211, 0.4) 0%, transparent 70%);
border-radius: 16px;
opacity: 0;
transition: opacity 0.3s ease;
z-index: 1;
}
.service-card:hover .service-icon-glow {
opacity: 1;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.4; }
50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.2; }
}
/* Service Title & Description */
.service-title {
font-size: 1.25rem;
font-weight: 700;
color: var(--dark-blue);
margin-bottom: 12px;
line-height: 1.4;
}
.service-description {
font-size: 0.95rem; font-size: 0.95rem;
color: #4a5568; color: #4a5568;
line-height: 1.6; line-height: 1.6;
margin-bottom: 20px;
flex-grow: 1;
}
/* Service List */
.service-list {
list-style: none;
padding: 0;
margin: 0 0 25px 0;
}
.service-list li {
display: flex;
align-items: flex-start;
gap: 10px;
padding: 6px 0;
font-size: 0.9rem;
color: #4a5568;
}
.service-list li i {
color: var(--primary-blue);
font-size: 0.85rem;
margin-top: 4px;
flex-shrink: 0;
}
/* Service Link */
.service-link {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--dark-blue);
font-weight: 600;
font-size: 0.95rem;
text-decoration: none;
padding: 10px 0;
transition: all 0.3s ease;
position: relative;
margin-top: auto;
}
.service-link::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 2px;
background: var(--primary-blue);
transition: width 0.3s ease;
}
.service-link:hover {
color: var(--primary-blue);
gap: 12px;
}
.service-link:hover::after {
width: 100%;
}
.service-link i {
font-size: 0.85rem;
transition: transform 0.3s ease;
}
.service-link:hover i {
transform: translateX(4px);
}
/* Bottom CTA */
.services-cta {
text-align: center;
padding: 30px;
background: white;
border-radius: 16px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
border: 1px solid rgba(226, 232, 240, 0.6);
max-width: 600px;
margin: 0 auto;
}
.services-cta p {
font-size: 1.1rem;
color: var(--dark-blue);
margin-bottom: 20px;
font-weight: 500;
}
.btn-services-cta {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 14px 35px;
background: linear-gradient(135deg, var(--dark-blue), #2a4a6f);
color: white;
border-radius: 12px;
text-decoration: none;
font-weight: 600;
font-size: 1rem;
transition: all 0.3s ease;
border: none;
cursor: pointer;
}
.btn-services-cta:hover {
transform: translateY(-3px);
box-shadow: 0 12px 30px rgba(30, 58, 95, 0.3);
background: linear-gradient(135deg, #2a4a6f, var(--dark-blue));
}
/* Responsive Design */
@media (max-width: 1200px) {
.services-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 992px) {
.services-section {
padding: 80px 20px;
}
.services-title {
font-size: 1.9rem;
}
.service-card {
padding: 30px 25px;
}
}
@media (max-width: 768px) {
.services-section {
padding: 60px 15px;
}
.services-header {
margin-bottom: 45px;
}
.services-title {
font-size: 1.7rem;
}
.services-subtitle {
font-size: 1rem;
}
.services-grid {
grid-template-columns: 1fr;
}
.service-icon-wrapper {
width: 60px;
height: 60px;
margin: 0 auto 20px;
}
.service-icon {
width: 60px;
height: 60px;
border-radius: 14px;
}
.service-icon i {
font-size: 1.5rem;
}
.service-card {
text-align: center;
}
.service-list {
text-align: left;
display: inline-block;
}
.service-link {
justify-content: center;
}
}
@media (max-width: 480px) {
.services-title {
font-size: 1.5rem;
}
.service-card {
padding: 25px 20px;
}
.service-title {
font-size: 1.2rem;
}
.btn-services-cta {
width: 100%;
justify-content: center;
}
} }
/* Properti Unggulan */ /* Properti Unggulan */
@ -1537,28 +1877,40 @@ class="nav-item {{ request()->routeIs('kontak') ? 'active' : '' }}">
<!-- FORM PENCARIAN DI SINI --> <!-- FORM PENCARIAN DI SINI -->
<div class="hero-search"> <div class="hero-search">
<form class="property-search-card" action="properti.html" method="GET"> <form class="property-search-card"
action="{{ route('halaman-katalog') }}"
method="GET">
<h3 class="search-title">Cari Properti</h3> <h3 class="search-title">Cari Properti</h3>
<label>Lokasi</label>
<input type="text" name="lokasi" placeholder="Masukkan lokasi">
<div class="search-row"> <div class="search-row">
<div> <div>
<label>Tipe</label> <label>Kategori</label>
<select name="tipe"> <select name="kategori">
<option value="">Pilih Tipe</option> <option value="">Semua Kategori</option>
<option value="rumah">Rumah</option> <option value="subsidi" {{ request('kategori') == 'subsidi' ? 'selected' : '' }}>Subsidi</option>
<option value="apartemen">Apartemen</option> <option value="komersial" {{ request('kategori') == 'komersial' ? 'selected' : '' }}>Komersial</option>
</select> </select>
</div> </div>
<div>
<label>Tipe</label>
<select name="jenis">
<option value="">Pilih Tipe</option>
<option value="rumah" {{ request('jenis') == 'rumah' ? 'selected' : '' }}>Rumah</option>
<option value="ruko" {{ request('jenis') == 'ruko' ? 'selected' : '' }}>Ruko</option>
</select>
</div>
</div>
<div class="search-row">
<div> <div>
<label>Harga</label> <label>Harga</label>
<select name="harga"> <select name="harga">
<option value="">Rentang Harga</option> <option value="">Rentang Harga</option>
<option value="0-300"> 300 Juta</option> <option value="0-200" {{ request('harga') == '0-200' ? 'selected' : '' }}> 200 Juta</option>
<option value="300-600">300 600 Juta</option> <option value="200-300" {{ request('harga') == '200-300' ? 'selected' : '' }}>200 - 300 Juta</option>
<option value="300-500" {{ request('harga') == '300-500' ? 'selected' : '' }}>300 - 500 Juta</option>
<option value="500+" {{ request('harga') == '500+' ? 'selected' : '' }}> 500 Juta</option>
</select> </select>
</div> </div>
</div> </div>
@ -1596,61 +1948,120 @@ class="nav-item {{ request()->routeIs('kontak') ? 'active' : '' }}">
</div> </div>
</section> </section>
<!-- Features Section --> <!-- Services Section -->
<section class="features-section"> <section class="services-section">
<div class="container"> <div class="container">
<h2 class="section-title">Fitur Unggulan Kami</h2>
<p class="section-subtitle">Kami menyediakan berbagai fitur untuk mempermudah Anda dalam mencari properti impian.</p>
<div class="features-grid"> <!-- Section Header -->
<div class="feature-card"> <div class="services-header">
<div class="feature-icon"> <span class="services-badge">Layanan Kami</span>
<i class="fas fa-search"></i> <h2 class="services-title">Solusi Properti Terlengkap untuk Anda</h2>
</div> <p class="services-subtitle">
<h3 class="feature-title">Pencarian Mudah</h3> Kami menyediakan layanan end-to-end untuk membantu Anda menemukan, membeli, dan mengelola properti impian dengan mudah dan aman.
<p class="feature-description">Cari properti sesuai kriteria Anda dengan filter lengkap dan sistem pencarian cerdas.</p> </p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-map-marker-alt"></i>
</div>
<h3 class="feature-title">Lokasi Strategis</h3>
<p class="feature-description">Temukan properti di lokasi strategis dengan akses mudah ke fasilitas umum.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-handshake"></i>
</div>
<h3 class="feature-title">Transaksi Aman</h3>
<p class="feature-description">Proses transaksi yang aman dan terjamin dengan notaris profesional.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-chart-line"></i>
</div>
<h3 class="feature-title">Analisis Harga</h3>
<p class="feature-description">Dapatkan analisis harga pasar untuk membantu Anda membuat keputusan tepat.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-comments"></i>
</div>
<h3 class="feature-title">ChatBot 24/7</h3>
<p class="feature-description">Dapatkan bantuan instan melalui ChatBot kami yang tersedia 24 jam.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-users"></i>
</div>
<h3 class="feature-title">Tim Ahli</h3>
<p class="feature-description">Konsultasi langsung dengan agen properti profesional kami.</p>
</div>
</div> </div>
<!-- Services Grid (4 Cards) -->
<div class="services-grid">
<!-- Service 1: Konsultasi via ChatBot -->
<div class="service-card">
<div class="service-icon-wrapper">
<div class="service-icon">
<i class="fas fa-robot"></i>
</div>
<div class="service-icon-glow"></div>
</div>
<h3 class="service-title">Konsultasi via ChatBot</h3>
<p class="service-description">
Tanya jawab instan seputar properti, KPR, dan layanan kami melalui ChatBot AI yang siap membantu 24/7.
</p>
<ul class="service-list">
<li><i class="fas fa-check"></i> Jawaban instan 24 jam</li>
<li><i class="fas fa-check"></i> Panduan langkah demi langkah</li>
<li><i class="fas fa-check"></i> Rekomendasi properti personal</li>
</ul>
<a href="{{ route('halaman-chatbot') }}" class="service-link">
Open chatbot <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Service 2: Pencarian Properti -->
<div class="service-card">
<div class="service-icon-wrapper">
<div class="service-icon">
<i class="fas fa-search-location"></i>
</div>
<div class="service-icon-glow"></div>
</div>
<h3 class="service-title">Pencarian Properti Cerdas</h3>
<p class="service-description">
Temukan properti impian dengan filter canggih: lokasi, harga, tipe, fasilitas, dan masih banyak lagi.
</p>
<ul class="service-list">
<li><i class="fas fa-check"></i> Filter multi-kriteria</li>
<li><i class="fas fa-check"></i> Peta interaktif lokasi</li>
<li><i class="fas fa-check"></i> Notifikasi properti baru</li>
</ul>
<a href="{{ route('halaman-katalog') }}" class="service-link">
Mulai Cari <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Service 3: Bantuan KPR -->
<div class="service-card">
<div class="service-icon-wrapper">
<div class="service-icon">
<i class="fas fa-hand-holding-usd"></i>
</div>
<div class="service-icon-glow"></div>
</div>
<h3 class="service-title">Pendampingan KPR</h3>
<p class="service-description">
Kami bantu proses pengajuan KPR Anda dari awal hingga cair, dengan bank partner terpercaya.
</p>
<ul class="service-list">
<li><i class="fas fa-check"></i> Simulasi cicilan gratis</li>
<li><i class="fas fa-check"></i> Bantuan dokumen lengkap</li>
<li><i class="fas fa-check"></i> Proses cepat 7-14 hari</li>
</ul>
<a href="{{ route('login') }}" class="service-link">
Ajukan KPR <i class="fas fa-arrow-right"></i>
</a>
</div>
<!-- Service 4: Verifikasi & After-Sales -->
<div class="service-card">
<div class="service-icon-wrapper">
<div class="service-icon">
<i class="fas fa-shield-alt"></i>
</div>
<div class="service-icon-glow"></div>
</div>
<h3 class="service-title">Verifikasi & Garansi</h3>
<p class="service-description">
Semua properti telah diverifikasi legalitasnya, plus garansi bangunan dan layanan purna jual terbaik.
</p>
<ul class="service-list">
<li><i class="fas fa-check"></i> Cek sertifikat & IMB</li>
<li><i class="fas fa-check"></i> Garansi struktur 5 tahun</li>
<li><i class="fas fa-check"></i> Tim maintenance responsif</li>
</ul>
<a href="{{ route('halaman-kontak') }}" class="service-link">
Pelajari Lebih Lanjut <i class="fas fa-arrow-right"></i>
</a>
</div>
</div>
<!-- CTA Bottom -->
<div class="services-cta">
<p>Butuh bantuan lebih lanjut? Tim kami siap membantu Anda!</p>
<a href="{{ route('halaman-chatbot') }}" class="btn-services-cta">
<i class="fas fa-comments me-2"></i>Chat dengan Kami
</a>
</div>
</div> </div>
</section> </section>
@ -1788,8 +2199,8 @@ class="btn-primary properti-btn">
<!-- Category Filter --> <!-- Category Filter -->
<div class="faq-categories"> <div class="faq-categories">
<button class="faq-category-btn active" data-category="all"> <button class="faq-category-btn" data-category="umum">
<i class="fas fa-th-large me-2"></i>Semua <i class="fas fa-info-circle me-2"></i>Umum
</button> </button>
<button class="faq-category-btn" data-category="pembelian"> <button class="faq-category-btn" data-category="pembelian">
<i class="fas fa-home me-2"></i>Pembelian <i class="fas fa-home me-2"></i>Pembelian
@ -1797,9 +2208,6 @@ class="btn-primary properti-btn">
<button class="faq-category-btn" data-category="kpr"> <button class="faq-category-btn" data-category="kpr">
<i class="fas fa-university me-2"></i>KPR <i class="fas fa-university me-2"></i>KPR
</button> </button>
<button class="faq-category-btn" data-category="umum">
<i class="fas fa-info-circle me-2"></i>Umum
</button>
</div> </div>
<!-- FAQ Accordion --> <!-- FAQ Accordion -->
@ -1808,7 +2216,7 @@ class="btn-primary properti-btn">
<!-- FAQ Item 1 --> <!-- FAQ Item 1 -->
<div class="faq-item" data-category="pembelian"> <div class="faq-item" data-category="pembelian">
<button class="faq-question"> <button class="faq-question">
<span>🏠 Bagaimana cara membeli properti di Carani Estate?</span> <span>Bagaimana cara membeli properti di Carani Estate?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
@ -1829,7 +2237,7 @@ class="btn-primary properti-btn">
<!-- FAQ Item 2 --> <!-- FAQ Item 2 -->
<div class="faq-item" data-category="kpr"> <div class="faq-item" data-category="kpr">
<button class="faq-question"> <button class="faq-question">
<span>🏦 Apa syarat mengajukan KPR di Carani Estate?</span> <span>Apa syarat mengajukan KPR di Carani Estate?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
@ -1851,7 +2259,7 @@ class="btn-primary properti-btn">
<!-- FAQ Item 3 --> <!-- FAQ Item 3 -->
<div class="faq-item" data-category="pembelian"> <div class="faq-item" data-category="pembelian">
<button class="faq-question"> <button class="faq-question">
<span>💰 Berapa minimal DP untuk membeli properti?</span> <span>Berapa minimal DP untuk membeli properti?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
@ -1871,18 +2279,18 @@ class="btn-primary properti-btn">
<!-- FAQ Item 4 --> <!-- FAQ Item 4 -->
<div class="faq-item" data-category="kpr"> <div class="faq-item" data-category="kpr">
<button class="faq-question"> <button class="faq-question">
<span>📊 Bank apa saja yang bekerja sama dengan Carani Estate?</span> <span>Bank apa saja yang bekerja sama dengan Carani Estate?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
<div class="faq-answer-content"> <div class="faq-answer-content">
<p>Kami bekerja sama dengan berbagai bank terpercaya:</p> <p>Kami bekerja sama dengan berbagai bank terpercaya:</p>
<ul> <ul>
<li>🏦 <strong>BTN</strong> - Spesialis KPR dengan bunga kompetitif</li> <li><strong>BTN</strong> - Spesialis KPR dengan bunga kompetitif</li>
<li>🏦 <strong>Mandiri</strong> - Proses cepat dan fleksibel</li> <li><strong>Mandiri</strong> - Proses cepat dan fleksibel</li>
<li>🏦 <strong>BCA</strong> - Suku bunga menarik untuk karyawan</li> <li><strong>BCA</strong> - Suku bunga menarik untuk karyawan</li>
<li>🏦 <strong>BRI</strong> - Pilihan tenor hingga 20 tahun</li> <li><strong>BRI</strong> - Pilihan tenor hingga 20 tahun</li>
<li>🏦 <strong>BNI</strong> - Paket KPR syariah tersedia</li> <li><strong>BNI</strong> - Paket KPR syariah tersedia</li>
</ul> </ul>
<p>Tim kami akan membantu Anda memilih bank dengan penawaran terbaik.</p> <p>Tim kami akan membantu Anda memilih bank dengan penawaran terbaik.</p>
</div> </div>
@ -1892,17 +2300,17 @@ class="btn-primary properti-btn">
<!-- FAQ Item 5 --> <!-- FAQ Item 5 -->
<div class="faq-item" data-category="umum"> <div class="faq-item" data-category="umum">
<button class="faq-question"> <button class="faq-question">
<span>📄 Apakah sertifikat properti sudah SHM?</span> <span>Apakah sertifikat properti sudah SHM?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
<div class="faq-answer-content"> <div class="faq-answer-content">
<p>Ya, semua properti di Carani Estate memiliki:</p> <p>Ya, semua properti di Carani Estate memiliki:</p>
<ul> <ul>
<li> <strong>Sertifikat Hak Milik (SHM)</strong> - Untuk rumah tapak</li> <li><strong>Sertifikat Hak Milik (SHM)</strong> - Untuk rumah tapak</li>
<li> <strong>Sertifikat Strata Title</strong> - Untuk apartemen</li> <li><strong>Sertifikat Strata Title</strong> - Untuk apartemen</li>
<li> <strong>IMB (Izin Mendirikan Bangunan)</strong> lengkap</li> <li><strong>IMB (Izin Mendirikan Bangunan)</strong> lengkap</li>
<li> <strong>BPHTB & Pajak</strong> sudah termasuk (untuk promo tertentu)</li> <li><strong>BPHTB & Pajak</strong> sudah termasuk (untuk promo tertentu)</li>
</ul> </ul>
<p>Sertifikat akan diproses setelah pembayaran lunas dan dapat diambil di notaris.</p> <p>Sertifikat akan diproses setelah pembayaran lunas dan dapat diambil di notaris.</p>
</div> </div>
@ -1912,7 +2320,7 @@ class="btn-primary properti-btn">
<!-- FAQ Item 6 --> <!-- FAQ Item 6 -->
<div class="faq-item" data-category="pembelian"> <div class="faq-item" data-category="pembelian">
<button class="faq-question"> <button class="faq-question">
<span>⏱️ Berapa lama proses sampai serah terima kunci?</span> <span>Berapa lama proses sampai serah terima kunci?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
@ -1931,16 +2339,16 @@ class="btn-primary properti-btn">
<!-- FAQ Item 7 --> <!-- FAQ Item 7 -->
<div class="faq-item" data-category="umum"> <div class="faq-item" data-category="umum">
<button class="faq-question"> <button class="faq-question">
<span>🔧 Apakah ada garansi untuk properti yang dibeli?</span> <span>Apakah ada garansi untuk properti yang dibeli?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
<div class="faq-answer-content"> <div class="faq-answer-content">
<p>Ya, kami memberikan garansi:</p> <p>Ya, kami memberikan garansi:</p>
<ul> <ul>
<li>🔹 <strong>Garansi Struktur:</strong> 5 tahun untuk kerusakan struktur utama</li> <li><strong>Garansi Struktur:</strong> 5 tahun untuk kerusakan struktur utama</li>
<li>🔹 <strong>Garansi Atap & Dinding:</strong> 2 tahun untuk kebocoran/retak</li> <li><strong>Garansi Atap & Dinding:</strong> 2 tahun untuk kebocoran/retak</li>
<li>🔹 <strong>Garansi Instalasi:</strong> 1 tahun untuk listrik & plumbing</li> <li><strong>Garansi Instalasi:</strong> 1 tahun untuk listrik & plumbing</li>
</ul> </ul>
<p>Layanan purna jual kami siap membantu jika ada kendala setelah serah terima.</p> <p>Layanan purna jual kami siap membantu jika ada kendala setelah serah terima.</p>
</div> </div>
@ -1950,7 +2358,7 @@ class="btn-primary properti-btn">
<!-- FAQ Item 8 --> <!-- FAQ Item 8 -->
<div class="faq-item" data-category="kpr"> <div class="faq-item" data-category="kpr">
<button class="faq-question"> <button class="faq-question">
<span>📉 Berapa bunga KPR yang ditawarkan?</span> <span>Berapa bunga KPR yang ditawarkan?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
@ -1969,7 +2377,7 @@ class="btn-primary properti-btn">
<!-- FAQ Item 9 --> <!-- FAQ Item 9 -->
<div class="faq-item" data-category="pembelian"> <div class="faq-item" data-category="pembelian">
<button class="faq-question"> <button class="faq-question">
<span>🔄 Apakah bisa membatalkan pemesanan?</span> <span>Apakah bisa membatalkan pemesanan?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
@ -1988,17 +2396,17 @@ class="btn-primary properti-btn">
<!-- FAQ Item 10 --> <!-- FAQ Item 10 -->
<div class="faq-item" data-category="umum"> <div class="faq-item" data-category="umum">
<button class="faq-question"> <button class="faq-question">
<span>📞 Bagaimana cara menghubungi tim Carani Estate?</span> <span>Bagaimana cara menghubungi tim Carani Estate?</span>
<i class="fas fa-chevron-down"></i> <i class="fas fa-chevron-down"></i>
</button> </button>
<div class="faq-answer"> <div class="faq-answer">
<div class="faq-answer-content"> <div class="faq-answer-content">
<p>Anda dapat menghubungi kami melalui:</p> <p>Anda dapat menghubungi kami melalui:</p>
<ul> <ul>
<li>📱 <strong>WhatsApp:</strong> 0812-3456-7890 (24/7)</li> <li><strong>WhatsApp:</strong> 0812-3456-7890 (24/7)</li>
<li>📧 <strong>Email:</strong> info@caraniestate.com</li> <li><strong>Email:</strong> info@caraniestate.com</li>
<li>🏢 <strong>Kantor:</strong> Jl. Melati No. 45, Bondowoso, Jawa Timur</li> <li><strong>Kantor:</strong> Jl. Melati No. 45, Bondowoso, Jawa Timur</li>
<li>💬 <strong>Live Chat:</strong> Tersedia di website (08:00 - 17:00 WIB)</li> <li><strong>Live Chat:</strong> Tersedia di website (08:00 - 17:00 WIB)</li>
</ul> </ul>
<p>Tim marketing kami siap membantu konsultasi gratis!</p> <p>Tim marketing kami siap membantu konsultasi gratis!</p>
</div> </div>
@ -2009,7 +2417,7 @@ class="btn-primary properti-btn">
<!-- Contact CTA --> <!-- Contact CTA -->
<div class="faq-contact"> <div class="faq-contact">
<h3>Masih Punya Pertanyaan?</h3> <h3>Masih Punya Pertanyaan?</h3>
<p>Tim kami siap membantu Anda 24/7. Jangan ragu untuk menghubungi kami!</p> <p>Tim kami siap membantu Anda 24/7. Jangan ragu untuk menghubungi kami!</p>
<a href="https://wa.me/6281234567890" class="faq-contact-btn" target="_blank"> <a href="https://wa.me/6281234567890" class="faq-contact-btn" target="_blank">
<i class="fab fa-whatsapp"></i> Hubungi via WhatsApp <i class="fab fa-whatsapp"></i> Hubungi via WhatsApp

View File

@ -155,7 +155,11 @@
Route::get('/', function () { Route::get('/', function () {
return view('admin.welcome'); return view('admin.welcome');
})->name('admin.dashboard'); })->name('admin.welcome');
Route::get('/halaman_chatbot', function () {
return view('admin.halaman_chatbot');
})->name('admin.halaman_chatbot');
// ======================== // ========================
// DATA RUMAH // DATA RUMAH
@ -259,6 +263,13 @@
return redirect()->route('admin.data_user')->with('success', 'User berhasil diupdate.'); return redirect()->route('admin.data_user')->with('success', 'User berhasil diupdate.');
})->name('admin.edit_user.update'); })->name('admin.edit_user.update');
Route::delete('/hapus_user/{id}', function ($id) {
\App\Models\User::where('id_user', $id)->delete();
return redirect()->route('admin.data_user')
->with('success', 'User berhasil dihapus.');
})->name('admin.hapus_user');
// ======================== // ========================
// VERIFIKASI // VERIFIKASI
// ======================== // ========================