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/resources/views/admin/pages/movie/edit.blade.php
@extends('admin.index')

@section('title', 'Edit Movie')

@section('content')
<div class="content-area">
    <!-- Header Section -->
    <div class="flex-column align-items-center" style="margin-bottom: 5%;">
        <h1 class="mb-2" style="font-weight: 700;">Edit Movie</h1>
        <p class="text-muted" style="max-width: 600px; margin: 0 auto; float: left;">
            Update the movie details below.
        </p>
    </div>

    <!-- Centered Form Card -->
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card shadow-sm border-0">
                <div class="card-body p-4">
                    <form id="editMovieForm" action="{{ route('movie.update', $movie->id) }}" method="POST" enctype="multipart/form-data">
                        @csrf
                        @method('PUT')

                        <!-- Movie Title -->
                        <div class="form-group mb-3">
                            <label class="form-label">Movie Title *</label>
                            <input type="text" name="name" class="form-control" placeholder="Enter movie title"
                                value="{{ old('name', $movie->name) }}" required>
                        </div>

                        <!-- Year, Duration, Rating -->
                        <div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem;">
                            <div class="form-group mb-3">
                                <label class="form-label">Release Year *</label>
                                <input type="number" name="year" class="form-control" placeholder="2024" min="1900" max="2030"
                                    value="{{ old('year', $movie->year) }}" required>
                            </div>

                            <div class="form-group mb-3">
                                <label class="form-label">Duration (minutes)</label>
                                <input type="number" name="duration" class="form-control" placeholder="120" min="1"
                                    value="{{ old('duration', $movie->duration) }}">
                            </div>

                            <div class="form-group mb-3">
                                <label class="form-label">Rating</label>
                                <input type="number" name="rating" class="form-control" placeholder="8.5" min="0" max="10" step="0.1"
                                    value="{{ old('rating', $movie->rating) }}">
                            </div>
                        </div>

                        <!-- Category & Language -->
                        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
                            <div class="form-group mb-3">
                                <label class="form-label">Genre *</label>
                                <select name="category_id" class="form-control" required>
                                    <option value="">Select Genre</option>
                                    @foreach ($categories as $category)
                                        <option value="{{ $category->id }}" {{ $movie->category_id == $category->id ? 'selected' : '' }}>
                                            {{ $category->name }}
                                        </option>
                                    @endforeach
                                </select>
                            </div>

                            <div class="form-group mb-3">
                                <label class="form-label">Language *</label>
                                <select name="language_id" class="form-control" required>
                                    <option value="">Select Language</option>
                                    @foreach ($languages as $language)
                                        <option value="{{ $language->id }}" {{ $movie->language_id == $language->id ? 'selected' : '' }}>
                                            {{ $language->name }}
                                        </option>
                                    @endforeach
                                </select>
                            </div>
                        </div>

                        <!-- Description -->
                        <div class="form-group mb-3">
                            <label class="form-label">Description</label>
                            <textarea name="description" class="form-control form-textarea" rows="4"
                                placeholder="Enter movie description">{{ old('description', $movie->description) }}</textarea>
                        </div>

                        <!-- Thumbnail & Video Upload -->
                        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
                            <div class="form-group mb-3">
                                <label class="form-label">Thumbnail Image</label>
                                <input type="file" name="thumbnail_image" class="form-control file-upload"
                                    data-type="image" accept="image/*">
                                <div class="preview-container mt-2">
                                    @if($movie->thumbnail_image)
                                        <img src="{{ asset('uploads/thumbnail/' . $movie->thumbnail_image) }}" 
                                             style="max-width:100%; border-radius:8px; box-shadow:0 2px 6px rgba(0,0,0,0.2);">
                                    @endif
                                </div>
                            </div>

                            <div class="form-group mb-3">
                                <label class="form-label">Video File</label>
                                <input type="file" name="movie_url" class="form-control file-upload"
                                    data-type="video" accept="video/*">
                                <div class="preview-container mt-2">
                                    @if($movie->movie_url)
                                        <video src="{{ asset('uploads/movies/' . $movie->movie_url) }}" controls
                                            style="max-width:100%; border-radius:8px; box-shadow:0 2px 6px rgba(0,0,0,0.2);">
                                        </video>
                                    @endif
                                </div>
                            </div>
                        </div>

                        <!-- Status -->
                        <div class="form-group mb-4">
                            <label class="form-label">Status</label>
                            <select name="status" class="form-control">
                                <option value="active" {{ $movie->status == 'active' ? 'selected' : '' }}>Active</option>
                                <option value="inactive" {{ $movie->status == 'inactive' ? 'selected' : '' }}>Inactive</option>
                                <option value="draft" {{ $movie->status == 'draft' ? 'selected' : '' }}>Draft</option>
                            </select>
                        </div>

                        <!-- Buttons -->
                        <div class="d-flex justify-content-between align-items-center">
                            <button type="submit" class="btn btn-primary">
                                <i class="fas fa-save me-1"></i> Update Movie
                            </button>
                            <a href="{{ route('movie.list') }}" class="btn btn-outline-secondary">
                                <i class="fas fa-arrow-left me-1"></i> Back to List
                            </a>
                        </div>
                    </form>

                    <!-- Errors & Success -->
                    @if ($errors->any())
                        <div class="alert alert-danger mt-3">
                            <ul class="mb-0">
                                @foreach ($errors->all() as $error)
                                    <li>{{ $error }}</li>
                                @endforeach
                            </ul>
                        </div>
                    @endif

                    @if (session('success'))
                        <div class="alert alert-success mt-3">{{ session('success') }}</div>
                    @endif
                </div>
            </div>
        </div>
    </div>

    <!-- File Preview JS -->
    <script>
        class FilePreviewer {
            constructor(selector) {
                this.inputs = document.querySelectorAll(selector);
                this.init();
            }

            init() {
                this.inputs.forEach(input => {
                    input.addEventListener('change', e => this.handleFileChange(e));
                });
            }

            handleFileChange(event) {
                const input = event.target;
                const file = input.files[0];
                const type = input.dataset.type;
                const previewContainer = input.closest('.form-group').querySelector('.preview-container');

                previewContainer.innerHTML = '';
                if (!file) return;

                const url = URL.createObjectURL(file);

                if (type === 'image' && file.type.startsWith('image/')) {
                    const img = document.createElement('img');
                    img.src = url;
                    img.style.maxWidth = '100%';
                    img.style.borderRadius = '8px';
                    img.style.boxShadow = '0 2px 6px rgba(0,0,0,0.2)';
                    previewContainer.appendChild(img);
                } else if (type === 'video' && file.type.startsWith('video/')) {
                    const video = document.createElement('video');
                    video.src = url;
                    video.controls = true;
                    video.style.maxWidth = '100%';
                    video.style.borderRadius = '8px';
                    video.style.boxShadow = '0 2px 6px rgba(0,0,0,0.2)';
                    previewContainer.appendChild(video);
                } else {
                    previewContainer.innerHTML = `<p style="color:red;">Invalid file type!</p>`;
                }
            }
        }

        document.addEventListener('DOMContentLoaded', () => {
            new FilePreviewer('.file-upload');
        });
    </script>
@endsection