관리-도구
편집 파일: policies.blade.php
@extends('layouts.apps') @section('content') <!--start main wrapper--> <main class="main-wrapper"> <div class="main-content"> <!--breadcrumb--> <div class="page-breadcrumb d-none d-sm-flex align-items-center mb-3"> <div class="breadcrumb-title pe-3">Sewdle Boutique</div> <div class="ps-3"> <nav aria-label="breadcrumb"> <ol class="breadcrumb mb-0 p-0"> <li class="breadcrumb-item"><a href="javascript:;"><i class="bx bx-home-alt"></i></a> </li> <li class="breadcrumb-item active" aria-current="page">Policies</li> </ol> </nav> </div> </div> <!--end breadcrumb--> @if(session('success')) <div class="alert alert-success alert-dismissible fade show" role="alert"> <strong>Success!</strong> {{ session('success') }} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> @endif @if(session('message')) <div class="alert alert-info alert-dismissible fade show" role="alert"> {{ session('message') }} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> @endif @if(session('error')) <div class="alert alert-danger alert-dismissible fade show" role="alert"> <strong>Error:</strong> {{ session('error') }} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> @endif @if($errors->any()) <div class="alert alert-danger alert-dismissible fade show" role="alert"> <ul class="mb-0"> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> @endif <div class="row g-3"> <div class="col-auto flex-grow-1 overflow-auto"> <div class="btn-group position-static"> <!-- <div class="btn-group position-static"> <button type="button" class="btn btn-filter dropdown-toggle px-4" data-bs-toggle="dropdown" aria-expanded="false"> More Filters </button> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="javascript:;">Action</a></li> <li><a class="dropdown-item" href="javascript:;">Another action</a></li> <li> <hr class="dropdown-divider"> </li> <li><a class="dropdown-item" href="javascript:;">Something else here</a></li> </ul> </div> --> </div> </div> <div class="col-auto"> <div class="d-flex align-items-center gap-2 justify-content-lg-end"> <!-- Add New Button --> <!-- <button class="btn btn-primary px-4" data-bs-toggle="modal" data-bs-target="#addModal"> <i class="bi bi-plus-lg me-2"></i>Add New </button> --> </div> </div> </div><!--end row--> <div class="card mt-4"> <div class="card-body"> <div class="customer-table"> <div class="table-responsive white-space-nowrap"> <table class="table align-middle"> <thead class="table-light"> <tr> <th> <input class="form-check-input" type="checkbox"> </th> <th>#</th> <th>Title</th> <th>Description</th> <th>Action</th> </tr> </thead> <tbody> <tr> @foreach($policies as $category) <td> <input class="form-check-input" type="checkbox"> </td> <td>{{ $loop->iteration}}</td> <td>{{ $category->title}}</td> <td>{!! $category->description !!}</td> <td> <div class="d-flex gap-3"> <!-- Edit Button --> <a href="javascript:;" title="Edit" data-bs-toggle="modal" data-bs-target="#editModal{{ $category->id }}"> <i class="material-icons-outlined">edit</i> </a> <form method="POST" action="{{ route('admin-policies.destroy', $category->id) }}" style="display:inline;"> @csrf @method('DELETE') <button type="submit" class="btn p-0 border-0 bg-transparent" onclick="return confirm('Are you sure you want to delete this category?');"> <i class="material-icons-outlined text-danger">delete</i> </button> </form> </div> </td> </tr> <!-- Edit Modal --> <div class="modal fade" id="editModal{{ $category->id }}" tabindex="-1" aria-labelledby="editModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-xl"> {{-- Use modal-xxl if you want even bigger --}} <div class="modal-content"> <div class="modal-header bg-light"> <h5 class="modal-title fw-bold" id="editModalLabel">Edit Policy</h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <form method="post" action="{{ route('admin-policies.update', $category->id) }}" enctype="multipart/form-data"> @csrf @method('PUT') <div class="modal-body"> <div class="mb-4"> <label class="form-label fw-semibold">Title</label> <input type="text" name="title" class="form-control form-control-lg" value="{{ $category->title }}"> </div> <div class="mb-4"> <label class="form-label fw-semibold">Description</label> <textarea name="description" class="form-control" id="editors-{{ $category->id }}" rows="12" style="min-height: 300px;">{{ $category->description }}</textarea> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary px-4" data-bs-dismiss="modal">Close</button> <button type="submit" class="btn btn-primary px-4">Update</button> </div> </form> </div> </div> </div> @endforeach </tbody> </table> </div> </div> </div> </div> </div> </main> <!--end main wrapper--> <!-- Scripts --> <script src="https://cdn.ckeditor.com/ckeditor5/39.0.1/classic/ckeditor.js"></script> <script> document.addEventListener('DOMContentLoaded', function() { @foreach($policies as $category) let editorInstance{{ $category->id }} = null; $('#editModal{{ $category->id }}').on('shown.bs.modal', function() { const textarea = document.querySelector('#editors-{{ $category->id }}'); // Initialize CKEditor only if not already initialized if (!editorInstance{{ $category->id }}) { ClassicEditor.create(textarea) .then(editor => { editorInstance{{ $category->id }} = editor; }) .catch(error => console.error(error)); } }); // Optional: destroy editor on modal close to prevent issues $('#editModal{{ $category->id }}').on('hidden.bs.modal', function() { if (editorInstance{{ $category->id }}) { editorInstance{{ $category->id }}.destroy() .then(() => editorInstance{{ $category->id }} = null) .catch(error => console.error(error)); } }); @endforeach }); </script> <!--start overlay--> <div class="overlay btn-toggle"></div> <!--end overlay--> <!--start footer--> @endsection