관리-도구
편집 파일: edit.blade.php
@extends('admin.master_layout') @section('title') <title>{{ __('FAQS') }}</title> @endsection @section('admin-content') <div class="main-content"> <section class="section"> <div class="section-header"> <h1>{{ __('FAQS') }}</h1> <div class="section-header-breadcrumb"> <div class="breadcrumb-item active"><a href="{{ route('admin.dashboard') }}">{{ __('Dashboard') }}</a> </div> <div class="breadcrumb-item active"><a href="{{ route('admin.faq.index') }}">{{ __('FAQS') }}</a> </div> <div class="breadcrumb-item">{{ __('Edit Faq') }} ({{ request('code') }})</div> </div> </div> <div class="section-body row"> <div class="col-12"> <div class="card"> <div class="card-header"> <h5 class="service_card">{{ __('Available Translations') }}</h5> @adminCan('faq.translate') <hr> @if ($code !== $languages->first()->code) <button onclick="translateAll()" class="btn btn-primary" id="translate-btn">{{ __('Translate') }}</button> @endif @endadminCan </div> <div class="card-body"> <div class="lang_list_top"> <ul class="lang_list"> @foreach ($languages as $language) <li><a id="{{ request('code') == $language->code ? 'selected-language' : '' }}" href="{{ route('admin.faq.edit', ['faq' => $faq->id, 'code' => $language->code]) }}"><i class="fas {{ request('code') == $language->code ? 'fa-eye' : 'fa-edit' }}"></i> {{ $language->name }}</a></li> @endforeach </ul> </div> <div class="mt-2 alert alert-danger" role="alert"> @php $current_language = $languages->where('code', request()->get('code'))->first(); @endphp <p>{{ __('Your editing mode') }} : <b>{{ $current_language?->name }}</b> </p> </div> </div> </div> </div> </div> <div class="section-body"> <div class="mt-4 row"> <div class="col-12"> <div class="card"> <div class="card-header d-flex justify-content-between"> <h4>{{ __('Edit Faq') }}</h4> </div> <div class="card-body"> <form action="{{ route('admin.faq.update', ['faq' => $faq->id, 'code' => $code]) }}" method="post"> @csrf @method('PUT') <div class="row"> <div class="col-md-8 offset-md-2"> <div class="form-group"> <label for="question">{{ __('Question') }}<span class="text-danger">*</span></label> <input data-translate="true" type="text" id="question" name="question" value="{{ old('question', $faq->getTranslation($code)->question) }}" placeholder="Enter question" class="form-control"> @error('question') <span class="text-danger">{{ $message }}</span> @enderror </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <label for="answer">{{ __('Answer') }}<span class="text-danger">*</span></label> <textarea data-translate="true" type="text" id="answer" name="answer" placeholder="Enter answer" cols="30" rows="30" class="form-control text-area-5">{{ old('answer', $faq->getTranslation($code)->answer) }}</textarea> @error('answer') <span class="text-danger">{{ $message }}</span> @enderror </div> </div> <div class="text-center offset-md-2 col-md-8"> <x-admin.update-button :text="__('Update')"> </x-admin.update-button> </div> </div> </form> </div> </div> </div> </div> </div> </section> </div> @endsection @if ($code == $languages->first()->code) @push('js') <script> (function($) { "use strict"; $(document).ready(function() { $("#title").on("keyup", function(e) { $("#slug").val(convertToSlug($(this).val())); }) }); })(jQuery); function convertToSlug(Text) { return Text .toLowerCase() .replace(/[^\w ]+/g, '') .replace(/ +/g, '-'); } </script> @endpush @else @push('js') <script> "use strict"; var isTranslatingInputs = true; function translateOneByOne(inputs, index = 0) { if (index >= inputs.length) { if (isTranslatingInputs) { isTranslatingInputs = false; translateAllTextarea(); } $('#translate-btn').prop('disabled', false); $('#update-btn').prop('disabled', false); return; } var $input = $(inputs[index]); var inputValue = $input.val(); if (inputValue) { $.ajax({ url: "{{ route('admin.languages.update.single') }}", type: "POST", data: { lang: '{{ $code }}', text: inputValue, _token: '{{ csrf_token() }}' }, dataType: 'json', beforeSend: function() { $input.prop('disabled', true); iziToast.show({ timeout: false, close: true, theme: 'dark', icon: 'loader', iconUrl: 'https://hub.izmirnic.com/Files/Images/loading.gif', title: "{{ __('Translation Processing, please wait...') }}", position: 'center', }); }, success: function(response) { $input.val(response); $input.prop('disabled', false); iziToast.destroy(); toastr.success("{{ __('Translated Successfully!') }}"); translateOneByOne(inputs, index + 1); }, error: function(jqXHR, textStatus, errorThrown) { console.error(textStatus, errorThrown); iziToast.destroy(); toastr.error('Error', 'Error'); } }); } else { translateOneByOne(inputs, index + 1); } } function translateAll() { iziToast.question({ timeout: 20000, close: false, overlay: true, displayMode: 'once', id: 'question', zindex: 999, title: "{{ __('This will take a while!') }}", message: "{{ __('Are you sure?') }}", position: 'center', buttons: [ ["<button><b>{{ __('YES') }}</b></button>", function(instance, toast) { var isDemo = "{{ env('PROJECT_MODE') ?? 1 }}"; if (isDemo == 0) { instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); toastr.error( "{{ __('This Is Demo Version. You Can Not Change Anything') }}"); return; } $('#translate-btn').prop('disabled', true); $('#update-btn').prop('disabled', true); instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); var inputs = $('input[data-translate="true"]').toArray(); translateOneByOne(inputs); }, true], ["<button>{{ __('NO') }}</button>", function(instance, toast) { instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); }], ], onClosing: function(instance, toast, closedBy) {}, onClosed: function(instance, toast, closedBy) {} }); }; function translateAllTextarea() { var inputs = $('textarea[data-translate="true"]').toArray(); if (inputs.length === 0) { return; } translateOneByOne(inputs); } $(document).ready(function() { var selectedTranslation = $('#selected-language').text(); var btnText = "{{ __('Translate to') }}" + selectedTranslation; $('#translate-btn').text(btnText); }); </script> @endpush @endif