X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=4c80803aea4269171b71cb068a312d95d7c62acf;hp=fb3ed63030d33e2b04ce4c0dddc5b34721bc7d8c;hb=ed9c9c3741ec8b03cf899eae529216a2520bba0d;hpb=bebcc8d45532e67902175f69084a08040f06855f diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index fb3ed630..4c80803a 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -148,8 +148,10 @@ export default { const uids = response.challenges.map(c => { return c.uid }); ajax("/users", "GET", - { ids: uids }, - names => { + { ids: uids.join(",") }, + response2 => { + let names = {}; + response2.users.forEach(u => {names[u.id] = u.name}); this.challenges = this.challenges.concat( response.challenges.map(c => { // (just players names in fact) @@ -163,6 +165,23 @@ export default { ); } ); + // TODO: I don't like this code below; improvement? + let retryForVnames = setInterval(() => { + if (this.st.variants.length > 0) //variants array is loaded + { + if (this.games.length > 0 && this.games[0].vname == "") + { + // Fix games' vnames: + this.games.forEach(g => { g.vname = this.getVname(g.vid); }); + } + if (this.challenges.length > 0 && this.challenges[0].vname == "") + { + // Fix challenges' vnames: + this.challenges.forEach(c => { c.vname = this.getVname(c.vid); }); + } + clearInterval(retryForVnames); + } + }, 50); } // 0.1] Ask server for room composition: const funcPollClients = () => { @@ -207,7 +226,7 @@ export default { // TODO: ...filter(...)[0].name, one-line, just remove this function getVname: function(vid) { const vIdx = this.st.variants.findIndex(v => v.id == vid); - return this.st.variants[vIdx].name; + return vIdx >= 0 ? this.st.variants[vIdx].name : ""; }, getSid: function(pname) { const pIdx = this.people.findIndex(pl => pl.name == pname);