Viewing file: NoticeController.php (6.92 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 App\Models\User; use App\Models\AdminActivity; class NoticeController extends Controller { public function index(){
return view('admin.notice.index'); }
public function getAll() { $userfirst = User::first(); $customers = $userfirst->notices()->select(['id', 'title', 'description','for', 'status']); return datatables()->of($customers) ->addColumn('for', function ($q) { if($q->for=='normal'){ $type='Customer' ; }else { $type = ucfirst(str_replace('_', '-', $q->for)); } return $type; }) ->addColumn('description', function ($q) { $desc= clean($q->description); return $desc; }) ->addColumn('status', function ($q) { if($q->status=='active'){ $status= '<strong class="text-white bg-success px-2 py-1 rounded status-font-size"> '.ucfirst($q->status).' </strong>'; }else{ $status= '<strong class="text-white bg-danger px-2 py-1 rounded status-font-size"> '.ucfirst($q->status).' </strong>'; } return $status; }) ->addColumn('action', function (Notice $q) { return "<a class='btn btn-sm btn-info' href='" . route('admin.notice.edit', [$q->id]) . "'>Edit</a>".' <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">Delete</button>'; }) ->rawColumns(['action', 'for', 'description','status']) ->toJson(); } public function create(){
return view('admin.notice.create'); }
public function store(Request $request){ $request->validate([ 'title'=>'required', 'description'=>'required', 'type'=>'required|in:reseller,normal,master_reseller,reseller_customer,master_reseller_customer,all', 'status'=>'required|in:active,inactive', ]); $attached_data=''; if ($request->hasFile('attached_data')) { $file = $request->file('attached_data'); $filename = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('/uploads'), $filename); $attached_data = $filename; } $userfirst = User::first();
$notice= new Notice(); $notice->admin_id=$userfirst->id; $notice->title=$request->title; $notice->description= clean($request->description); $notice->attached_data=$attached_data; $notice->for=$request->type; $notice->status=$request->status; $notice->save();
$user = auth()->user();
if ($user->type == 'staff') {
$hasPermission = $user->hasPermissionTo('manage_notice'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'Notice'; $adminActivity->model_id = $notice->id; $adminActivity->action_type = 'create';
$adminActivity->details = "Created Notice #{$notice->id}";
$adminActivity->save(); } } return redirect()->route('admin.notice.index')->with('success', trans('admin.message.notice_created')); }
public function edit(Notice $notice){ $data['notice']=$notice; return view('admin.notice.edit', $data); }
public function update(Request $request, Notice $notice){
$request->validate([ 'title'=>'required', 'description'=>'required', 'type'=>'required|in:reseller,normal,master_reseller,reseller_customer,master_reseller_customer,all', 'status'=>'required|in:active,inactive', ]);
$userfirst = User::first();
$notice->admin_id=$userfirst->id; $notice->title=$request->title; $notice->description=clean($request->description); $notice->for=$request->type; $notice->status=$request->status;
if ($request->hasFile('attached_data')) { $file = $request->file('attached_data'); $filename = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('/uploads'), $filename); $notice->attached_data = $filename; } $notice->save();
$user = auth()->user();
if ($user->type == 'staff') { $updatedFields = $notice->getChanges();
unset($updatedFields['updated_at']);
$hasPermission = $user->hasPermissionTo('manage_notice'); if ($hasPermission && !empty($updatedFields)) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'Notice'; $adminActivity->model_id = $notice->id; $adminActivity->action_type = 'update';
$fieldsChanged = collect($updatedFields) ->map(fn($value, $field) => "$field: $value") ->implode(', ');
$adminActivity->details = "Updated Notice #{$notice->id}, changed: $fieldsChanged";
$adminActivity->save(); } }
return redirect()->route('admin.notice.index')->with('success', trans('admin.message.notice_updated')); }
public function destroy(Notice $notice){
$user = auth()->user();
if ($user->type == 'staff') {
$hasPermission = $user->hasPermissionTo('manage_notice'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'Notice'; $adminActivity->model_id = $notice->id; $adminActivity->action_type = 'delete';
$adminActivity->details = "Delete Notice #{$notice->id}";
$adminActivity->save(); } }
$notice->delete(); return redirect()->route('admin.notice.index')->with('success', trans('admin.message.notice_deleted')); }
}
|