From 7787db02a3a43ae08600f3e048b50eb8694bb05c Mon Sep 17 00:00:00 2001 From: arifal Date: Thu, 13 Mar 2025 14:13:06 +0700 Subject: [PATCH] fix redirect back business or industries --- .../BusinessOrIndustriesController.php | 70 ++++--------------- resources/js/business-industries/create.js | 4 +- resources/js/business-industries/index.js | 14 ++-- resources/js/business-industries/update.js | 4 +- .../business-industries/create.blade.php | 1 + .../views/business-industries/edit.blade.php | 1 + .../views/business-industries/index.blade.php | 5 +- 7 files changed, 31 insertions(+), 68 deletions(-) diff --git a/app/Http/Controllers/BusinessOrIndustriesController.php b/app/Http/Controllers/BusinessOrIndustriesController.php index 4252c35..bba78b7 100644 --- a/app/Http/Controllers/BusinessOrIndustriesController.php +++ b/app/Http/Controllers/BusinessOrIndustriesController.php @@ -14,74 +14,30 @@ class BusinessOrIndustriesController extends Controller */ public function index(Request $request) { - $menuId = $request->query('menu_id'); - $user = Auth::user(); - $userId = $user->id; - - // Ambil role_id yang dimiliki user - $roleIds = DB::table('user_role') - ->where('user_id', $userId) - ->pluck('role_id'); - - // Ambil data akses berdasarkan role_id dan menu_id - $roleAccess = DB::table('role_menu') - ->whereIn('role_id', $roleIds) - ->where('menu_id', $menuId) - ->first(); - - // Pastikan roleAccess tidak null sebelum mengakses properti - $creator = $roleAccess->allow_create ?? 0; - $updater = $roleAccess->allow_update ?? 0; - $destroyer = $roleAccess->allow_destroy ?? 0; - return view('business-industries.index', compact('creator', 'updater', 'destroyer')); + $menuId = $request->query('menu_id') ?? $request->input('menu_id'); + $permissions = $this->permissions[$menuId]?? []; // Avoid undefined index error + $creator = $permissions['allow_create'] ?? 0; + $updater = $permissions['allow_update'] ?? 0; + $destroyer = $permissions['allow_destroy'] ?? 0; + return view('business-industries.index', compact('creator', 'updater', 'destroyer','menuId')); } - + /** * Show the form for creating a new resource. */ - public function create() + public function create(Request $request) { - return view("business-industries.create"); - } - - /** - * Store a newly created resource in storage. - */ - public function store(Request $request) - { - // - } - - /** - * Display the specified resource. - */ - public function show(string $id) - { - // + $menuId = $request->query('menu_id') ?? $request->input('menu_id'); + return view("business-industries.create", compact('menuId')); } /** * Show the form for editing the specified resource. */ - public function edit(string $id) + public function edit(string $id, Request $request) { + $menuId = $request->query('menu_id') ?? $request->input('menu_id'); $data = BusinessOrIndustry::findOrFail($id); - return view('business-industries.edit', compact('data')); - } - - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) - { - // - } - - /** - * Remove the specified resource from storage. - */ - public function destroy(string $id) - { - // + return view('business-industries.edit', compact('data', 'menuId')); } } diff --git a/resources/js/business-industries/create.js b/resources/js/business-industries/create.js index 4b9517c..3b8ea07 100644 --- a/resources/js/business-industries/create.js +++ b/resources/js/business-industries/create.js @@ -12,6 +12,8 @@ const spinner = document.getElementById("spinner"); const toastNotification = document.getElementById("toastNotification"); const toast = new bootstrap.Toast(toastNotification); +let menuId = document.getElementById("menuId").value; + (dropzonePreviewNode.id = ""), dropzonePreviewNode && ((previewTemplate = dropzonePreviewNode.parentNode.innerHTML), @@ -34,7 +36,7 @@ const toast = new bootstrap.Toast(toastNotification); response.message; toast.show(); setTimeout(() => { - window.location.href = "/data/business-industries"; + window.location.href = `/data/business-industries?menu_id=${menuId}`; }, 2000); }); this.on("error", function (file, errorMessage) { diff --git a/resources/js/business-industries/index.js b/resources/js/business-industries/index.js index 81409f6..8c3d195 100644 --- a/resources/js/business-industries/index.js +++ b/resources/js/business-industries/index.js @@ -35,7 +35,8 @@ class BusinessIndustries { tableContainer.innerHTML = ""; let canUpdate = tableContainer.getAttribute("data-updater") === "1"; let canDelete = tableContainer.getAttribute("data-destroyer") === "1"; - + let menuId = tableContainer.getAttribute("data-menuId"); + // Create a new Grid.js instance only if it doesn't exist this.table = new Grid({ columns: [ @@ -56,17 +57,16 @@ class BusinessIndustries { { name: "Action", formatter: (cell) => { - let buttons = `
`; - + if (canUpdate) { buttons += ` - + `; } - + if (canDelete) { buttons += ` `; } - + buttons += `
`; - + return gridjs.html(buttons); }, }, diff --git a/resources/js/business-industries/update.js b/resources/js/business-industries/update.js index 5b007ba..2cb9336 100644 --- a/resources/js/business-industries/update.js +++ b/resources/js/business-industries/update.js @@ -13,6 +13,8 @@ class UpdateBusinessIndustries { const spinner = document.getElementById("spinner"); const toast = new bootstrap.Toast(toastNotification); + let menuId = document.getElementById("menuId").value; + if (!submitButton) { console.error("Error: Submit button not found!"); return; @@ -53,7 +55,7 @@ class UpdateBusinessIndustries { data.message; toast.show(); setTimeout(() => { - window.location.href = "/data/business-industries"; + window.location.href = `/data/business-industries?menu_id=${menuId}`; }, 2000); } else { // Show error toast with message from API diff --git a/resources/views/business-industries/create.blade.php b/resources/views/business-industries/create.blade.php index 1041ea2..760fda9 100644 --- a/resources/views/business-industries/create.blade.php +++ b/resources/views/business-industries/create.blade.php @@ -5,6 +5,7 @@ @include('layouts.partials/page-title', ['title' => 'Data', 'subtitle' => 'Business Industries']) +
diff --git a/resources/views/business-industries/edit.blade.php b/resources/views/business-industries/edit.blade.php index 5facb56..7bf04e7 100644 --- a/resources/views/business-industries/edit.blade.php +++ b/resources/views/business-industries/edit.blade.php @@ -5,6 +5,7 @@ @include('layouts.partials/page-title', ['title' => 'Data Settings', 'subtitle' => 'Setting Dashboard']) +
diff --git a/resources/views/business-industries/index.blade.php b/resources/views/business-industries/index.blade.php index edab41c..60fde5a 100644 --- a/resources/views/business-industries/index.blade.php +++ b/resources/views/business-industries/index.blade.php @@ -16,12 +16,13 @@
@if ($creator) - Upload + Upload @endif
+ data-destroyer="{{ $destroyer }}" + data-menuId="{{ $menuId }}">