Viewing file: NoticeController.php (4.65 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Models\Notice; use Illuminate\Http\Request; use Illuminate\Support\Str; use File;
class NoticeController extends Controller { public function index(){ return view('admin.notice.index'); }
public function store(Request $request){ $request->validate([ 'title' => 'required', 'description' => 'required', 'attach_file' => 'required|size:max::<1024', 'status'=>'required|in:active,inactive', ]);
$notice=new Notice(); $notice->title=$request->title; $notice->description=$request->description; $notice->status=$request->status; if ($request->hasFile('attach_file')) { $file = $request->file('attach_file'); $fileName = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('/uploads'), $fileName); $notice->attach_file = $fileName; } if($request->important){ $notice->important='yes'; }else{ $notice->important='no'; } $notice->save(); return back()->with('success', 'Notice created successfully'); }
public function getAll(Request $request){ $notices = Notice::select(['id', 'title', 'description','status','created_at'])->orderBy('created_at', 'desc'); return datatables()->of($notices) ->addColumn('title', function ($q) { return $q->title; }) ->addColumn('description', function ($q) {
return "<div class='show-more' style='max-width: 500px;white-space: pre-wrap'> $q->description </div>"; }) ->addColumn('status', function ($q) { if($q->status=='active'){ $status='<span class="badge bg-green">Active</span>'; }else{ $status='<span class="badge bg-danger">Inactive</span>'; } return $status; }) ->addColumn('created_at', function ($q) { return $q->created_at->format('d-m-Y'); }) ->addColumn('action', function (Notice $q) { return '<button class="btn btn-sm btn-info mr-2 editNotice" data-id='.$q->id.' data-action='.route('admin.notice.update',[$q]).' data-toggle="tooltip" data-placement="right" title="edit"><i class="fa fa-pencil-alt"></i></button>'. '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this notice?" data-action='.route('admin.notice.destroy',[$q]).' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm" data-toggle="tooltip" data-placement="right" title="Delete"><i class="fa fa-times-circle"></i></button>' ; }) ->rawColumns(['action','description','status']) ->toJson(); } public function editNotice(Request $request){ $notice = Notice::where('id', $request->id)->first(); return response()->json(['status' => 'success', 'data' => ['notice' => $notice]]); } public function update(Request $request, Notice $notice){ $request->validate([ 'id' => 'required', 'title' => 'required', 'description' => 'required', 'status'=>'required|in:active,inactive', ]); $notice->title=$request->title; $notice->description=$request->description; $notice->status=$request->status; if ($request->hasFile('attach_file')) { $file = $request->file('attach_file'); $fileName = time() . '.' . $file->extension(); $file->move(public_path('/uploads'), $fileName); $this->instantImageDelete($notice->attach_file); $notice->attach_file = $fileName; }
$notice->save(); return redirect()->route('admin.notice.index') ->with('success','Notice updated successfully'); } public function destroy(Notice $notice ){ $notice->delete(); return redirect()->route('admin.notice.index')->with('success','Deleted! The Notice Data Deleted Successfully'); } function instantImageDelete($fileName) { if ( $fileName) { $filePath = public_path('uploads') . '/' . $fileName; if (File::exists($filePath)) unlink($filePath); } }
}
|