(playerName, roundNum)
| 14 | } |
| 15 | |
| 16 | function loadTrajectoryDetails(playerName, roundNum) { |
| 17 | // Get the folder from URL params |
| 18 | const urlParams = new URLSearchParams(window.location.search); |
| 19 | const folder = urlParams.get("folder"); |
| 20 | |
| 21 | if (!folder) { |
| 22 | console.error("No folder parameter in URL"); |
| 23 | return; |
| 24 | } |
| 25 | |
| 26 | // Find the trajectory foldout container |
| 27 | const foldout = document.querySelector( |
| 28 | `.trajectory-details-foldout[data-player="${playerName}"][data-round="${roundNum}"]`, |
| 29 | ); |
| 30 | |
| 31 | if (!foldout) { |
| 32 | console.error("Trajectory foldout not found"); |
| 33 | return; |
| 34 | } |
| 35 | |
| 36 | // Show loading spinner, hide placeholder |
| 37 | const placeholder = foldout.querySelector(".trajectory-load-placeholder"); |
| 38 | const spinner = foldout.querySelector(".trajectory-loading-spinner"); |
| 39 | const content = foldout.querySelector(".trajectory-details-content"); |
| 40 | |
| 41 | placeholder.style.display = "none"; |
| 42 | spinner.style.display = "flex"; |
| 43 | |
| 44 | // Fetch trajectory details |
| 45 | fetch( |
| 46 | `/load-trajectory-details?folder=${encodeURIComponent( |
| 47 | folder, |
| 48 | )}&player=${encodeURIComponent(playerName)}&round=${encodeURIComponent( |
| 49 | roundNum, |
| 50 | )}`, |
| 51 | ) |
| 52 | .then((response) => response.json()) |
| 53 | .then((data) => { |
| 54 | if (data.success) { |
| 55 | // Populate the messages |
| 56 | renderMessages( |
| 57 | foldout, |
| 58 | data.messages, |
| 59 | playerName, |
| 60 | roundNum, |
| 61 | data.trajectory_file_path, |
| 62 | ); |
| 63 | |
| 64 | // Hide spinner, show content |
| 65 | spinner.style.display = "none"; |
| 66 | content.style.display = "block"; |
| 67 | } else { |
| 68 | console.error("Error loading trajectory:", data.error); |
| 69 | spinner.innerHTML = `<div class="alert alert-danger">Error: ${data.error}</div>`; |
| 70 | } |
| 71 | }) |
| 72 | .catch((error) => { |
| 73 | console.error("Error loading trajectory:", error); |
no test coverage detected