84 lines
3.9 KiB
PHP
84 lines
3.9 KiB
PHP
<x-layout.app>
|
|
@php($oldScores = session()->get('oldScores')) {{-- TODO Need to handle if null --}}
|
|
<x-slot:page_title>Entry Score Sheet</x-slot:page_title>
|
|
<x-card.card class="mx-auto max-w-7xl">
|
|
<x-card.heading>
|
|
{{ $entry->audition->name }} #{{ $entry->draw_number }}
|
|
<x-slot:subheading>ID #{{ $entry->id }}</x-slot:subheading>
|
|
<x-slot:right_side class="text-right">
|
|
<p>{{ $entry->student->full_name() }}</p>
|
|
<p>{{ $entry->student->school->name }}</p>
|
|
</x-slot:right_side>
|
|
</x-card.heading>
|
|
|
|
<x-form.form method="POST" action="/tabulation/entries/{{ $entry->id }}">
|
|
<x-table.table>
|
|
<thead>
|
|
<tr>
|
|
<x-table.th>Judges</x-table.th>
|
|
@foreach($subscores as $subscore)
|
|
<x-table.th>
|
|
<p>{{ $subscore->name }}<span class="text-xs text-gray-500 pl-2">Max: {{ $subscore->max_score }}</span></p>
|
|
</x-table.th>
|
|
@endforeach
|
|
<x-table.th>Total</x-table.th>
|
|
</tr>
|
|
</thead>
|
|
<x-table.body :sortable="false">
|
|
@foreach($judges as $judge)
|
|
<tr >
|
|
<x-table.td>{{ $judge->full_name() }}</x-table.td>
|
|
@foreach($subscores as $subscore)
|
|
<x-table.td>
|
|
<input type="number"
|
|
max="{{ $subscore->max_score }}"
|
|
id="j{{ $judge->id }}ss{{ $subscore->id }}"
|
|
name="judge{{ $judge->id }}[{{ $subscore->id }}]"
|
|
class="block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6 judge{{$judge->id}}score"
|
|
@if($oldScores) value="{{ $oldScores['judge'.$judge->id][$subscore->id] }}" @endif
|
|
required
|
|
{{-- onchange="judge{{$judge->id}}sum()"--}}
|
|
>
|
|
</x-table.td>
|
|
@endforeach
|
|
<x-table.td >
|
|
<p id="judge{{ $judge->id }}total" class="pr-3">
|
|
0.000
|
|
</p>
|
|
</x-table.td>
|
|
</tr>
|
|
@endforeach
|
|
</x-table.body>
|
|
</x-table.table>
|
|
<x-form.footer class="mb-3">
|
|
<x-form.button>Save Scores</x-form.button>
|
|
</x-form.footer>
|
|
</x-form.form>
|
|
|
|
</x-card.card>
|
|
<script>
|
|
function calculateTotal(judgeId) {
|
|
let total = 0;
|
|
let totalWeights = 0;
|
|
let thisSubscore
|
|
@foreach($subscores as $subscore)
|
|
thisSubscore = parseFloat(document.getElementById("j" + judgeId + "ss{{ $subscore->id }}").value) * {{ $subscore->weight }};
|
|
if (!isNaN(thisSubscore)) {
|
|
total += thisSubscore;
|
|
}
|
|
totalWeights += {{ $subscore->weight }};
|
|
@endforeach
|
|
let finalTotal = (total / totalWeights).toFixed(3);
|
|
document.getElementById('judge' + judgeId + 'total').innerHTML = finalTotal;
|
|
}
|
|
|
|
@foreach($judges as $judge)
|
|
document.querySelectorAll('.judge' + {{ $judge->id }} + 'score').forEach(function(el) {
|
|
el.addEventListener('change', function() {
|
|
calculateTotal({{ $judge->id }});
|
|
});
|
|
});
|
|
@endforeach
|
|
</script>
|
|
</x-layout.app>
|