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 request = this.location.pathname.split('/')
16 request.splice(2, 1) // strip page name
17 fetch(request.join('/') + '.json')
19 if (res.status != 200) {
20 console.log('got %o', res)
21 throw `status ${res.status}`
26 let tiernum = (rank) => rank <= 8 ? 1 : rank <= 25 ? 2 : rank <= 50 ? 3 : 4;
27 document.getElementById('clan').outerHTML = `
28 <h1>${clan.tag || clan.members[0].name}</h1>
30 ${clan.ladders.map(ladder => `
31 <li class="rank ${ladder.league} tier${tiernum(ladder.rank)}"
32 title="Division ${ladder.division} (${ladder.wins}:${ladder.losses})">
33 ${ladder.league} <small>#${ladder.rank}</small>
38 ${clan.members.map(member => `
39 <li><a href="${member.profileUrl}"><figure>
40 <img src="${member.avatarUrl}" title="${member.name}" />
41 <figcaption>${member.name}</figcaption>
48 document.querySelectorAll('.ladders li').forEach(ladder => {
49 let laddermembers = clan.ladders[i++].members
50 let membercont = document.querySelector('.members')
51 ladder.onmouseover = e => {
52 membercont.classList.add('select')
53 laddermembers.forEach(member => {
54 membercont.children[member].classList.add('select')
57 ladder.onmouseout = e => {
58 membercont.classList.remove('select')
59 laddermembers.forEach(member => {
60 membercont.children[member].classList.remove('select')
65 .catch(msg => console.error('include failure:', msg))