[Usage Counts | Trunk]: Round numbers on analytics. Fix error when a fragment does not exist

This commit is contained in:
k.triantafyllou 2020-09-24 11:56:44 +00:00
parent 07ff56537d
commit 0d00a99805
5 changed files with 46 additions and 22 deletions

View File

@ -27,7 +27,9 @@ export class AboutComponent implements OnInit {
goTo(id: string) {
const yOffset = -100;
const element = document.getElementById(id);
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
if(element) {
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
}
}

View File

@ -59,14 +59,13 @@
</div>
<div *ngIf="display && !loading" class="uk-grid uk-child-width-1-3@m uk-child-width-1-2@s"
uk-grid>
<div *ngIf="display.total_repos && state > 0" [class.uk-animation-fade]="state == 1"
class="uk-padding-remove-left">
<div *ngIf="display.total_repos && state > 0" [class.uk-animation-fade]="state == 1">
<div class="card">
<div class="uk-margin-medium-bottom">
Repositories
</div>
<h4>
{{display.total_repos | number}}
{{display.total_repos.number | number}}{{(display.total_repos.size)?display.total_repos.size:""}}
</h4>
<img src="../../assets/usage-statistics-assets/analytics/1.1.svg">
</div>
@ -77,7 +76,7 @@
Repositories
</div>
<h4>
{{display.repositories | number}}
{{display.repositories.number | number}}{{(display.repositories.size)?display.repositories.size:""}}
</h4>
<img src="../../assets/usage-statistics-assets/analytics/1.1.svg">
</div>
@ -88,7 +87,7 @@
Views
</div>
<h4>
{{display.total_views | number}}
{{display.total_views.number | number}}{{(display.total_views.size)?display.total_views.size:""}}
</h4>
<img src="../../assets/usage-statistics-assets/analytics/1.2.svg">
</div>
@ -99,7 +98,7 @@
Views
</div>
<h4>
{{display.views | number}}
{{display.views.number | number}}{{(display.views.size)?display.views.size:""}}
</h4>
<img src="../../assets/usage-statistics-assets/analytics/1.2.svg">
</div>
@ -110,7 +109,7 @@
Downloads
</div>
<h4>
{{display.total_downloads | number}}
{{display.total_downloads.number | number}}{{(display.total_downloads.size)?display.total_downloads.size:""}}
</h4>
<img src="../../assets/usage-statistics-assets/analytics/1.3.svg">
</div>
@ -121,7 +120,7 @@
Downloads
</div>
<h4>
{{display.downloads | number}}
{{display.downloads.number | number}}{{(display.downloads.size)?display.downloads.size:""}}
</h4>
<img src="../../assets/usage-statistics-assets/analytics/1.3.svg">
</div>

View File

@ -8,6 +8,7 @@ import {countries} from '../services/countries';
import {DomSanitizer, SafeUrl, Title} from '@angular/platform-browser';
import {StringUtils} from '../openaireLibrary/utils/string-utils.class';
import {ActivatedRoute} from '@angular/router';
import {NumberUtils} from '../openaireLibrary/utils/number-utils.class';
@Component({
selector: 'analytics',
@ -74,6 +75,24 @@ export class AnalyticsComponent implements OnInit {
this.iframeLoading = false;
}
roundUsageStat(stats: UsageStat) {
if(stats) {
stats.repositories = NumberUtils.roundNumber(Number.parseInt(stats.repositories));
stats.total_downloads = NumberUtils.roundNumber(Number.parseInt(stats.total_downloads));
stats.total_views = NumberUtils.roundNumber(Number.parseInt(stats.total_views));
}
return stats;
}
roundCountryUsageStat(stats: CountryUsageStat) {
if(stats) {
stats.total_repos = NumberUtils.roundNumber(Number.parseInt(stats.total_repos));
stats.downloads = NumberUtils.roundNumber(Number.parseInt(stats.downloads));
stats.views = NumberUtils.roundNumber(Number.parseInt(stats.views));
}
return stats;
}
public search() {
this.country = this.countryFb.value.country;
this.showSearch = false;
@ -82,7 +101,7 @@ export class AnalyticsComponent implements OnInit {
if (this.country && this.country.length > 0) {
this.country = StringUtils.capitalize(this.country);
this.usageStatsService.getCountryMetrics(this.country).subscribe(stats => {
this.display = stats;
this.display = this.roundCountryUsageStat(stats);
this.loading = false;
if (this.display) {
this.state = 1;
@ -94,7 +113,7 @@ export class AnalyticsComponent implements OnInit {
});
} else {
this.usageStatsService.getAllMetrics().subscribe(stats => {
this.display = stats;
this.display = this.roundUsageStat(stats);
this.loading = false;
if (this.display) {
this.state = 1;
@ -156,8 +175,10 @@ export class AnalyticsComponent implements OnInit {
goTo(id: string) {
const yOffset = -100;
const element = document.getElementById(id);
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
if(element) {
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
}
public getSafeUrl(url: string): SafeUrl {

View File

@ -1,12 +1,12 @@
export interface UsageStat {
repositories: string;
total_downloads: string;
total_views: string;
repositories: any;
total_downloads: any;
total_views: any;
}
export interface CountryUsageStat {
country: string;
views: string;
downloads:string;
total_repos: string;
views: any;
downloads:any;
total_repos: any;
}

View File

@ -25,7 +25,9 @@ export class ResourcesComponent implements OnInit {
goTo(id: string) {
const yOffset = -100;
const element = document.getElementById(id);
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
if(element) {
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
}
}