관리-도구
편집 파일: edit.blade.php
@extends('admin.master_layout') @section('title') <title>{{ __('Category List') }}</title> @endsection @section('admin-content') <div class="main-content"> <section class="section"> <div class="section-header"> <h1>{{ __('Category List') }}</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.blog-category.index') }}">{{ __('Category List') }}</a> </div> <div class="breadcrumb-item">{{ __('Edit Category') }} ({{ 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('blog.category.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.blog-category.edit', ['blog_category' => $category->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 Category') }}</h4> <div> <a href="{{ route('admin.blog-category.index') }}" class="btn btn-primary"><i class="fa fa-arrow-left"></i>{{ __('Back') }}</a> </div> </div> <div class="card-body"> <form action="{{ route('admin.blog-category.update', ['blog_category' => $category->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="title">{{ __('Title') }}<span class="text-danger">*</span></label> <input data-translate="true" type="text" id="title" name="title" value="{{ old('title', $category->getTranslation($code)->title) }}" placeholder="{{ __('Enter Title') }}" class="form-control"> @error('title') <span class="text-danger">{{ $message }}</span> @enderror </div> </div> @if ($code == $languages->first()->code) <div class="col-md-8 offset-md-2"> <div class="form-group"> <label for="slug">{{ __('Slug') }}<span class="text-danger">*</span></label> <input type="text" id="slug" name="slug" value="{{ old('slug', $category->slug) }}" placeholder="{{ __('Enter Slug') }}" class="form-control"> @error('slug') <span class="text-danger">{{ $message }}</span> @enderror </div> </div> @endif <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> 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