uawdijnntqw1x1x1
IP : 216.73.216.153
Hostname : 6.87.74.97.host.secureserver.net
Kernel : Linux 6.87.74.97.host.secureserver.net 4.18.0-553.83.1.el8_10.x86_64 #1 SMP Mon Nov 10 04:22:44 EST 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
emeraadmin
/
.htpasswds
/
..
/
public_html
/
ADVIA
/
..
/
4d695
/
submitsubtaskmanually.php.tar
/
/
home/emeraadmin/public_html/pages/emeraadmin/submitsubtaskmanually.php000064400000033446151677421630022503 0ustar00<?php include('head.php'); require_once '../../Classes/Database.php'; require_once '../../Service/TaskService.php'; require_once '../../Classes/System.php'; // Fetch assigned user ID from session or request $assignedUserId = $_SESSION['user_id'] ?? ($_GET['user_id'] ?? 1); // Default to 1 if not set // Create TaskService instance $taskService = new TaskService(); $System = new System(); // Assuming System class is correctly defined and used // Fetch start and end date from query string $startDate = $_GET['start_date'] ?? null; $endDate = $_GET['end_date'] ?? null; if ($_GET['filter_today'] ?? false) { $startDate = date('Y-m-d'); $endDate = date('Y-m-d'); } // Fetch all subtasks grouped by date $subtasks = $taskService->getAllIncompletedSubtaksGroupByDate($startDate, $endDate); ?> <!-- Include Bootstrap Datepicker CSS --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css"/> <div class="main-content"> <div class="container-fluid"> <div class="page-header"> <div class="row align-items-end"> <div class="col-lg-8"> <div class="page-header-title"> <i class="ik ik-layers bg-blue"></i> <div class="d-inline"> <h5>Tasks</h5> <span>Manually Mark Subtasks as Complete</span> </div> </div> </div> <div class="col-lg-4"> <nav class="breadcrumb-container" aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"> <a href="#"><i class="ik ik-home"></i></a> </li> <li class="breadcrumb-item"> <a href="#">Tasks</a> </li> <li class="breadcrumb-item active" aria-current="page">All Subtasks</li> </ol> </nav> </div> </div> </div> <!-- Date Filter and Today Checkbox --> <div class="row mb-4"> <div class="col-md-3"> <div class="form-group"> <label for="startDate">Start Date</label> <!-- <input type="text" id="startDate" class="form-control datepicker" placeholder="Select start date">--> <input type="date" id="startDate" placeholder="Select start date" class="form-control"> </div> </div> <div class="col-md-3"> <div class="form-group"> <label for="endDate">End Date</label> <!-- <input type="text" id="endDate" class="form-control datepicker" placeholder="Select end date">--> <input type="date" id="endDate" placeholder="Select end date" class="form-control"> </div> </div> <script> //set max date for end date as today var today = new Date().toISOString().split('T')[0]; document.getElementById('endDate').setAttribute('max', today); </script> <div class="col-md-3"> <div class="col-md-3 d-flex align-items-center "> <div class="form-check form-check-inline"> <div class="row mb-4 border-checkbox-section"> <div class="border-checkbox-group border-checkbox-group-primary"> <label class="border-checkbox-label" for="todayCheckbox">Today</label> <input class="border-checkbox" type="checkbox" id="todayCheckbox" value="today" <?= ($startDate == date('Y-m-d') && $endDate == date('Y-m-d')) ? 'checked' : '' ?>> </div> </div> </div> </div> </div> <div class="col-md-3 d-flex align-items-center"> <button id="applyFilter" class="btn btn-primary">Apply Filter</button> <button type="button" id="resetFilters" class="btn btn-icon btn-outline-danger"><i class="ik ik-refresh-cw"></i></button> </div> </div> <!-- select all checkbox --> <div class="col-md-12"> <div class="row mb-4 border-checkbox-section"> <div class="border-checkbox-group border-checkbox-group-warning"> <input type="checkbox" id="selectall" class="border-checkbox"> <label for="selectall" class="border-checkbox-label">Select All</label> <button class="btn btn-warning" id="markAsComplete">Mark Subtasks as Complete</button> </div> </div> </div> <?php foreach ($subtasks as $date => $subtaskList) { ?> <div class="row subtask-row" data-date="<?php echo $date; ?>"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <h3>Subtasks for <?php if ($date == date('Y-m-d')) { echo 'Today'; } else if ($date == date('Y-m-d', strtotime('tomorrow'))) { echo 'Tomorrow'; } else { echo date('l, F j, Y', strtotime($date)); } ?></h3> </div> <div class="card-body"> <div class="dt-responsive"> <table class="table" id="advanced_table_<?php echo strtotime($date); ?>"> <thead> <tr> <th>#</th> <th>ID</th> <th>Service Name</th> <th>Date</th> <th>Time</th> <th>Assigned</th> <th>Actions</th> </tr> </thead> <tbody> <?php foreach ($subtaskList as $subtask) { ?> <tr> <td> <input type="checkbox" class="select_all_child" id="selectall_<?php echo strtotime($date); ?>"> </td> <td>ST-000<?= $subtask['id']; ?></td> <td><?= $subtask['service_name']; ?></td> <td><?= $subtask['subtask_date']; ?></td> <td><?= $subtask['subtask_time'] ? date('h:i A', strtotime($subtask['subtask_time'])) : ''; ?></td> <td><?= $subtask['assigned'] ? '<span class="badge badge-success">Assigned</span>' : '<span class="badge badge-danger">Not Assigned</span>'; ?></td> <td> <a href="viewsubtask.php?id=<?= $System->encryptData($subtask['id']); ?>" class="btn btn-primary">View</a> </td> </tr> <?php } ?> </tbody> </table> </div> </div> </div> </div> </div> <?php } ?> </div> </div> <?php include('footer.php'); ?> <!-- Include jQuery and Bootstrap Datepicker JS --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script> <script> $(document).ready(function () { // Initialize datepickers $('.datepicker').datepicker({ format: 'yyyy-mm-dd', autoclose: true, todayHighlight: true }); // Function to save filters to localStorage function saveFilters() { var filters = { startDate: $('#startDate').val(), endDate: $('#endDate').val(), todayCheckbox: $('#todayCheckbox').is(':checked') }; localStorage.setItem('dateRangeFilters', JSON.stringify(filters)); } // Function to apply saved filters function applyFilters() { var filters = JSON.parse(localStorage.getItem('dateRangeFilters')); if (filters) { $('#startDate').val(filters.startDate); $('#endDate').val(filters.endDate); $('#todayCheckbox').prop('checked', filters.todayCheckbox); } } var endDate = document.getElementById('endDate'); //endDate.max = new Date().toISOString().split("T")[0]; endDate.max = new Date().toLocaleDateString('fr-ca') // Function to reset filters function resetFilters() { $('#startDate').val(''); $('#endDate').val(''); $('#todayCheckbox').prop('checked', false); localStorage.removeItem('dateRangeFilters'); applyDateRangeFilter(); } // Apply date range filter by modifying the URL function applyDateRangeFilter() { var startDate = $('#startDate').val(); var endDate = $('#endDate').val(); var url = window.location.href.split('?')[0] + '?start_date=' + startDate + '&end_date=' + endDate; window.location.href = url; } // Event handler for applyFilter button $('#applyFilter').on('click', function () { saveFilters(); applyDateRangeFilter(); }); //resetFilters $('#resetFilters').on('click', function () { resetFilters(); }); // Event handler for todayCheckbox $('#todayCheckbox').on('change', function () { if ($(this).is(':checked')) { var today = '<?= date('Y-m-d') ?>'; $('#startDate').val(today); $('#endDate').val(today); } else { $('#startDate').val(''); $('#endDate').val(''); } saveFilters(); applyDateRangeFilter(); }); // Add reset filters button functionality $('#reset_filters').on('click', function () { resetFilters(); }); // Apply saved filters on initial load applyFilters(); }); </script> <script> // Mark subtasks as complete $('#markAsComplete').on('click', function () { // Collect checked subtasks, trimming 'ST-000' var checkedSubtasks = []; $('.select_all_child:checked').each(function () { var subtaskId = $(this).closest('tr').find('td:eq(1)').text().trim().replace('ST-000', ''); checkedSubtasks.push(subtaskId); }); if (checkedSubtasks.length === 0) { Swal.fire({ icon: 'error', title: 'No subtasks selected', text: 'Please select subtasks to mark as complete' }); return; } console.log(checkedSubtasks); Swal.fire({ title: 'Are you sure?', text: 'You are about to mark the selected subtasks as complete.', icon: 'warning', showCancelButton: true, confirmButtonText: 'Yes, mark as complete', cancelButtonText: 'No, cancel', showLoaderOnConfirm: true, preConfirm: () => { return fetch('mark_subtask_as_completed.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({subtaskIds: checkedSubtasks}) }).then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }).catch(error => { Swal.showValidationMessage(`Request failed: ${error}`); }); }, allowOutsideClick: () => !Swal.isLoading() }).then((result) => { if (result.isConfirmed) { Swal.fire({ icon: 'success', title: 'Subtasks Marked as Complete', text: 'The selected subtasks have been marked as complete' }).then(() => { // Reload the page after the success message is shown location.reload(); }); } }); }); </script>
/home/emeraadmin/.htpasswds/../public_html/ADVIA/../4d695/submitsubtaskmanually.php.tar