diff --git a/package.json b/package.json index daa0228..a0c1cf6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opt-cc", - "version": "1.9.4", + "version": "1.9.5", "author": "Florian Hartwich ", "private": true, "scripts": { diff --git a/server/apib/data_structures/_war.apib b/server/apib/data_structures/_war.apib index 757a0f1..324812e 100644 --- a/server/apib/data_structures/_war.apib +++ b/server/apib/data_structures/_war.apib @@ -6,6 +6,8 @@ A war as used in statistics + title: `Battle No.1` (string, required) - the display neme of the war + date: `2018-02-24T20:01:25.825Z` (string, required) - war start timestamp + endDate: `2018-02-24T22:31:26.855Z` (string, required) - war end timestamp ++ fractionMappingBlufor: `BLUFOR` (enum[string], required) - display name mapping for Blufor fraction ++ fractionMappingOpfor: `OPFOR` (enum[string], required) - display name mapping for Opfor fraction + ptBlufor: 11 (number, required) - final points fraction Blufor + ptOpfor: 12 (number, required) - final points fraction Opfor + playersBlufor: 36 (number, required) - player count of fraction Blufor diff --git a/server/models/decoration.js b/server/models/decoration.js index 5c6e2e2..8848281 100644 --- a/server/models/decoration.js +++ b/server/models/decoration.js @@ -10,7 +10,7 @@ const DecorationSchema = new Schema({ }, fraction: { type: String, - enum: ['BLUFOR', 'OPFOR', 'GLOBAL'], + enum: ['BLUFOR', 'OPFOR', 'ARF', 'SWORD', 'GLOBAL'], required: true, }, description: { diff --git a/server/models/war.js b/server/models/war.js index ff342cd..e768609 100644 --- a/server/models/war.js +++ b/server/models/war.js @@ -14,6 +14,16 @@ const WarSchema = new Schema({ endDate: { type: Date, }, + fractionMappingBlufor: { + type: String, + enum: ['BLUFOR', 'OPFOR', 'ARF', 'SWORD'], + default: 'BLUFOR', + }, + fractionMappingOpfor: { + type: String, + enum: ['BLUFOR', 'OPFOR', 'ARF', 'SWORD'], + default: 'OPFOR', + }, ptBlufor: { type: Number, get: (v) => Math.round(v), diff --git a/server/routes/decorations.js b/server/routes/decorations.js index 89cfabc..6243f21 100644 --- a/server/routes/decorations.js +++ b/server/routes/decorations.js @@ -37,7 +37,11 @@ decorationRouter.route('/') .get((req, res, next) => { const filter = {}; if (req.query.fractFilter) { - filter.fraction = req.query.fractFilter.toUpperCase(); + filter.fraction = { + '$in': req.query.fractFilter + .toUpperCase() + .split(','), + }; } if (req.query.q) { filter.name = {$regex: req.query.q, $options: 'i'}; diff --git a/server/routes/users.js b/server/routes/users.js index 2e2400a..5874322 100644 --- a/server/routes/users.js +++ b/server/routes/users.js @@ -168,7 +168,6 @@ users.route('/:id') res.locals.items = item; } else { err.status = codes.wrongrequest; - console.log(err); err.message += ' in fields: ' + Object.getOwnPropertyNames(err.errors); } diff --git a/server/server.js b/server/server.js index 3394a97..bc6c7d5 100644 --- a/server/server.js +++ b/server/server.js @@ -19,8 +19,7 @@ const {exec} = require('child_process'); // cluster mode const cluster = require('cluster'); const envWorkerNum = process.env.NODE_WORKER_COUNT; -const cpuCount = require('os').cpus().length; -const numWorkers = (envWorkerNum) ? envWorkerNum : cpuCount; +const numWorkers = (envWorkerNum) ? envWorkerNum : 2; // own modules const config = require('./config/config'); diff --git a/server/tools/log-parse-tool.js b/server/tools/log-parse-tool.js index 609f556..f7fe1c4 100644 --- a/server/tools/log-parse-tool.js +++ b/server/tools/log-parse-tool.js @@ -72,7 +72,7 @@ const parseWarLog = (lineArray, war) => { 'Qilin (Unbewaffnet)', 'Qilin (Bewaffnet)', 'Ifrit', 'Tempest-Transporter', 'Tempest-Transporter (abgedeckt)', 'Tempest Sanitätsfahrzeug', 'Remote Designator [CSAT]', 'UBF Saif', - 'Quad Bike', 'HuntIR', + 'Quad Bike', 'HuntIR', 'Offroad', ]; const addPlayerIfNotExists = (inputPlayer, steamUUID) => { diff --git a/static/src/app/admin/edit-app-user/edit-app-user.component.html b/static/src/app/admin/edit-app-user/edit-app-user.component.html index ffad96a..77f52e2 100644 --- a/static/src/app/admin/edit-app-user/edit-app-user.component.html +++ b/static/src/app/admin/edit-app-user/edit-app-user.component.html @@ -23,7 +23,7 @@ [(ngModel)]="appUserSquadId"> diff --git a/static/src/app/admin/user-list/app-user-item.component.html b/static/src/app/admin/user-list/app-user-item.component.html index 2ede66e..6dd404f 100644 --- a/static/src/app/admin/user-list/app-user-item.component.html +++ b/static/src/app/admin/user-list/app-user-item.component.html @@ -6,8 +6,8 @@ {{appUser.username}}
- {{fraction.OPFOR}} - {{appUser.squad.name}} - {{fraction.BLUFOR}} - {{appUser.squad.name}} + {{fraction.SWORD}} - {{appUser.squad.name}} + {{fraction.ARF}} - {{appUser.squad.name}} {{'users.list.item.label.no.squad' | translate}} diff --git a/static/src/app/army/army-member/army-member.component.html b/static/src/app/army/army-member/army-member.component.html index a80a670..94ba07c 100644 --- a/static/src/app/army/army-member/army-member.component.html +++ b/static/src/app/army/army-member/army-member.component.html @@ -8,7 +8,7 @@

+ [style.color]="user.squadId?.fraction === 'BLUFOR' ? fraction.COLOR_ARF : fraction.COLOR_SWORD"> {{'public.army.member.headline' | translate:{name: user.username} }}

diff --git a/static/src/app/army/army-squad/army-squad.component.html b/static/src/app/army/army-squad/army-squad.component.html index d737deb..050bbba 100644 --- a/static/src/app/army/army-squad/army-squad.component.html +++ b/static/src/app/army/army-squad/army-squad.component.html @@ -7,7 +7,7 @@
-
diff --git a/static/src/app/army/army.component.html b/static/src/app/army/army.component.html index 92b49aa..3fba727 100644 --- a/static/src/app/army/army.component.html +++ b/static/src/app/army/army.component.html @@ -2,8 +2,8 @@

{{'public.army.headline' | translate}}

-

- {{fraction.BLUFOR}} +

+ {{fraction.ARF}}

-

+

- {{fraction.OPFOR}} + {{fraction.SWORD}}

{{decoration.name}}
+ {{fraction.ARF}} + {{fraction.SWORD}} {{fraction.OPFOR}} {{fraction.BLUFOR}} {{'decorations.list.filter.global' | translate}} diff --git a/static/src/app/manage/decorations/decoration-list/decoration-list.component.html b/static/src/app/manage/decorations/decoration-list/decoration-list.component.html index 984d419..d1aef07 100644 --- a/static/src/app/manage/decorations/decoration-list/decoration-list.component.html +++ b/static/src/app/manage/decorations/decoration-list/decoration-list.component.html @@ -1,6 +1,8 @@
- - + + + + diff --git a/static/src/app/manage/ranks/edit-rank/edit-rank.component.html b/static/src/app/manage/ranks/edit-rank/edit-rank.component.html index e0b16a1..a0bfe6a 100644 --- a/static/src/app/manage/ranks/edit-rank/edit-rank.component.html +++ b/static/src/app/manage/ranks/edit-rank/edit-rank.component.html @@ -17,8 +17,8 @@
diff --git a/static/src/app/manage/ranks/rank-list/rank-item.component.html b/static/src/app/manage/ranks/rank-list/rank-item.component.html index b00d2a2..97d5bc0 100644 --- a/static/src/app/manage/ranks/rank-list/rank-item.component.html +++ b/static/src/app/manage/ranks/rank-list/rank-item.component.html @@ -6,8 +6,8 @@ {{rank.name}}
- {{fraction.OPFOR}} - {{fraction.BLUFOR}} + {{fraction.SWORD}} + {{fraction.ARF}} {{'ranks.list.item.label.level' | translate:{level: rank.level} }}
diff --git a/static/src/app/manage/ranks/rank-list/rank-list.component.html b/static/src/app/manage/ranks/rank-list/rank-list.component.html index 625e54b..2516951 100644 --- a/static/src/app/manage/ranks/rank-list/rank-list.component.html +++ b/static/src/app/manage/ranks/rank-list/rank-list.component.html @@ -1,7 +1,7 @@
diff --git a/static/src/app/manage/squads/edit-squad/edit-squad.component.html b/static/src/app/manage/squads/edit-squad/edit-squad.component.html index c21d840..4c5347b 100644 --- a/static/src/app/manage/squads/edit-squad/edit-squad.component.html +++ b/static/src/app/manage/squads/edit-squad/edit-squad.component.html @@ -17,8 +17,8 @@
diff --git a/static/src/app/manage/squads/squad-list/squad-item.component.html b/static/src/app/manage/squads/squad-list/squad-item.component.html index a32bafd..af56fda 100644 --- a/static/src/app/manage/squads/squad-list/squad-item.component.html +++ b/static/src/app/manage/squads/squad-list/squad-item.component.html @@ -6,8 +6,8 @@ {{squad.name}}

- {{fraction.OPFOR}} - {{fraction.BLUFOR}} + {{fraction.ARF}} + {{fraction.SWORD}}
diff --git a/static/src/app/manage/squads/squad-list/squad-list.component.html b/static/src/app/manage/squads/squad-list/squad-list.component.html index 79741c4..01e3611 100644 --- a/static/src/app/manage/squads/squad-list/squad-list.component.html +++ b/static/src/app/manage/squads/squad-list/squad-list.component.html @@ -1,7 +1,7 @@
diff --git a/static/src/app/manage/users/award-user/award-user.component.html b/static/src/app/manage/users/award-user/award-user.component.html index 6bde03a..1decbb5 100644 --- a/static/src/app/manage/users/award-user/award-user.component.html +++ b/static/src/app/manage/users/award-user/award-user.component.html @@ -13,7 +13,8 @@ style="min-width: 200px;"> @@ -93,8 +94,8 @@ {{award.confirmed === 0 ? - awardStatus['users.award.table.status.in.progress'] : (award.confirmed === 1 ? - awardStatus['users.award.table.status.approved']: awardStatus['users.award.table.status.rejected'])}} + awardStatus['users.award.table.status.in.progress'] : (award.confirmed === 1 ? + awardStatus['users.award.table.status.approved'] : awardStatus['users.award.table.status.rejected'])}}
diff --git a/static/src/app/manage/users/user-list/user-list.component.html b/static/src/app/manage/users/user-list/user-list.component.html index 2463e0e..d6eefcd 100644 --- a/static/src/app/manage/users/user-list/user-list.component.html +++ b/static/src/app/manage/users/user-list/user-list.component.html @@ -1,7 +1,7 @@
{{'public.decorations.headline' | translate}}
+
{{fraction.ARF}}
+
{{fraction.SWORD}}
{{fraction.BLUFOR}}
{{fraction.OPFOR}}
GLOBAL
diff --git a/static/src/app/pub/decoration-overview/decoration-overview.component.ts b/static/src/app/pub/decoration-overview/decoration-overview.component.ts index 1a9f236..7e74969 100644 --- a/static/src/app/pub/decoration-overview/decoration-overview.component.ts +++ b/static/src/app/pub/decoration-overview/decoration-overview.component.ts @@ -45,10 +45,11 @@ export class DecorationOverviewComponent implements OnInit, OnDestroy { } const fract = queryParams.fraction; - if (fract && (fract === 'BLUFOR' || fract === 'OPFOR' || fract === 'GLOBAL')) { + if (fract && (fract === 'ARF' || fract === 'SWORD' || + fract === 'BLUFOR' || fract === 'OPFOR' || fract === 'GLOBAL')) { this.switchFraction(queryParams.fraction); } else { - this.switchFraction('BLUFOR'); + this.switchFraction('ARF'); } }); }; diff --git a/static/src/app/pub/decoration-overview/decoration-panel/decoration-panel.component.html b/static/src/app/pub/decoration-overview/decoration-panel/decoration-panel.component.html index 4886e5d..401eaf1 100644 --- a/static/src/app/pub/decoration-overview/decoration-panel/decoration-panel.component.html +++ b/static/src/app/pub/decoration-overview/decoration-panel/decoration-panel.component.html @@ -5,8 +5,7 @@ [class]="decoration.isMedal ? 'img-medal' : 'img-ribbon'">
-
+
{{decoration.name}}
diff --git a/static/src/app/pub/decoration-overview/decoration-panel/decoration-panel.component.ts b/static/src/app/pub/decoration-overview/decoration-panel/decoration-panel.component.ts index 8d5d0eb..0b24a89 100644 --- a/static/src/app/pub/decoration-overview/decoration-panel/decoration-panel.component.ts +++ b/static/src/app/pub/decoration-overview/decoration-panel/decoration-panel.component.ts @@ -17,6 +17,21 @@ export class DecorationPanelComponent { readonly fraction = Fraction; + getColor(fractionKey) { + switch (fractionKey) { + case 'ARF': + return this.fraction.COLOR_ARF; + case 'SWORD': + return this.fraction.COLOR_SWORD; + case 'BLUFOR': + return this.fraction.COLOR_BLUFOR; + case 'OPFOR': + return this.fraction.COLOR_OPFOR; + default: + return this.fraction.COLOR_NEUTRAL; + } + } + selectDecoration() { this.select.emit(this.decoration); } diff --git a/static/src/app/pub/rank-overview/rank-overview.component.html b/static/src/app/pub/rank-overview/rank-overview.component.html index 1e52cd1..be70e25 100644 --- a/static/src/app/pub/rank-overview/rank-overview.component.html +++ b/static/src/app/pub/rank-overview/rank-overview.component.html @@ -2,7 +2,7 @@

{{'public.ranks.headline' | translate}}

-

{{fraction.BLUFOR}}

+

{{fraction.ARF}}

@@ -19,7 +19,7 @@
-

{{fraction.OPFOR}}

+

{{fraction.SWORD}}

diff --git a/static/src/app/pub/rank-overview/rank-panel/rank-panel.component.ts b/static/src/app/pub/rank-overview/rank-panel/rank-panel.component.ts index 2f4ed2e..699e9df 100644 --- a/static/src/app/pub/rank-overview/rank-panel/rank-panel.component.ts +++ b/static/src/app/pub/rank-overview/rank-panel/rank-panel.component.ts @@ -13,8 +13,6 @@ export class RankPanelComponent { @Output() select = new EventEmitter(); - readonly fraction = Fraction; - selectRank() { this.select.emit(this.rank); } diff --git a/static/src/app/pub/user-list-sheet/user-list-sheet.component.html b/static/src/app/pub/user-list-sheet/user-list-sheet.component.html index ba374aa..810eb0a 100644 --- a/static/src/app/pub/user-list-sheet/user-list-sheet.component.html +++ b/static/src/app/pub/user-list-sheet/user-list-sheet.component.html @@ -24,8 +24,8 @@ {{user.username}} - - {{user.squadId.fraction === 'BLUFOR' ? fraction.BLUFOR : fraction.OPFOR}} - {{user.squadId.name}} + + {{user.squadId.fraction === 'BLUFOR' ? fraction.ARF : fraction.SWORD}} - {{user.squadId.name}} diff --git a/static/src/app/request/award/req-award.component.html b/static/src/app/request/award/req-award.component.html index 5e50a72..705b908 100644 --- a/static/src/app/request/award/req-award.component.html +++ b/static/src/app/request/award/req-award.component.html @@ -35,12 +35,10 @@
-
+
-
-   +
diff --git a/static/src/app/request/award/req-award.component.ts b/static/src/app/request/award/req-award.component.ts index 21407be..bc28422 100644 --- a/static/src/app/request/award/req-award.component.ts +++ b/static/src/app/request/award/req-award.component.ts @@ -7,6 +7,7 @@ import {DecorationService} from '../../services/army-management/decoration.servi import {UserService} from '../../services/army-management/user.service'; import {LoginService} from '../../services/app-user-service/login-service'; import {SnackBarService} from '../../services/user-interface/snack-bar/snack-bar.service'; +import {Fraction} from '../../utils/fraction.enum'; @Component({ @@ -47,7 +48,13 @@ export class RequestAwardComponent implements OnInit { this.userService.findUsers({squadId: currentUser.squad._id}).subscribe(users => { this.users = users; }); - this.decorationService.findDecorations('', currentUser.squad.fraction).subscribe(decorations => { + + const selectableFractions = [ + (currentUser.squad.fraction === Fraction.BLUFOR) ? Fraction.ARF : Fraction.SWORD, + currentUser.squad.fraction + ]; + + this.decorationService.findDecorations('', selectableFractions).subscribe(decorations => { this.decorations = decorations; }); } diff --git a/static/src/app/statistic/war/scoreboard/scoreboard.component.html b/static/src/app/statistic/war/scoreboard/scoreboard.component.html index 85374b2..94dfdec 100644 --- a/static/src/app/statistic/war/scoreboard/scoreboard.component.html +++ b/static/src/app/statistic/war/scoreboard/scoreboard.component.html @@ -16,8 +16,7 @@ {{tableHead[1].head | translate}} - {{element.fraction === - 'BLUFOR' ? fraction.BLUFOR : fraction.OPFOR}} + {{element.fraction === 'BLUFOR' ? fraction.BLUFOR : fraction.OPFOR}} diff --git a/static/src/app/utils/fraction.enum.ts b/static/src/app/utils/fraction.enum.ts index 9b1ff6e..a3f28bf 100644 --- a/static/src/app/utils/fraction.enum.ts +++ b/static/src/app/utils/fraction.enum.ts @@ -1,4 +1,8 @@ export enum Fraction { + ARF = 'ARF', + COLOR_ARF = '#336699', + SWORD = 'SWORD', + COLOR_SWORD = '#8b8b8b', BLUFOR = 'NATO', OPFOR = 'CSAT', COLOR_BLUFOR = '#3c5fa1', @@ -8,5 +12,6 @@ export enum Fraction { COLOR_OPFOR = '#a90100', COLOR_OPFOR_DARK = '#890F0F', COLOR_OPFOR_LIGHT = '#fb5555', - COLOR_OPFOR_GREY = '#955c5f' + COLOR_OPFOR_GREY = '#955c5f', + COLOR_NEUTRAL = '#222222', } diff --git a/static/src/assets/bg.jpg b/static/src/assets/bg.jpg index f1a1755..876be45 100644 Binary files a/static/src/assets/bg.jpg and b/static/src/assets/bg.jpg differ