|
|
|
@ -43,14 +43,31 @@ export class LeaderboardComponent {
|
|
|
|
|
// get the user data and sort it for table
|
|
|
|
|
async PopulateTable() {
|
|
|
|
|
|
|
|
|
|
// get the admin from the user
|
|
|
|
|
let AdminEmail: string = '';
|
|
|
|
|
const data = { email: getEmail() };
|
|
|
|
|
const res = await fetch('api/contests/getAdminEmail', {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type' : 'application/json'
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify(data)
|
|
|
|
|
});
|
|
|
|
|
if (res.ok) {
|
|
|
|
|
const ret = await res.json();
|
|
|
|
|
AdminEmail = ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// get all the users, flags, and submissions
|
|
|
|
|
this.users = await this.adminProfileService.getAllUsers(getEmail());
|
|
|
|
|
let result = await this.adminProfileService.getContestFlagsSubs(getEmail(), this.contest);
|
|
|
|
|
this.users = await this.adminProfileService.getAllUsers(AdminEmail);
|
|
|
|
|
let result = await this.adminProfileService.getContestFlagsSubs(AdminEmail, this.contest);
|
|
|
|
|
this.subs = result.subs;
|
|
|
|
|
this.flags = result.flags;
|
|
|
|
|
|
|
|
|
|
// get the contest and contestID
|
|
|
|
|
result = await this.adminProfileService.getContests(getEmail());
|
|
|
|
|
result = await this.adminProfileService.getContests(AdminEmail);
|
|
|
|
|
this.contestObj = result.filter((item : Contest) => item.Name === this.contest)[0];
|
|
|
|
|
this.contestID = this.contestObj?.ContestID;
|
|
|
|
|
|
|
|
|
@ -74,7 +91,7 @@ export class LeaderboardComponent {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.users = this.users.sort((a,b) => a.Flags + b.Flags);
|
|
|
|
|
this.users = this.users.sort((a,b) => a.Flags + b.Flags); // sort the users
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|