From 8c2a6e920b76d7be5c52e6056ec76c7e3de0ca05 Mon Sep 17 00:00:00 2001 From: mechero Date: Sun, 21 Oct 2018 16:29:36 +0200 Subject: [PATCH] A few improvements --- .env | 4 +-- .../controller/RetrieverController.java | 5 ++-- .../stats/service/SonarStatsServiceImpl.java | 3 +- web-client/src/app/app.component.html | 11 +++++-- web-client/src/app/app.component.ts | 4 +-- .../src/app/members/members.component.html | 28 ++++++++++++------ .../src/app/members/members.component.ts | 2 ++ .../src/app/retriever/retriever.service.ts | 3 +- web-client/src/app/teams/teams.component.html | 16 +++++----- web-client/src/app/teams/teams.component.ts | 5 ++++ web-client/src/assets/img/quboo_gold.png | Bin 0 -> 15597 bytes web-client/src/styles.css | 9 +++++- 12 files changed, 60 insertions(+), 30 deletions(-) create mode 100644 web-client/src/assets/img/quboo_gold.png diff --git a/.env b/.env index 642d3bd..1267012 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -BACKEND_VERSION=1.0 -UI_VERSION=1.0 +BACKEND_VERSION=1.0.1 +UI_VERSION=1.0.1 diff --git a/sonar-connector/src/main/java/com/thepracticaldeveloper/devgame/modules/retriever/controller/RetrieverController.java b/sonar-connector/src/main/java/com/thepracticaldeveloper/devgame/modules/retriever/controller/RetrieverController.java index 9fc13e1..164d99b 100644 --- a/sonar-connector/src/main/java/com/thepracticaldeveloper/devgame/modules/retriever/controller/RetrieverController.java +++ b/sonar-connector/src/main/java/com/thepracticaldeveloper/devgame/modules/retriever/controller/RetrieverController.java @@ -1,6 +1,7 @@ package com.thepracticaldeveloper.devgame.modules.retriever.controller; import com.thepracticaldeveloper.devgame.modules.retriever.service.SonarDataRetriever; +import com.thepracticaldeveloper.devgame.modules.users.dto.MessageResponseDTO; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -17,8 +18,8 @@ public RetrieverController(final SonarDataRetriever retriever) { } @PostMapping("/now") - public ResponseEntity retrieveNow() { + public ResponseEntity retrieveNow() { sonarDataRetriever.retrieveData(); - return ResponseEntity.ok().body("requested"); + return ResponseEntity.ok().body(new MessageResponseDTO("Requested")); } } diff --git a/sonar-connector/src/main/java/com/thepracticaldeveloper/devgame/modules/stats/service/SonarStatsServiceImpl.java b/sonar-connector/src/main/java/com/thepracticaldeveloper/devgame/modules/stats/service/SonarStatsServiceImpl.java index abbf162..33bb6fd 100644 --- a/sonar-connector/src/main/java/com/thepracticaldeveloper/devgame/modules/stats/service/SonarStatsServiceImpl.java +++ b/sonar-connector/src/main/java/com/thepracticaldeveloper/devgame/modules/stats/service/SonarStatsServiceImpl.java @@ -43,7 +43,8 @@ public List getSortedStatsPerUser() { return users.map(user -> { final SonarStatsRow statsRow = new SonarStatsRow(user.getAlias(), user.getTeam()); scoreCardMongoRepository.findAllByUserId(user.getId()).forEach(scoreCard -> { - statsRow.addTotalPoints(scoreCard.getScore()); + // The total score is proportional to the severity + statsRow.addTotalPoints(scoreCard.getScore() * scoreCard.getSeverityType().getScore()); statsRow.addPaidDebt(scoreCard.getPaidDebtMinutes()); addSeverityTypeCounter(statsRow, scoreCard.getSeverityType()); }); diff --git a/web-client/src/app/app.component.html b/web-client/src/app/app.component.html index d9806ec..69cc385 100644 --- a/web-client/src/app/app.component.html +++ b/web-client/src/app/app.component.html @@ -19,11 +19,18 @@ Help
-
+
+ + Become a Patreon + +
diff --git a/web-client/src/app/app.component.ts b/web-client/src/app/app.component.ts index afc4d25..49a081d 100644 --- a/web-client/src/app/app.component.ts +++ b/web-client/src/app/app.component.ts @@ -25,8 +25,6 @@ export class AppComponent implements OnInit { } forceRetrieval() { - this.retrieverService.forceRetrieval().then( - msg => console.log(msg) - ); + this.retrieverService.forceRetrieval().then(); // does nothing, just wait for the UI to be refreshed automatically } } diff --git a/web-client/src/app/members/members.component.html b/web-client/src/app/members/members.component.html index 7ea9703..adcdc1c 100644 --- a/web-client/src/app/members/members.component.html +++ b/web-client/src/app/members/members.component.html @@ -3,21 +3,31 @@

Player Ranking

- - - - - + + + + + + + + + + - - + + - - + + + + + + +
RankingNameTeamScoreBadgesRankingNameTeamScoreBadges
{{i + 1}}Golden Quboo{{i + 1}} {{member.userAlias}} {{member.userTeam}}{{member.totalPoints}}{{b.name}}{{member.totalPoints}}{{b.name}}{{member.blocker}}{{member.critical}}{{member.major}}{{member.minor}}{{member.info}}
diff --git a/web-client/src/app/members/members.component.ts b/web-client/src/app/members/members.component.ts index 8c5e6c3..8329c45 100644 --- a/web-client/src/app/members/members.component.ts +++ b/web-client/src/app/members/members.component.ts @@ -11,6 +11,7 @@ import {StatsRow} from '../common/StatsRow'; }) export class MembersComponent implements OnInit { ngOnInit(): void { + setInterval(() => this.getMembers(), 20 * 1000); this.getMembers(); } @@ -25,6 +26,7 @@ export class MembersComponent implements OnInit { } getMembers(): void { + console.log('get members'); this.memberService.getMemberStats().then(memberStats => this.memberStats = memberStats); } diff --git a/web-client/src/app/retriever/retriever.service.ts b/web-client/src/app/retriever/retriever.service.ts index c4b6413..73643d5 100644 --- a/web-client/src/app/retriever/retriever.service.ts +++ b/web-client/src/app/retriever/retriever.service.ts @@ -11,13 +11,12 @@ export class RetrieverService { } forceRetrieval(): Promise { - return this.http.post(this.forceRetrievalUrl, null) + return this.http.post(this.forceRetrievalUrl, {}) .toPromise() .catch(this.handleError); } private handleError(error: any): Promise { - console.error('An error occurred accessing ' + this.forceRetrievalUrl, error); if (error instanceof HttpErrorResponse) { console.error("Response status: " + error.status + " | Message: " + error.message); } diff --git a/web-client/src/app/teams/teams.component.html b/web-client/src/app/teams/teams.component.html index e711d3e..1c29485 100644 --- a/web-client/src/app/teams/teams.component.html +++ b/web-client/src/app/teams/teams.component.html @@ -3,20 +3,20 @@

Team Ranking

- - - - + + + + - - + + - - + +
RankingTeamTotal ScoreTotal Paid Debt (min)RankingTeamTotal ScoreTotal Paid Debt (min)
{{i + 1}}Golden Quboo{{i + 1}} {{team.userTeam}}{{team.totalPoints}}{{team.totalPaidDebt}}{{team.totalPoints}}{{team.totalPaidDebt}}
diff --git a/web-client/src/app/teams/teams.component.ts b/web-client/src/app/teams/teams.component.ts index c176143..7376a15 100644 --- a/web-client/src/app/teams/teams.component.ts +++ b/web-client/src/app/teams/teams.component.ts @@ -15,6 +15,11 @@ export class TeamsComponent implements OnInit { teams: StatsRow[]; ngOnInit(): void { + setInterval(() => this.getTeams(), 20 * 1000); + this.getTeams(); + } + + getTeams(): void { this.teamsService.getTeamStats().then(teams => this.teams = teams); } diff --git a/web-client/src/assets/img/quboo_gold.png b/web-client/src/assets/img/quboo_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..020f94f250977f0e317270e19f0626a8accb2a3d GIT binary patch literal 15597 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 c)-AY%_;tH02Q`2Tksy!}k literal 0 HcmV?d00001 diff --git a/web-client/src/styles.css b/web-client/src/styles.css index 5316411..8372995 100644 --- a/web-client/src/styles.css +++ b/web-client/src/styles.css @@ -20,7 +20,7 @@ body { } .footer-content { display: flex; - align-items: center; + align-items: baseline; justify-content: center; } .container-fluid { @@ -77,11 +77,18 @@ body { .badge-normal { font-size: 100%; } +.badge-stats { + font-size: 75%; + font-weight: lighter; + margin-right: 5px; +} #players td { font-size: 18px; + vertical-align: middle; } #teams td { font-size: 18px; + vertical-align: middle; } .navbar-item-custom { font-size: 18px;