You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
document.addEventListener('DOMContentLoaded', function () {
|
|
// Initialize TomSelect for Projects
|
|
new TomSelect('#projects', {
|
|
create: false, // Disable creating new options
|
|
sortField: 'text',
|
|
onChange: function(values) {
|
|
updateTasks(); // Update tasks on value change
|
|
}
|
|
});
|
|
|
|
// Initialize TomSelect for Staff
|
|
new TomSelect('#staff', {
|
|
create: false,
|
|
sortField: 'text',
|
|
onChange: function(values) {
|
|
updateTasks(); // Update tasks on value change
|
|
}
|
|
});
|
|
|
|
// Update tasks based on filters
|
|
function updateTasks() {
|
|
const projectIds = Array.from(document.getElementById('projects').selectedOptions).map(option => option.value);
|
|
const staffIds = Array.from(document.getElementById('staff').selectedOptions).map(option => option.value);
|
|
const startDate = document.getElementById('start-date').value;
|
|
const endDate = document.getElementById('end-date').value;
|
|
|
|
// Construct the query parameters without brackets around the projectIds
|
|
let queryParams = `?projects=${projectIds.join(',')}&staff=${staffIds.join(',')}&start_date=${startDate}&end_date=${endDate}`;
|
|
|
|
// Perform AJAX request
|
|
fetch(`/projects-dashboard/${queryParams}`, {
|
|
method: 'GET',
|
|
headers: {
|
|
'X-Requested-With': 'XMLHttpRequest',
|
|
},
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
// Update table body with new data
|
|
const tbody = document.getElementById('status-table-body');
|
|
tbody.innerHTML = ''; // Clear the existing table rows
|
|
data.tasks_data.forEach(task => {
|
|
const tr = document.createElement('tr');
|
|
tr.innerHTML = `
|
|
<td>${task.project_name}</td>
|
|
<td>${task.status}</td>
|
|
<td>${task.start_date}</td>
|
|
<td>${task.staff}</td>
|
|
`;
|
|
tbody.appendChild(tr);
|
|
});
|
|
})
|
|
.catch(error => {
|
|
console.error('Error updating tasks:', error);
|
|
});
|
|
}
|
|
|
|
// Trigger update when date range changes
|
|
document.getElementById('start-date').addEventListener('change', updateTasks);
|
|
document.getElementById('end-date').addEventListener('change', updateTasks);
|
|
});
|