Added initial Leaderboard API and framework
This commit is contained in:
parent
e55e206d7d
commit
d63a2f5e30
3 changed files with 422 additions and 73 deletions
373
src/app/components/leaderboards.component.html
Normal file
373
src/app/components/leaderboards.component.html
Normal file
|
@ -0,0 +1,373 @@
|
||||||
|
<div class="animated fadeIn">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<i class="fa fa-align-justify"></i> Simple Table
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Username</th>
|
||||||
|
<th>Date registered</th>
|
||||||
|
<th>Role</th>
|
||||||
|
<th>Status</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Samppa Nori</td>
|
||||||
|
<td>2012/01/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Estavan Lykos</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-danger">Banned</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Chetan Mohamed</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Admin</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-default">Inactive</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Derick Maximinus</td>
|
||||||
|
<td>2012/03/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-warning">Pending</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Friderik Dávid</td>
|
||||||
|
<td>2012/01/21</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<ul class="pagination">
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Prev</a></li>
|
||||||
|
<li class="page-item active">
|
||||||
|
<a class="page-link" href="#">1</a>
|
||||||
|
</li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">4</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Next</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--/.col-->
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<i class="fa fa-align-justify"></i> Striped Table
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<table class="table table-striped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Username</th>
|
||||||
|
<th>Date registered</th>
|
||||||
|
<th>Role</th>
|
||||||
|
<th>Status</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Yiorgos Avraamu</td>
|
||||||
|
<td>2012/01/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Avram Tarasios</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-danger">Banned</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Quintin Ed</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Admin</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-default">Inactive</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Enéas Kwadwo</td>
|
||||||
|
<td>2012/03/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-warning">Pending</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Agapetus Tadeáš</td>
|
||||||
|
<td>2012/01/21</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<ul class="pagination">
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Prev</a></li>
|
||||||
|
<li class="page-item active">
|
||||||
|
<a class="page-link" href="#">1</a>
|
||||||
|
</li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">4</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Next</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--/.col-->
|
||||||
|
</div>
|
||||||
|
<!--/.row-->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<i class="fa fa-align-justify"></i> Condensed Table
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<table class="table table-sm">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Username</th>
|
||||||
|
<th>Date registered</th>
|
||||||
|
<th>Role</th>
|
||||||
|
<th>Status</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Carwyn Fachtna</td>
|
||||||
|
<td>2012/01/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Nehemiah Tatius</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-danger">Banned</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Ebbe Gemariah</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Admin</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-default">Inactive</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Eustorgios Amulius</td>
|
||||||
|
<td>2012/03/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-warning">Pending</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Leopold Gáspár</td>
|
||||||
|
<td>2012/01/21</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<ul class="pagination">
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Prev</a></li>
|
||||||
|
<li class="page-item active">
|
||||||
|
<a class="page-link" href="#">1</a>
|
||||||
|
</li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">4</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Next</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--/.col-->
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<i class="fa fa-align-justify"></i> Bordered Table
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Username</th>
|
||||||
|
<th>Date registered</th>
|
||||||
|
<th>Role</th>
|
||||||
|
<th>Status</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Pompeius René</td>
|
||||||
|
<td>2012/01/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Paĉjo Jadon</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-danger">Banned</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Micheal Mercurius</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Admin</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-default">Inactive</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Ganesha Dubhghall</td>
|
||||||
|
<td>2012/03/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-warning">Pending</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Hiroto Šimun</td>
|
||||||
|
<td>2012/01/21</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<ul class="pagination">
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Prev</a></li>
|
||||||
|
<li class="page-item active">
|
||||||
|
<a class="page-link" href="#">1</a>
|
||||||
|
</li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">4</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Next</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--/.col-->
|
||||||
|
</div>
|
||||||
|
<!--/.row-->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<i class="fa fa-align-justify"></i> Combined All Table
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<table class="table table-bordered table-striped table-sm">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Username</th>
|
||||||
|
<th>Date registered</th>
|
||||||
|
<th>Role</th>
|
||||||
|
<th>Status</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Vishnu Serghei</td>
|
||||||
|
<td>2012/01/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Zbyněk Phoibos</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-danger">Banned</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Einar Randall</td>
|
||||||
|
<td>2012/02/01</td>
|
||||||
|
<td>Admin</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-default">Inactive</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Félix Troels</td>
|
||||||
|
<td>2012/03/01</td>
|
||||||
|
<td>Member</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-warning">Pending</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Aulus Agmundr</td>
|
||||||
|
<td>2012/01/21</td>
|
||||||
|
<td>Staff</td>
|
||||||
|
<td>
|
||||||
|
<span class="badge badge-success">Active</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<nav>
|
||||||
|
<ul class="pagination">
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Prev</a></li>
|
||||||
|
<li class="page-item active">
|
||||||
|
<a class="page-link" href="#">1</a>
|
||||||
|
</li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">4</a></li>
|
||||||
|
<li class="page-item"><a class="page-link" href="#">Next</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--/.col-->
|
||||||
|
</div>
|
||||||
|
<!--/.row-->
|
||||||
|
</div>
|
46
src/app/components/leaderboards.component.ts
Normal file
46
src/app/components/leaderboards.component.ts
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { Http, Response } from '@angular/http';
|
||||||
|
import { ApiService } from '../providers/api-service';
|
||||||
|
import 'rxjs/add/operator/map';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
templateUrl: 'leaderboards.component.html',
|
||||||
|
providers: [ApiService]
|
||||||
|
})
|
||||||
|
export class LeaderboardsComponent {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private http: Http,
|
||||||
|
private formBuilder: FormBuilder,
|
||||||
|
private api: ApiService,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.api
|
||||||
|
// get daily total
|
||||||
|
.leaderboard_fetch('daily_total')
|
||||||
|
.subscribe(
|
||||||
|
result => {
|
||||||
|
console.log('got daily weekly leaderboard!');
|
||||||
|
console.log(result);
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
console.log( error._body );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
this.api
|
||||||
|
// get daily count
|
||||||
|
.leaderboard_fetch('daily_count')
|
||||||
|
.subscribe(
|
||||||
|
result => {
|
||||||
|
console.log('got daily count leaderboard!');
|
||||||
|
console.log(result);
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
console.log( error._body );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -74,82 +74,12 @@ export class ApiService {
|
||||||
|
|
||||||
// Leaderboard Api
|
// Leaderboard Api
|
||||||
|
|
||||||
private leaderboard_daily_total() {
|
public leaderboard_fetch(data) {
|
||||||
return this.http.post(
|
this.http.post(
|
||||||
this.apiUrl + '/stats/leaderboard',
|
this.apiUrl + '/stats/leaderboard',
|
||||||
{
|
{
|
||||||
session_key : this.sessionKey,
|
session_key : this.sessionKey,
|
||||||
type : 'daily_total'
|
type : data
|
||||||
}
|
|
||||||
).map( response => response.json() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private leaderboard_daily_count() {
|
|
||||||
return this.http.post(
|
|
||||||
this.apiUrl + '/stats/leaderboard',
|
|
||||||
{
|
|
||||||
session_key : this.sessionKey,
|
|
||||||
type : 'daily_count'
|
|
||||||
}
|
|
||||||
).map( response => response.json() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private leaderboard_weekly_total() {
|
|
||||||
return this.http.post(
|
|
||||||
this.apiUrl + '/stats/leaderboard',
|
|
||||||
{
|
|
||||||
session_key : this.sessionKey,
|
|
||||||
type : 'weekly_total'
|
|
||||||
}
|
|
||||||
).map( response => response.json() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private leaderboard_weekly_count() {
|
|
||||||
return this.http.post(
|
|
||||||
this.apiUrl + '/stats/leaderboard',
|
|
||||||
{
|
|
||||||
session_key : this.sessionKey,
|
|
||||||
type : 'weekly_count'
|
|
||||||
}
|
|
||||||
).map( response => response.json() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private leaderboard_monthly_total() {
|
|
||||||
return this.http.post(
|
|
||||||
this.apiUrl + '/stats/leaderboard',
|
|
||||||
{
|
|
||||||
session_key : this.sessionKey,
|
|
||||||
type : 'monthly_total'
|
|
||||||
}
|
|
||||||
).map( response => response.json() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private leaderboard_monthly_count() {
|
|
||||||
return this.http.post(
|
|
||||||
this.apiUrl + '/stats/leaderboard',
|
|
||||||
{
|
|
||||||
session_key : this.sessionKey,
|
|
||||||
type : 'monthly_count'
|
|
||||||
}
|
|
||||||
).map( response => response.json() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private leaderboard_all_time_total() {
|
|
||||||
return this.http.post(
|
|
||||||
this.apiUrl + '/stats/leaderboard',
|
|
||||||
{
|
|
||||||
session_key : this.sessionKey,
|
|
||||||
type : 'all_time_total'
|
|
||||||
}
|
|
||||||
).map( response => response.json() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private leaderboard_all_time_count() {
|
|
||||||
return this.http.post(
|
|
||||||
this.apiUrl + '/stats/leaderboard',
|
|
||||||
{
|
|
||||||
session_key : this.sessionKey,
|
|
||||||
type : 'all_time_count'
|
|
||||||
}
|
}
|
||||||
).map( response => response.json() );
|
).map( response => response.json() );
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue