Merge branch 'master' of git.noarch.de:hardi/opt-cc
						commit
						47975b41a3
					
				| 
						 | 
					@ -21,25 +21,8 @@
 | 
				
			||||||
          <li routerLinkActive="active">
 | 
					          <li routerLinkActive="active">
 | 
				
			||||||
            <a routerLink='{{config.overviewPath}}' class="link">Armeeübersicht</a>
 | 
					            <a routerLink='{{config.overviewPath}}' class="link">Armeeübersicht</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li class="dropdown">
 | 
					          <li routerLinkActive="active">
 | 
				
			||||||
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
 | 
					            <a routerLink='{{config.statsPath}}' class="link">Statistiken</a>
 | 
				
			||||||
               aria-expanded="false">
 | 
					 | 
				
			||||||
              Statistik
 | 
					 | 
				
			||||||
              <span class="caret"></span>
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
            <ul class="dropdown-menu scrollable-menu">
 | 
					 | 
				
			||||||
              <li *ngIf="loginService.hasPermission(3)">
 | 
					 | 
				
			||||||
                <a routerLink='{{config.warPath}}' class="link">Hinzufügen...</a>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
              <li>
 | 
					 | 
				
			||||||
                <a routerLink='{{config.statsPath}}' class="link">Übersicht</a>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
              <li *ngFor="let war of wars">
 | 
					 | 
				
			||||||
                <a routerLink='{{config.warPath}}/{{war._id}}'>{{war.title}}
 | 
					 | 
				
			||||||
                  <small>{{war.date | date: 'dd.MM.yy'}}</small>
 | 
					 | 
				
			||||||
                </a>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
            </ul>
 | 
					 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li *ngIf="loginService.hasPermission(2)" routerLinkActive="active">
 | 
					          <li *ngIf="loginService.hasPermission(2)" routerLinkActive="active">
 | 
				
			||||||
            <a routerLink='{{config.userPath}}' class="link">Teilnehmer</a>
 | 
					            <a routerLink='{{config.userPath}}' class="link">Teilnehmer</a>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,7 @@
 | 
				
			||||||
import {Component, Inject, Optional} from '@angular/core';
 | 
					import {Component, Inject, Optional} from '@angular/core';
 | 
				
			||||||
import {Route, Router} from '@angular/router';
 | 
					import {Router} from '@angular/router';
 | 
				
			||||||
import {LoginService} from './services/login-service/login-service';
 | 
					import {LoginService} from './services/login-service/login-service';
 | 
				
			||||||
import {AUTH_ENABLED} from './app.tokens';
 | 
					import {AUTH_ENABLED} from './app.tokens';
 | 
				
			||||||
import {WarService} from "./services/war-service/war.service";
 | 
					 | 
				
			||||||
import {War} from "./models/model-interfaces";
 | 
					 | 
				
			||||||
import {PromotionService} from "./services/promotion-service/promotion.service";
 | 
					import {PromotionService} from "./services/promotion-service/promotion.service";
 | 
				
			||||||
import {AwardingService} from "./services/awarding-service/awarding.service";
 | 
					import {AwardingService} from "./services/awarding-service/awarding.service";
 | 
				
			||||||
import {RouteConfig} from "./app.config";
 | 
					import {RouteConfig} from "./app.config";
 | 
				
			||||||
| 
						 | 
					@ -15,13 +13,10 @@ import {RouteConfig} from "./app.config";
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class AppComponent {
 | 
					export class AppComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  wars: War[] = [];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  config = RouteConfig;
 | 
					  config = RouteConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(@Optional() @Inject(AUTH_ENABLED) public authEnabled,
 | 
					  constructor(@Optional() @Inject(AUTH_ENABLED) public authEnabled,
 | 
				
			||||||
              private loginService: LoginService,
 | 
					              private loginService: LoginService,
 | 
				
			||||||
              private warService: WarService,
 | 
					 | 
				
			||||||
              private promotionService: PromotionService,
 | 
					              private promotionService: PromotionService,
 | 
				
			||||||
              private awardingService: AwardingService,
 | 
					              private awardingService: AwardingService,
 | 
				
			||||||
              private router: Router) {
 | 
					              private router: Router) {
 | 
				
			||||||
| 
						 | 
					@ -29,9 +24,6 @@ export class AppComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ngOnInit() {
 | 
					  ngOnInit() {
 | 
				
			||||||
    this.warService.getAllWars().subscribe((wars) => {
 | 
					 | 
				
			||||||
      this.wars = wars;
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    if (this.loginService.hasPermission(2)) {
 | 
					    if (this.loginService.hasPermission(2)) {
 | 
				
			||||||
      const fraction = this.loginService.getCurrentUser().squad.fraction;
 | 
					      const fraction = this.loginService.getCurrentUser().squad.fraction;
 | 
				
			||||||
      this.promotionService.checkUnconfirmedPromotions(fraction);
 | 
					      this.promotionService.checkUnconfirmedPromotions(fraction);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,6 @@ export const RouteConfig = {
 | 
				
			||||||
  statsPath: 'stats',
 | 
					  statsPath: 'stats',
 | 
				
			||||||
  userPath: 'users',
 | 
					  userPath: 'users',
 | 
				
			||||||
  overviewPath: 'overview',
 | 
					  overviewPath: 'overview',
 | 
				
			||||||
  warPath: 'war',
 | 
					 | 
				
			||||||
  requestAwardPath: 'request-award',
 | 
					  requestAwardPath: 'request-award',
 | 
				
			||||||
  requestPromotionPath: 'request-promotion',
 | 
					  requestPromotionPath: 'request-promotion',
 | 
				
			||||||
  confirmAwardPath: 'confirm-award',
 | 
					  confirmAwardPath: 'confirm-award',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@ import {HttpModule} from '@angular/http';
 | 
				
			||||||
import {AppComponent} from './app.component';
 | 
					import {AppComponent} from './app.component';
 | 
				
			||||||
import {LoginService} from "./services/login-service/login-service";
 | 
					import {LoginService} from "./services/login-service/login-service";
 | 
				
			||||||
import {UserStore} from "./services/stores/user.store";
 | 
					import {UserStore} from "./services/stores/user.store";
 | 
				
			||||||
import {ShowErrorComponent} from './show-error/show-error.component';
 | 
					import {ShowErrorComponent} from './common/show-error/show-error.component';
 | 
				
			||||||
import {APPLICATION_VALIDATORS} from './models/app-validators';
 | 
					import {APPLICATION_VALIDATORS} from './models/app-validators';
 | 
				
			||||||
import {appRouting, routingComponents, routingProviders} from './app.routing';
 | 
					import {appRouting, routingComponents, routingProviders} from './app.routing';
 | 
				
			||||||
import {AUTH_ENABLED} from './app.tokens';
 | 
					import {AUTH_ENABLED} from './app.tokens';
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
import {RouterModule, Routes} from "@angular/router";
 | 
					import {RouterModule, Routes} from "@angular/router";
 | 
				
			||||||
import {LoginComponent} from "./login/index";
 | 
					import {LoginComponent} from "./login/index";
 | 
				
			||||||
import {NotFoundComponent} from "./not-found/not-found.component";
 | 
					import {NotFoundComponent} from "./common/not-found/not-found.component";
 | 
				
			||||||
import {LoginGuardAdmin, LoginGuardHL, LoginGuardMT, LoginGuardSQL} from "./login/login.guard";
 | 
					import {LoginGuardAdmin, LoginGuardHL, LoginGuardMT, LoginGuardSQL} from "./login/login.guard";
 | 
				
			||||||
import {usersRoutes, usersRoutingComponents} from "./users/users.routing";
 | 
					import {usersRoutes, usersRoutingComponents} from "./users/users.routing";
 | 
				
			||||||
import {squadsRoutes, squadsRoutingComponents} from "./squads/squads.routing";
 | 
					import {squadsRoutes, squadsRoutingComponents} from "./squads/squads.routing";
 | 
				
			||||||
| 
						 | 
					@ -13,17 +13,15 @@ import {RequestAwardComponent} from "./request/award/req-award.component";
 | 
				
			||||||
import {RequestPromotionComponent} from "./request/promotion/req-promotion.component";
 | 
					import {RequestPromotionComponent} from "./request/promotion/req-promotion.component";
 | 
				
			||||||
import {ConfirmPromotionComponent} from "./request/confirm-promotion/confirm-promotion.component";
 | 
					import {ConfirmPromotionComponent} from "./request/confirm-promotion/confirm-promotion.component";
 | 
				
			||||||
import {ConfirmAwardComponent} from "./request/confirm-award/confirm-award.component";
 | 
					import {ConfirmAwardComponent} from "./request/confirm-award/confirm-award.component";
 | 
				
			||||||
import {warRoutes, warsRoutingComponents} from "./wars/wars.routing";
 | 
					 | 
				
			||||||
import {StatisticComponent} from "./statistic/statistic.component";
 | 
					 | 
				
			||||||
import {RouteConfig} from "./app.config";
 | 
					import {RouteConfig} from "./app.config";
 | 
				
			||||||
 | 
					import {statsRoutes, statsRoutingComponents} from "./statistic/stats.routing";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const appRoutes: Routes = [
 | 
					export const appRoutes: Routes = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  {path: RouteConfig.overviewPath, children: armyRoutes},
 | 
					  {path: RouteConfig.overviewPath, children: armyRoutes},
 | 
				
			||||||
  {path: '', redirectTo: RouteConfig.overviewPath, pathMatch: 'full'},
 | 
					  {path: '', redirectTo: RouteConfig.overviewPath, pathMatch: 'full'},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  {path: RouteConfig.warPath, children: warRoutes},
 | 
					  {path: RouteConfig.statsPath, children: statsRoutes},
 | 
				
			||||||
  {path: RouteConfig.statsPath, component: StatisticComponent},
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  {path: RouteConfig.loginPath, component: LoginComponent},
 | 
					  {path: RouteConfig.loginPath, component: LoginComponent},
 | 
				
			||||||
  {path: RouteConfig.signUpPath, component: SignupComponent},
 | 
					  {path: RouteConfig.signUpPath, component: SignupComponent},
 | 
				
			||||||
| 
						 | 
					@ -48,7 +46,7 @@ export const appRoutes: Routes = [
 | 
				
			||||||
export const appRouting = RouterModule.forRoot(appRoutes);
 | 
					export const appRouting = RouterModule.forRoot(appRoutes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const routingComponents = [LoginComponent, SignupComponent, RequestAwardComponent, RequestPromotionComponent, ConfirmAwardComponent,
 | 
					export const routingComponents = [LoginComponent, SignupComponent, RequestAwardComponent, RequestPromotionComponent, ConfirmAwardComponent,
 | 
				
			||||||
  ConfirmPromotionComponent, StatisticComponent, AdminComponent, ...armyRoutingComponents, NotFoundComponent, ...usersRoutingComponents,
 | 
					  ConfirmPromotionComponent, AdminComponent, ...armyRoutingComponents, NotFoundComponent, ...usersRoutingComponents,
 | 
				
			||||||
  ...squadsRoutingComponents, ...decorationsRoutingComponents, ...ranksRoutingComponents, ...warsRoutingComponents];
 | 
					  ...squadsRoutingComponents, ...decorationsRoutingComponents, ...ranksRoutingComponents, ...statsRoutingComponents];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const routingProviders = [LoginGuardSQL, LoginGuardHL, LoginGuardMT, LoginGuardAdmin];
 | 
					export const routingProviders = [LoginGuardSQL, LoginGuardHL, LoginGuardMT, LoginGuardAdmin];
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
h3 {
 | 
					h3 {
 | 
				
			||||||
  width: 920px;
 | 
					  width: 920px;
 | 
				
			||||||
  margin-left: 25%;
 | 
					  margin-left: 5%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.chart-container {
 | 
					.chart-container {
 | 
				
			||||||
  width: 1200px;
 | 
					  width: 1200px;
 | 
				
			||||||
  margin-left: 25%;
 | 
					  margin-left: 5%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,14 +1,13 @@
 | 
				
			||||||
import {Component} from "@angular/core";
 | 
					import {Component} from "@angular/core";
 | 
				
			||||||
import {AppComponent} from "../app.component";
 | 
					import {WarService} from "../../services/war-service/war.service";
 | 
				
			||||||
import {WarService} from "../services/war-service/war.service";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component({
 | 
					@Component({
 | 
				
			||||||
  selector: 'statistic',
 | 
					  selector: 'stats-overview',
 | 
				
			||||||
  templateUrl: './statistic.component.html',
 | 
					  templateUrl: './stats-overview.component.html',
 | 
				
			||||||
  styleUrls: ['./statistic.component.css']
 | 
					  styleUrls: ['./stats-overview.component.css']
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class StatisticComponent {
 | 
					export class StatisticOverviewComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  pointData: any[] = [];
 | 
					  pointData: any[] = [];
 | 
				
			||||||
  playerData: any[] = [];
 | 
					  playerData: any[] = [];
 | 
				
			||||||
| 
						 | 
					@ -17,19 +16,14 @@ export class StatisticComponent {
 | 
				
			||||||
    domain: ['#0000FF', '#B22222']
 | 
					    domain: ['#0000FF', '#B22222']
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(private appComponent: AppComponent,
 | 
					  constructor(private warService: WarService) {
 | 
				
			||||||
              private warService: WarService) {
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ngOnInit() {
 | 
					  ngOnInit() {
 | 
				
			||||||
    let wars = this.appComponent.wars;
 | 
					 | 
				
			||||||
    if (wars.length === 0) {
 | 
					 | 
				
			||||||
    this.warService.getAllWars().subscribe(items => {
 | 
					    this.warService.getAllWars().subscribe(items => {
 | 
				
			||||||
      this.initChart(items);
 | 
					      this.initChart(items);
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
    this.initChart(wars);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  initChart(wars: any[]) {
 | 
					  initChart(wars: any[]) {
 | 
				
			||||||
    let pointsObj = [
 | 
					    let pointsObj = [
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					#left {
 | 
				
			||||||
 | 
					  width: 320px;
 | 
				
			||||||
 | 
					  float: left;
 | 
				
			||||||
 | 
					  padding-right: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#right {
 | 
				
			||||||
 | 
					  overflow: hidden
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					<router-outlet></router-outlet>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					import {Component} from "@angular/core";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Component({
 | 
				
			||||||
 | 
					  selector: 'stats',
 | 
				
			||||||
 | 
					  templateUrl: './stats.component.html',
 | 
				
			||||||
 | 
					  styleUrls: ['./stats.component.css']
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					export class StatisticComponent {
 | 
				
			||||||
 | 
					  constructor() {
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					import {Routes} from "@angular/router";
 | 
				
			||||||
 | 
					import {StatisticComponent} from "./stats.component";
 | 
				
			||||||
 | 
					import {WarDetailComponent} from "./war-detail/war-detail.component";
 | 
				
			||||||
 | 
					import {WarSubmitComponent} from "./war-submit/war-submit.component";
 | 
				
			||||||
 | 
					import {WarListComponent} from "./war-list/war-list.component";
 | 
				
			||||||
 | 
					import {StatisticOverviewComponent} from "./overview/stats-overview.component";
 | 
				
			||||||
 | 
					import {WarItemComponent} from "./war-list/war-item.component";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const statsRoutes: Routes = [{
 | 
				
			||||||
 | 
					  path: '', component: StatisticComponent,
 | 
				
			||||||
 | 
					  children: [
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      path: '',
 | 
				
			||||||
 | 
					      component: WarListComponent
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    path: 'overview',
 | 
				
			||||||
 | 
					    component: StatisticOverviewComponent,
 | 
				
			||||||
 | 
					    outlet: 'right'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    path: 'new',
 | 
				
			||||||
 | 
					    component: WarSubmitComponent,
 | 
				
			||||||
 | 
					    outlet: 'right'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    path: 'war/:id',
 | 
				
			||||||
 | 
					    component: WarDetailComponent,
 | 
				
			||||||
 | 
					    outlet: 'right'
 | 
				
			||||||
 | 
					  }];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const statsRoutingComponents = [StatisticComponent, StatisticOverviewComponent, WarListComponent,
 | 
				
			||||||
 | 
					  WarSubmitComponent, WarDetailComponent, WarItemComponent];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
<div class="overview" xmlns="http://www.w3.org/1999/html">
 | 
					<div class="overview" xmlns="http://www.w3.org/1999/html">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <div style="margin-left: 5%; min-height: 263px;">
 | 
					  <div style="margin-left: 2%; min-height: 263px;">
 | 
				
			||||||
    <h2>{{war.title}} - vom {{war.date | date: 'dd.MM.yyyy'}}</h2>
 | 
					    <h2>{{war.title}} - vom {{war.date | date: 'dd.MM.yyyy'}}</h2>
 | 
				
			||||||
    <h3 class="pull-left">
 | 
					    <h3 class="pull-left">
 | 
				
			||||||
      <h4>Endpunktestand:</h4>
 | 
					      <h4>Endpunktestand:</h4>
 | 
				
			||||||
| 
						 | 
					@ -26,9 +26,6 @@
 | 
				
			||||||
    <div style="margin-left: 600px; margin-top:1%">
 | 
					    <div style="margin-left: 600px; margin-top:1%">
 | 
				
			||||||
      <a class="btn btn-default" style="margin: 20px" target="_blank" href="resource/logs/{{war._id}}/clean.log">Logfile
 | 
					      <a class="btn btn-default" style="margin: 20px" target="_blank" href="resource/logs/{{war._id}}/clean.log">Logfile
 | 
				
			||||||
        anzeigen</a>
 | 
					        anzeigen</a>
 | 
				
			||||||
      <button *ngIf="loginService.hasPermission(3)" class="btn btn-warning" style="margin: 20px" (click)="delete()">
 | 
					 | 
				
			||||||
        Schlacht löschen
 | 
					 | 
				
			||||||
      </button>
 | 
					 | 
				
			||||||
      <form class="form-group">
 | 
					      <form class="form-group">
 | 
				
			||||||
        <label class="radio-inline">
 | 
					        <label class="radio-inline">
 | 
				
			||||||
          <input type="radio" name="fractSelect"
 | 
					          <input type="radio" name="fractSelect"
 | 
				
			||||||
| 
						 | 
					@ -53,7 +50,7 @@
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <div class="pull-left" style="margin-left: 5%">
 | 
					  <div class="pull-left" style="margin-left: 2%">
 | 
				
			||||||
    <div class="table-container scoreboard-table-container">
 | 
					    <div class="table-container scoreboard-table-container">
 | 
				
			||||||
      <table class="table table-hover" [mfData]="players" #mf="mfDataTable" [(mfSortBy)]="sortBy"
 | 
					      <table class="table table-hover" [mfData]="players" #mf="mfDataTable" [(mfSortBy)]="sortBy"
 | 
				
			||||||
             [(mfSortOrder)]="sortOrder">
 | 
					             [(mfSortOrder)]="sortOrder">
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
import {Component} from "@angular/core";
 | 
					import {Component} from "@angular/core";
 | 
				
			||||||
import {Player, War} from "../models/model-interfaces";
 | 
					 | 
				
			||||||
import {WarService} from "../services/war-service/war.service";
 | 
					 | 
				
			||||||
import {ActivatedRoute, Router} from "@angular/router";
 | 
					import {ActivatedRoute, Router} from "@angular/router";
 | 
				
			||||||
import {LoginService} from "../services/login-service/login-service";
 | 
					import {WarService} from "../../services/war-service/war.service";
 | 
				
			||||||
 | 
					import {LoginService} from "../../services/login-service/login-service";
 | 
				
			||||||
 | 
					import {Player, War} from "../../models/model-interfaces";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component({
 | 
					@Component({
 | 
				
			||||||
| 
						 | 
					@ -24,10 +24,8 @@ export class WarDetailComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  playerChart: any[] = [];
 | 
					  playerChart: any[] = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(private router: Router,
 | 
					  constructor(private route: ActivatedRoute,
 | 
				
			||||||
              private route: ActivatedRoute,
 | 
					              private warService: WarService) {
 | 
				
			||||||
              private warService: WarService,
 | 
					 | 
				
			||||||
              private loginService: LoginService) {
 | 
					 | 
				
			||||||
    Object.assign(this, this.playerChart)
 | 
					    Object.assign(this, this.playerChart)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,13 +60,4 @@ export class WarDetailComponent {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  delete() {
 | 
					 | 
				
			||||||
    if (confirm('Soll die Schlacht "' + this.war.title + '" wirklich gelöscht werden?')) {
 | 
					 | 
				
			||||||
      this.warService.deleteWar(this.war._id)
 | 
					 | 
				
			||||||
        .subscribe((res) => {
 | 
					 | 
				
			||||||
          this.router.navigate(['../..'], {relativeTo: this.route});
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					<div class="fade-in list-entry" [ngClass]="{selected : selected}" (click)="select()">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="row">
 | 
				
			||||||
 | 
					    <div class="col-xs-9">
 | 
				
			||||||
 | 
					      <span>
 | 
				
			||||||
 | 
					        <a>{{war.title}}</a>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					      <br>
 | 
				
			||||||
 | 
					      <small >vom {{war.date | date: 'dd.MM.yyyy'}}</small>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div class="col-xs-3">
 | 
				
			||||||
 | 
					      <span (click)="delete(); $event.stopPropagation()" title="Löschen" class="glyphicon glyphicon-trash trash" *ngIf="loginService.hasPermission(3)"></span>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,38 @@
 | 
				
			||||||
 | 
					import {ChangeDetectionStrategy, Component, EventEmitter} from "@angular/core";
 | 
				
			||||||
 | 
					import {War} from "../../models/model-interfaces";
 | 
				
			||||||
 | 
					import {LoginService} from "../../services/login-service/login-service";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Component({
 | 
				
			||||||
 | 
					  selector: 'pjm-war-item',
 | 
				
			||||||
 | 
					  templateUrl: './war-item.component.html',
 | 
				
			||||||
 | 
					  styleUrls: ['./war-item.component.css', '../../style/list-entry.css'],
 | 
				
			||||||
 | 
					  changeDetection: ChangeDetectionStrategy.OnPush,
 | 
				
			||||||
 | 
					  inputs: ['war', 'selected'],
 | 
				
			||||||
 | 
					  outputs: ['warSelected', 'warDelete']
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					export class WarItemComponent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  selected: boolean;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  war: War;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  warSelected = new EventEmitter();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  warDelete = new EventEmitter();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  constructor(private loginService: LoginService) {
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ngOnInit() {
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  select() {
 | 
				
			||||||
 | 
					    this.warSelected.emit(this.war._id)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  delete() {
 | 
				
			||||||
 | 
					    this.warDelete.emit(this.war);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					.search-bar {
 | 
				
			||||||
 | 
					  padding-top: 20px;
 | 
				
			||||||
 | 
					  padding-bottom: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.rank-list {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					<div class="war-list">
 | 
				
			||||||
 | 
					  <div class="input-group search-bar" style="width:100%" *ngIf="loginService.hasPermission(3)">
 | 
				
			||||||
 | 
					    <a class="pull-left btn btn-success" (click)="selectNewWar()">
 | 
				
			||||||
 | 
					      Schlacht hinzufügen
 | 
				
			||||||
 | 
					    </a>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="fade-in list-entry" style="margin-top: 30px; margin-bottom: 30px;" [ngClass]="{selected : selectedWarId == '0'}" (click)="selectOverview()">
 | 
				
			||||||
 | 
					    <div class="row">
 | 
				
			||||||
 | 
					      <div class="col-xs-9">
 | 
				
			||||||
 | 
					      <span style="margin:auto">
 | 
				
			||||||
 | 
					        <a>Zusammenfassung</a>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <pjm-war-item *ngFor="let war of wars"
 | 
				
			||||||
 | 
					                [war]="war"
 | 
				
			||||||
 | 
					                (warDelete)="deleteWar(war)"
 | 
				
			||||||
 | 
					                (warSelected)="selectWar($event)"
 | 
				
			||||||
 | 
					                [selected]="war._id == selectedWarId">
 | 
				
			||||||
 | 
					  </pjm-war-item>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,57 @@
 | 
				
			||||||
 | 
					import {Component, OnInit} from "@angular/core";
 | 
				
			||||||
 | 
					import {ActivatedRoute, Router} from "@angular/router";
 | 
				
			||||||
 | 
					import {War} from "../../models/model-interfaces";
 | 
				
			||||||
 | 
					import {WarService} from "../../services/war-service/war.service";
 | 
				
			||||||
 | 
					import {LoginService} from "../../services/login-service/login-service";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Component({
 | 
				
			||||||
 | 
					  selector: 'war-list',
 | 
				
			||||||
 | 
					  templateUrl: './war-list.component.html',
 | 
				
			||||||
 | 
					  styleUrls: ['./war-list.component.css', '../../style/list-entry.css']
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					export class WarListComponent implements OnInit {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  selectedWarId: string | number = '0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  wars: War[] = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  constructor(private warService: WarService,
 | 
				
			||||||
 | 
					              private loginService: LoginService,
 | 
				
			||||||
 | 
					              private router: Router,
 | 
				
			||||||
 | 
					              private route: ActivatedRoute) {
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ngOnInit() {
 | 
				
			||||||
 | 
					    this.warService.getAllWars().subscribe((items) => {
 | 
				
			||||||
 | 
					      this.wars = items;
 | 
				
			||||||
 | 
					      this.router.navigate([{outlets: {'right': ['overview']}}], {relativeTo: this.route});
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  selectNewWar() {
 | 
				
			||||||
 | 
					    this.selectedWarId = null;
 | 
				
			||||||
 | 
					    this.router.navigate([{outlets: {'right': ['new']}}], {relativeTo: this.route});
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  selectWar(warId: string | number) {
 | 
				
			||||||
 | 
					    this.selectedWarId = warId;
 | 
				
			||||||
 | 
					    this.router.navigate([{outlets: {'right': ['war', warId]}}], {relativeTo: this.route});
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  selectOverview() {
 | 
				
			||||||
 | 
					    this.selectedWarId = '0';
 | 
				
			||||||
 | 
					    this.router.navigate([{outlets: {'right': ['overview']}}], {relativeTo: this.route});
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  deleteWar(war: War) {
 | 
				
			||||||
 | 
					    if (confirm('Soll die Schlacht ' + war.title + ' wirklich gelöscht werden?')) {
 | 
				
			||||||
 | 
					      this.warService.deleteWar(war._id)
 | 
				
			||||||
 | 
					        .subscribe((res) => {
 | 
				
			||||||
 | 
					          if (this.selectedWarId === war._id) {
 | 
				
			||||||
 | 
					            this.selectOverview();
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          this.wars.splice(this.wars.indexOf(war), 1);
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.load-arrow {
 | 
					.load-arrow {
 | 
				
			||||||
  background: url(../../assets/loading.png) no-repeat;
 | 
					  background: url(../../../assets/loading.png) no-repeat;
 | 
				
			||||||
  display: block;
 | 
					  display: block;
 | 
				
			||||||
  width: 120px;
 | 
					  width: 120px;
 | 
				
			||||||
  height: 120px;
 | 
					  height: 120px;
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
import {Component, ViewChild} from "@angular/core";
 | 
					import {Component, ViewChild} from "@angular/core";
 | 
				
			||||||
import {Player, War} from "../models/model-interfaces";
 | 
					 | 
				
			||||||
import {WarService} from "../services/war-service/war.service";
 | 
					 | 
				
			||||||
import {ActivatedRoute, Router} from "@angular/router";
 | 
					import {ActivatedRoute, Router} from "@angular/router";
 | 
				
			||||||
import {NgForm} from "@angular/forms";
 | 
					import {NgForm} from "@angular/forms";
 | 
				
			||||||
 | 
					import {WarService} from "../../services/war-service/war.service";
 | 
				
			||||||
 | 
					import {War} from "../../models/model-interfaces";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component({
 | 
					@Component({
 | 
				
			||||||
| 
						 | 
					@ -1,19 +0,0 @@
 | 
				
			||||||
import {Routes} from "@angular/router";
 | 
					 | 
				
			||||||
import {WarSubmitComponent} from "./war-submit.component";
 | 
					 | 
				
			||||||
import {WarDetailComponent} from "./war-detail.component";
 | 
					 | 
				
			||||||
import {LoginGuardMT} from "../login/login.guard";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const warRoutes: Routes = [
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    path: '',
 | 
					 | 
				
			||||||
    component: WarSubmitComponent,
 | 
					 | 
				
			||||||
    canActivate: [LoginGuardMT]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    path: ':id',
 | 
					 | 
				
			||||||
    component: WarDetailComponent,
 | 
					 | 
				
			||||||
  }];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const warsRoutingComponents = [WarSubmitComponent, WarDetailComponent];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue