<head>
<meta charset="utf-8" />
<title>StarCraft ][ Clan summary</title>
+<link rel="stylesheet" type="text/css" href="/schtarr/battle.css" />
+<meta name="theme-color" content="#000D1A" />
+<meta name="viewport" content="width=device-width" />
</head>
<body>
<p id="clan">No clan data</p>
<script>
fetch('/schtarr/inno.json')
- .then(res => res.json())
- .then(json => {
- let out = document.getElementById('clan');
- out.innerHTML = `<h1>${json.tag}</h1><h2 title="Division ${json.division}">${json.league} <small>#${json.rank}</small></h2>`
- + json.members.map(member => `<a href="${member.profileUrl}"><img src="${member.avatarUrl}" title="${member.name}" /></a>`).join('');
+ .then(res => {
+ if (res.status != 200) {
+ console.log('got %o', res)
+ throw `status ${res.status}`
+ }
+ return res.json()
})
- .catch(error => console.log(error))
+ .then(clan => {
+ let tiernum = (rank) => rank <= 8 ? 1 : rank <= 25 ? 2 : rank <= 50 ? 3 : 4;
+ document.getElementById('clan').outerHTML = `
+ <h1>${clan.tag}</h1>
+ <ul class=ladders>
+ ${clan.ladders.map(ladder => `
+ <li class="rank ${ladder.league} tier${tiernum(ladder.rank)}"
+ title="Division ${ladder.division} (${ladder.wins}:${ladder.losses})">
+ ${ladder.league} <small>#${ladder.rank}</small>
+ </li>
+ `).join('')}
+ </ul>
+ <ul class=members>
+ ${clan.members.map(member => `
+ <li><a href="${member.profileUrl}"><figure>
+ <img src="${member.avatarUrl}" title="${member.name}" />
+ <figcaption>${member.name}</figcaption>
+ </figure></a></li>
+ `).join('')}
+ </ul>
+ `
+
+ let i = 0
+ document.querySelectorAll('.ladders li').forEach(ladder => {
+ let laddermembers = clan.ladders[i++].members
+ let membercont = document.querySelector('.members')
+ ladder.onmouseover = e => {
+ membercont.classList.add('select')
+ laddermembers.forEach(member => {
+ membercont.children[member].classList.add('select')
+ })
+ }
+ ladder.onmouseout = e => {
+ membercont.classList.remove('select')
+ laddermembers.forEach(member => {
+ membercont.children[member].classList.remove('select')
+ })
+ }
+ })
+ })
+ .catch(msg => console.error('include failure:', msg))
</script>
</body>