5 <meta charset="utf-8" />
6 <title>StarCraft ][ Clan summary</title>
7 <link rel="stylesheet" type="text/css" href="/schtarr/battle.css" />
8 <meta name="theme-color" content="#000D1A" />
9 <meta name="viewport" content="width=device-width" />
13 <p id="clan">No clan data</p>
15 let outcont = document.getElementById('clan')
16 let request = this.location.pathname.split('/').pop()
17 outcont.innerHTML = `Loading clan data for <q>${request}</q>`
18 fetch('/schtarr/data/' + request + '.json')
20 if (res.status != 200) {
21 console.log('got %o', res)
22 throw `include ${res.status}`
28 clan.ladders = clan.ladders.filter(l => !(
29 laddercmp[l.members] = l.members in laddercmp ? l : null
31 let tiernum = (rank) => rank <= 8 ? 1 : rank <= 25 ? 2 : rank <= 50 ? 3 : 4;
32 let matchtime = (d) => d.getDate() + '/' + (d.getMonth() + 1) +
33 ' ' + d.getHours() + ":" + ('0' + d.getMinutes()).slice(-2);
35 <h1>${clan.tag || clan.members[0].name}</h1>
37 ${clan.ladders.map(ladder => `
40 ' tier' + tiernum(ladder.rank),
41 ladder.season ? ' old' : null,
43 data-members="${ladder.members}"
44 title="Division ${ladder.division} (${ladder.wins}:${ladder.losses})${
45 (l => l ? `\nprevious season ${l.wins}:${l.losses} in ${l.league}` : '')
46 (laddercmp[ladder.members])
48 ${ladder.league} <small>#${ladder.rank}</small>
53 ${clan.members.map(member => `
54 <li><a href="${member.profileUrl}"><figure>
55 <img src="${member.avatarUrl}" title="${member.name}" />
56 <figcaption>${member.name}</figcaption>
61 ${clan.matches.splice(0, 3).map(match => `
62 <li data-members="${match.players}" class=${match.decision.toLowerCase()}>
63 ${matchtime(new Date(match.date * 1000))} ${match.type}
69 document.querySelectorAll('[data-members]').forEach(li => {
70 let momberids = li.dataset.members.split(',')
71 let membercont = document.querySelector('.members')
72 li.onmouseover = e => {
73 membercont.classList.add('select')
74 momberids.forEach(member => {
75 membercont.children[member].classList.add('select')
78 li.onmouseout = e => {
79 membercont.classList.remove('select')
80 momberids.forEach(member => {
81 membercont.children[member].classList.remove('select')
87 outcont.innerHTML = `Error loading clan data: ${msg}`
88 console.error('include failure:', msg)