aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/templates/players.html
blob: 22ffc471e13e646a26c4fb2f03076f4c8baf7d94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{{define "body-players"}}
<div style="padding:20px">
  <h2>Players</h2>
  <div class="search-bar" style="max-width:400px"><input type="search" placeholder="Search players..." id="playerSearch" oninput="searchPlayers()"></div>
  <table class="table" style="margin-top:12px">
    <thead><tr><th>Name</th><th>Level</th><th>Room</th><th>Account</th></tr></thead>
    <tbody id="playerTableBody"></tbody>
  </table>
</div>
<script>
API.get('/api/players').then(function(r){
  var tbody = $('#playerTableBody');
  var players = r.players || r || [];
  window._players = players;
  renderPlayerTable('');
}).catch(function(e){notify('Failed: '+e.message,'error')});
function searchPlayers(){
  var q = ($('#playerSearch').value||'').toLowerCase();
  renderPlayerTable(q);
}
function renderPlayerTable(q){
  var tbody = $('#playerTableBody');
  var rows = (window._players||[]).filter(function(p){
    var name = (p.name||p.Name||'').toLowerCase();
    return !q || name.indexOf(q) >= 0;
  }).map(function(p){
    return '<tr><td>'+esc(p.name||p.Name)+'</td><td>'+esc(p.level||p.Level)+'</td><td>'+esc(p.room||p.Room)+'</td><td>'+esc(p.account||p.Account)+'</td></tr>';
  });
  tbody.innerHTML = rows.join('') || '<tr><td colspan="4" style="color:#888">No players found</td></tr>';
}
function esc(s) { return String(s || '').replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;'); }
</script>
{{end}}