{% extends 'base.html.twig' %}
{% block title %}Court Availability: {{ dateRange }}{% endblock %}
{% block body %}
<style>
/*.table-data th {*/
/* height: 70px;*/
/* width: 120px;*/
/* padding: 0px 10px*/
/*}*/
.table-data td {
padding: 4px !important;
vertical-align: middle;
}
/*.table-hour th {*/
/* height: 66px;*/
/* padding: 0px 10px*/
/*}*/
.table-hour td {
padding: 4px !important;
vertical-align: middle;
}
</style>
{% for message in app.flashes('failed') %}
<div class="alert alert-danger">
{{ message }}
</div>
{% endfor %}
<div class="top-up-dialog col-md-3 shadow p-2 text-center">
<p><strong>Your account balance is too low to book this court. Top-up?</strong></p>
<div class="d-flex justify-content-center">
<button class="btn btn-warning w-50 close-pop-up"> Ignore</button>
<a class="btn btn-primary ml-2 w-50" href="{{ path('payments_new', {type: 'In-coming cash'}) }}">TopUp</a>
</div>
</div>
<div class="bid-dialog col-md-3 shadow-lg text-dark rounded px-0 pb-2">
<div class="py-2 text-center text-light" style="background-color: #e7e7e7"><h4 style="color:#898989"><strong>Bid
Your Price</strong></h4></div>
<div class="">
<form class="bid-form px-5 pt-3 py-2" method="post">
<div class="form-group">
<div class="label-bid"></div>
<input type="number" class="bid-input form-control mt-1" name="bid">
</div>
<div class="form-group d-flex">
<input type="submit" name="submit" class="w-50 submit-bid-button btn btn-success d-inline ml-1"
value="Submit">
<input type="submit" name="cancel-submit"
class="w-50 close-bid-button btn btn-danger d-inline" value="Cancel">
</div>
</form>
</div>
</div>
<h1 style="color: red;">Court Availability: {{ dateRange }}</h1>
<div class="row">
{% include 'tennis_court_availability/parts/date_ranges.html.twig' %}
{% if app.user %}
{% include 'tennis_court_availability/parts/client_court_times_provisional.html.twig' %}
{% include 'tennis_court_availability/parts/postcodes.html.twig' %}
{% include 'tennis_court_availability/parts/postcodes_sub_routine2.html.twig' %}
{% endif %}
{% include 'tennis_court_availability/parts/date_ranges2.html.twig' %}
</div>
{% if is_granted('ROLE_ACEIFY') %}
<div class="row">
<div class="col-8"></div>
<div class="col-3">
Admin: {% include 'tennis_court_availability/parts/admin_buttons.html.twig' %}
</div>
</div>
{% endif %}
<hr>
{% for date in dates %}
<h3 style="color: blue;">{{ date|date('D d-M-Y') }}</h3>
<div class="row">
<div class="main-container d-flex w-100">
<div class="table-hour-container">
<table class="table table-hour">
<thead>
<tr>
<th>Hour
{% include 'tennis_court_availability/parts/scrape_all_venues_that_day.html.twig' %}
</th>
{% if is_granted('ROLE_ACEIFY') and app.user.id != ActiveAceifyClient.findClient(app.user).id %}
<th>
Email
</th>
{% endif %}
</tr>
</thead>
<tbody>
{% for hour in hours %}
<tr>
<td style="text-align: center" data-sort="{{ hour.sort }}"><b>{{ hour.hour }}</b></td>
{% if is_granted('ROLE_ACEIFY') and app.user.id != ActiveAceifyClient.findClient(app.user).id %}
<td style="text-align: center">
{% set client_court_flag = 0 %}
{% for client_court_time in client_court_times %}
{% if client_court_time.date == date and client_court_time.hour == hour.sort %}
{% set client_court_flag =1 %}
<form method="post"
action="{{ path('client_court_times_delete', {'id': client_court_time.id}) }}">
<input type="hidden" name="_token"
value="{{ csrf_token('delete' ~ client_court_time.id) }}">
<button style="background-color: white;border:none"><i
style="color: green" class="fa fa-calendar-check"></i>
</button>
</form>
{% endif %}
{% endfor %}
{% if client_court_flag ==0 %}
<a href="{{ path('client_court_times_new', {date: date|date('Y-m-d'), hour: hour.sort}) }}">
<i style="color: grey" class="fa fa-circle"></i>
</a>
{% endif %}
</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="table-data-container overflow-auto">
<table class="table table-responsive table-data">
<thead>
<tr>
{% for tennis_venue in tennis_venues %}
<th style="text-align: left">
{% include 'tennis_court_availability/parts/venue_header.html.twig' %}
</th>
{% endfor %}
{% include 'tennis_court_availability/parts/weather_headers.html.twig' %}
</tr>
</thead>
<tbody>
{% for hour in hours %}
{% set past_or_future = "default" %}
{% if date|date('Y-m-d') < today|date('Y-m-d') or hour.sort < todayHour and date|date('Y-m-d') == today|date('Y-m-d') %}
<tr style="background-color: whitesmoke">
{% set past_or_future = "Past" %}
{% else %}
{% if hour.sort == todayHour and date|date('Y-m-d') == today|date('Y-m-d') %}
{% set past_or_future = "Future" %}
<tr style="background-color: lightyellow">
{% else %}
<tr>
{% set past_or_future = "Future" %}
{% endif %}
{% endif %}
{% for tennis_venue in tennis_venues %}
{% set availability = "-" %}
{% set id = '' %}
{% set court_cost='' %}
<td style="text-align: center">
{% include 'template_parts/login_or_register_popup.html.twig' %}
{% include 'tennis_court_availability/parts/bookings_made.html.twig' %}
{# {% if is_granted('ROLE_SUPER_ADMIN') %}#}
{# <span style="color: red">{{ CourtAvailabilities.summaryAcrossCourt(hour.sort,tennis_venue,date) }}</span>#}
{# {% endif %}#}
{% if CourtAvailabilities.summaryAcrossCourt(tennis_venue,date, hour.sort) == 1 %}
{% include 'tennis_court_availability/parts/court_not_released_yet.html.twig' %}
{% endif %}
{% if CourtAvailabilities.summaryAcrossCourt(tennis_venue,date, hour.sort) == 2 %}
{% include 'tennis_court_availability/parts/court_available.html.twig' %}
{% endif %}
{% if CourtAvailabilities.summaryAcrossCourt(tennis_venue,date, hour.sort) == 3 %}
{% include 'tennis_court_availability/parts/court_fully_booked.html.twig' %}
{% endif %}
{% if CourtAvailabilities.summaryAcrossCourt(tennis_venue,date, hour.sort) == 4 %}
{% include 'tennis_court_availability/parts/court_closed.html.twig' %}
{% endif %}
</td>
{% endfor %}
{% include 'tennis_court_availability/parts/weather.html.twig' %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<hr>
{% endfor %}
<br>
<br>
<br>
<br>
{% endblock %}
{% block datatable %}
<script>
$(document).ready(function () {
$('.table').DataTable({
'pageLength': 50,
"order": [[0, 'asc']],
"paging": false,
"searching": false,
"bInfo": false,
"responsive": false,
"sort": false
});
});
</script>
<script>
{% if app.user %}
function checkAccountBalance(id) {
var bidPrice = $("#bid-input-reserve" + id).val();
var balance = {{ (Payments.TotalPaymentsMade(ActiveAceifyClient.findClient(app.user)) -
Payments.TotalBookingsCost(ActiveAceifyClient.findClient(app.user))) }};
if (balance < parseInt(bidPrice)) {
$(".close").click();
$(".top-up-dialog").css('display', 'block');
return false;
} else {
return true;
}
}
function returnAccountBalance(id) {
var balance = {{ (Payments.TotalPaymentsMade(ActiveAceifyClient.findClient(app.user)) -
Payments.TotalBookingsCost(ActiveAceifyClient.findClient(app.user))) }};
return balance;
}
function checkAccountBalanceConfirm(price) {
{% if is_granted('ROLE_ACEIFY') %}
{% else %}
var balance = {{ (Payments.TotalPaymentsMade(ActiveAceifyClient.findClient(app.user)) -
Payments.TotalBookingsCost(ActiveAceifyClient.findClient(app.user))) }};
if (balance < price) {
$(".close").click();
$(".top-up-dialog").css('display', 'block');
return false;
} else {
return true;
}
}
{% endif %}
$('.close-pop-up').click(function () {
$(".top-up-dialog").css('display', 'none');
});
var date = '';
var hour = '';
var venue = '';
{% endif %}
function bid(date, hour, venue) {
date = date;
hour = hour;
venue = venue;
$(".bid-dialog").css('display', 'block');
$(".label-bid").html("<p class='mb-0' style='font-size: 20.5px;color:#878787'><strong>Please enter your bid for the court on " + date + " at " + hour + "h at " + venue + "</strong></p>");
$(".submit-bid-button").click(function (e) {
e.preventDefault();
var bid = $('.bid-input').val();
{# var href = "/tennis/bookings/advanceReservation/" + date + "/" + hour + "/" + venue + "/{{ app.user.id }}/" + bid + ""; #}
$(".bid-dialog").css("display", "none");
window.location.href = href;
});
$(".close-bid-button").click(function (e) {
e.preventDefault();
$(".bid-dialog").css("display", "none");
})
return false;
}
</script>
<script>
/// $("table").removeClass('table-responsive');
</script>
{% endblock datatable %}
{% block additionaljs %}
<script>
$(document).ready(function () {
var height = $('.table-data thead tr th').height();
$('.table-hour thead tr th').height(height);
$(window).resize(function () {
var height = $('.table-data thead tr th').height();
$('.table-hour thead tr th').height(height);
})
var dateRange = "{{ dateRange }}";
if (dateRange !== "") {
$('a:contains("' + dateRange + '")').removeClass('btn-primary');
$('a:contains("' + dateRange + '")').addClass('btn-success');
}
$('.main-container').each(function () {
var parent = $(this);
$(this).find('.table-data-container tbody tr').each(function (index) {
var height = $(this).height();
$(parent).find('.table-hour-container table tbody tr').eq(index).css("height", height);
});
})
})
</script>
{% endblock %}