HEX
Server: LiteSpeed
System: Linux srv1.dhviews.com 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 24 11:27:16 EDT 2025 x86_64
User: bdedition (1723)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/bdedition/public_html/core/resources/views/admin/news/form.blade.php
@extends('admin.layouts.app')
@section('panel')
    <div class="row justify-content-center">
        <div class="col-xxl-8 col-xl-12">
            <div class="card">
                <div class="card-body">
                    <form action="{{ route('admin.news.store', @$news->id) }}" method="POST" enctype="multipart/form-data" class="disableSubmission">
                        @csrf
                        <div class="row justify-content-center">
                            <div class="col-xl-6">
                                <div class="form-group">
                                    <x-image-uploader name="image" :imagePath="getImage(getFilePath('news') . '/' . @$news->image, getFileSize('news'))" :size="getFileSize('news')" class="w-100"
                                        id="thumbImage" :required="false" />
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-lg-12">
                                <div class="form-group position-relative">
                                    <label>@lang('Reporter Name')</label>
                                    <select name="staff_id" class="select2">
                                        <option value="">@lang('Select Reporter')</option>
                                        @foreach ($staffs as $staff)
                                            <option value="{{ $staff->id }}" @selected(old('staff_id', @$news->user_id) == $staff->id)>
                                                {{ $staff->firstname }} {{ $staff->lastname }} [{{ $staff->mobile }} - {{ $staff->district }} - {{ $staff->sub_district }}]</option>
                                        @endforeach
                                    </select>
                                </div>
                            </div>
                            <div class="col-lg-12">
                                <div class="form-group position-relative">
                                    <label>@lang('Category')</label>
                                    <select name="category_id" class="select2" required>
                                        <option value="">@lang('Select One')</option>
                                        @foreach ($categories as $category)
                                            <option value="{{ $category->id }}" @selected(old('category_id', @$news->category_id) == $category->id)>
                                                {{ $category->name }}</option>
                                        @endforeach
                                    </select>
                                </div>
                            </div>
                            <div class="col-lg-12">
                                <div class="form-group">
                                    <label>@lang('News Title')</label>
                                    <input type="text" class="form-control" name="title"
                                        value="{{ old('title', @$news->title) }}" required>
                                </div>
                            </div>
                            {{-- <div class="col-lg-12">
                                <div class="form-group">
                                    <div class="d-flex justify-content-between align-items-center">
                                        <label>@lang('Slug')</label>
                                        <a href="javascript:void(0)" class="buildSlug"><i class="las la-link"></i>
                                            @lang('Make Slug')</a>
                                    </div>
                                    <input type="text" class="form-control" name="slug"
                                        value="{{ old('slug', @$news->slug) }}" required>
                                </div>
                            </div> --}}
                            <div class="col-sm-12">
                                <div class="form-group">
                                    <label>@lang('Tags')</label>
                                    <select name="tags[]" multiple class="select2-auto-tokenize form-control">
                                        <option value="" disabled>@lang('Enter Keyword')</option>
                                        @if (@$news->tags)
                                            @foreach ($news->tags as $tag)
                                                <option value="{{ $tag }}" selected>{{ __($tag) }}</option>
                                            @endforeach
                                        @endif
                                    </select>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label>@lang('Trending')</label>
                                    <div class="form-group">
                                        <input type="checkbox" data-width="100%" data-size="large" data-onstyle="-success"
                                            data-offstyle="-danger" data-bs-toggle="toggle" data-height="35"
                                            data-on="@lang('Yes')" data-off="@lang('No')" name="trending"
                                            @if (@$news->trending) checked @endif>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label>@lang('Must Read')</label>
                                    <div class="form-group">
                                        <input type="checkbox" data-width="100%" data-size="large" data-onstyle="-success"
                                            data-offstyle="-danger" data-bs-toggle="toggle" data-height="35"
                                            data-on="@lang('Yes')" data-off="@lang('No')" name="must_read"
                                            @if (@$news->must_read) checked @endif>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label>@lang('Add Video')</label>
                                    <div class="form-group">
                                        <input type="checkbox" data-width="100%" data-size="large" data-onstyle="-success"
                                            data-offstyle="-danger" data-bs-toggle="toggle" data-height="35"
                                            data-on="@lang('Yes')" data-off="@lang('No')" name="have_video"
                                            @if (@$news->have_video) checked @endif>
                                    </div>
                                </div>
                            </div>
                            <div class="hideInput"></div>
                            <div class="col-lg-12">
                                <div class="form-group">
                                    <label>@lang('Short Description')</label>
                                    <textarea name="short_description" rows="5" class="form-control" required>{{ old('short_description', @$news->short_description) }}</textarea>
                                </div>
                            </div>
                            <div class="col-sm-12">
                                <div class="form-group">
                                    <label>@lang('Description')</label>
                                    <textarea rows="10" class="form-control nicEdit" name="description">{{ old('description', @$news->description) }}</textarea>
                                </div>
                            </div>
                        </div>
                        <div class="form-group">
                            <button type="submit" class="btn btn--primary w-100 h-45">@lang('Submit')</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
@endsection

@push('breadcrumb-plugins')
    <x-back route="{{ route('admin.news.index') }}" />
@endpush

@push('script')
    <script>
        $(function() {
            'use strict'
            let videoLink = `{{ @$news->video_link ?? '' }}`;
            let videoStatus = '{{ @$news->have_video }}';

            var video_input = `<div class="col-md-12">
                                <div class="form-group">
                                    <label for="">@lang('Youtube Link')</label>
                                    <input type="text" name="video_link" value="${videoLink}" class="form-control" placeholder="https://www.youtube.com/embed/g--C2srD_5I">
                                </div>
                            </div>`;

            $('input[name=have_video]').on('change', function() {
                if ($(this).is(':checked')) {
                    $('.hideInput').html(video_input);
                } else {
                    $('.hideInput').html('');
                }
            })

            if (videoStatus == 1) {
                $('.hideInput').html(video_input);
            }

            $('.buildSlug').on('click', function() {
                let closestForm = $(this).closest('form');
                let title = closestForm.find('[name=title]').val();
            
                // Generate a proper Unicode slug
                let slug = generateSlug(title);
            
                closestForm.find('[name=slug]').val(slug);
                closestForm.find('[name=slug]').trigger('input');
            });
            
            $('[name=slug]').on('input', function() {
                let closestForm = $(this).closest('form');
                closestForm.find('[type=submit]').addClass('disabled');
                let slug = $(this).val();
            
                // Generate and sanitize the slug
                slug = generateSlug(slug);
            
                $(this).val(slug);
            
                let id = `{{ @$news->id }}`;
            
                if (slug) {
                    $('.slug-verification').removeClass('d-none');
                    $('.slug-verification').html(`
                        <small class="text--info"><i class="las la-spinner la-spin"></i> @lang('Checking')</small>
                    `);
            
                    // Perform slug verification
                    $.get("{{ route('admin.news.slug.check') }}", { slug: slug, id: id }, function(response) {
                        if (!response.exists) {
                            $('.slug-verification').html(`
                                <small class="text--success"><i class="las la-check"></i> @lang('Available')</small>
                            `);
                            closestForm.find('[type=submit]').removeClass('disabled');
                        } else {
                            $('.slug-verification').html(`
                                <small class="text--danger"><i class="las la-times"></i> @lang('Slug already exists')</small>
                            `);
                        }
                    });
                } else {
                    $('.slug-verification').addClass('d-none');
                }
            });
            
            // Function to generate a proper Unicode-friendly slug
            function generateSlug(input) {
                return input
                    .toString()
                    .toLowerCase() // Convert to lowercase
                    .trim() // Remove leading/trailing spaces
                    .replace(/[\s]+/g, '-') // Replace spaces with dashes
            }
        })
    </script>
@endpush

@push('style')
    <style>
        .image-uploader {
            border: 2px dashed #c8c8c8;
        }
    </style>
@endpush