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!');
}
}