This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit 5961660e authored by Michael Breu's avatar Michael Breu
Browse files

refactoring duplicated code

parent 9e01f809
Branches
3 merge requests!188Merging Peer Reviewing et. al to Master,!181Resolve "Prüfen des Caches der Review Badge Statistiken",!164211 peer reviewing functionality
......@@ -71,9 +71,8 @@ describe('ReviewMenuBadgeComponent Component', () => {
});
testRequest.flush(stats);
expect(comp.getReviewActionCount()).toEqual(stats.reviewInProgress + stats.reviewImproved);
// expect(comp.getReviewActionLabel()).toEqual("2 reviews in progress or improvement requested.");
expect(comp.getReviewActionLabel()).toEqual('1 item(s) for review.\n2 improved item(s) for review');
expect(comp.getCount()).toEqual(stats.reviewInProgress + stats.reviewImproved);
expect(comp.getLabel()).toEqual('1 item(s) for review.\n2 improved item(s) for review');
});
});
......@@ -117,8 +116,8 @@ describe('ReviewRequestedMenuBadge Component', () => {
});
testRequest.flush(stats);
expect(comp.getReviewRequestedCount()).toEqual(stats.reviewsRequestedByUser);
expect(comp.getReviewRequestedLabel()).toEqual('5 reviews request, but not yet assigned.');
expect(comp.getCount()).toEqual(stats.reviewsRequestedByUser);
expect(comp.getLabel()).toEqual('5 reviews request, but not yet assigned.');
});
});
......@@ -162,8 +161,8 @@ describe('ImprovementsRequestedMenuBadge Component', () => {
});
testRequest.flush(stats);
expect(comp.getReviewRequestedCount()).toEqual(7);
expect(comp.getReviewRquestedLabel()).toEqual('7 review(s) resulted in an improvements request');
expect(comp.getCount()).toEqual(7);
expect(comp.getLabel()).toEqual('7 review(s) resulted in an improvements request');
});
});
......@@ -207,7 +206,7 @@ describe('BadgeAwardedMenuBadge Component', () => {
});
testRequest.flush(stats);
expect(comp.getBadgeCount()).toEqual(10);
expect(comp.getReviewRquestedLabel()).toEqual('10 badge(s) awarded');
expect(comp.getCount()).toEqual(10);
expect(comp.getLabel()).toEqual('10 badge(s) awarded');
});
});
import { Location } from '@angular/common';
import { Component, Input, OnInit } from '@angular/core';
import { Component, Directive, Input, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
......@@ -208,18 +208,8 @@ export class MenuItemBadgeComponent {
@Input() public label: string | undefined;
}
@Component({
selector: 'jhi-reviewMenuBadge',
template: `<jhi-menuItemBadge
*ngIf="getReviewActionCount()"
[text]="getReviewActionCount()"
badgeStyle="info"
[label]="getReviewActionLabel()"
>
</jhi-menuItemBadge> `,
styles: [''],
})
export class ReviewMenuBadgeComponent implements OnInit {
@Directive()
abstract class ReviewBadgeComponent implements OnInit {
statistics: ReviewStatisticsDTO | undefined;
constructor(private reviewManagementService: ReviewManagementService) {}
......@@ -230,13 +220,26 @@ export class ReviewMenuBadgeComponent implements OnInit {
});
}
getReviewActionCount(): number {
abstract getCount(): number;
abstract getLabel(): string | undefined;
}
@Component({
selector: 'jhi-reviewMenuBadge',
template: `<jhi-menuItemBadge *ngIf="getCount()" [text]="getCount()" badgeStyle="info" [label]="getLabel()"> </jhi-menuItemBadge> `,
styles: [''],
})
export class ReviewMenuBadgeComponent extends ReviewBadgeComponent {
statistics: ReviewStatisticsDTO | undefined;
getCount(): number {
if (this.statistics) {
return this.statistics.reviewInProgress + this.statistics.reviewImproved;
}
return 0;
}
getReviewActionLabel(): string | undefined {
getLabel(): string | undefined {
let info = '';
let trenn = '';
if (this.statistics?.reviewInProgress) {
......@@ -253,33 +256,19 @@ export class ReviewMenuBadgeComponent implements OnInit {
@Component({
selector: 'jhi-reviewRequestedMenuBadge',
template: `<jhi-menuItemBadge
*ngIf="getReviewRequestedCount()"
[text]="getReviewRequestedCount()"
badgeStyle="info"
[label]="getReviewRequestedLabel()"
>
</jhi-menuItemBadge> `,
template: `<jhi-menuItemBadge *ngIf="getCount()" [text]="getCount()" badgeStyle="info" [label]="getLabel()"> </jhi-menuItemBadge> `,
styles: [''],
})
export class ReviewRequestedMenuBadgeComponent implements OnInit {
export class ReviewRequestedMenuBadgeComponent extends ReviewBadgeComponent {
statistics: ReviewStatisticsDTO | undefined;
constructor(private reviewManagementService: ReviewManagementService) {}
ngOnInit(): void {
this.reviewManagementService.getReviewStatistics().subscribe((res: ReviewStatisticsDTO) => {
this.statistics = res;
});
}
getReviewRequestedCount(): number {
getCount(): number {
if (this.statistics) {
return this.statistics.reviewsRequestedByUser;
}
return 0;
}
getReviewRequestedLabel(): string | undefined {
getLabel(): string | undefined {
let info = '';
if (this.statistics?.reviewsRequestedByUser) {
info = `${this.statistics.reviewsRequestedByUser} reviews request, but not yet assigned.`;
......@@ -290,33 +279,17 @@ export class ReviewRequestedMenuBadgeComponent implements OnInit {
@Component({
selector: 'jhi-reviewImprovementsRequestedMenuBadge',
template: `<jhi-menuItemBadge
*ngIf="getReviewRequestedCount()"
[text]="getReviewRequestedCount()"
badgeStyle="danger"
[label]="getReviewRquestedLabel()"
>
</jhi-menuItemBadge> `,
template: `<jhi-menuItemBadge *ngIf="getCount()" [text]="getCount()" badgeStyle="danger" [label]="getLabel()"> </jhi-menuItemBadge> `,
styles: [''],
})
export class ImprovementsRequestedMenuBadgeComponent implements OnInit {
statistics: ReviewStatisticsDTO | undefined;
constructor(private reviewManagementService: ReviewManagementService) {}
ngOnInit(): void {
this.reviewManagementService.getReviewStatistics().subscribe((res: ReviewStatisticsDTO) => {
this.statistics = res;
});
}
getReviewRequestedCount(): number {
export class ImprovementsRequestedMenuBadgeComponent extends ReviewBadgeComponent {
getCount(): number {
if (this.statistics) {
return this.statistics.reviewImprovementRequestedByUser;
}
return 0;
}
getReviewRquestedLabel(): string | undefined {
getLabel(): string | undefined {
let info = '';
if (this.statistics?.reviewImprovementRequestedByUser) {
info = `${this.statistics.reviewImprovementRequestedByUser} review(s) resulted in an improvements request`;
......@@ -327,28 +300,17 @@ export class ImprovementsRequestedMenuBadgeComponent implements OnInit {
@Component({
selector: 'jhi-badgesRewardedMenuBadge',
template: `<jhi-menuItemBadge *ngIf="getBadgeCount()" [text]="getBadgeCount()" badgeStyle="success" [label]="getReviewRquestedLabel()">
</jhi-menuItemBadge> `,
template: `<jhi-menuItemBadge *ngIf="getCount()" [text]="getCount()" badgeStyle="success" [label]="getLabel()"> </jhi-menuItemBadge> `,
styles: [''],
})
export class BadgeAwardedMenuBadgeComponent implements OnInit {
statistics: ReviewStatisticsDTO | undefined;
constructor(private reviewManagementService: ReviewManagementService) {}
ngOnInit(): void {
this.reviewManagementService.getReviewStatistics().subscribe((res: ReviewStatisticsDTO) => {
this.statistics = res;
});
}
getBadgeCount(): number {
export class BadgeAwardedMenuBadgeComponent extends ReviewBadgeComponent {
getCount(): number {
if (this.statistics) {
return this.statistics.badgesRewarded;
}
return 0;
}
getReviewRquestedLabel(): string | undefined {
getLabel(): string | undefined {
let info = '';
if (this.statistics?.badgesRewarded) {
info = `${this.statistics.badgesRewarded} badge(s) awarded`;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment