Viewing file: FAQController.php (6.54 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\FAQ; use Illuminate\Http\Request; use App\Models\User; use App\Models\AdminActivity; class FAQController extends Controller { public function index() { return view('admin.faq.index'); }
public function show() {
return true; }
public function getAll() { $customers = FAQ::select(['id', 'question', 'answer', 'status']);
return datatables()->of($customers) ->addColumn('action', function (FAQ $q) { return "<a class='btn btn-sm btn-info' href='" . route('admin.faq.edit', [$q->id]) . "'>Edit</a> " . '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this FAQ?" data-action=' . route('admin.faq.destroy', [$q]) . ' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm">Delete</button>'; }) ->rawColumns(['action']) ->toJson(); }
public function create() {
return view('admin.faq.create'); }
public function store(Request $request) { $request->validate([ 'question' => 'required', 'answer' => 'required', ]);
$question = $request->question; $answer = $request->answer; $status = $request->status; $user = auth()->user();
foreach ($question as $key => $i) { if (!empty($i) && !empty($request->answer[$key])) { $faq = new FAQ(); $faq->question = $question[$key]; $faq->answer = $answer[$key]; $faq->status = $status[$key]; $faq->save();
if ($user->type == 'staff') { $hasPermission = $user->hasPermissionTo('manage_site_settings'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'FAQ'; $adminActivity->model_id = $faq->id; $adminActivity->action_type = 'create';
$adminActivity->details = "Created FAQ #{$faq->id}";
$adminActivity->save(); } } } }
return redirect()->route('admin.faq.index')->with('success', trans('admin.message.faq_created')); }
public function edit(FAQ $faq) {
$data['faq'] = $faq; return view('admin.faq.edit', $data); }
public function update(FAQ $faq, Request $request) { $request->validate([ 'question' => 'required', 'answer' => 'required', 'status' => 'required|in:active,inactive', ]); $question = $request->question; $answer = $request->answer; $status = $request->status; $user = auth()->user();
$faq->question = $question; $faq->answer = $answer; $faq->status = $status; $faq->save(); if ($user->type == 'staff') { $updatedFields = $faq->getChanges();
unset($updatedFields['updated_at']);
$hasPermission = $user->hasPermissionTo('manage_site_settings'); if ($hasPermission && !empty($updatedFields)) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'FAQ'; $adminActivity->model_id = $faq->id; $adminActivity->action_type = 'update';
$fieldsChanged = collect($updatedFields) ->map(fn($value, $field) => "$field: $value") ->implode(', ');
$adminActivity->details = "Updated FAQ #{$faq->id}, changed: $fieldsChanged";
$adminActivity->save(); } } $new_question = $request->new_question; $new_answer = $request->new_answer; $new_status = $request->new_status; if ($new_question && $new_answer && $new_status) { foreach ($new_question as $key => $i) { if (!empty($i) && !empty($request->answer[$key])) { $faq = new FAQ(); $faq->question = $question[$key]; $faq->answer = $answer[$key]; $faq->status = $status[$key]; $faq->save();
if ($user->type == 'staff') { $hasPermission = $user->hasPermissionTo('manage_site_settings'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'FAQ'; $adminActivity->model_id = $faq->id; $adminActivity->action_type = 'create';
$adminActivity->details = "Created FAQ #{$faq->id}";
$adminActivity->save(); } } } } }
return redirect()->route('admin.faq.index')->with('success', trans('admin.message.faq_updated')); }
public function destroy(FAQ $faq) { if ($user->type == 'staff') { $hasPermission = $user->hasPermissionTo('manage_site_settings'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'FAQ'; $adminActivity->model_id = $faq->id; $adminActivity->action_type = 'create';
$adminActivity->details = "Deleted FAQ #{$faq->id}";
$adminActivity->save(); } } $faq->delete(); return redirect()->route('admin.faq.index')->with('success', trans('admin.message.faq_deleted')); } }
|