combine data from previous season
[sc2-widget] / widget.html
index 19e7fe3266a8978f9301a09875a43d81b44c162e..26bdd168836cf38547ac14f277a68e7bf195658e 100644 (file)
 <body>
 <p id="clan">No clan data</p>
 <script>
-       fetch('/schtarr/inno.json')
-       .then(res => res.json())
+       let request = this.location.pathname.split('/')
+       fetch('/schtarr/data/' + request.pop() + '.json')
+       .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>
+                       <h1>${clan.tag || clan.members[0].name}</h1>
                        <ul class=ladders>
                        ${clan.ladders.map(ladder => `
-                               <li title="Division ${ladder.division}" class="rank ${ladder.league}">
+                               <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('')}
                        `).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>