Files
hstream/app/Http/Controllers/Admin/SubtitleController.php
2025-09-18 15:31:27 +02:00

62 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Models\Episode;
use App\Models\EpisodeSubtitle;
use App\Models\Subtitle;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SubtitleController extends Controller
{
/**
* Add new Subtitle.
*/
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
$subtitle = Subtitle::create([
'name' => $request->name,
'slug' => $request->slug,
]);
// Add to Episode
EpisodeSubtitle::create([
'episode_id' => $request->episode_id,
'subtitle_id' => $subtitle->id,
]);
return redirect()->back();
}
/**
* Update Episode Subtitles.
*/
public function update(Request $request): \Illuminate\Http\RedirectResponse
{
$episode = Episode::where('id', $request->input('episode_id'))->firstOrFail();
// Clear everything
foreach($episode->subtitles as $sub) {
$sub->forceDelete();
}
if (! $request->input('subtitles')) {
return redirect()->back();
}
// Re-Add
foreach (json_decode($request->input('subtitles')) as $sub) {
$subtitle = Subtitle::where('name', $sub->value)->firstOrFail();
// Add to Episode
EpisodeSubtitle::create([
'episode_id' => $episode->id,
'subtitle_id' => $subtitle->id,
]);
}
return redirect()->back();
}
}