HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/spion/app/Http/Controllers/TicketController.php
<?php

namespace App\Http\Controllers;

use App\Models\Ticket;
use Illuminate\Http\Request;
use Yajra\DataTables\Facades\DataTables;

class TicketController extends Controller
{
    public function index()
    {
        return view('admin.tickets.index');
    }

    // Fetch tickets data for DataTables
    public function getTicketsData(Request $request)
    {
        $query = Ticket::query();

        // Apply search filter
        if ($request->has('search_keyword')) {
            $search = $request->get('search_keyword');
            $query->where('email', 'like', '%' . $search . '%')
                  ->orWhere('subject', 'like', '%' . $search . '%');
        }

        // Apply status filter
        if ($request->has('status_filter') && $request->status_filter !== 'all') {
            $query->where('status', $request->status_filter);
        }

        // Return data in a format that DataTables can process
        return DataTables::eloquent($query)
            ->addColumn('status', function ($row) {
                return $row->status ? 'Active' : 'Disabled';
            })
            ->addColumn('action', function ($ticket) {
                return '<button class="btn btn-info btn-sm">View</button>';
            })
            ->rawColumns(['action'])
            ->make(true);
    }
}