templates/base.html.twig line 1
<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1"><meta charset="UTF-8"><title>Global Commissions :: {% block title %}!{% endblock %}</title><link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>"><link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.css"><link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/fixedheader/3.2.2/css/fixedHeader.dataTables.min.css"><style>/* Custom styles for table */.dataTables_wrapper {width: 100%;margin: 0 auto;}</style>{% block stylesheets %}{{ encore_entry_link_tags('app') }}{% endblock %}<script src="https://cdn.jsdelivr.net/npm/alpinejs@3.14.1/dist/cdn.min.js" defer></script></head><body {% if app.user and app.user.employeeStatus and app.user.employeeStatus.value == 'LEAVE_OF_ABSENCE' and (app.user.leaveOfAbsenceStartDate is null or app.user.leaveOfAbsenceEndDate is null) %}data-show-absence-popup="true"{% endif %}><div class="max-w-screen-3xl mx-auto">{% include('layout/header.html.twig') %}{% set flashMessages = [] %}{% for type, messages in app.flashes(['success', 'danger', 'warning']) %}{% for message in messages %}{% set flashMessages = flashMessages|merge([{type, message}]) %}{% endfor %}{% endfor %}{% if flashMessages|length > 0 %}<div class="max-w-screen-xl w-full mx-auto flex-shrink mt-6">{% for flashItem in flashMessages %}<div class="alert-{{ flashItem.type }}" >{{ flashItem.message }}</div>{% endfor %}</div>{% endif %}<div class="flex flex-col justify-between min-h-screen"><div class="p-8">{% block body %}{% endblock %}</div></div>{% include('/layout/footer.html.twig') %}</div>{% if app.user and app.user.employeeStatus and app.user.employeeStatus.value == 'LEAVE_OF_ABSENCE' and (app.user.leaveOfAbsenceStartDate is null or app.user.leaveOfAbsenceEndDate is null) %}<!-- Leave of Absence Modal --><div id="leaveOfAbsenceModal" tabindex="-1" aria-hidden="true" class="fixed inset-0 z-50 flex items-center justify-center bg-gray-900 bg-opacity-50"><div class="relative p-4 w-full max-w-md max-h-full"><div class="relative bg-white rounded-lg shadow dark:bg-gray-700"><div class="flex items-center justify-between p-4 md:p-5 border-b rounded-t dark:border-gray-600"><h3 class="text-xl font-semibold text-gray-900 dark:text-white">Leave of Absence Dates Required</h3></div><div class="p-4 md:p-5"><p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Your account is set to Leave of Absence status. Please enter your leave dates to continue.</p><form id="leaveOfAbsenceForm"><div class="mb-4"><label for="leaveStartDate" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Start Date</label><input type="date" id="leaveStartDate" name="startDate" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:placeholder-gray-400 dark:text-white" required></div><div class="mb-4"><label for="leaveEndDate" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">End Date</label><input type="date" id="leaveEndDate" name="endDate" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:placeholder-gray-400 dark:text-white" required></div><div id="leaveFormError" class="hidden mb-4 text-sm text-red-600 dark:text-red-500"></div><button type="submit" class="w-full text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">Save Dates</button></form></div></div></div></div><script>document.addEventListener('DOMContentLoaded', function() {var modal = document.getElementById('leaveOfAbsenceModal');var form = document.getElementById('leaveOfAbsenceForm');var errorDiv = document.getElementById('leaveFormError');if (modal && form) {form.addEventListener('submit', function(e) {e.preventDefault();var startDate = document.getElementById('leaveStartDate').value;var endDate = document.getElementById('leaveEndDate').value;errorDiv.classList.add('hidden');fetch('/api/leave-of-absence', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({startDate: startDate,endDate: endDate})}).then(function(response) {return response.json();}).then(function(data) {if (data.success) {modal.style.display = 'none';window.location.reload();} else {errorDiv.textContent = data.message;errorDiv.classList.remove('hidden');}}).catch(function(error) {errorDiv.textContent = 'An error occurred. Please try again.';errorDiv.classList.remove('hidden');});});}});</script>{% endif %}{% block javascripts %}{{ encore_entry_script_tags('app') }}{% endblock %}<script type="text/javascript" charset="utf8" src="https://code.jquery.com/jquery-3.5.1.js"></script><script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.js"></script><script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/fixedheader/3.2.2/js/dataTables.fixedHeader.min.js"></script><script>$(document).ready(function() {var table = $('#commissionTable').DataTable({fixedHeader: true,paging: false,scrollY: '500px',scrollCollapse: true,info: false,searching: false});});</script></body></html>