Replace bootstrap button toggle with material in fraction stats
parent
d1ba6170ba
commit
7b58adad60
|
@ -9,12 +9,12 @@ import {CampaignService} from '../services/logs/campaign.service';
|
|||
import {NgxDatatableModule} from '@swimlane/ngx-datatable';
|
||||
import {PlayerService} from '../services/logs/player.service';
|
||||
import {LogsService} from '../services/logs/logs.service';
|
||||
import {MatExpansionModule, MatFormFieldModule} from '@angular/material';
|
||||
import {MatButtonToggleModule, MatExpansionModule, MatFormFieldModule} from '@angular/material';
|
||||
|
||||
@NgModule({
|
||||
declarations: statsRoutingComponents,
|
||||
imports: [CommonModule, SharedModule, statsRouterModule, NgxChartsModule, ButtonsModule.forRoot(), NgxDatatableModule,
|
||||
MatExpansionModule, MatFormFieldModule],
|
||||
imports: [CommonModule, SharedModule, statsRouterModule, NgxChartsModule, NgxDatatableModule, MatExpansionModule,
|
||||
MatButtonToggleModule],
|
||||
providers: [WarService, CampaignService, PlayerService, LogsService]
|
||||
})
|
||||
export class StatsModule {
|
||||
|
|
|
@ -1,16 +1,32 @@
|
|||
.btn-dark {
|
||||
background: #4b4b4b;
|
||||
color: #f5f5f5;
|
||||
border-color: #000;
|
||||
.chart-select-group {
|
||||
display: flex;
|
||||
width: 945px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.btn-dark:hover {
|
||||
.chart-select-group > mat-button-toggle {
|
||||
background: #4b4b4b;
|
||||
color: #f5f5f5;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.chart-select-group > mat-button-toggle:hover {
|
||||
background: #afafaf;
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
.btn-dark.active {
|
||||
background: #222222;
|
||||
mat-button-toggle.mat-button-toggle-checked {
|
||||
background: #222222 !important;
|
||||
}
|
||||
|
||||
:host /deep/ label.mat-button-toggle-label {
|
||||
margin: 2px 0 !important;
|
||||
}
|
||||
|
||||
:host /deep/ div.mat-button-toggle-label-content {
|
||||
line-height: 25px !important;
|
||||
margin-bottom: 0 !important;
|
||||
font-weight: normal !important;
|
||||
}
|
||||
|
||||
.chart-container {
|
||||
|
@ -21,12 +37,3 @@
|
|||
padding: 15px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.chart-select-group {
|
||||
width: 980px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
/*.dropdown-menu > li > a {*/
|
||||
/*cursor: pointer;*/
|
||||
/*}*/
|
||||
|
|
|
@ -1,45 +1,38 @@
|
|||
<!--<div class="btn-group" style="position: absolute; margin-left: 5%;" dropdown>-->
|
||||
<!--<button dropdownToggle type="button" class="btn btn-default dropdown-toggle dropdown-toggle-split">-->
|
||||
<!--{{dataMode}} <span class="caret"></span>-->
|
||||
<!--</button>-->
|
||||
<!--<ul *dropdownMenu class="dropdown-menu" role="menu">-->
|
||||
<!--<li role="menuitem"><a class="dropdown-item" (click)="toggleDataMode(0, 'Summe')">Summe</a></li>-->
|
||||
<!--<li class="divider dropdown-divider"></li>-->
|
||||
<!--<li class="disabled" role="menuitem">-->
|
||||
<!--<a class="dropdown-item" style="cursor: default!important;">Interval:</a>-->
|
||||
<!--</li>-->
|
||||
<!--<li role="menuitem"><a class="dropdown-item" (click)="toggleDataMode(1, '1 Minute')">1 Minute</a></li>-->
|
||||
<!--<li role="menuitem"><a class="dropdown-item" (click)="toggleDataMode(5, '5 Minuten')">5 Minuten</a></li>-->
|
||||
<!--<li role="menuitem"><a class="dropdown-item" (click)="toggleDataMode(10, '10 Minuten')">10 Minuten</a>-->
|
||||
<!--<li role="menuitem"><a class="dropdown-item" (click)="toggleDataMode(20, '20 Minuten')">20 Minuten</a>-->
|
||||
<!--<li role="menuitem"><a class="dropdown-item" (click)="toggleDataMode(40, '40 Minuten')">40 Minuten</a>-->
|
||||
<!--</li>-->
|
||||
<!--</ul>-->
|
||||
<!--</div>-->
|
||||
|
||||
<div class="fade-in" xmlns="http://www.w3.org/1999/html">
|
||||
<div class="chart-select-group">
|
||||
<div class="btn-group" (click)="selectChart()">
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelPoints}}">{{labelPoints}}</label>
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelBudget}}">{{labelBudget}}</label>
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelKill}}">{{labelKill}}</label>
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelFriendlyFire}}">{{labelFriendlyFire}}</label>
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelVehicle}}">{{labelVehicle}}</label>
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelRevive}}">{{labelRevive}}</label>
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelStabilize}}">{{labelStabilize}}</label>
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelTransport}}">{{labelTransport}}</label>
|
||||
<label class="btn btn-default btn-dark" [(ngModel)]="chartSelectModel"
|
||||
btnRadio="{{labelFlag}}">{{labelFlag}}</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<mat-button-toggle-group class="chart-select-group"
|
||||
#group="matButtonToggleGroup"
|
||||
[(ngModel)]="activeChartSelect"
|
||||
(change)="selectChart(group.value)">
|
||||
<!--this does not work with ngFor due to deselect bug of ng-material-->
|
||||
<mat-button-toggle value="{{labels.points}}">
|
||||
{{labels.points}}
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="{{labels.budget}}">
|
||||
{{labels.budget}}
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="{{labels.kill}}">
|
||||
{{labels.kill}}
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="{{labels.friendlyFire}}">
|
||||
{{labels.friendlyFire}}
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="{{labels.vehicle}}">
|
||||
{{labels.vehicle}}
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="{{labels.revive}}">
|
||||
{{labels.revive}}
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="{{labels.stabilize}}">
|
||||
{{labels.stabilize}}
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="{{labels.transport}}">
|
||||
{{labels.transport}}
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="{{labels.flag}}">
|
||||
{{labels.flag}}
|
||||
</mat-button-toggle>
|
||||
</mat-button-toggle-group>
|
||||
|
||||
<div *ngIf="showLineChart" class="chart-container">
|
||||
<ngx-charts-line-chart
|
||||
|
|
|
@ -24,7 +24,7 @@ export class FractionStatsComponent implements OnInit, OnChanges {
|
|||
|
||||
initialized: any;
|
||||
|
||||
public chartSelectModel: string;
|
||||
public activeChartSelect: string;
|
||||
|
||||
lineChartData: any[] = [];
|
||||
areaChartData: any[] = [];
|
||||
|
@ -44,16 +44,19 @@ export class FractionStatsComponent implements OnInit, OnChanges {
|
|||
Fraction.COLOR_BLUFOR_DARK, Fraction.COLOR_OPFOR_DARK, Fraction.COLOR_BLUFOR_GREY, Fraction.COLOR_OPFOR_GREY]
|
||||
};
|
||||
|
||||
labelPoints = 'Punkte';
|
||||
labelBudget = 'Budget';
|
||||
labelKill = 'Abschüsse';
|
||||
labelFriendlyFire = 'Friendly Fire';
|
||||
labelVehicle = 'Fahrzeug Abschüsse';
|
||||
labelTransport = 'Lufttransport';
|
||||
labelRevive = 'Revive';
|
||||
labelStabilize = 'Stabilisiert';
|
||||
labelFlag = 'Flaggenbesitz';
|
||||
lineChartLabel: string = this.labelPoints;
|
||||
readonly labels = {
|
||||
points: 'Punkte',
|
||||
budget: 'Budget',
|
||||
kill: 'Abschüsse',
|
||||
friendlyFire: 'Friendly Fire',
|
||||
vehicle: 'Fahrzeug Abschüsse',
|
||||
transport: 'Lufttransport',
|
||||
revive: 'Revive',
|
||||
stabilize: 'Stabilisiert',
|
||||
flag: 'Flaggenbesitz'
|
||||
};
|
||||
|
||||
lineChartLabel: string = this.labels.points;
|
||||
|
||||
showLineChart = true;
|
||||
stepCurve = d3.curveStepAfter;
|
||||
|
@ -84,7 +87,7 @@ export class FractionStatsComponent implements OnInit, OnChanges {
|
|||
flag: false
|
||||
};
|
||||
Object.assign(this, [this.lineChartData, this.areaChartData]);
|
||||
this.chartSelectModel = this.labelPoints;
|
||||
this.activeChartSelect = this.labels.points;
|
||||
|
||||
this.startDateObj = new Date(this.war.date);
|
||||
this.startDateObj.setHours(0);
|
||||
|
@ -93,39 +96,40 @@ export class FractionStatsComponent implements OnInit, OnChanges {
|
|||
}
|
||||
}
|
||||
|
||||
selectChart() {
|
||||
if (this.chartSelectModel !== this.labelFlag) {
|
||||
selectChart(newSelection) {
|
||||
this.activeChartSelect = newSelection;
|
||||
if (this.activeChartSelect !== this.labels.flag) {
|
||||
this.showLineChart = true;
|
||||
this.lineChartLabel = this.chartSelectModel;
|
||||
switch (this.chartSelectModel) {
|
||||
case this.labelPoints:
|
||||
this.lineChartLabel = this.activeChartSelect;
|
||||
switch (this.activeChartSelect) {
|
||||
case this.labels.points:
|
||||
this.lineChartData = this.tmpPointData;
|
||||
break;
|
||||
case this.labelBudget:
|
||||
case this.labels.budget:
|
||||
this.initBudgetData();
|
||||
this.lineChartData = this.tmpBudgetData;
|
||||
break;
|
||||
case this.labelKill:
|
||||
case this.labels.kill:
|
||||
this.initKillData();
|
||||
this.lineChartData = this.tmpKillData;
|
||||
break;
|
||||
case this.labelFriendlyFire:
|
||||
case this.labels.friendlyFire:
|
||||
this.initKillData();
|
||||
this.lineChartData = this.tmpFrienlyFireData;
|
||||
break;
|
||||
case this.labelVehicle:
|
||||
case this.labels.vehicle:
|
||||
this.initVehicleData();
|
||||
this.lineChartData = this.tmpVehicleData;
|
||||
break;
|
||||
case this.labelRevive:
|
||||
case this.labels.revive:
|
||||
this.initRevive();
|
||||
this.lineChartData = this.tmpReviveData;
|
||||
break;
|
||||
case this.labelStabilize:
|
||||
case this.labels.stabilize:
|
||||
this.initRevive();
|
||||
this.lineChartData = this.tmpStabilizeData;
|
||||
break;
|
||||
case this.labelTransport:
|
||||
case this.labels.transport:
|
||||
this.initTransportData();
|
||||
this.lineChartData = this.tmpTransportData;
|
||||
break;
|
||||
|
@ -141,7 +145,7 @@ export class FractionStatsComponent implements OnInit, OnChanges {
|
|||
this.initializeTempCollections();
|
||||
this.initPointData();
|
||||
this.showLineChart = true;
|
||||
this.lineChartLabel = this.labelPoints;
|
||||
this.lineChartLabel = this.labels.points;
|
||||
this.lineChartData = this.tmpPointData;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue