Added initial Leaderboard API and framework

This commit is contained in:
piratefinn 2017-06-15 16:58:06 +01:00
parent e55e206d7d
commit d63a2f5e30
3 changed files with 422 additions and 73 deletions

View 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>

View 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 );
}
);
}
}

View file

@ -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() );
} }