+ this.problems.forEach(p => this.setVname(p));
+ // Retrieve all problems' authors' names
+ let names = {};
+ this.problems.forEach(p => {
+ if (p.uid != this.st.user.id)
+ names[p.uid] = ""; //unknwon for now
+ else
+ p.uname = this.st.user.name;
+ });
+ const showOneIfPid = () => {
+ const pid = this.$route.query["id"];
+ if (!!pid)
+ this.showProblem(this.problems.find(p => p.id == pid));
+ };
+ if (Object.keys(names).length > 0)
+ {
+ ajax("/users",
+ "GET",
+ { ids: Object.keys(names).join(",") },
+ res2 => {
+ res2.users.forEach(u => {names[u.id] = u.name});
+ this.problems.forEach(p => p.uname = names[p.uid]);
+ showOneIfPid();
+ }
+ );
+ }
+ else
+ showOneIfPid();