All pages updated with all features including filters
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h3 class="page-title m-0">
|
||||
<i class="fas fa-list-alt me-2 text-danger"></i>All Responses
|
||||
<i class="fas fa-list-alt me-2 text-danger"></i>All Activities Attended
|
||||
</h3>
|
||||
<x-send-email />
|
||||
|
||||
@@ -18,12 +18,22 @@
|
||||
<div class="col-md-4">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text bg-light">Department</span>
|
||||
<select id="department-filter" class="form-select">
|
||||
<option value="">All Departments</option>
|
||||
@foreach($departments as $department)
|
||||
<option value="{{ $department->id }}">{{ $department->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@if(auth()->user()->role_id == 1)
|
||||
{{-- Admin: can choose any department --}}
|
||||
<select id="department-filter" class="form-select">
|
||||
<option value="">All Departments</option>
|
||||
@foreach($departments as $department)
|
||||
<option value="{{ $department->id }}">{{ $department->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@else
|
||||
{{-- Coordinator/Faculty: department is fixed --}}
|
||||
<select id="department-filter" class="form-select" disabled>
|
||||
<option value="{{ auth()->user()->department_id }}">
|
||||
{{ auth()->user()->department->name }}
|
||||
</option>
|
||||
</select>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -150,7 +160,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
const sheetName = "Responses Report";
|
||||
const sheetName = "Activities Attended Report";
|
||||
let table; // Declare table variable in the outer scope
|
||||
|
||||
function exportOptions() {
|
||||
@@ -206,83 +216,29 @@
|
||||
d.dateTo = $('#date-to').val();
|
||||
}
|
||||
},
|
||||
columns: [{
|
||||
columns: [
|
||||
{
|
||||
data: null,
|
||||
defaultContent: '',
|
||||
orderable: false,
|
||||
searchable: false
|
||||
},
|
||||
{
|
||||
data: 'id',
|
||||
name: 'id',
|
||||
searchable: false
|
||||
},
|
||||
{
|
||||
data: 'title',
|
||||
name: 'title',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'organising_institute',
|
||||
name: 'organising_institute',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'address',
|
||||
name: 'address',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'department_name',
|
||||
name: 'department_name',
|
||||
orderable: false,
|
||||
searchable: false
|
||||
|
||||
},
|
||||
{
|
||||
data: 'user_name',
|
||||
name: 'user_name',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'start_date',
|
||||
name: 'start_date',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'end_date',
|
||||
name: 'end_date',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'num_days',
|
||||
name: 'num_days',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'activity_type',
|
||||
name: 'activity_type',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'category',
|
||||
name: 'category',
|
||||
orderable: false,
|
||||
searchable: false
|
||||
},
|
||||
{
|
||||
data: 'level',
|
||||
name: 'level',
|
||||
orderable: false
|
||||
},
|
||||
{
|
||||
data: 'action',
|
||||
name: 'proof',
|
||||
orderable: false,
|
||||
searchable: false
|
||||
}
|
||||
{ data: 'id', name: 'id', searchable: false },
|
||||
{ data: 'title', name: 'title', orderable: false },
|
||||
{ data: 'organising_institute', name: 'organising_institute', orderable: false },
|
||||
{ data: 'address', name: 'address', orderable: false },
|
||||
{ data: 'department_name', name: 'department_name', orderable: false, searchable: false },
|
||||
{ data: 'user_name', name: 'user_name', orderable: false },
|
||||
{ data: 'start_date', name: 'start_date', orderable: false },
|
||||
{ data: 'end_date', name: 'end_date', orderable: false },
|
||||
{ data: 'num_days', name: 'num_days', orderable: false },
|
||||
{ data: 'activity_type', name: 'activity_type', orderable: false },
|
||||
{ data: 'category', name: 'category', orderable: false, searchable: false },
|
||||
{ data: 'level', name: 'level', orderable: false },
|
||||
{ data: 'action', name: 'proof', orderable: false, searchable: false }
|
||||
],
|
||||
columnDefs: [{
|
||||
columnDefs: [
|
||||
{
|
||||
targets: 0,
|
||||
orderable: false,
|
||||
className: 'select-checkbox',
|
||||
@@ -306,7 +262,8 @@
|
||||
}
|
||||
],
|
||||
dom: '<"d-flex justify-content-between align-items-center mb-3"<"d-flex align-items-center"l><"d-flex"f<"ms-2"B>>>rtip',
|
||||
buttons: [{
|
||||
buttons: [
|
||||
{
|
||||
extend: 'copy',
|
||||
text: '<i class="fas fa-copy me-1"></i> Copy',
|
||||
className: 'btn btn-sm btn-outline-white',
|
||||
@@ -486,13 +443,13 @@
|
||||
toastEl.setAttribute('aria-atomic', 'true');
|
||||
|
||||
toastEl.innerHTML = `
|
||||
<div class="d-flex">
|
||||
<div class="toast-body">
|
||||
${message}
|
||||
<div class="d-flex">
|
||||
<div class="toast-body">
|
||||
${message}
|
||||
</div>
|
||||
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
|
||||
</div>
|
||||
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
|
||||
</div>
|
||||
`;
|
||||
`;
|
||||
|
||||
toastContainer.appendChild(toastEl);
|
||||
document.body.appendChild(toastContainer);
|
||||
|
||||
Reference in New Issue
Block a user