aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/admin/requests/request-stats
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/admin/requests/request-stats')
-rw-r--r--client/src/app/admin/requests/request-stats/index.ts1
-rw-r--r--client/src/app/admin/requests/request-stats/request-stats.component.html18
-rw-r--r--client/src/app/admin/requests/request-stats/request-stats.component.scss6
-rw-r--r--client/src/app/admin/requests/request-stats/request-stats.component.ts59
4 files changed, 84 insertions, 0 deletions
diff --git a/client/src/app/admin/requests/request-stats/index.ts b/client/src/app/admin/requests/request-stats/index.ts
new file mode 100644
index 000000000..be3a66f77
--- /dev/null
+++ b/client/src/app/admin/requests/request-stats/index.ts
@@ -0,0 +1 @@
export * from './request-stats.component';
diff --git a/client/src/app/admin/requests/request-stats/request-stats.component.html b/client/src/app/admin/requests/request-stats/request-stats.component.html
new file mode 100644
index 000000000..114fd371f
--- /dev/null
+++ b/client/src/app/admin/requests/request-stats/request-stats.component.html
@@ -0,0 +1,18 @@
1<h3>Requests stats</h3>
2
3<div *ngIf="stats !== null">
4 <div>
5 <span class="label-description">Interval seconds between requests:</span>
6 {{ secondsInterval }}
7 </div>
8
9 <div>
10 <span class="label-description">Remaining time before the scheduled request:</span>
11 {{ remainingSeconds }}
12 </div>
13
14 <div>
15 <span class="label-description">Total requests:</span>
16 {{ stats.requests.length }}
17 </div>
18</div>
diff --git a/client/src/app/admin/requests/request-stats/request-stats.component.scss b/client/src/app/admin/requests/request-stats/request-stats.component.scss
new file mode 100644
index 000000000..92c28dc99
--- /dev/null
+++ b/client/src/app/admin/requests/request-stats/request-stats.component.scss
@@ -0,0 +1,6 @@
1.label-description {
2 display: inline-block;
3 width: 350px;
4 font-weight: bold;
5 color: black;
6}
diff --git a/client/src/app/admin/requests/request-stats/request-stats.component.ts b/client/src/app/admin/requests/request-stats/request-stats.component.ts
new file mode 100644
index 000000000..8ff4eb540
--- /dev/null
+++ b/client/src/app/admin/requests/request-stats/request-stats.component.ts
@@ -0,0 +1,59 @@
1import { Component, OnInit, OnDestroy } from '@angular/core';
2
3import { RequestService, RequestStats } from '../shared';
4
5@Component({
6 selector: 'my-request-stats',
7 templateUrl: './request-stats.component.html',
8 styleUrls: [ './request-stats.component.scss' ]
9})
10export class RequestStatsComponent implements OnInit, OnDestroy {
11 stats: RequestStats = null;
12
13 private interval: NodeJS.Timer = null;
14
15 constructor(private requestService: RequestService) { }
16
17 ngOnInit() {
18 this.getStats();
19 }
20
21 ngOnDestroy() {
22 if (this.secondsInterval !== null) {
23 clearInterval(this.interval);
24 }
25 }
26
27 get remainingSeconds() {
28 return Math.floor(this.stats.remainingMilliSeconds / 1000);
29 }
30
31 get secondsInterval() {
32 return Math.floor(this.stats.milliSecondsInterval / 1000);
33 }
34
35 getStats() {
36 this.requestService.getStats().subscribe(
37 stats => {
38 console.log(stats);
39 this.stats = stats;
40 this.runInterval();
41 },
42
43 err => alert(err)
44 );
45 }
46
47 private runInterval() {
48 this.interval = setInterval(() => {
49 this.stats.remainingMilliSeconds -= 1000;
50
51 if (this.stats.remainingMilliSeconds <= 0) {
52 setTimeout(() => this.getStats(), this.stats.remainingMilliSeconds + 100);
53 clearInterval(this.interval);
54 }
55 }, 1000);
56 }
57
58
59}