|
|
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="~{fragments/head-admin :: head}"></head>
<meta charset="ISO-8859-1">
</head>
<body>
<style> .small-input { width: 150px; /* Adjust the width as needed */ }
.small-table th, .small-table td { font-size: 14px; /* Adjust font size as needed */ }
/* Reduce padding for table cells */ .small-table td, .small-table th { padding: 5px; /* Adjust padding as needed */ } </style>
<body>
<!-- Page Container --> <div id="page-container" class="sidebar-o sidebar-dark enable-page-overlay side-scroll page-header-fixed page-header-dark"> <!-- Side Overlay aside (right)--> <aside th:replace="~{fragments/aside-right :: aside}"></aside> <!-- END Side Overlay (right)--> <!-- Sidebar Nav--> <nav th:replace="~{fragments/nav-admin :: nav}"></nav> <!-- END Sidebar --> <!-- Header --> <header th:replace="~{fragments/header-admin :: header}"></header> <!-- END Header --> <!-- Main Container --> <main id="main-container"> <div class="content"> <div class="block block-rounded"> <div class="block-header block-header-default"> <h3 class="block-title"> Discount Range</h3> <div class="block-options"> <button type="button" class="btn-block-option" id="addButton" onclick="adddiscount()"><i class="far fa-plus-square"></i> Add New Discount</button> </div> </div>
<!-- Page Content --> <div class="content"> <div class="block block-rounded"> <div class="block-content p-0"> <div class="p-sm-4 p-0"> <div class="table-responsive"> <table id="discountrangetable" class="table table-bordered table-striped table-vcenter js-dataTable-responsive"> <thead class="thead-light"> <tr class="table-bordered"> <th class="text-center no-sort">S.No</th> <th class="text-center" width="20%">UserType</th> <th class="text-center">DiscountRange</th> <th class="text-center"> Cdate</th> <th class="text-center">UpdatedBy</th> <th class="text-center">Action</th> </tr> </thead> <tbody> <tr th:each="discountRange, rowStat : ${discountRanges}">
<td class="text-center" th:text="${rowStat.index + 1}"></td> <td class="text-center" th:text="${discountRange.usertype}"> </td> <td class="text-center" th:text="${discountRange.discountRange}"></td> <td class="text-center" th:text="${discountRange.cDate}"></td> <td class="text-center" th:text="${discountRange.updtedBy}"> </td> <td class="text-center"> <a href="javascript:void(0);" th:onclick="'openEditModal(' + ${discountRange.id} + ');'" data-bs-toggle="tooltip" data-bs-animation="true" data-bs-placement="top" title="Edit"> <i class="far fa-pen-to-square" style="font-size: 18px;"></i> </a> <a href="javascript:void(0);" th:onclick="return callDelete( [[${discountRange.id}]] );" data-bs-toggle="tooltip" data-bs-animation="true" data-bs-placement="top" title="Delete"><i class="far fa-trash-can" style="font-size: 18px;"></i></a> </a> </td> </tr>
</tbody> </table> </div> </div> </div> </div> </div>
<!-- new Discount --> <div class="modal fade" id="saveModal" tabindex="-1" role="dialog" aria-labelledby="saveModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="saveModalLabel">Save Discount Range</h5> <button type="button" class="btn-block-option" data-bs-dismiss="modal"> <i class="fa fa-fw fa-times"></i> </button>
</div> <div class="modal-body"> <form id="saveForm"> <div class="form-group"> <label for="userType">User Type</label> <select class="form-control" id="userType" name="userType" required> <option value="">Select</option> <option value="PUBLIC">PUBLIC</option> <option value="PENSIONER">PENSIONER</option> <option value="COUNCILLOR">COUNCILLOR</option> <option value="GCC_EMPLOYEE">GCC EMPLOYEE</option> </select> </div> <div class="form-group"> <label for="editDiscountRange">Discount Range in Percentage</label> <input type="text" class="form-control" id="discountRange" name="discountRange" placeholder="Discount Range in %" required> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <button type="button" class="btn btn-primary" id="savediscounts">Save</button> </div> </div> </div> </div>
<!-- Edit Form -->
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="editModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="editModalLabel">Edit Discount Range</h5> <button type="button" class="btn-block-option" data-bs-dismiss="modal"> <i class="fa fa-fw fa-times"></i> </button>
</div> <div class="modal-body"> <form id="editForm"> <input type="hidden" id="editId"> <div class="form-group"> <label for="editUsertype">User Type</label> <input type="text" class="form-control" id="editUsertype" readonly> </div> <div class="form-group"> <label for="editDiscountRange">Discount Range in Percentage</label> <input type="text" class="form-control" id="editDiscountRange" placeholder="Discount Range in %" required> </div> <div class="form-group"> <label for="editCDate">Creation Date</label> <input type="date" class="form-control" id="editCDate" readonly> </div> <div class="form-group"> <label for="editUpdatedBy">Updated By</label> <input type="text" class="form-control" id="editUpdatedBy" readonly> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <button type="button" class="btn btn-primary" id="saveChanges">Save changes</button> </div> </div> </div> </div> </main> <div th:replace="~{fragments/resetpassword :: div}"></div> <footer th:replace="~{fragments/footer2 :: footer}"></footer> <script th:replace="~{fragments/loginscript :: script}"></script> <script>
$(document).ready( function () { var buttons = [{ extend: 'pageLength', className: 'btn btn-primary' }, { title: 'Data export', extend: 'copyHtml5', text: 'Copy', className: 'btn btn-primary', id: 'copyBtn' }, { extend: 'excelHtml5', text: 'Excel', className: 'btn btn-primary', id: 'excelBtn' }, { extend: 'csvHtml5', text: 'CSV', className: 'btn btn-primary', id: 'csvBtn' }, { extend: 'pdfHtml5', text: 'PDF', className: 'btn btn-primary', id: 'pdfBtn' },
]; $('#discountrangetable').DataTable( { dom: 'Bftip', columnDefs: [{ targets: 'no-sort', orderable: false }], lengthMenu: [ [50, 100, 200, 500, -1], ['50 rows', '100 rows', '200 rows', '500 rows', 'Show all']], scrollY: '50vh', fixedColumns: { left: 1, right: 1 }, buttons: [buttons], responsive: true, searching: true, // Enable search select: false, processing: false, });
// Link the search input to DataTable $('#searchInput').on('keyup', function () { dataTable.search(this.value).draw(); });
}); function openEditModal(id) { $.ajax({ type: "GET", url: '/communityhall/admin/api/getDiscountDetails', data: { 'id': id }, success: function (response) { $('#editId').val(response.id); $('#editUsertype').val(response.usertype); $('#editDiscountRange').val(response.discountRange); $('#editCDate').val(response.cDate); $('#editUpdatedBy').val(response.updtedBy); $('#editModal').modal('show'); } }); }
function adddiscount() { $('#saveModal').modal('show'); } $('#savediscounts').click(function () { var userType = $('#userType').val(); var discountRange = $('#discountRange').val(); //console.log('User Type:', userType); //console.log('Discount Range:', discountRange); if(!userType){ Swal.fire({ icon: 'warning', title: 'No User Type Selected', text: 'Please select an usertype to update.', }); return; } $.ajax({ type: "POST", url: "/communityhall/admin/api/savediscountrange", data: { userType: userType, discountRange: discountRange, }, success: function (data) { if (data === 'waiting') { Swal.fire( 'EXISTED!', 'User type already exists. Update or Delete the usertype', 'info' ).then(() => { location.reload(); }); } else if (data === 'success') { Swal.fire( 'Saved!', 'Details saved successfully.', 'success' ).then(() => { location.reload(); }); } }, error: function (xhr, status, error) { Swal.fire( 'Error!', 'Failed to update the discount range.', 'error' ); } }); });
$('#saveChanges').click(function () { var id = $('#editId').val(); var discountRange = $('#editDiscountRange').val();
// Log the data to the console for debugging
$.ajax({ type: "PUT", url: "/communityhall/admin/api/updateById/" + id, data: { 'id': id, 'discountRange': discountRange, }, success: function (data) { Swal.fire( 'Updated!', 'Discount range ' + id + ' has been updated.', 'success' ).then(() => { location.reload(); }); }, error: function (xhr, status, error) { console.error('Error occurred during the PUT request:', xhr.responseText); Swal.fire( 'Error!', 'Failed to update the discount range ' + id + ': ' + xhr.responseText, 'error' ); } }); });
function callDelete(id) { Swal.fire({ title: 'Are you sure you want to delete this?', text: "You won't be able to revert this!", icon: 'warning', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Yes, delete it!' }).then(function (result) { if (result.isConfirmed) { $.ajax({ type: "DELETE", url: "/communityhall/admin/api/deleteById/" + id, success: function (data) { Swal.fire( 'Deleted!', 'Entry ' + id + ' has been deleted.', 'success' ).then(() => { location.reload(); }); }, error: function (xhr, status, error) { Swal.fire( 'Error!', 'Failed to delete entry ' + id + ': ' + xhr.responseText, 'error' ); } }); } }); } document.addEventListener('DOMContentLoaded', function () { function clearModalFields(modalId) { const modal = document.getElementById(modalId); if (modal) { // Clear text inputs and select elements modal.querySelectorAll('input[type="text"], input[type="date"], select').forEach(input => { if (input.tagName === 'SELECT') { input.selectedIndex = 0; // Reset to default option } else { input.value = ''; // Clear text inputs } }); } } // Clear fields when the saveModal is hidden document.getElementById('saveModal').addEventListener('hidden.bs.modal', function () { clearModalFields('saveModal'); }); }); </script>
</body>
</html>
|