@extends('backend.layouts.app')
@section('title')
{{ __($module_title) }}
@endsection
@php
$subtitleIndexInit = $data->subtitles && count($data->subtitles) > 0 ? count($data->subtitles) : 1;
@endphp
@section('content')
{{ html()->form('PUT', route('backend.episodes.update', $data->id))->attribute('enctype', 'multipart/form-data')->attribute('data-toggle', 'validator')->attribute('id', 'form-submit')->attribute('novalidate', 'novalidate')->class('requires-validation')->open() }}
@csrf
{{ __('messages.lbl_episode_details') }}
{{ html()->label(__('movie.lbl_poster'), 'poster')->class('form-label') }}
{{ html()->button(__('' . __('messages.lbl_choose_image')))->class('input-group-text form-control')->type('button')->attribute('data-bs-toggle', 'modal')->attribute('data-bs-target', '#exampleModal')->attribute('data-image-container', 'selectedImageContainer2')->attribute('data-hidden-input', 'file_url2') }}
{{ html()->text('image_input2')->class('form-control')->placeholder(__('placeholder.lbl_image'))->attribute('aria-label', 'Image Input 2')->attribute('data-bs-toggle', 'modal')->attribute('data-bs-target', '#exampleModal')->attribute('data-image-container', 'selectedImageContainer2')->attribute('data-hidden-input', 'file_url2')->attribute('aria-describedby', 'basic-addon1') }}
@if ($data->poster_url)
×
@else
No image selected.
@endif
{{ html()->hidden('poster_url')->id('file_url2')->value($data->poster_url) }}
{{ html()->hidden('remove_image')->id('remove_image_flag')->value(0) }}
{{ html()->label(__('movie.lbl_poster_tv'), 'poster_tv')->class('form-label') }}
{{ html()->button(__('' . __('messages.lbl_choose_image')))->class('input-group-text form-control')->type('button')->attribute('data-bs-toggle', 'modal')->attribute('data-bs-target', '#exampleModal')->attribute('data-image-container', 'selectedImageContainerTv')->attribute('data-hidden-input', 'file_urltv') }}
{{ html()->text('image_input_tv')->class('form-control')->placeholder(__('placeholder.lbl_image'))->attribute('aria-label', 'Image Input Tv')->attribute('data-bs-toggle', 'modal')->attribute('data-bs-target', '#exampleModal')->attribute('data-image-container', 'selectedImageContainerTv')->attribute('data-hidden-input', 'file_urltv')->attribute('aria-describedby', 'basic-addon1') }}
@if ($data->poster_tv_url)
×
@else
No image selected.
@endif
{{ html()->hidden('poster_tv_url')->id('file_urltv')->value($data->poster_tv_url) }}
{{ html()->hidden('remove_image')->id('remove_image_flag_tv')->value(0) }}
{{ html()->label(__('season.lbl_tv_shows') . '
*', 'type')->class('form-label') }}
{{ html()->select(
'entertainment_id',
$tvshows->pluck('name', 'id')->prepend(__('placeholder.lbl_select_tvshow'), ''),
$data->entertainment_id,
)->class('form-control select2')->id('entertainment_id')->attribute('required', 'required') }}
@error('entertainment_id')
{{ $message }}
@enderror
{{ __('messages.tv_show_field_required') }}
{{ html()->label(__('placeholder.lbl_select_season') . '
*', 'season_id')->class('form-label') }}
{{ html()->select(
'season_id',
$seasons->pluck('name', 'id')->prepend(__('placeholder.lbl_select_season'), ''),
$data->season_id,
)->class('form-control select2')->id('season_id')->attribute('required', 'required') }}
@error('season_id')
{{ $message }}
@enderror
{{ __('messages.season_field_required') }}
{{ html()->label(__('episode.lbl_episode_number'), 'episode_number')->class('form-label') }}
{{ html()->number('episode_number', old('episode_number', $data->episode_number))->class('form-control')->id('episode_number')->placeholder(__('placeholder.lbl_episode_number'))->attribute('min', 1) }}
@error('episode_number')
{{ $message }}
@enderror
{{ html()->label(__('movie.lbl_name') . '
*', 'name')->class('form-label') }}
{{ html()->text('name')->attribute('value', $data->name)->placeholder(__('placeholder.lbl_episode_name'))->class('form-control')->attribute('required', 'required') }}
@error('name')
{{ $message }}
@enderror
{{ __('messages.name_field_required') }}
{{ html()->label(__('plan.lbl_status'), 'status')->class('form-label') }}
{{ html()->label(__('messages.active'), 'status')->class('form-label mb-0 text-body') }}
{{ html()->hidden('status', 0) }}
{{ html()->checkbox('status', $data->status)->class('form-check-input')->id('status') }}
@error('status')
{{ $message }}
@enderror
{{ html()->label(__('movie.lbl_description') . ' *', 'description')->class('form-label mb-0') }}
{{ __('messages.lbl_chatgpt') }}
{{ html()->textarea('description', $data->description)->class('form-control')->id('description')->placeholder(__('placeholder.lbl_movie_description'))->attribute('required', 'required') }}
@error('description')
{{ $message }}
@enderror
{{ __('messages.description_field_required') }}
{{-- Price --}}
{{ html()->label(__('messages.lbl_price') . '
*', 'price')->class('form-label')->for('price') }}
{{ html()->number('price', old('price', $data->price))->class('form-control')->attribute('placeholder', __('messages.enter_price'))->attribute('step', '0.01')->required() }}
@error('price')
{{ $message }}
@enderror
{{ __('messages.price_field_required') }}
{{-- Purchase Type --}}
{{ html()->label(__('messages.purchase_type') . '
*', 'purchase_type')->class('form-label') }}
{{ html()->select(
'purchase_type',
[
'' => __('messages.lbl_select_purchase_type'),
'rental' => __('messages.lbl_rental'),
'onetime' => __('messages.lbl_one_time_purchase'),
],
old('purchase_type', $data->purchase_type ?? 'rental'),
)->id('purchase_type')->class('form-control select2')->required()->attributes(['onchange' => 'toggleAccessDuration(this.value)']) }}
@error('purchase_type')
{{ $message }}
@enderror
{{ __('messages.purchase_type_field_required') }}
{{-- Access Duration (Only for Rental) --}}
{{ html()->label(__('messages.lbl_access_duration') . __('messages.lbl_in_days') . '
*', 'access_duration')->class('form-label') }}
{{ html()->number('access_duration', old('access_duration', $data->access_duration))->class('form-control')->attribute('pattern', '[0-9]*')->attribute('oninput', 'this.value = this.value.replace(/[^0-9]/g, "")')->attribute('placeholder', __('messages.access_duration'))->required() }}
@error('access_duration')
{{ $message }}
@enderror
{{ __('messages.access_duration_field_required') }}
{{-- Discount --}}
{{ html()->label(__('messages.lbl_discount') . ' (%)', 'discount')->class('form-label') }}
{{ html()->number('discount', old('discount', $data->discount))->class('form-control')->attribute('placeholder', __('messages.enter_discount'))->attribute('min', 1)->attribute('max', 99)->attribute('step', '0.01') }}
@error('discount')
{{ $message }}
@enderror
{{ __('messages.available_for_field_required') }}
{{ html()->label(__('messages.lbl_total_price'), 'total_amount')->class('form-label') }}
{{ html()->text('total_amount', null)->class('form-control')->attribute('disabled', true)->id('total_amount') }}
{{-- Available For --}}
{{ html()->label(__('messages.lbl_available_for') . __('messages.lbl_in_days') . '
*', 'available_for')->class('form-label') }}
{{ html()->number('available_for', old('available_for', $data->available_for))->class('form-control')->attribute('pattern', '[0-9]*')->attribute('oninput', 'this.value = this.value.replace(/[^0-9]/g, "")')->attribute('placeholder', __('messages.available_for'))->required() }}
@error('available_for')
{{ $message }}
@enderror
{{ __('messages.available_for_field_required') }}
{{ html()->label(__('movie.lbl_select_plan') . '
*', 'type')->class('form-label') }}
{{ html()->select('plan_id', $plan->pluck('name', 'id')->prepend(__('placeholder.lbl_select_plan'), ''), $data->plan_id)->class('form-control select2')->id('plan_id') }}
@error('plan_id')
{{ $message }}
@enderror
{{ __('messages.plan_field_required') }}
{{ html()->label(__('movie.lbl_trailer_url_type') . '
*', 'type')->class('form-label') }}
{{ html()->select(
'trailer_url_type',
$upload_url_type->pluck('name', 'value')->prepend(__('placeholder.lbl_select_type'), ''),
old('trailer_url_type', $data->trailer_url_type ?? ''),
)->class('form-control select2')->id('trailer_url_type') }}
@error('trailer_url_type')
{{ $message }}
@enderror
{{ __('messages.trailer_type_field_required') }}
{{ __('movie.lbl_basic_info') }}
{{ html()->label(__('movie.lbl_duration') . '
*', 'duration')->class('form-label') }}
{{ html()->time('duration')->attribute('value', $data->duration)->placeholder(__('movie.lbl_duration'))->class('form-control min-datetimepicker-time')->attribute('required', 'required') }}
@error('time')
{{ $message }}
@enderror
{{ __('messages.duration_field_required') }}
{{ html()->label(__('messages.lbl_skip_intro_start_time'), 'start_time')->class('form-label') }}
{{ html()->text('start_time')->attribute('value', $data->start_time ? \Carbon\Carbon::parse($data->start_time)->format('H:i:s') : '')->placeholder(__('messages.lbl_skip_intro_start_time'))->class('form-control')->id('start_time') }}
@error('start_time')
{{ $message }}
@enderror
{{ html()->label(__('messages.lbl_skip_intro_end_time'), 'end_time')->class('form-label') }}
{{ html()->text('end_time')->attribute('value', $data->end_time ? \Carbon\Carbon::parse($data->end_time)->format('H:i:s') : '')->placeholder(__('messages.lbl_skip_intro_end_time'))->class('form-control')->id('end_time') }}
@error('end_time')
{{ $message }}
@enderror
{{ html()->label(__('movie.lbl_imdb_rating') . '
*', 'IMDb_rating')->class('form-label') }}
{{ html()->text('IMDb_rating', old('IMDb_rating', $data->IMDb_rating))->placeholder(__('movie.lbl_imdb_rating'))->class('form-control')->required() }}
@error('IMDb_rating')
{{ $message }}
@enderror
{{ __('messages.imdb_rating_field_required') }}
{{ html()->label(__('movie.lbl_release_date') . '
*', 'release_date')->class('form-label') }}
{{ html()->date('release_date')->attribute('value', $data->release_date ? \Carbon\Carbon::parse($data->release_date)->format('Y-m-d') : '')->placeholder(__('movie.lbl_release_date'))->class('form-control datetimepicker')->attribute('required', 'required') }}
@error('release_date')
{{ $message }}
@enderror
{{ __('messages.release_date_field_required') }}
{{ html()->label(__('movie.lbl_content_rating') . '
*', 'content_rating')->class('form-label') }}
{{ html()->text('content_rating')->attribute('value', $data->content_rating)->placeholder(__('placeholder.lbl_content_rating'))->class('form-control')->attribute('required', 'required') }}
@error('content_rating')
{{ $message }}
@enderror
{{ __('messages.content_rating_field_required') }}
{{ html()->label(__('movie.lbl_download_status'), 'download_status')->class('form-label') }}
{{ html()->label(__('messages.on'), 'download_status')->class('form-label mb-0 text-body') }}
{{ html()->hidden('download_status', 0) }}
{{ html()->checkbox('download_status', !empty($data) && $data->download_status == 1)->class('form-check-input')->id('download_status')->value(1) }}
@error('download_status')
{{ $message }}
@enderror
{{ __('movie.lbl_video_info') }}
{{ html()->label(__('movie.lbl_video_upload_type') . '
*', 'video_upload_type')->class('form-label') }}
{{ html()->select(
'video_upload_type',
$upload_url_type->pluck('name', 'value')->prepend(__('placeholder.lbl_select_video_type'), ''),
old('video_upload_type', $data->video_upload_type ?? ''),
)->class('form-control select2')->id('video_upload_type') }}
@error('video_upload_type')
{{ $message }}
@enderror
{{ __('messages.video_type_field_required') }}
{{ __('movie.lbl_quality_info') }}
@error('enable_quality')
{{ $message }}
@enderror
{{ __('movie.lbl_subtitle_info') }}
@if ($data->subtitles && count($data->subtitles) > 0)
@foreach ($data->subtitles as $index => $subtitle)
{{ __('validation.required', ['attribute' => 'language']) }}
@if ($subtitle->subtitle_file)
Current file:
{{ basename($subtitle->subtitle_file) }}
@endif
{{ __('validation.required', ['attribute' => 'subtitle file']) }}
@endforeach
@else
{{ __('validation.required', ['attribute' => 'language']) }}
@endif
{{ __('messages.lbl_seo_settings') }}
{{ html()->hidden('seo_image')->id('seo_image')->value(old('seo_image', $data->seo_image ?? '')) }}
{!! html()->label(__('messages.lbl_seo_image') . '
*', 'seo_image')->class('form-label')->attribute('for', 'seo_image') !!}
{{ html()->button(' ' . __('messages.lbl_choose_image'))->class('input-group-text form-control')->type('button')->attribute('data-bs-toggle', 'modal')->attribute('data-bs-target', '#exampleModal')->attribute('data-image-container', 'selectedImageContainerSeo')->attribute('data-hidden-input', 'seo_image')->id('seo-image-url-button')->style('height:13.6rem') }}
{{ html()->text('seo_image_input')->class('form-control ' . ($errors->has('seo_image') ? 'is-invalid' : ''))->placeholder(__('placeholder.lbl_image'))->attribute('aria-label', 'SEO Image')->attribute('readonly', true)->attribute('data-bs-toggle', 'modal')->attribute('data-bs-target', '#exampleModal')->attribute('data-image-container', 'selectedImageContainerSeo')->attribute('data-hidden-input', 'seo_image') }}
{{-- ✅ Move this outside input-group --}}
{{ __('messages.seo_image_required') }}
{{-- Image Preview --}}
{{-- Laravel Error --}}
@error('seo_image')
{{ $message }}
@enderror
{{ __('movie.lbl_download_info') }}
{{ html()->label(__('movie.lbl_quality_video_download_type'), 'video_upload_type_download')->class('form-label') }}
{{ html()->select(
'video_upload_type_download',
$download_url_type->pluck('name', 'value')->prepend(__('placeholder.lbl_select_video_type'), ''),
old('video_upload_type_download', $data->download_type ?? ''),
)->class('form-control select2')->id('video_upload_type_download') }}
@error('video_upload_type')
{{ $message }}
@enderror
{{ __('messages.video_type_field_required') }}
{{ __('movie.lbl_download_quality_info') }}
@error('enable_download_quality')
{{ $message }}
@enderror