<p id="clan">No clan data</p>
<script>
fetch('/schtarr/inno.json')
- .then(res => res.json())
- .then(json => {
- document.getElementById('clan').innerHTML = `
- <h1>${json.tag}</h1>
- <h2 title="Division ${json.division}" class="rank ${json.league}">
- ${json.league} <small>#${json.rank}</small>
- </h2>
- ${json.members.map(member => `
- <a href="${member.profileUrl}"><figure>
+ .then(res => {
+ if (res.status != 200) {
+ console.log('got %o', res)
+ throw `status ${res.status}`
+ }
+ return res.json()
+ })
+ .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>
+ </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(error => console.log(error))
+ .catch(msg => console.error('include failure:', msg))
</script>
</body>