feat: add tee selection and skip hole button

Co-authored-by: aider (openrouter/thinkingmachines/inkling-small:free) <aider@aider.chat>
This commit is contained in:
Jiří Stachandaider committed 2026-10-09 22:59:15 +02:00
1 parent 935f5bd85b
commit ad0032bea1
3 files changed
+30 -12

No files matched your search

+22 -6
View File
@@ -26,10 +26,11 @@ async function loadCourse() {
async function startRound() {
const res = await fetch('/course');
const course = await res.json();
const tee = document.getElementById('tee-select').value;
const res2 = await fetch('/round', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({user_id: currentUser.id, course_id: course.id})
body: JSON.stringify({user_id: currentUser.id, course_id: course.id, tee: tee})
});
currentRound = await res2.json();
document.getElementById('start-section').style.display = 'none';
@@ -54,8 +55,6 @@ function renderHole(hole) {
document.getElementById('hole-label').textContent = `Hole ${hole.hole_number}`;
document.getElementById('strokes').value = hole.strokes || 1;
document.getElementById('unfinished').checked = hole.unfinished || false;
document.getElementById('skipped').checked = hole.skipped || false;
document.getElementById('completed').checked = hole.completed || false;
document.getElementById('fairway').checked = hole.fairway_hit || false;
document.getElementById('gir-display').textContent = hole.gir ? 'Yes' : 'No';
@@ -102,8 +101,6 @@ async function saveHole() {
const id = document.getElementById('hole-score-id').value;
const strokes = parseInt(document.getElementById('strokes').value) || 1;
const unfinished = document.getElementById('unfinished').checked;
const skipped = document.getElementById('skipped').checked;
const completed = document.getElementById('completed').checked;
const fairway = document.getElementById('fairway').checked;
const puttsGreen = parseInt(document.getElementById('putts-green').value) || 0;
@@ -120,7 +117,7 @@ async function saveHole() {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
strokes, skipped, completed, fairway_hit: fairway, unfinished,
strokes, skipped: false, completed: false, fairway_hit: fairway, unfinished,
putts_green: puttsGreen, putts_off_green: puttsOffGreen,
penalty_water: penWater, penalty_ob: penOb, penalty_lost: penLost,
bunker_greenside: bunkerGreenside, bunker_fairway: bunkerFairway
@@ -131,6 +128,25 @@ async function saveHole() {
loadRound();
}
async function skipHole() {
const id = document.getElementById('hole-score-id').value;
await fetch(`/hole/${id}`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
strokes: 0, skipped: true, completed: false, fairway_hit: false, unfinished: false,
putts_green: 0, putts_off_green: 0,
penalty_water: false, penalty_ob: false, penalty_lost: false,
bunker_greenside: false, bunker_fairway: false
})
});
const holes = currentData.holes.sort((a,b) => a.hole_number - b.hole_number);
if (currentIndex < holes.length - 1) {
currentIndex++;
loadRound();
}
}
async function loadStats() {
const res = await fetch(`/stats/${currentRound.id}`);
const stats = await res.json();