modelClassName()}}; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Datatables; class {{$gen->controllerClassName()}} extends Controller { public $viewDir = "{{$gen->viewsDirName()}}"; public $breadcrumbs = array( 'permissions'=>array('title'=>'{{ ucwords($gen->authAttr) }}','link'=>"#",'active'=>false,'display'=>true), ); public function __construct() { $this->middleware('permission:read-{{$gen->authAttr}}'); } public function index() { return $this->view( "index"); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return $this->view("form",['{{$gen->modelVariableName()}}' => new {{$gen->modelClassName()}}]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store( Request $request ) { $this->validate($request, {{$gen->modelClassName()}}::validationRules()); $act={{$gen->modelClassName()}}::create($request->all()); message($act,'Data {{$gen->titlePlural()}} berhasil ditambahkan','Data {{$gen->titlePlural()}} gagal ditambahkan'); return redirect('{{$gen->route()}}'); } /** * Display the specified resource. * * @return \Illuminate\Http\Response */ public function show(Request $request, $kode) { ${{$gen->modelVariableName()}}={{$gen->modelClassName()}}::find($kode); return $this->view("show",['{{$gen->modelVariableName()}}' => ${{$gen->modelVariableName()}}]); } /** * Show the form for editing the specified resource. * * @return \Illuminate\Http\Response */ public function edit(Request $request, $kode) { ${{$gen->modelVariableName()}}={{$gen->modelClassName()}}::find($kode); return $this->view( "form", ['{{$gen->modelVariableName()}}' => ${{$gen->modelVariableName()}}] ); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function update(Request $request, $kode) { ${{$gen->modelVariableName()}}={{$gen->modelClassName()}}::find($kode); if( $request->isXmlHttpRequest() ) { $data = [$request->name => $request->value]; $validator = \Validator::make( $data, {{$gen->modelClassName()}}::validationRules( $request->name ) ); if($validator->fails()) return response($validator->errors()->first( $request->name),403); ${{$gen->modelVariableName()}}->update($data); return "Record updated"; } $this->validate($request, {{$gen->modelClassName()}}::validationRules()); $act=${{$gen->modelVariableName()}}->update($request->all()); message($act,'Data {{$gen->titlePlural()}} berhasil diupdate','Data {{$gen->titlePlural()}} gagal diupdate'); return redirect('/{{$gen->route()}}'); } /** * Remove the specified resource from storage. * * @return \Illuminate\Http\Response */ public function destroy(Request $request, $kode) { ${{$gen->modelVariableName()}}={{$gen->modelClassName()}}::find($kode); $act=false; try { $act=${{$gen->modelVariableName()}}->forceDelete(); } catch (\Exception $e) { ${{$gen->modelVariableName()}}={{$gen->modelClassName()}}::find(${{$gen->modelVariableName()}}->pk()); $act=${{$gen->modelVariableName()}}->delete(); } } protected function view($view, $data = []) { return view($this->viewDir.".".$view, $data); } public function loadData() { $GLOBALS['nomor']=\Request::input('start',1)+1; $dataList = {{$gen->modelClassName()}}::select('*'); if (request()->get('status') == 'trash') { $dataList->onlyTrashed(); } return Datatables::of($dataList) ->addColumn('nomor',function($kategori){ return $GLOBALS['nomor']++; }) ->addColumn('action', function ($data) { $edit=url("{{$gen->route()}}/".$data->pk())."/edit"; $delete=url("{{$gen->route()}}/".$data->pk()); $content = ''; $content .= ""; $content .= " "; return $content; }) ->make(true); } @if(in_array('deleted_at',$fieldsArr)) public function restore($id) { $model = {{$gen->modelClassName()}}::where('{{ $table->pkStr() }}',$id); $model->restore(); message($model, ('{{$gen->titlePlural()}} berhasil dikembalikan!'),('{{$gen->titlePlural()}} gagal dikembalikan!')); return redirect()->back(); } @endif @if($export) public function postExportData() { $this->limit = \Request::input('limit'); $filetype = \Request::input('fileformat'); $filename = \Request::input('filename'); $papersize = \Request::input('page_size'); $paperorientation = \Request::input('page_orientation'); if(\Request::input('default_paper_size')) { DB::table('temp_crudbooster.cms_settings')->where('name','default_paper_size')->update(['content'=>$papersize]); } $response['columns']=\Schema::getColumnListing('{{$table->name}}'); $response['result']={{$gen->modelClassName()}}::all(); // dd($response['columns']); switch($filetype) { case "pdf": $view = view('layouts.export',$response)->render(); $pdf = \App::make('dompdf.wrapper'); $pdf->loadHTML($view); $pdf->setPaper($papersize,$paperorientation); // $pdf = \Barryvdh\DomPDF\Facade::loadView('layouts.export', $response); // return $pdf->download($filename.'.pdf'); return $pdf->stream($filename.'.pdf'); break; case 'xls': Excel::create($filename, function($excel) use($response,$filename,$paperorientation){ $excel->setTitle($filename) ->setCreator("Fendi Tri Cahyono") ->setCompany("Fendami Corporation"); $excel->sheet($filename, function($sheet) use ($response,$paperorientation) { $sheet->setOrientation($paperorientation); $sheet->loadView('layouts.export',$response); }); })->export('xls'); break; case 'csv': Excel::create($filename, function($excel) use ($response,$filename,$paperorientation) { $excel->setTitle($filename) ->setCreator("crocodic.com") ->setCompany("Fendami Corp."); $excel->sheet($filename, function($sheet) use ($response,$paperorientation) { $sheet->setOrientation($paperorientation); $sheet->loadView('layouts.export',$response); }); })->export('csv'); break; } } @endif }