Compare commits

...

4 Commits

18 changed files with 70 additions and 112 deletions

View File

@ -1,10 +1,3 @@
html {
height: 100%;
}
body {
min-height: 100%;
}
ul { ul {
list-style-type: none; list-style-type: none;
margin: 0; margin: 0;
@ -15,17 +8,6 @@ li {
display: inline; display: inline;
} }
.sidebar-toggle-btn {
background: #dadada;
filter: drop-shadow(2px 1px 1px #666);
margin-left: -12px;
z-index: 500;
}
.sidebar-toggle-btn mat-icon.mat-icon {
color: #666666;
}
.content { .content {
padding-left: 15px; padding-left: 15px;
padding-right: 15px; padding-right: 15px;

View File

@ -1,6 +1,7 @@
:host { :host {
display: flow-root; display: flow-root;
height: 100%; height: 100%;
min-height: 100vh;
width: 100%; width: 100%;
margin-top: -23px; margin-top: -23px;
padding-top: 23px; padding-top: 23px;
@ -8,7 +9,7 @@
background-image: url('../../../assets/bg.jpg'); background-image: url('../../../assets/bg.jpg');
background-size: cover; background-size: cover;
background-attachment: fixed; background-attachment: fixed;
background-position: center; background-position: top;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
@ -27,8 +28,7 @@
.return-button { .return-button {
position: absolute; position: absolute;
display: block; padding-left: 5px;
width: auto;
} }
.table { .table {

View File

@ -1,6 +1,7 @@
:host { :host {
display: flow-root; display: flow-root;
height: 100%; height: 100%;
min-height: 100vh;
width: 100%; width: 100%;
margin-top: -23px; margin-top: -23px;
padding-top: 23px; padding-top: 23px;
@ -8,7 +9,7 @@
background-image: url('../../assets/bg.jpg'); background-image: url('../../assets/bg.jpg');
background-size: cover; background-size: cover;
background-attachment: fixed; background-attachment: fixed;
background-position: center; background-position: top;
background-repeat: no-repeat; background-repeat: no-repeat;
} }

View File

@ -4,6 +4,14 @@
margin: 0 auto; margin: 0 auto;
} }
.form-signin > .row {
width: 400px;
}
.form-signin-heading {
text-align: center;
}
.form-signin .form-signin-heading, .form-signin .checkbox, #inputEmail { .form-signin .form-signin-heading, .form-signin .checkbox, #inputEmail {
margin-bottom: 10px; margin-bottom: 10px;
} }
@ -38,39 +46,8 @@
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.account-wall { button {
margin-top: 20px; width: 100%;
padding: 40px 0px 20px 0px;
background-color: #f7f7f7;
-moz-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
}
.login-title {
color: #555;
font-size: 18px;
font-weight: 400;
display: block;
}
.profile-img {
width: 96px;
height: 96px;
margin: 0 auto 10px;
display: block;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
border-radius: 50%;
}
.need-help {
margin-top: 10px;
}
.new-account {
display: block;
margin-top: 10px;
} }
/* Loading Animation */ /* Loading Animation */

View File

@ -1,7 +1,6 @@
<form class="form-signin" (ngSubmit)="login(userName.value, password.value)"> <form class="form-signin" (ngSubmit)="login(userName.value, password.value)">
<div class="row">
<div class="row" style="position: absolute;width: 400px;left: 40%;"> <h2 class="form-signin-heading">Login</h2>
<h2 style="text-align: center;" class="form-signin-heading">Anmelden</h2>
<label for="inputEmail" class="sr-only">Benutzername</label> <label for="inputEmail" class="sr-only">Benutzername</label>
<input #userName id="inputEmail" class="form-control" placeholder="Benutzername" required="" autofocus=""> <input #userName id="inputEmail" class="form-control" placeholder="Benutzername" required="" autofocus="">
@ -9,15 +8,12 @@
<label for="inputPassword" class="sr-only">Passwort</label> <label for="inputPassword" class="sr-only">Passwort</label>
<input #password type="password" id="inputPassword" class="form-control" placeholder="Passwort" required=""> <input #password type="password" id="inputPassword" class="form-control" placeholder="Passwort" required="">
<div class="form-group"> <div class="form-group">
<button type="submit" class="btn btn-lg btn-block btn-primary"> <button mat-stroked-button type="submit">
<span *ngIf="!loading">Anmelden</span> <span *ngIf="!loading">Anmelden</span>
<span *ngIf="loading" class="glyphicon glyphicon-refresh glyphicon-refresh-animate"></span> <span *ngIf="loading" class="glyphicon glyphicon-refresh glyphicon-refresh-animate"></span>
</button> </button>
</div> </div>
</div> </div>
</form> </form>

View File

@ -1,6 +1,7 @@
:host { :host {
display: flow-root; display: flow-root;
height: 100%; height: 100%;
min-height: 100vh;
width: 100%; width: 100%;
margin-top: -23px; margin-top: -23px;
padding-top: 23px; padding-top: 23px;
@ -8,7 +9,7 @@
background-image: url('../../../assets/bg.jpg'); background-image: url('../../../assets/bg.jpg');
background-size: cover; background-size: cover;
background-attachment: fixed; background-attachment: fixed;
background-position: center; background-position: top;
background-repeat: no-repeat; background-repeat: no-repeat;
} }

View File

@ -1,6 +1,7 @@
:host { :host {
display: flow-root; display: flow-root;
height: 100%; height: 100%;
min-height: 100vh;
width: 100%; width: 100%;
margin-top: -23px; margin-top: -23px;
padding-top: 23px; padding-top: 23px;
@ -8,7 +9,7 @@
background-image: url('../../../assets/bg.jpg'); background-image: url('../../../assets/bg.jpg');
background-size: cover; background-size: cover;
background-attachment: fixed; background-attachment: fixed;
background-position: center; background-position: top;
background-repeat: no-repeat; background-repeat: no-repeat;
} }

View File

@ -1,6 +1,6 @@
.scroll-btn { .scroll-btn {
position: absolute; position: absolute;
height: 53px; height: 46px;
width: 32px; width: 32px;
cursor: pointer; cursor: pointer;
} }
@ -8,15 +8,11 @@
.scroll-btn-right { .scroll-btn-right {
top: 50px; top: 50px;
left: calc(100vw - 45px); left: calc(100vw - 45px);
background: linear-gradient(to right, rgba(255, 255, 255, 0.89), white);
}
.scroll-btn-left {
background: linear-gradient(to right, white, rgba(255, 255, 255, 0.89));
} }
.scroll-btn mat-icon { .scroll-btn mat-icon {
height: 53px height: 46px;
width: 28px;
} }
.campaign-horizontal-list { .campaign-horizontal-list {
@ -26,25 +22,28 @@
margin: 0; margin: 0;
padding: 0; padding: 0;
overflow: hidden; overflow: hidden;
box-shadow: #dadada 0 1px 5px; box-shadow: #666666 1px 1px 4px;
} }
.campaign-entry { .campaign-entry {
border: 1px solid #dadada; border: 1px solid #222222;
min-width: 120px; min-width: 20%;
width: 20%; max-height: 4em;
padding: 15px; padding: 10px 0;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
font-size: 16px; font-size: 16px;
float: left; float: left;
color: #333333; background: #424242;
color: #9d9d9d;
} }
.active { .active {
background: #e7e7e7; background: #222222;
color: white;
border-bottom: 3px solid #ffd740;
} }
.campaign-entry:hover { .campaign-entry:hover {
background: #f9f9f9; border-bottom: 3px solid #ffd740;
} }

View File

@ -1,4 +1,4 @@
<div class="scroll-btn scroll-btn-left" <div class="scroll-btn"
*ngIf="isLeftScrollVisible" *ngIf="isLeftScrollVisible"
(mouseenter)="setRepeater(-10)" (mouseenter)="setRepeater(-10)"
(mouseleave)="clearRepeater()"> (mouseleave)="clearRepeater()">

View File

@ -1,4 +1,4 @@
import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core'; import {Component, ElementRef, EventEmitter, Input, OnChanges, Output, ViewChild} from '@angular/core';
import {Campaign} from '../../../models/model-interfaces'; import {Campaign} from '../../../models/model-interfaces';
@Component({ @Component({
@ -6,7 +6,7 @@ import {Campaign} from '../../../models/model-interfaces';
templateUrl: './campaign-navigation.component.html', templateUrl: './campaign-navigation.component.html',
styleUrls: ['./campaign-navigation.component.css'] styleUrls: ['./campaign-navigation.component.css']
}) })
export class CampaignNavigationComponent implements OnInit { export class CampaignNavigationComponent implements OnChanges {
@Input() campaigns: Campaign[]; @Input() campaigns: Campaign[];
@ -22,7 +22,7 @@ export class CampaignNavigationComponent implements OnInit {
repeater; repeater;
ngOnInit() { ngOnChanges() {
this.isRightScrollVisible = this.campaigns.length > 4; this.isRightScrollVisible = this.campaigns.length > 4;
} }

View File

@ -6,13 +6,13 @@
padding-left: 5%; padding-left: 5%;
} }
:host /deep/ .carousel-indicators { mat-button-toggle.mat-button-toggle-checked {
display: none; background: #ffffff;
} }
:host /deep/ .carousel-control { mat-button-toggle {
width: 5%; color: #666666;
cursor: pointer; background: #e7e7e7;
} }
:host /deep/ .chart-legend { :host /deep/ .chart-legend {

View File

@ -1,14 +1,19 @@
<div class="slide-chart-container" style="height: 100px;padding-top: 20px; margin-top: 10px;"> <div class="slide-chart-container" style="height: 100px;padding-top: 20px; margin-top: 10px;">
<div class="btn btn-default" [style.background]="isActiveSlide(0)" <mat-button-toggle-group #viewToggle="matButtonToggleGroup"
(click)="goToSlide(0)" *ngIf="id != 'all'">Gesamtpunktzahl [value]="this.id !== 'all' ? '0' : '1'"
</div> (change)="goToSlide(viewToggle.value)">
<div class="btn btn-default" [style.background]="isActiveSlide(1)" <mat-button-toggle *ngIf="id != 'all'" value="0">
(click)="goToSlide(1)">Punkte je Schlacht Gesamtpunktzahl
</div> </mat-button-toggle>
<div class="btn btn-default" [style.background]="isActiveSlide(2)" <mat-button-toggle value="1">
(click)="goToSlide(2)">Spielerzahlen Punkte je Schlacht
</div> </mat-button-toggle>
<mat-button-toggle value="2">
Spielerzahlen
</mat-button-toggle>
</mat-button-toggle-group>
</div> </div>
<div class="fade-in"> <div class="fade-in">
<div class="slide-chart-container"> <div class="slide-chart-container">
<ngx-charts-line-chart <ngx-charts-line-chart

View File

@ -6,9 +6,9 @@ import {Fraction} from '../../../utils/fraction.enum';
@Component({ @Component({
selector: 'stats-overview', selector: 'cc-campaign-overview',
templateUrl: './stats-overview.component.html', templateUrl: './campaign-overview.component.html',
styleUrls: ['./stats-overview.component.css', '../../../style/list-entry.css', '../../../style/overview.css'] styleUrls: ['./campaign-overview.component.css']
}) })
export class StatisticOverviewComponent implements OnInit { export class StatisticOverviewComponent implements OnInit {
@ -21,7 +21,6 @@ export class StatisticOverviewComponent implements OnInit {
pointSumData: any[] = []; pointSumData: any[] = [];
playerData: any[] = []; playerData: any[] = [];
currentData: any[] = []; currentData: any[] = [];
activeSlideIndex;
colorScheme = { colorScheme = {
domain: [Fraction.COLOR_BLUFOR, Fraction.COLOR_OPFOR] domain: [Fraction.COLOR_BLUFOR, Fraction.COLOR_OPFOR]
@ -86,8 +85,8 @@ export class StatisticOverviewComponent implements OnInit {
}); });
} }
goToSlide(index: number) { goToSlide(index) {
switch (index) { switch (parseInt(index, 10)) {
case 0: case 0:
this.currentData = this.pointSumData; this.currentData = this.pointSumData;
this.yAxisLabel = 'Gesamtpunkte'; this.yAxisLabel = 'Gesamtpunkte';
@ -101,7 +100,6 @@ export class StatisticOverviewComponent implements OnInit {
this.yAxisLabel = 'Anzahl Spieler'; this.yAxisLabel = 'Anzahl Spieler';
break; break;
} }
this.activeSlideIndex = index;
} }
initChart(wars: any[]) { initChart(wars: any[]) {
@ -153,8 +151,4 @@ export class StatisticOverviewComponent implements OnInit {
} }
Object.assign(this, this.currentData); Object.assign(this, this.currentData);
} }
isActiveSlide(index) {
return this.activeSlideIndex === index ? '#d9edf7' : 'white';
}
} }

View File

@ -16,6 +16,7 @@
position: fixed; position: fixed;
top: calc(100vh - 35px); top: calc(100vh - 35px);
left: -10px; left: -10px;
background: white; background: #424242;
border: 1px solid #dadada; border: 1px solid #dadada;
box-shadow: #ffd740 0 0 3px;
} }

View File

@ -1,7 +1,6 @@
import {RouterModule, Routes} from '@angular/router'; import {RouterModule, Routes} from '@angular/router';
import {StatisticComponent} from './stats.component'; import {StatisticComponent} from './stats.component';
import {WarListComponent} from './war/war-list/war-list.component'; import {WarListComponent} from './war/war-list/war-list.component';
import {StatisticOverviewComponent} from './campaign/overview/stats-overview.component';
import {WarItemComponent} from './war/war-list/war-item.component'; import {WarItemComponent} from './war/war-list/war-item.component';
import {ModuleWithProviders} from '@angular/core'; import {ModuleWithProviders} from '@angular/core';
import {CampaignSubmitComponent} from './campaign/campaign-submit/campaign-submit.component'; import {CampaignSubmitComponent} from './campaign/campaign-submit/campaign-submit.component';
@ -14,6 +13,7 @@ import {WarHeaderComponent} from './war/war-header/war-header.component';
import {WarEditComponent} from './war/war-edit/war-edit.component'; import {WarEditComponent} from './war/war-edit/war-edit.component';
import {LoginGuardMT} from '../login'; import {LoginGuardMT} from '../login';
import {CampaignNavigationComponent} from './campaign/campaign-navigation/campaign-navigation.component'; import {CampaignNavigationComponent} from './campaign/campaign-navigation/campaign-navigation.component';
import {StatisticOverviewComponent} from './campaign/overview/campaign-overview.component';
export const statsRoutes: Routes = [ export const statsRoutes: Routes = [

View File

@ -21,8 +21,8 @@
} }
.select-indicator { .select-indicator {
width: 30px; width: 29px;
height: 30px; height: 29px;
position: absolute; position: absolute;
left: calc(100% + 11px); left: calc(100% + 11px);
background: -moz-linear-gradient(45deg, white 50%, transparent 50%); background: -moz-linear-gradient(45deg, white 50%, transparent 50%);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 KiB

After

Width:  |  Height:  |  Size: 809 KiB

View File

@ -46,6 +46,7 @@ form {
position: static; position: static;
float: left; float: left;
border-right: thin solid #dadada; border-right: thin solid #dadada;
box-shadow: #dadada 1px 1px 6px;
} }
#right { #right {