diff --git a/js/pages/playerInfo.js b/js/pages/playerInfo.js index 87cd134..84f096b 100644 --- a/js/pages/playerInfo.js +++ b/js/pages/playerInfo.js @@ -40,19 +40,25 @@ function PlayerInfoPage(params, container) { function refresh() { Rcon.getPlayers(function (players) { + // Guard against navigation away while waiting for RCON response + var nf = document.getElementById('pi-notfound'); + var fields = document.getElementById('pi-fields'); + var actions = document.getElementById('pi-actions'); + if (!nf || !fields || !actions) return; + var info = null; for (var i = 0; i < players.length; i++) { if (String(players[i].SteamID) === userid) { info = players[i]; break; } } if (!info) { - document.getElementById('pi-notfound').style.display = 'block'; - document.getElementById('pi-fields').innerHTML = ''; - document.getElementById('pi-actions').style.display = 'none'; + nf.style.display = 'block'; + fields.innerHTML = ''; + actions.style.display = 'none'; return; } - document.getElementById('pi-notfound').style.display = 'none'; - document.getElementById('pi-actions').style.display = 'block'; + nf.style.display = 'none'; + actions.style.display = 'block'; // Fix known Rust RCON quirk: VoiationLevel → ViolationLevel if (info.VoiationLevel !== undefined) { @@ -64,7 +70,8 @@ function PlayerInfoPage(params, container) { delete info.CurrentLevel; delete info.UnspentXp; - document.getElementById('pi-username').textContent = info.DisplayName || userid; + var un = document.getElementById('pi-username'); + if (un) un.textContent = info.DisplayName || userid; var fieldsHtml = ''; for (var key in info) { @@ -79,7 +86,7 @@ function PlayerInfoPage(params, container) { fieldsHtml += '

' + key + ': ' + value + '

'; } } - document.getElementById('pi-fields').innerHTML = fieldsHtml; + fields.innerHTML = fieldsHtml; }); } diff --git a/js/pages/serverInfo.js b/js/pages/serverInfo.js index 9d9ffd4..8059f74 100644 --- a/js/pages/serverInfo.js +++ b/js/pages/serverInfo.js @@ -93,7 +93,7 @@ function ServerInfoPage(params, container) { .y(function (d) { return d.y; }) .showLabels(true) .donut(true) - .donutLabelsOutside(false) + .labelsOutside(false) .duration(500) .height(250) .color(['#a78bfa', '#7c3aed', '#e879f9', '#2d1f3d'])