program dan menu tabel

This commit is contained in:
2026-05-05 15:48:14 +07:00
parent bb8c33f9cd
commit 3c6680c71c
3 changed files with 33 additions and 32 deletions
+11 -8
View File
@@ -6,6 +6,9 @@ use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
use Illuminate\View\View;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use App\Models\Core\Program; use App\Models\Core\Program;
use App\Models\Wilayah\Provinsi; use App\Models\Wilayah\Provinsi;
@@ -13,7 +16,7 @@ use App\Models\Pertanian\Komoditas;
class ProgramController extends Controller class ProgramController extends Controller
{ {
public function index(Request $request) public function index(Request $request): View
{ {
$title = 'Program'; $title = 'Program';
@@ -26,20 +29,20 @@ class ProgramController extends Controller
return view('core.program.index', compact('title', 'program')); return view('core.program.index', compact('title', 'program'));
} }
public function create() public function create(): View
{ {
$provinsi = Provinsi::orderBy('nama', 'asc')->get(); $provinsi = Provinsi::orderBy('nama', 'asc')->get();
$komoditas = Komoditas::orderBy('nama', 'asc')->get(); $komoditas = Komoditas::orderBy('nama', 'asc')->get();
return view('core.program.add', compact('provinsi', 'komoditas')); return view('core.program.add', compact('provinsi', 'komoditas'));
} }
public function getProgram() public function getProgram(): JsonResponse
{ {
$program = Program::select(['id', 'nama', 'sub_domain'])->get(); $program = Program::select(['id', 'nama', 'sub_domain'])->get();
return response()->json(['data' => $program]); return response()->json(['data' => $program]);
} }
public function store(Request $request) public function store(Request $request): RedirectResponse
{ {
$validator = Validator::make($request->all(), [ $validator = Validator::make($request->all(), [
'nama' => ['required'], 'nama' => ['required'],
@@ -63,7 +66,7 @@ class ProgramController extends Controller
return redirect()->route('program.index')->with('success', 'Data program berhasil disimpan!'); return redirect()->route('program.index')->with('success', 'Data program berhasil disimpan!');
} }
public function show($id) public function show($id): View
{ {
$program = Program::find($id); $program = Program::find($id);
if (!$program) { if (!$program) {
@@ -76,7 +79,7 @@ class ProgramController extends Controller
return view('core.program.view', compact('program', 'komoditas', 'provinsi')); return view('core.program.view', compact('program', 'komoditas', 'provinsi'));
} }
public function edit($id) public function edit($id): View
{ {
$program = Program::find($id); $program = Program::find($id);
if (!$program) { if (!$program) {
@@ -86,7 +89,7 @@ class ProgramController extends Controller
return view('core.program.edit', compact('program')); return view('core.program.edit', compact('program'));
} }
public function update(Request $request, $id) public function update(Request $request, $id): RedirectResponse
{ {
$validator = Validator::make($request->all(), [ $validator = Validator::make($request->all(), [
'nama' => ['required'], 'nama' => ['required'],
@@ -112,7 +115,7 @@ class ProgramController extends Controller
return redirect()->route('program.index')->with('success', 'Data program berhasil diperbarui!'); return redirect()->route('program.index')->with('success', 'Data program berhasil diperbarui!');
} }
public function destroy($id) public function destroy($id): JsonResponse
{ {
$program = Program::find($id); $program = Program::find($id);
if (!$program) { if (!$program) {
+10
View File
@@ -7,11 +7,15 @@ use Illuminate\Support\Facades\Gate;
use App\Models\User; use App\Models\User;
use App\Enums\Role; use App\Enums\Role;
use Illuminate\Support\Facades\URL; use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View;
use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Scramble;
use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\OpenApi;
use Dedoc\Scramble\Support\Generator\SecurityScheme; use Dedoc\Scramble\Support\Generator\SecurityScheme;
use App\Models\Ekosistem\TabelBasisData;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
{ {
/** /**
@@ -61,5 +65,11 @@ class AppServiceProvider extends ServiceProvider
Gate::define('offtaker', function (User $user) { Gate::define('offtaker', function (User $user) {
return $user->role === Role::OFFTAKER; return $user->role === Role::OFFTAKER;
}); });
View::composer('*', function ($view) {
$tabel_menu = TabelBasisData::has('kolom')->get();
$view->with('tabel_menu', $tabel_menu);
});
} }
} }
+11 -23
View File
@@ -102,41 +102,29 @@
</li> </li>
</ul> </ul>
</li> </li>
<li class="menu-item"> <li class="menu-item {{ request()->routeIs(['petani-cpm.*','tabel.data.*']) ? 'active open' : '' }}">
<a href="javascript:void(0);" class="menu-link menu-toggle"> <a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="menu-icon icon-base ti tabler-folder-root"></i> <i class="menu-icon icon-base ti tabler-folder-root"></i>
<div data-i18n="Basis Data Ekosistem">Basis Data Ekosistem</div> <div data-i18n="Basis Data Ekosistem">Basis Data Ekosistem</div>
</a> </a>
<ul class="menu-sub"> <ul class="menu-sub">
<li class="menu-item"> <li class="menu-item {{ request()->routeIs('petani-cpm.*') ? 'active' : '' }}">
<a href="{{ route('petani-cpm.index') }}" class="menu-link"> <a href="{{ route('petani-cpm.index') }}" class="menu-link">
<div data-i18n="Petani">Petani</div> <div data-i18n="Petani">Petani</div>
</a> </a>
</li> </li>
</ul> </ul>
@foreach ($tabel_menu as $tbl)
<ul class="menu-sub"> <ul class="menu-sub">
<li class="menu-item"> <li class="menu-item {{ request()->routeIs('tabel.data.*') && request()->route('tabel') == $tbl->id ? 'active' : '' }}">
<a href="#" class="menu-link"> <a href="{{ route('tabel.data.index', $tbl->id) }}" class="menu-link">
<div data-i18n="Kondisi Agroekologi">Kondisi Agroekologi</div> <div data-i18n="{{ $tbl->menu }}">{{ $tbl->menu }}</div>
</a>
</li>
</ul>
<ul class="menu-sub">
<li class="menu-item">
<a href="#" class="menu-link">
<div data-i18n="Rantai Nilai Pasar">Rantai Nilai Pasar</div>
</a>
</li>
</ul>
<ul class="menu-sub">
<li class="menu-item">
<a href="#" class="menu-link">
<div data-i18n="Pemangku Kepentingan">Pemangku Kepentingan</div>
</a> </a>
</li> </li>
</ul> </ul>
@endforeach
</li> </li>
<li class="menu-item"> <!-- <li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle"> <a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="menu-icon icon-base ti tabler-line-scan"></i> <i class="menu-icon icon-base ti tabler-line-scan"></i>
<div data-i18n="Tracebility">Tracebility</div> <div data-i18n="Tracebility">Tracebility</div>
@@ -155,7 +143,7 @@
</a> </a>
</li> </li>
</ul> </ul>
</li> </li> -->
<li class="menu-item"> <li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle"> <a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="menu-icon icon-base ti tabler-webhook"></i> <i class="menu-icon icon-base ti tabler-webhook"></i>
@@ -264,7 +252,7 @@
</li> </li>
</ul> </ul>
</li> </li>
<li class="menu-item {{ request()->routeIs(['group.*', 'tabel.*']) ? 'active open' : '' }}"> <li class="menu-item {{ request()->routeIs(['group.*', 'tabel.*']) && !request()->routeIs('tabel.data.*') ? 'active open' : '' }}">
<a href="javascript:void(0);" class="menu-link menu-toggle"> <a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="menu-icon icon-base ti tabler-database"></i> <i class="menu-icon icon-base ti tabler-database"></i>
<div data-i18n="Basis Data Ekosistem">Basis Data Ekosistem</div> <div data-i18n="Basis Data Ekosistem">Basis Data Ekosistem</div>
@@ -275,7 +263,7 @@
<div data-i18n="Kelompok">Kelompok</div> <div data-i18n="Kelompok">Kelompok</div>
</a> </a>
</li> </li>
<li class="menu-item {{ request()->routeIs('tabel.*') ? 'active' : '' }}"> <li class="menu-item {{ request()->routeIs('tabel.*') && !request()->routeIs('tabel.data.*') ? 'active' : '' }}">
<a href="{{ route('tabel.index') }}" class="menu-link"> <a href="{{ route('tabel.index') }}" class="menu-link">
<div data-i18n="Tabel">Tabel</div> <div data-i18n="Tabel">Tabel</div>
</a> </a>