diff --git a/api/routes/wars.js b/api/routes/wars.js index e57fcf4..a3000ad 100644 --- a/api/routes/wars.js +++ b/api/routes/wars.js @@ -149,7 +149,7 @@ wars.route('/:id') err.status = codes.notfound; return next(err); } - PlayerModel.find({warId: item._id}, (err, items) => { + PlayerModel.find({warId: item._id}, {}, {sort: {kill: 'desc'}}, (err, items) => { if (err) { return next(err); } diff --git a/package.json b/package.json index ddc3151..e9f25d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opt-cc", - "version": "1.4.2", + "version": "1.4.3", "license": "MIT", "private": true, "scripts": { diff --git a/static/package.json b/static/package.json index 67bf713..7d7b6cc 100644 --- a/static/package.json +++ b/static/package.json @@ -23,7 +23,7 @@ "@angular/platform-browser-dynamic": "^4.3.2", "@angular/router": "^4.3.2", "@swimlane/ngx-charts": "^6.0.1", - "angular2-datatable": "^0.6.0", + "@swimlane/ngx-datatable": "^10.2.3", "bootstrap": "^3.3.7", "core-js": "^2.4.1", "d3": "^4.10.0", diff --git a/static/src/app/app.routing.ts b/static/src/app/app.routing.ts index 8c7d093..47e9acd 100644 --- a/static/src/app/app.routing.ts +++ b/static/src/app/app.routing.ts @@ -19,14 +19,6 @@ export const appRoutes: Routes = [ path: RouteConfig.statsPath, loadChildren: './statistic/stats.module#StatsModule' }, - { - path: RouteConfig.loginPath, - component: LoginComponent - }, - { - path: RouteConfig.signUpPath, - component: SignupComponent - }, { path: RouteConfig.request, loadChildren: './request/request.module#RequestModule' @@ -56,6 +48,14 @@ export const appRoutes: Routes = [ loadChildren: './admin/admin.module#AdminModule', canActivate: [LoginGuardAdmin] }, + { + path: RouteConfig.loginPath, + component: LoginComponent + }, + { + path: RouteConfig.signUpPath, + component: SignupComponent + }, /** Redirect Configuration **/ { @@ -70,6 +70,6 @@ export const appRoutes: Routes = [ export const appRouting = RouterModule.forRoot(appRoutes); -export const routingComponents = [LoginComponent, SignupComponent, ...armyRoutingComponents, NotFoundComponent]; +export const routingComponents = [...armyRoutingComponents, LoginComponent, SignupComponent, NotFoundComponent]; -export const routingProviders = [LoginGuardSQL, LoginGuardHL, LoginGuardMT, LoginGuardAdmin]; +export const routingProviders = [LoginGuardHL, LoginGuardAdmin]; diff --git a/static/src/app/army/army-member.component.css b/static/src/app/army/army-member.component.css index bb6976b..c8dfb3b 100644 --- a/static/src/app/army/army-member.component.css +++ b/static/src/app/army/army-member.component.css @@ -3,7 +3,6 @@ overflow-y: scroll; overflow-x: hidden; bottom: 20px; - width: 100%; padding-left: 50px; padding-top: 190px; margin-left: 10px; diff --git a/static/src/app/statistic/stats.module.ts b/static/src/app/statistic/stats.module.ts index ff13c4b..15b9e9d 100644 --- a/static/src/app/statistic/stats.module.ts +++ b/static/src/app/statistic/stats.module.ts @@ -3,15 +3,15 @@ import {CommonModule} from "@angular/common"; import {SharedModule} from "../shared.module"; import {statsRouterModule, statsRoutingComponents} from "./stats.routing"; import {WarService} from "../services/war-service/war.service"; -import {DataTableModule} from "angular2-datatable"; import {LineChartModule, PieChartModule} from "@swimlane/ngx-charts"; import {AccordionModule, CarouselModule} from "ngx-bootstrap"; import {CampaignService} from "../services/campaign-service/campaign.service"; +import {NgxDatatableModule} from "@swimlane/ngx-datatable"; @NgModule({ declarations: statsRoutingComponents, imports: [CommonModule, SharedModule, statsRouterModule, LineChartModule, PieChartModule, - AccordionModule.forRoot(), CarouselModule.forRoot(), DataTableModule], + AccordionModule.forRoot(), CarouselModule.forRoot(), NgxDatatableModule], providers: [WarService, CampaignService] }) export class StatsModule { diff --git a/static/src/app/statistic/war-detail/war-detail.component.css b/static/src/app/statistic/war-detail/war-detail.component.css index 63e13d6..ac08fbe 100644 --- a/static/src/app/statistic/war-detail/war-detail.component.css +++ b/static/src/app/statistic/war-detail/war-detail.component.css @@ -11,31 +11,8 @@ height: 100vh; } -:host /deep/ mfDefaultSorter > a { - color: white; -} - -.table { - overflow-wrap: break-word; - table-layout: fixed; -} - -.scoreboard-table-container { - min-width: 920px; - max-width: 920px; -} - -.table-container { - overflow-x: auto; -} - -.table-head { - background: #222222; - color: white; -} - -.cell-outline { - outline: 1px solid #D4D4D4; +.player-name { + font-weight: bold; } .text-opfor { @@ -46,3 +23,37 @@ color: blue; } +/* ########### DATATABLE ########### */ + +:host /deep/ .datatable-header { + background: #222222; + font-weight: 700; + border-radius: 10px 10px 0 0; + color: white; +} + +:host /deep/ span.datatable-header-cell-label, :host /deep/ div.datatable-body-cell-label { + padding-left: 8px; +} + +:host /deep/ .ngx-datatable .datatable-header { + /*vertical center alignment*/ + display: table-cell; + vertical-align: middle; +} + +:host /deep/ .ngx-datatable .datatable-body .datatable-body-row > div { + /*vertical alignment*/ + position: relative; + top: 10px; +} + +:host /deep/ .datatable-body-row { + color: #222222; + border-bottom: 1px solid grey; +} + +:host /deep/ .datatable-body-row:hover { + background-color: #f7f7f7; +} + diff --git a/static/src/app/statistic/war-detail/war-detail.component.html b/static/src/app/statistic/war-detail/war-detail.component.html index ec53cf9..6ff3d83 100644 --- a/static/src/app/statistic/war-detail/war-detail.component.html +++ b/static/src/app/statistic/war-detail/war-detail.component.html @@ -50,68 +50,32 @@ -
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Spieler - - Fraktion - - Kills - - FriendlyFire - - Revive - - Eroberung - - Tod - - Respawn -
- {{player.name}} - - {{player.fraction === 'BLUFOR' ? 'NATO' : 'CSAT'}} - - {{player.kill}} - - {{player.friendlyFire}} - - {{player.revive}} - - {{player.flagTouch}} - - {{player.death}} - - {{player.respawn}} -
-
-
+ + + + + {{value}} + + + + + + {{value === 'BLUFOR' ? 'NATO' : 'CSAT'}} + + + + + + + + + diff --git a/static/src/app/statistic/war-detail/war-detail.component.ts b/static/src/app/statistic/war-detail/war-detail.component.ts index a0827b4..4d84ef6 100644 --- a/static/src/app/statistic/war-detail/war-detail.component.ts +++ b/static/src/app/statistic/war-detail/war-detail.component.ts @@ -1,7 +1,7 @@ import {Component} from "@angular/core"; import {ActivatedRoute} from "@angular/router"; import {WarService} from "../../services/war-service/war.service"; -import {Player, War} from "../../models/model-interfaces"; +import {War} from "../../models/model-interfaces"; @Component({ @@ -13,16 +13,21 @@ export class WarDetailComponent { war: War = {players: []}; - players: Player[] = []; - fractionRadioSelect: string; - sortBy = "kill"; - - sortOrder = "desc"; - playerChart: any[] = []; + cellHeight = 40; + + rows = []; + + reorderable: boolean = false; + + customClasses = { + sortAscending: 'glyphicon glyphicon-triangle-top', + sortDescending: 'glyphicon glyphicon-triangle-bottom', + }; + constructor(private route: ActivatedRoute, private warService: WarService) { Object.assign(this, this.playerChart) @@ -35,7 +40,7 @@ export class WarDetailComponent { .flatMap(id => this.warService.getWar(id)) .subscribe(war => { this.war = war; - this.players = war.players; + this.rows = war.players; this.playerChart = [ { "name": "CSAT", @@ -51,11 +56,11 @@ export class WarDetailComponent { filterPlayersByFraction(fraction: string) { if (fraction) { - this.players = this.war.players.filter((player) => { + this.rows = this.war.players.filter((player) => { return player.fraction === fraction; }) } else { - this.players = this.war.players; + this.rows = this.war.players; } } diff --git a/static/src/app/statistic/war-list/war-list.component.css b/static/src/app/statistic/war-list/war-list.component.css index 2b5a65a..2f7bdfe 100644 --- a/static/src/app/statistic/war-list/war-list.component.css +++ b/static/src/app/statistic/war-list/war-list.component.css @@ -3,7 +3,7 @@ } :host /deep/ .card-header { - background-color: #222222; + background-color: rgba(34, 34, 34, 0.80); cursor: pointer; padding: 15px; color: white;