Path : /var/www/clients/client0/web25/web/resources/views/back/shared/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/clients/client0/web25/web/resources/views/back/shared/index.blade.php |
@extends('back.layout') @section('css') <link rel="stylesheet" href="https://cdn.datatables.net/1.10.23/css/dataTables.bootstrap4.min.css"> <style> a>* { pointer-events: none; } </style> @endsection @section('content') {{ $dataTable->table(['class' => 'table table-bordered table-hover table-sm'], true) }} @endsection @section('js') <script src="https://cdn.datatables.net/1.10.23/js/jquery.dataTables.min.js"></script> <script src="https://cdn.datatables.net/1.10.23/js/dataTables.bootstrap4.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@10"></script> @if(config('app.locale') == 'fr') <script> (($, DataTable) => { $.extend(true, DataTable.defaults, { language: { "sEmptyTable": "Aucune donnée disponible dans le tableau", "sInfo": "Affichage des éléments _START_ à _END_ sur _TOTAL_ éléments", "sInfoEmpty": "Affichage de l'élément 0 à 0 sur 0 élément", "sInfoFiltered": "(filtré à partir de _MAX_ éléments au total)", "sInfoPostFix": "", "sInfoThousands": ",", "sLengthMenu": "Afficher _MENU_ éléments", "sLoadingRecords": "Chargement...", "sProcessing": "Traitement...", "sSearch": "Rechercher :", "sZeroRecords": "Aucun élément correspondant trouvé", "oPaginate": { "sFirst": "Premier", "sLast": "Dernier", "sNext": "Suivant", "sPrevious": "Précédent" }, "oAria": { "sSortAscending": ": activer pour trier la colonne par ordre croissant", "sSortDescending": ": activer pour trier la colonne par ordre décroissant" }, "select": { "rows": { "_": "%d lignes sélectionnées", "0": "Aucune ligne sélectionnée", "1": "1 ligne sélectionnée" } } } }); })(jQuery, jQuery.fn.dataTable); </script> @endif {{ $dataTable->scripts() }} <script> (() => { // Variables const headers = { 'X-CSRF-TOKEN': '{{ csrf_token() }}', 'Content-Type': 'application/json', 'Accept': 'application/json' } const showAlert = (icon, title, text) => Swal.fire({ icon: icon, title: title, text: text, }); // Delete const deleteElement = async e => { e.preventDefault(); Swal.fire({ title: e.target.dataset.name, icon: 'warning', showCancelButton: true, confirmButtonColor: '#DD6B55', confirmButtonText: '@lang('Yes')', cancelButtonText: '@lang('No')', preConfirm: () => { return fetch(e.target.getAttribute('href'), { method: 'DELETE', headers: headers }) .then(response => { if (response.ok) { e.target.parentNode.parentNode.remove(); showAlert('infos','success','the deletion has been successfully completed!') } else { Swal.fire({ icon: 'error', title: '@lang('Whoops!')', text: '@lang('Something went wrong!')' }); } }); } }); } // Listener wrapper const wrapper = (selector, type, callback, condition = 'true', capture = false) => { const element = document.querySelector(selector); if(element) { document.querySelector(selector).addEventListener(type, e => { if(eval(condition)) { callback(e); } }, capture); } }; // Set listeners window.addEventListener('DOMContentLoaded', () => { wrapper('table', 'click', deleteElement, "e.target.matches('.btn-danger')"); }); var status = null var name = null var content = null var rating = null const showMessage = async (e) => { e.preventDefault() if(e.target.dataset.status == 'active'){ status = 'deactive' } else if(e.target.dataset.status == 'deactive'){ status = 'active' } const datas = { name:e.target.dataset.name, status:status, rating:e.target.dataset.rating, content:e.target.dataset.content, }; const response = await fetch(`testimonial/${e.target.dataset.id}`, { method: 'PUT', headers: headers, body: JSON.stringify(datas) }) const data = await response.json(); if (response.ok) { showAlert('infos', 'success', 'Thank you for your testimony, it has been well recorded, please refresh the page to view it'); } } window.addEventListener('DOMContentLoaded', () => { wrapper('table', 'change', showMessage, "e.target.matches('#status')"); }); })() </script> @endsection