File: /var/www/vhost/disk-apps/demo.sports-crowd.com/resources/views/academy/tournaments/list.blade.php
@extends('modules.head') @section('contenido')
<style>
/* Ensure that the demo table scrolls */
/* th, */
td {
white-space: nowrap;
}
div.dataTables_wrapper {
height: fit-content;
margin: 0px 10px 0px 10px;
}
.dataTables_scrollBody {
max-height: none !important;
}
.description {
min-width: 200px !important;
white-space: normal;
}
</style>
<div class="box-header">
<a class="auxiliar-black" href="{{ url('/academy_tournaments/add') }}{{ '/' . $type_academy }}">
<button class="btn btnAdd pull-right">
<i style="margin-right:5px;" class="fa fa-plus"></i>
{{ Lang::get('messages.academy_tournaments.title_create') }}
</button></a>
</div>
<!-- List tournaments -->
<div class="box">
<div class="box-header">
<h3 class="box-title"><b>{{ Lang::get('messages.academy_tournaments.filters') }}</b></h3>
<div class="row">
<div class="col-3 col-md-3">
<label for="types">{{ Lang::get('messages.academy_tournaments.filter_types')}}</label>
<select class="form-control select2" multiple="multiple" data-placeholder="{{ Lang::get('messages.academy_tournaments.placeholder_select') }}" name="types" value="" required>
@foreach ($types as $type)
<option value="{{ $type }}">{{ $type }}</option>
@endforeach
</select>
</div>
</div>
<div class="row">
<div class="col-3 col-md-3">
<label for="from_term">{{ Lang::get('messages.academy_tournaments.filter_created_start_date')}}</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" placeholder="{{ Lang::get('messages.academy_tournaments.placeholder_date') }}" name="from_term" value="" autocomplete="off">
</div>
</div>
<div class="col-3 col-md-3">
<label for="to_term">{{ Lang::get('messages.academy_tournaments.filter_created_end_date')}}</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" placeholder="{{ Lang::get('messages.academy_tournaments.placeholder_date') }}" name="to_term" value="" autocomplete="off">
</div>
</div>
<div class="col-3 col-md-3">
<label for="from_date">{{ Lang::get('messages.academy_tournaments.filter_payment_start_date')}}</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" placeholder="{{ Lang::get('messages.academy_tournaments.placeholder_date') }}" name="from_date" value="" autocomplete="off">
</div>
</div>
<div class="col-3 col-md-3">
<label for="to_date">{{ Lang::get('messages.academy_tournaments.filter_payment_end_date')}}</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" placeholder="{{ Lang::get('messages.academy_tournaments.placeholder_date') }}" name="to_date" value="" autocomplete="off">
</div>
</div>
</div>
<div class="row">
<div class="col-3 col-md-3 hidden">
<label for="categories">{{ Lang::get('messages.screen_banners_tag6') }}</label>
<select class="form-control select2" multiple="multiple"
data-placeholder="{{ Lang::get('messages.academy_schedules.select') }}"
name="categories" required>
</select>
</div>
</div>
<p style="margin-top: 10px; border-bottom: 1px solid #D3D3D3;"></p>
<h3 class="box-title"><b>{{ Lang::get('messages.academy_tournaments.title_list') }}</b></h3>
</div>
<!-- /.box-header -->
<table id="example2" class="stripe row-border order-column" style="width:100%" role="grid" aria-describedby="example2_info">
<thead>
<tr role="row">
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag1') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag9') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.type') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag10') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag2') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag3') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.fees') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.enable_price_payment_installments') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.enable_percentage_payment_installments') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.segmentation') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag4') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag5') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag6') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag7') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending"> {{ Lang::get('messages.academy_tournaments.registration_service_item_code') }} </th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending"> {{ Lang::get('messages.academy_tournaments.cost_center') }} </th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag8') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag0') }}</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Engine version: activate to sort column ascending">{{ Lang::get('messages.academy_tournaments.tag00') }}</th>
</tr>
</thead>
</table>
<!-- /.box-body -->
</div>
<script src="{{ asset('js/jQuery/jquery-2.2.3.min.js') }}"></script>
<script src="{{ asset('js/crud.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/academy_tournaments.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/bootstrap/js/bootstrap.min.js') }}"></script>
<script src="{{ asset('js/util.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/filter.js') . '?v=' . time() }}"></script>
<script type="text/javascript">
$(document).ready(function() {
getAcademyCategories();
validateLocalStoreInformation();
getData();
$('.select2').select2();
$("select[name='categories']").on('change', function() {
getAcademyCoaches();
getAcademySchedules();
cleanPagination();
getData();
});
$.fn.datepicker.dates['en'] = {
days: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
daysShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
daysMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
months: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre',
'Octubre', 'Noviembre', 'Diciembre'
],
monthsShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
today: "Hoy",
clear: "Clear",
format: "yyyy-mm-dd",
titleFormat: "MM yyyy",
weekStart: 0
};
$("input[name='from_term']").datepicker({
dateFormat: 'yyyy-mm-dd'
});
$("input[name='to_term']").datepicker({
dateFormat: 'yyyy-mm-dd'
});
$("input[name='from_date']").datepicker({
dateFormat: 'yyyy-mm-dd'
});
$("input[name='to_date']").datepicker({
dateFormat: 'yyyy-mm-dd'
});
$("select[name='types']").on('change', function() {
getData();
});
let from_term;
$("input[name='from_term']").on('change', function(event) {
if ((this.value && from_term != this.value) || (!this.value && from_term)) {
from_term = this.value;
getData();
} else {
filterData("paymentsfilterFrom_term", this.value);
}
});
let to_term;
$("input[name='to_term']").on('change', function() {
if ((this.value && to_term != this.value) || (!this.value && to_term)) {
to_term = this.value;
getData();
} else {
filterData("paymentsfilterTo_term", this.value);
}
});
let from_date;
$("input[name='from_date']").on('change', function(event) {
if ((this.value && from_date != this.value) || (!this.value && from_date)) {
from_date = this.value;
getData();
} else {
filterData("paymentsfilterFrom_date", this.value);
}
});
let to_date;
$("input[name='to_date']").on('change', function() {
if ((this.value && to_date != this.value) || (!this.value && to_date)) {
to_date = this.value;
getData();
} else {
filterData("paymentsfilterTo_date", this.value);
}
});
let categories = $("select[name='categories']").select2().val();
});
function getData() {
$("#example2").dataTable().fnDestroy();
let types = $("select[name='types']").val();
if (types == '') {
types = null;
}
let from_term = $("input[name='from_term']").val();
let to_term = $("input[name='to_term']").val();
let from_date = $("input[name='from_date']").val();
let to_date = $("input[name='to_date']").val();
let categories = $("select[name='categories']").val();
filterData("filterTypes", types);
filterData("paymentsfilterFrom_term", from_term);
filterData("paymentsfilterTo_term", to_term);
filterData("paymentsfilterFrom_date", from_date);
filterData("paymentsfilterTo_date", to_date);
filterData("filterCategories", categories);
var syncERP = <?php echo json_encode($syncERP); ?>;
var typeAcademy = <?php echo json_encode($type_academy); ?>;
if (!localStorage.getItem('sort_col')) {
var sort_col = $('#example2').find("th:contains("+ Lang.get('messages.academy_tournaments.tag8')+")")[0].cellIndex;
localStorage.setItem('sort_col', sort_col);
}
sort_col = localStorage.getItem('sort_col');
let fixedColumns = false;
let isMobileDevice = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
if (!isMobileDevice) {
fixedColumns = {
left: 1,
right: 2
};
}
_table = $('#example2').DataTable({
responsive: true,
processing: true,
serverSide: true,
order: [
[sort_col, 'desc']
],
language: {
url: window.DATATABLES_LANGUAGE_URL,
},
scrollX: true,
scrollCollapse: true,
paging: true,
fixedColumns: fixedColumns,
ajax: {
url: '/academy_tournaments/list/' + types + '/' + (from_term.length ? from_term : 'null') + '/' + (to_term.length ? to_term : 'null') + '/' + (from_date.length ? from_date : 'null') + '/' + (to_date.length ? to_date : 'null') + '/' + typeAcademy + '/' + categories,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
type: "POST"
},
columns: [{
data: 'name',
render: function(data, type, row) {
if (data.includes(' '))
return data.replace(/ /g, ' ');
return data;
},
name: 'name'
},
{
data: 'description',
className: "description",
name: 'description'
},
{
data: 'type',
name: 'type'
},
{
data: 'image',
name: 'image'
},
{
data: 'price',
render: function(data, type, row) {
return formatCurrency(row.price);
},
name: 'price'
},
{
data: 'discount',
render: function(data, type, row) {
return (row.discount ?? 0) + '%';
},
name: 'discount'
},
{
data: 'payment_installments',
name: 'payment_installments'
},
{
data: 'enable_price_payment_installments',
render: function(data, type, row, column) {
return row.enable_price_payment_installments ? 'SI' : 'NO';
},
name: 'enable_price_payment_installments'
},
{
data: 'enable_percentage_payment_installments',
render: function(data, type, row, column) {
return row.enable_percentage_payment_installments ? 'SI' : 'NO';
},
name: 'enable_percentage_payment_installments'
},
{
data: 'segmentation',
render: function(data, type, row) {
let tags = '';
if (row.segmentation) {
let list = row.segmentation.split(',');
let data = list.map(function(d) {
return '<li>' + d + '</li>';
});
tags = data.join('');
}
return tags;
},
name: 'tags.name'
},
{
data: 'payday_limit',
name: 'payday_limit'
},
{
data: 'start_date',
name: 'start_date'
},
{
data: 'end_date',
name: 'end_date'
},
{
data: 'categories',
render: function(data, type, row) {
let categories = '';
if (row.categories) {
let list = row.categories.split(',');
let data = list.map(function(d) {
return '<li>' + d + '</li>';
});
categories = data.join('');
}
if (categories == '') {
categories = '<li>' + "{{Lang::get('messages.academy_tournaments.all_categories')}}" + '</li>';
}
return categories;
},
name: 'academy_categories.name'
},
{
data: 'registration_service_item_code',
visible: syncERP,
name: 'academy_tournament_erps.registration_service_item_code'
},
{
data: 'cost_center',
visible: syncERP,
name: 'academy_tournament_erps.cost_center'
},
{
data: 'created_at',
name: 'created_at'
},
{
data: 'active',
name: 'active'
},
{
data: 'actions',
name: 'actions'
},
]
});
var info = '<i class="fa fa-info-circle" id="btn-info-busqueda"></i><div class="dropdown-menu" id="menuBusqueda" style="left: 50%; padding: 5px; background-color: #f9fb8f;"><p data-toggle="modal">Busqueda por Nombre, Orden y Link</p></div>';
$('#example2_filter').append(info);
$('#btn-info-busqueda').on('click', function() {
$('#menuBusqueda').toggle();
});
}
// Paginacion inicial
var URLactual = window.location.href;
document.addEventListener('click', function(e) {
if (e.target.closest('a')) {
var href = e.target.closest('a').href || '';
href = href.split('#')[0];
if (URLactual != href) {
// localStorage.setItem("setPaginaActual", 0);
// Removemos los localStorage
localStorage.removeItem("sort_col");
localStorage.removeItem("filterTypes");
localStorage.removeItem("paymentsfilterFrom_term");
localStorage.removeItem("paymentsfilterTo_term");
localStorage.removeItem("paymentsfilterFrom_date");
localStorage.removeItem("paymentsfilterTo_date");
localStorage.removeItem("filterCategories");
}
}
}, false);
function filterData(setKey, filter) {
localStorage.setItem(setKey, filter);
}
function validateLocalStoreInformation() {
types = localStorage.getItem("filterTypes");
from_term = localStorage.getItem("paymentsfilterFrom_term");
to_term = localStorage.getItem("paymentsfilterTo_term");
from_date = localStorage.getItem("paymentsfilterFrom_date");
to_date = localStorage.getItem("paymentsfilterTo_date");
categories = localStorage.getItem("filterCategories");
$("select[name='types']").val(types);
$("input[name='from_term']").val(from_term);
$("input[name='to_term']").val(to_term);
$("input[name='from_date']").val(from_date);
$("input[name='to_date']").val(to_date);
$("select[name='categories']").select2().val(categories);
}
let cleanPagination = function() {
localStorage.removeItem('DataTables_example2');
};
</script>
@endsection