2023-10-26 13:46:55 +02:00
|
|
|
<!-- FILEPATH: /home/chris/git/dogstats/web/pages/dogs/dog.html -->
|
|
|
|
|
|
|
|
<div class="container">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-3">
|
|
|
|
<div class="card">
|
2023-10-29 17:43:26 +01:00
|
|
|
<img src="<?= $dogdata['photo']?:'https://pictshare.net/1ch3e5.png' ?>/300x200/forcesize" class="card-img-top" alt="<?= escape($dogdata['name']); ?>'s profile Picture">
|
2023-10-26 13:46:55 +02:00
|
|
|
<div class="card-body">
|
2023-10-31 23:16:41 +01:00
|
|
|
<h5 class="card-title">
|
|
|
|
<?= escape($dogdata['name']); ?>
|
|
|
|
</h5>
|
2023-10-26 13:46:55 +02:00
|
|
|
<p class="card-text">
|
2023-10-31 23:16:41 +01:00
|
|
|
<ul>
|
|
|
|
<li>Alter:
|
|
|
|
<?= date_diff(date_create($dogdata['birthday']), date_create('now'))->y ?>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<?php if($dogdata['breed']): ?>
|
|
|
|
<li>Rasse:
|
|
|
|
<?= escape($dogdata['breed']); ?>
|
|
|
|
</li>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php if($dogdata['kennel_name']): ?>
|
|
|
|
<li>Zuchtname:
|
|
|
|
<?= escape($dogdata['kennel_name']); ?>
|
|
|
|
</li>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php if($dogdata['size']): ?>
|
|
|
|
<li>Größe:
|
|
|
|
<?= escape($dogdata['size']); ?> cm
|
|
|
|
</li>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php if($dogdata['agility_size']): ?>
|
|
|
|
<li>Agility Größe:
|
|
|
|
<?= escape($dogdata['agility_size']); ?>
|
|
|
|
</li>
|
|
|
|
<?php endif; ?>
|
|
|
|
</ul>
|
|
|
|
|
2023-10-26 13:46:55 +02:00
|
|
|
<div class="d-flex justify-content-end">
|
|
|
|
<button type="button" class="btn btn-secondary" hx-get="/dogs/edit/<?= $dogid; ?>" hx-target="#main">
|
|
|
|
<i class="fas fa-edit"></i>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-10-31 23:16:41 +01:00
|
|
|
</div>
|
2023-10-26 13:46:55 +02:00
|
|
|
</div>
|
2023-10-31 22:43:08 +01:00
|
|
|
<div class="col-9" id="sitemain">
|
|
|
|
<!-- table of all runs of this dog-->
|
|
|
|
<div class="card p-2">
|
2023-10-31 22:50:36 +01:00
|
|
|
<h4>Alle Ergebnisse</h4>
|
2023-10-31 22:43:08 +01:00
|
|
|
<div class="table-responsive">
|
2023-10-31 23:16:41 +01:00
|
|
|
<table class="table">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Turnier</th>
|
|
|
|
<th>Lauf</th>
|
|
|
|
<th>Platz</th>
|
|
|
|
<th>Disqualifiziert</th>
|
|
|
|
<th>Verweigerungen</th>
|
|
|
|
<th>Fehler</th>
|
|
|
|
<th>Zeitfehler</th>
|
|
|
|
<th>Zeit</th>
|
|
|
|
<th>Gesamtfehler</th>
|
|
|
|
<th>m/Sek</th>
|
|
|
|
<th>Bewertung</th>
|
|
|
|
<th>Teilnehmer</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<?php foreach($results as $result) : ?>
|
|
|
|
<?php
|
2023-10-31 22:50:36 +01:00
|
|
|
$t = new Tournament();
|
|
|
|
$run = new Run();
|
|
|
|
|
|
|
|
$tname = $t->getField('name',$result['tournament']);
|
|
|
|
$rname = $run->getField('name',$result['run']);
|
|
|
|
|
|
|
|
?>
|
2023-10-31 23:16:41 +01:00
|
|
|
<tr>
|
|
|
|
<td><a href="/tournaments/event/<?= $result['tournament']; ?>">
|
|
|
|
<?= $tname; ?>
|
|
|
|
</a></td>
|
|
|
|
<td><a href="/runs/overview/<?= $result['run']; ?>">
|
|
|
|
<?= $rname; ?>
|
|
|
|
</a></td>
|
|
|
|
<td>
|
|
|
|
<?= escape($result['ranking']); ?>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?= $result['disqualified']?'Ja':'Nein'; ?>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?= escape($result['refusals']); ?>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?= escape($result['errors']); ?>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?= escape($result['timefaults']); ?>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?= escape($result['runtime']); ?>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?= escape($result['penalties']); ?>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?= escape($result['speed']); ?>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?= escape($result['rating']); ?>
|
|
|
|
</td>
|
|
|
|
<td><a href="/dogs/overview/<?= $result['dog'] ?>">
|
|
|
|
<?= escape( (new Dog())->getField('name',$result['dog']) ); ?>
|
|
|
|
</a></td>
|
|
|
|
</tr>
|
|
|
|
<?php endforeach; ?>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
2023-10-31 22:43:08 +01:00
|
|
|
</div>
|
2023-10-31 23:16:41 +01:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col">
|
|
|
|
<div id="graph" data-bs-theme="light" class="card bg-light text-black" style="min-height: 500px;"></div>
|
2023-10-26 13:46:55 +02:00
|
|
|
|
2023-10-31 23:16:41 +01:00
|
|
|
<script type="text/javascript">
|
|
|
|
// Initialize the echarts instance based on the prepared dom
|
|
|
|
var myChart = echarts.init(document.getElementById('graph'));
|
|
|
|
|
|
|
|
// Specify the configuration items and data for the chart
|
|
|
|
var option = {
|
|
|
|
title: {
|
|
|
|
text: 'Stacked Line'
|
|
|
|
},
|
|
|
|
tooltip: {
|
|
|
|
trigger: 'axis'
|
|
|
|
},
|
|
|
|
legend: {
|
|
|
|
data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
|
|
|
|
},
|
|
|
|
grid: {
|
|
|
|
left: '3%',
|
|
|
|
right: '4%',
|
|
|
|
bottom: '3%',
|
|
|
|
containLabel: true
|
|
|
|
},
|
|
|
|
toolbox: {
|
|
|
|
feature: {
|
|
|
|
saveAsImage: {}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
xAxis: {
|
|
|
|
type: 'category',
|
|
|
|
boundaryGap: false,
|
|
|
|
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
|
|
|
},
|
|
|
|
yAxis: {
|
|
|
|
type: 'value'
|
|
|
|
},
|
|
|
|
series: [
|
|
|
|
{
|
|
|
|
name: 'Email',
|
|
|
|
type: 'line',
|
|
|
|
stack: 'Total',
|
|
|
|
data: [120, 132, 101, 134, 90, 230, 210]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Union Ads',
|
|
|
|
type: 'line',
|
|
|
|
stack: 'Total',
|
|
|
|
data: [220, 182, 191, 234, 290, 330, 310]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Video Ads',
|
|
|
|
type: 'line',
|
|
|
|
stack: 'Total',
|
|
|
|
data: [150, 232, 201, 154, 190, 330, 410]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Direct',
|
|
|
|
type: 'line',
|
|
|
|
stack: 'Total',
|
|
|
|
data: [320, 332, 301, 334, 390, 330, 320]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Search Engine',
|
|
|
|
type: 'line',
|
|
|
|
stack: 'Total',
|
|
|
|
data: [820, 932, 901, 934, 1290, 1330, 1320]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
};
|
|
|
|
|
|
|
|
// Display the chart using the configuration items and data just specified.
|
|
|
|
myChart.setOption(option);
|
|
|
|
</script>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|