File: /var/www/ivs.kaunokolegija.lt/laravel/resources/views/admin/alumnies/index.blade.php
@extends('layouts.admin')
@section('content')
<style>
#toggleFilters {
cursor: pointer;
}
</style>
@can('alumny_create')
<div style="margin-bottom: 10px;" class="row">
<div class="col-lg-12">
<button id="openAlumnyModal" type="button" class="btn btn-success modal-create">
{{ trans('global.add') }}
</button>
<button class="btn btn-warning" id="import_btn">
{{ trans('global.import_excel_file') }}
</button>
<x-modal.import route="{{ route('admin.alumnies.import') }}" title="{{ trans('global.import_alumnies_excel') }}" />
</div>
</div>
@endcan
@include('layouts.universal_modal', ['fieldsLink' => 'admin.alumnies.alumnies-fields', 'compName' => 'Alumny', 'createRoute' => route('admin.alumnies.store'), 'updateRoute' => route('admin.alumnies.update', ''), 'title' => trans('global.add'), 'useModal' => true, 'nameModal' => true, 'modalBtn' => true])
<div class="card">
<div class="card-header">
<p id="toggleFilters" class="mb-0" style="cursor: pointer;">
{{ trans('global.advanced_filter') }} <i class="fas fa-chevron-down"></i>
</p>
</div>
<div class="card-body" id="filtersContainer" style="display: none;">
<form id="advancedFiltersForm">
<div class="row">
<!-- Faculty Filter -->
<div class="col-md-4 mt-2">
<label>{{ trans('cruds.alumny.fields.faculty') }}</label>
<select class="form-control select2" id="filterFaculty" multiple>
@foreach($departments as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
</select>
</div>
<!-- Study Program Filter -->
<div class="col-md-4 mt-2">
<label>{{ trans('cruds.alumny.fields.study_program') }}</label>
<select class="form-control select2" id="filterStudyProgram" multiple>
@foreach($study_programs as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
</select>
</div>
<!-- Graduated Date Range -->
<div class="col-md-4 mt-2">
<label>{{ trans('cruds.alumny.fields.graduated') }} ({{ trans('global.from') }})</label>
<input type="date" class="form-control filter" id="filterGraduatedFrom">
</div>
<div class="col-md-4 mt-2">
<label>{{ trans('cruds.alumny.fields.graduated') }} ({{ trans('global.to') }})</label>
<input type="date" class="form-control filter" id="filterGraduatedTo">
</div>
<!-- Workplace Filter -->
<div class="col-md-4 mt-2">
<label>{{ trans('cruds.alumny.fields.workplace') }}</label>
<select class="form-control select2" id="filterWorkplace" multiple>
@foreach($alumni_companies as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
</select>
</div>
<!-- Position Filter -->
<div class="col-md-4 mt-2">
<label>{{ trans('cruds.alumny.fields.position') }}</label>
<select class="form-control select2" id="filterPosition" multiple>
@foreach($positions as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
</select>
</div>
<div class="col-md-4 mt-2">
<label>{{ trans('cruds.alumny.fields.alumny_area_of_cooperations') }}</label>
<select class="form-control filter select2" id="filterAlumnyAreaOfCooperation" multiple>
@foreach($alumnyareaofcooperations as $key => $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
</select>
</div>
</div>
<!-- Filter Buttons -->
<div class="mt-3">
<button type="button" class="btn btn-success" id="applyFilters">{{ trans('global.apply') }}</button>
<button type="button" class="btn btn-secondary" id="resetFilters">{{ trans('global.reset') }}</button>
</div>
</form>
</div>
</div>
<div class="card">
<div class="card-header">
{{ trans('global.list') }}
</div>
<div class="card-body">
<table class=" table table-bordered table-striped table-hover ajaxTable datatable datatable-Alumny">
<thead>
<tr>
<th width="10">
</th>
<th>
{{ trans('cruds.alumny.fields.id') }}
</th>
<th>
{{ trans('cruds.alumny.fields.name') }}
</th>
<th>
{{ trans('cruds.alumny.fields.graduated') }}
</th>
<th>
{{ trans('cruds.alumny.fields.faculty') }}
</th>
<th>
{{ trans('cruds.alumny.fields.cathedral') }}
</th>
<th>
{{ trans('cruds.alumny.fields.study_program') }}
</th>
<th>
{{ trans('cruds.alumny.fields.alumny_area_of_cooperations') }}
</th>
<th>
{{ trans('cruds.alumny.fields.workplace') }}
</th>
<th>
{{ trans('cruds.alumny.fields.position') }}
</th>
<th>
{{ trans('cruds.alumny.fields.email') }}
</th>
<th>
{{ trans('cruds.alumny.fields.phone') }}
</th>
<th>
{{ trans('global.additional_info_1') }}
</th>
<th>
{{ trans('global.additional_info_2') }}
</th>
<th>
{{ trans('global.additional_info_3') }}
</th>
<th>
{{ trans('global.additional_info_4') }}
</th>
<th>
{{ trans('global.additional_info_5') }}
</th>
<th>
</th>
</tr>
<tr>
<td>
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
</td>
<td>
<select class="search">
<option value>{{ trans('global.all') }}</option>
@foreach($departments as $key => $item)
<option value="{{ $item->name }}">{{ $item->name }}</option>
@endforeach
</select>
</td>
<td>
<select class="search">
<option value>{{ trans('global.all') }}</option>
@foreach($department_subsections as $key => $item)
<option value="{{ $item->name }}">{{ $item->name }}</option>
@endforeach
</select>
</td>
<td>
<select class="search">
<option value>{{ trans('global.all') }}</option>
@foreach($study_programs as $key => $item)
<option value="{{ $item->name }}">{{ $item->name }}</option>
@endforeach
</select>
</td>
<td>
<select class="search">
<option value>{{ trans('global.all') }}</option>
@foreach($alumnyareaofcooperations as $key => $item)
<option value="{{ $item->name }}">{{ $item->name }}</option>
@endforeach
</select>
</td>
<td>
<select class="search">
<option value>{{ trans('global.all') }}</option>
@foreach($alumni_companies as $key => $item)
<option value="{{ $item->name }}">{{ $item->name }}</option>
@endforeach
</select>
</td>
<td>
<select class="search">
<option value>{{ trans('global.all') }}</option>
@foreach($positions as $key => $item)
<option value="{{ $item->name }}">{{ $item->name }}</option>
@endforeach
</select>
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
<input class="search" type="text" placeholder="{{ trans('global.search') }}">
</td>
<td>
</td>
</tr>
</thead>
</table>
</div>
</div>
@endsection
@section('scripts')
@parent
<script>
$(function () {
let dtButtons = $.extend(true, [], $.fn.dataTable.defaults.buttons)
@can('alumny_delete')
let deleteButtonTrans = '{{ trans('global.datatables.delete') }}';
let deleteButton = {
text: deleteButtonTrans,
url: "{{ route('admin.alumnies.massDestroy') }}",
className: 'btn-danger',
action: function (e, dt, node, config) {
var ids = $.map(dt.rows({ selected: true }).data(), function (entry) {
return entry.id
});
if (ids.length === 0) {
alert('{{ trans('global.datatables.zero_selected') }}')
return
}
if (confirm('{{ trans('global.areYouSure') }}')) {
$.ajax({
headers: {'x-csrf-token': _token},
method: 'POST',
url: config.url,
data: { ids: ids, _method: 'DELETE' }})
.done(function () { location.reload() })
}
}
}
dtButtons.push(deleteButton)
@endcan
let dtOverrideGlobals = {
buttons: dtButtons,
processing: true,
serverSide: true,
retrieve: true,
aaSorting: [],
ajax: "{{ route('admin.alumnies.index') }}",
columns: [
{ data: 'placeholder', name: 'placeholder' },
{ data: 'id', name: 'id' },
{ data: 'name', name: 'name' },
{ data: 'graduated', name: 'graduated' },
{ data: 'faculty', name: 'faculties.name' },
{ data: 'cathedral', name: 'cathedrals.name' },
{ data: 'study_program', name: 'study_programs.name' },
{ data: 'alumnyareaofcooperations', name: 'alumnyareaofcooperations.name' },
{ data: 'workplace', name: 'workplaces.name' },
{ data: 'position', name: 'positions.name' },
{ data: 'email', name: 'email' },
{ data: 'phone', name: 'phone' },
{ data: 'additional_field_1', name: 'additional_field_1' },
{ data: 'additional_field_2', name: 'additional_field_2' },
{ data: 'additional_field_3', name: 'additional_field_3' },
{ data: 'additional_field_4', name: 'additional_field_4' },
{ data: 'additional_field_5', name: 'additional_field_5' },
{ data: 'actions', name: '{{ trans('global.actions') }}' }
],
orderCellsTop: true,
order: [[ 1, 'desc' ]],
pageLength: 50,
};
let table = $('.datatable-Alumny').DataTable(dtOverrideGlobals);
$('a[data-toggle="tab"]').on('shown.bs.tab click', function(e){
$($.fn.dataTable.tables(true)).DataTable()
.columns.adjust();
});
let visibleColumnsIndexes = null;
$('.datatable thead').on('input', '.search', function () {
let strict = $(this).attr('strict') || false
let value = strict && this.value ? "^" + this.value + "$" : this.value
let index = $(this).parent().index()
if (visibleColumnsIndexes !== null) {
index = visibleColumnsIndexes[index]
}
table
.column(index)
.search(value, strict)
.draw()
});
table.on('column-visibility.dt', function(e, settings, column, state) {
visibleColumnsIndexes = []
table.columns(":visible").every(function(colIdx) {
visibleColumnsIndexes.push(colIdx);
});
})
});
$(document).ready(function () {
$("#toggleFilters").click(function () {
$("#filtersContainer").toggle();
$(this).find("i").toggleClass("fa-chevron-down fa-chevron-up");
});
$("#applyFilters").click(function () {
let faculty = $("#filterFaculty").val();
let studyProgram = $("#filterStudyProgram").val();
let graduatedFrom = $("#filterGraduatedFrom").val();
let graduatedTo = $("#filterGraduatedTo").val();
let workplace = $("#filterWorkplace").val();
let position = $("#filterPosition").val();
let alumnyAreaOfCooperation = $("#filterAlumnyAreaOfCooperation").val();
let filters = {
faculty: faculty,
studyProgram: studyProgram,
graduatedFrom: graduatedFrom,
graduatedTo: graduatedTo,
workplace: workplace,
position: position,
alumnyAreaOfCooperation: alumnyAreaOfCooperation
};
$('.datatable-Alumny').DataTable().ajax.url("{{ route('admin.alumnies.index') }}" + "?" + $.param(filters)).load();
});
$("#resetFilters").click(function () {
$("#advancedFiltersForm")[0].reset();
$("#advancedFiltersForm").find("select").val(null).trigger("change");
$('.datatable-Alumny').DataTable().ajax.url("{{ route('admin.alumnies.index') }}").load();
});
});
</script>
@endsection