<?php
namespace App\Http\Controllers;
use App\Models\JenisKegiatan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Routing\UrlGenerator;
class JenisKegiatanController extends Controller
{
/**
* Display a listing of the resource.
*/
public $breadcrumbs;
public $title = "Jenis Kegiatan";
public $url = "jenis_kegiatan";
public $menu = "jenis kegiatan";
public function __construct(UrlGenerator $urlGenerator)
{
$this->breadcrumbs = [
['title' => 'Home', 'url' => $urlGenerator->route('dashboard')],
['title' => 'Pengaturan Aplikasi', 'url' => "#"],
['title' => $this->title, 'url' => $urlGenerator->route($this->url.'.index')],
];
}
public function index()
{
if(!Auth()->user()->can('view '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$breadcrumbs = $this->breadcrumbs;
$title = $this->title;
$url = $this->url;
$menu = $this->menu;
$datas = JenisKegiatan::all();
return view('pages.jenis_kegiatan.index', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
if(!Auth()->user()->can('create '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$breadcrumbs = $this->breadcrumbs;
$title = $this->title;
$url = $this->url;
$menu = $this->menu;
return view('pages.jenis_kegiatan.create', compact('title', 'url', 'menu', 'breadcrumbs'));
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
if(!Auth()->user()->can('create '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
if ($request->password != $request->c_password) {
return back()->with('error', 'Mohon Periksa Kembali Password Yang Anda Masukkan')->withInput();
}
$request->validate([
'nama_jenis_kegiatan' => 'required',
]);
DB::beginTransaction();
try {
$jenis_kegiatan = JenisKegiatan::create([
'nama_jenis_kegiatan' => $request->nama_jenis_kegiatan,
]);
DB::commit();
return redirect()->route($this->url.'.index')->with('success','Berhasil menambahkan '.$this->title);
} catch (\Throwable $th) {
//throw $th;
DB::rollback();
Log::error($th);
return back()->with('error','Gagal menambahkan '.$this->title.' : ' . $th->getMessage())->withInput();
}
}
/**
* Display the specified resource.
*/
public function show(JenisKegiatan $jenis_kegiatan)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(JenisKegiatan $jenis_kegiatan)
{
if(!Auth()->user()->can('edit '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$breadcrumbs = $this->breadcrumbs;
$title = $this->title;
$url = $this->url;
$menu = $this->menu;
return view('pages.jenis_kegiatan.edit', compact('title', 'url', 'menu', 'jenis_kegiatan', 'breadcrumbs'));
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, JenisKegiatan $jenis_kegiatan)
{
if(!Auth()->user()->can('edit '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$request->validate([
'nama_jenis_kegiatan' => 'required',
]);
DB::beginTransaction();
try {
$jenis_kegiatan->update([
'nama_jenis_kegiatan' => $request->nama_jenis_kegiatan,
]);
DB::commit();
return redirect()->route($this->url.'.index')->with('success','Berhasil mengubah '.$this->title);
} catch (\Throwable $th) {
//throw $th;
DB::rollback();
Log::error($th);
return back()->with('error','Gagal mengubah '.$this->title.' : ' . $th->getMessage())->withInput();
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(JenisKegiatan $jenis_kegiatan)
{
if(!Auth()->user()->can('delete '.$this->menu)){
return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
DB::beginTransaction();
try {
$jenis_kegiatan->delete();
DB::commit();
return redirect()->route($this->url.'.index')->with('success','Berhasil menghapus '.$this->title);
} catch (\Throwable $th) {
//throw $th;
DB::rollback();
Log::error($th);
return redirect()->route($this->url.'.index')->with('error','Gagal menghapus '.$this->title.' : ' . $th->getMessage());
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]