HEX
Server: LiteSpeed
System: Linux s3.sitechai.com 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: workzeni (2217)
PHP: 8.1.32
Disabled: mail, show_source, system, shell_exec, passthru, exec, eval, shell
Upload Files
File: /home/workzeni/stream-flix.workzenix.com/app/Http/Controllers/Admin/LanguageController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Language;
use Illuminate\Http\Request;

class LanguageController extends Controller
{
    // Fetch all languages (AJAX)
    public function index()
    {
        $languages = Language::orderBy('id', 'desc')->get();
        return view('admin.pages.languages.index', compact('languages'));
    }

    // Toggle language status
    public function toggleStatus(Language $language)
    {
        // Toggle between active and inactive
        $language->status = $language->status === 'active' ? 'inactive' : 'active';
        $language->save();

        return redirect()->back()->with('success', 'Language status updated successfully.');
    }



    public function create()
    {
        return view('admin.pages.languages.add');
    }

    // Store new language
    public function store(Request $request)
    {
        $validated = $request->validate([
            'name' => 'required|string|max:255|unique:languages,name',
            'nativeName' => 'required|string|max:255',
            'code' => 'required|string|max:50|unique:languages,code',
            'status' => 'required|in:active,inactive',
        ]);

        Language::create($validated);

        return redirect()
            ->route('language.list')
            ->with('success', 'Language added successfully.');
    }

    public function edit(Language $language)
    {
        return view('admin.pages.languages.edit', compact('language'));
    }

    // Update language
    public function update(Request $request, $id)
    {
        $language = Language::findOrFail($id);
        $request->validate([
            'name' => 'required|string|max:255|unique:languages,name,' . $id,
            'nativeName' => 'required|string|max:255',
            'code' => 'required|string|max:50|unique:languages,code,' . $id,
            'status' => 'required|in:active,inactive',
        ]);

        $language->update($request->only(['name', 'nativeName', 'code', 'status']));

        if ($request->ajax()) {
           return response()->json([
            'success' => true,
            'message' => 'Language updated successfully.',
            'category' => $language
        ]);
        }

        // If normal submit
        return redirect()->route('language.list')->with('success', 'Language updated successfully!');
    }

    // Delete language
    public function destroy($id)
    {
        $language = Language::findOrFail($id);
        $language->delete();
        return redirect()->route('language.list')->with('success', 'Language delete successfully!');
    }
}