Add translation module and add i18n strings for initial pages (CC-57)
							parent
							
								
									4c781dd101
								
							
						
					
					
						commit
						0f37c06fc6
					
				| 
						 | 
					@ -12,39 +12,39 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <ul class="nav navbar-nav">
 | 
					        <ul class="nav navbar-nav">
 | 
				
			||||||
          <li routerLinkActive="active">
 | 
					          <li routerLinkActive="active">
 | 
				
			||||||
            <a href="https://www.opt4.net/dashboard" class="link">Zum Forum</a>
 | 
					            <a href="https://www.opt4.net/dashboard" class="link">{{'navigation.top.board' | translate}}</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li routerLinkActive="active">
 | 
					          <li routerLinkActive="active">
 | 
				
			||||||
            <a routerLink='{{config.overviewPath}}' class="link">Armeeübersicht</a>
 | 
					            <a routerLink='{{config.overviewPath}}' class="link">{{'navigation.top.overview' | translate}}</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li routerLinkActive="active">
 | 
					          <li routerLinkActive="active">
 | 
				
			||||||
            <a [routerLink]="[config.publicPath.concat('/').concat(config.rankPath)]" class="link">Ränge</a>
 | 
					            <a [routerLink]="[config.publicPath.concat('/').concat(config.rankPath)]" class="link">{{'navigation.top.ranks' | translate}}</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li routerLinkActive="active">
 | 
					          <li routerLinkActive="active">
 | 
				
			||||||
            <a [routerLink]="[config.publicPath.concat('/').concat(config.decorationPath)]" class="link">Auszeichnungen</a>
 | 
					            <a [routerLink]="[config.publicPath.concat('/').concat(config.decorationPath)]" class="link">{{'navigation.top.decorations' | translate}}</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li routerLinkActive="active">
 | 
					          <li routerLinkActive="active">
 | 
				
			||||||
            <a routerLink='{{config.statsPath}}' class="link">Statistiken</a>
 | 
					            <a routerLink='{{config.statsPath}}' class="link">{{'navigation.top.statistics' | translate}}</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li *ngIf="loginService.hasPermission(2)"
 | 
					          <li *ngIf="loginService.hasPermission(2)"
 | 
				
			||||||
              class="dropdown">
 | 
					              class="dropdown">
 | 
				
			||||||
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
 | 
					            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
 | 
				
			||||||
               aria-expanded="false">
 | 
					               aria-expanded="false">
 | 
				
			||||||
              Verwaltung
 | 
					              {{'navigation.top.management' | translate}}57
 | 
				
			||||||
              <span class="caret"></span>
 | 
					              <span class="caret"></span>
 | 
				
			||||||
            </a>
 | 
					            </a>
 | 
				
			||||||
            <ul class="dropdown-menu">
 | 
					            <ul class="dropdown-menu">
 | 
				
			||||||
              <li routerLinkActive="active">
 | 
					              <li routerLinkActive="active">
 | 
				
			||||||
                <a routerLink='{{config.userPath}}' class="link">Teilnehmer</a>
 | 
					                <a routerLink='{{config.userPath}}' class="link">{{'navigation.top.management.users' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
              <li routerLinkActive="active">
 | 
					              <li routerLinkActive="active">
 | 
				
			||||||
                <a routerLink='{{config.squadPath}}' class="link">Squads</a>
 | 
					                <a routerLink='{{config.squadPath}}' class="link">{{'navigation.top.management.squads' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
              <li routerLinkActive="active">
 | 
					              <li routerLinkActive="active">
 | 
				
			||||||
                <a routerLink='{{config.decorationPath}}' class="link">Auszeichnungen</a>
 | 
					                <a routerLink='{{config.decorationPath}}' class="link">{{'navigation.top.management.decorations' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
              <li routerLinkActive="active">
 | 
					              <li routerLinkActive="active">
 | 
				
			||||||
                <a routerLink='{{config.rankPath}}' class="link">Ränge</a>
 | 
					                <a routerLink='{{config.rankPath}}' class="link">{{'navigation.top.management.ranks' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
            </ul>
 | 
					            </ul>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
| 
						 | 
					@ -52,18 +52,18 @@
 | 
				
			||||||
              class="dropdown">
 | 
					              class="dropdown">
 | 
				
			||||||
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
 | 
					            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
 | 
				
			||||||
               aria-expanded="false">
 | 
					               aria-expanded="false">
 | 
				
			||||||
              Beantragen
 | 
					              {{'navigation.top.request' | translate}}
 | 
				
			||||||
              <span class="caret"></span>
 | 
					              <span class="caret"></span>
 | 
				
			||||||
            </a>
 | 
					            </a>
 | 
				
			||||||
            <ul class="dropdown-menu">
 | 
					            <ul class="dropdown-menu">
 | 
				
			||||||
              <li>
 | 
					              <li>
 | 
				
			||||||
                <a routerLink="{{config.request}}/{{config.sqlDashboardPath}}">Offene Anträge</a>
 | 
					                <a routerLink="{{config.request}}/{{config.sqlDashboardPath}}">{{'navigation.top.request.open' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
              <li>
 | 
					              <li>
 | 
				
			||||||
                <a routerLink="{{config.request}}/{{config.requestPromotionPath}}">Beförderung</a>
 | 
					                <a routerLink="{{config.request}}/{{config.requestPromotionPath}}">{{'navigation.top.request.promotion' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
              <li>
 | 
					              <li>
 | 
				
			||||||
                <a routerLink="{{config.request}}/{{config.requestAwardPath}}">Orden/ Auszeichnung</a>
 | 
					                <a routerLink="{{config.request}}/{{config.requestAwardPath}}">{{'navigation.top.request.award' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
            </ul>
 | 
					            </ul>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
| 
						 | 
					@ -72,31 +72,31 @@
 | 
				
			||||||
               [ngClass]="{'unprocessed': promotionService.hasUnprocessedPromotion || awardingService.hasUnprocessedAwards}"
 | 
					               [ngClass]="{'unprocessed': promotionService.hasUnprocessedPromotion || awardingService.hasUnprocessedAwards}"
 | 
				
			||||||
               class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
 | 
					               class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
 | 
				
			||||||
               aria-expanded="false">
 | 
					               aria-expanded="false">
 | 
				
			||||||
              Anträge
 | 
					              {{'navigation.top.request.manage' | translate}}
 | 
				
			||||||
              <span class="caret"></span>
 | 
					              <span class="caret"></span>
 | 
				
			||||||
            </a>
 | 
					            </a>
 | 
				
			||||||
            <ul class="dropdown-menu">
 | 
					            <ul class="dropdown-menu">
 | 
				
			||||||
              <li>
 | 
					              <li>
 | 
				
			||||||
                <a [ngClass]="{'unprocessed-child': promotionService.hasUnprocessedPromotion}"
 | 
					                <a [ngClass]="{'unprocessed-child': promotionService.hasUnprocessedPromotion}"
 | 
				
			||||||
                   routerLink="{{config.request}}/{{config.confirmPromotionPath}}">Beförderung</a>
 | 
					                   routerLink="{{config.request}}/{{config.confirmPromotionPath}}">{{'navigation.top.request.promotion' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
              <li>
 | 
					              <li>
 | 
				
			||||||
                <a [ngClass]="{'unprocessed-child': awardingService.hasUnprocessedAwards}"
 | 
					                <a [ngClass]="{'unprocessed-child': awardingService.hasUnprocessedAwards}"
 | 
				
			||||||
                   routerLink="{{config.request}}/{{config.confirmAwardPath}}">Orden/ Auszeichnung</a>
 | 
					                   routerLink="{{config.request}}/{{config.confirmAwardPath}}">{{'navigation.top.request.award' | translate}}</a>
 | 
				
			||||||
              </li>
 | 
					              </li>
 | 
				
			||||||
            </ul>
 | 
					            </ul>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <ul class="nav navbar-nav" style="float: right">
 | 
					        <ul class="nav navbar-nav pull-right">
 | 
				
			||||||
          <li *ngIf="loginService.hasPermission(4)" routerLinkActive="active">
 | 
					          <li *ngIf="loginService.hasPermission(4)" routerLinkActive="active">
 | 
				
			||||||
            <a routerLink='{{config.adminPanelPath}}' class="link">Admin Panel</a>
 | 
					            <a routerLink='{{config.adminPanelPath}}' class="link">{{'navigation.top.admin' | translate}}</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li *ngIf="loginService.isLoggedIn()" class="link" style="cursor: pointer">
 | 
					          <li *ngIf="loginService.isLoggedIn()" class="link" style="cursor: pointer">
 | 
				
			||||||
            <a (click)="logout()">Abmelden</a>
 | 
					            <a (click)="logout()">{{'navigation.top.logout' | translate}}</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li *ngIf="!loginService.isLoggedIn()" routerLinkActive="active">
 | 
					          <li *ngIf="!loginService.isLoggedIn()" routerLinkActive="active">
 | 
				
			||||||
            <a routerLink='{{config.loginPath}}' class="link">Login</a>
 | 
					            <a routerLink='{{config.loginPath}}' class="link">{{'navigation.top.login' | translate}}</a>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
| 
						 | 
					@ -122,7 +122,7 @@
 | 
				
			||||||
        mat-mini-fab
 | 
					        mat-mini-fab
 | 
				
			||||||
        id="scrollTopBtn"
 | 
					        id="scrollTopBtn"
 | 
				
			||||||
        *ngIf="scrollTopVisible"
 | 
					        *ngIf="scrollTopVisible"
 | 
				
			||||||
        matTooltip="Zum Seitenanfang"
 | 
					        matTooltip="{{'navigation.button.scroll.top' | translate}}"
 | 
				
			||||||
        (click)="scrollToTop()">
 | 
					        (click)="scrollToTop()">
 | 
				
			||||||
  <mat-icon svgIcon="arrow-up"></mat-icon>
 | 
					  <mat-icon svgIcon="arrow-up"></mat-icon>
 | 
				
			||||||
</button>
 | 
					</button>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,7 @@ import {DOCUMENT} from '@angular/common';
 | 
				
			||||||
import {DomSanitizer} from '@angular/platform-browser';
 | 
					import {DomSanitizer} from '@angular/platform-browser';
 | 
				
			||||||
import {MatIconRegistry} from '@angular/material';
 | 
					import {MatIconRegistry} from '@angular/material';
 | 
				
			||||||
import {SpinnerService} from './services/user-interface/spinner/spinner.service';
 | 
					import {SpinnerService} from './services/user-interface/spinner/spinner.service';
 | 
				
			||||||
 | 
					import {TranslateService} from '@ngx-translate/core';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
declare function require(url: string);
 | 
					declare function require(url: string);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,6 +65,7 @@ export class AppComponent implements OnInit {
 | 
				
			||||||
              private iconRegistry: MatIconRegistry,
 | 
					              private iconRegistry: MatIconRegistry,
 | 
				
			||||||
              private sanitizer: DomSanitizer,
 | 
					              private sanitizer: DomSanitizer,
 | 
				
			||||||
              private spinnerService: SpinnerService,
 | 
					              private spinnerService: SpinnerService,
 | 
				
			||||||
 | 
					              private translate: TranslateService,
 | 
				
			||||||
              @Inject(DOCUMENT) private document) {
 | 
					              @Inject(DOCUMENT) private document) {
 | 
				
			||||||
    this.initMaterialSvgIcons();
 | 
					    this.initMaterialSvgIcons();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -85,6 +87,15 @@ export class AppComponent implements OnInit {
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ngOnInit() {
 | 
				
			||||||
 | 
					    this.translate.setDefaultLang('de');
 | 
				
			||||||
 | 
					    if (this.loginService.hasPermission(2)) {
 | 
				
			||||||
 | 
					      const fraction = this.loginService.getCurrentUser().squad.fraction;
 | 
				
			||||||
 | 
					      this.promotionService.checkUnconfirmedPromotions(fraction);
 | 
				
			||||||
 | 
					      this.awardingService.checkUnprocessedAwards(fraction);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  toggleSpinner(active) {
 | 
					  toggleSpinner(active) {
 | 
				
			||||||
    this.loading = active;
 | 
					    this.loading = active;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					@ -103,14 +114,6 @@ export class AppComponent implements OnInit {
 | 
				
			||||||
      || document.documentElement.scrollTop > this.scrollBtnVisibleVal;
 | 
					      || document.documentElement.scrollTop > this.scrollBtnVisibleVal;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ngOnInit() {
 | 
					 | 
				
			||||||
    if (this.loginService.hasPermission(2)) {
 | 
					 | 
				
			||||||
      const fraction = this.loginService.getCurrentUser().squad.fraction;
 | 
					 | 
				
			||||||
      this.promotionService.checkUnconfirmedPromotions(fraction);
 | 
					 | 
				
			||||||
      this.awardingService.checkUnprocessedAwards(fraction);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  logout() {
 | 
					  logout() {
 | 
				
			||||||
    this.loginService.logout();
 | 
					    this.loginService.logout();
 | 
				
			||||||
    setTimeout(() => {
 | 
					    setTimeout(() => {
 | 
				
			||||||
| 
						 | 
					@ -122,5 +125,13 @@ export class AppComponent implements OnInit {
 | 
				
			||||||
    this.document.body.scrollTop = 0; // For Safari
 | 
					    this.document.body.scrollTop = 0; // For Safari
 | 
				
			||||||
    this.document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
 | 
					    this.document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // TODO: use!
 | 
				
			||||||
 | 
					  // private setLanguage(settings: SettingsState) {
 | 
				
			||||||
 | 
					  //   const { language } = settings;
 | 
				
			||||||
 | 
					  //   if (language) {
 | 
				
			||||||
 | 
					  //     this.translate.use(language);
 | 
				
			||||||
 | 
					  //   }
 | 
				
			||||||
 | 
					  // }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,6 @@ import {RankService} from './services/army-management/rank.service';
 | 
				
			||||||
import {AppConfig} from './app.config';
 | 
					import {AppConfig} from './app.config';
 | 
				
			||||||
import {LoginGuardAdmin, LoginGuardHL, LoginGuardSQL} from './login';
 | 
					import {LoginGuardAdmin, LoginGuardHL, LoginGuardSQL} from './login';
 | 
				
			||||||
import {AwardingService} from './services/army-management/awarding.service';
 | 
					import {AwardingService} from './services/army-management/awarding.service';
 | 
				
			||||||
import {HttpClient} from './services/http-client';
 | 
					 | 
				
			||||||
import {ArmyService} from './services/army-service/army.service';
 | 
					import {ArmyService} from './services/army-service/army.service';
 | 
				
			||||||
import {ClipboardModule} from 'ngx-clipboard';
 | 
					import {ClipboardModule} from 'ngx-clipboard';
 | 
				
			||||||
import {PromotionService} from './services/army-management/promotion.service';
 | 
					import {PromotionService} from './services/army-management/promotion.service';
 | 
				
			||||||
| 
						 | 
					@ -26,10 +25,20 @@ import {SnackBarService} from './services/user-interface/snack-bar/snack-bar.ser
 | 
				
			||||||
import {HttpClientModule} from '@angular/common/http';
 | 
					import {HttpClientModule} from '@angular/common/http';
 | 
				
			||||||
import {SpinnerService} from './services/user-interface/spinner/spinner.service';
 | 
					import {SpinnerService} from './services/user-interface/spinner/spinner.service';
 | 
				
			||||||
import {MatSnackBarModule} from '@angular/material';
 | 
					import {MatSnackBarModule} from '@angular/material';
 | 
				
			||||||
 | 
					import {HttpClient} from './services/http-client';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@NgModule({
 | 
					@NgModule({
 | 
				
			||||||
  imports: [SharedModule, BrowserModule, BrowserAnimationsModule, appRouting, HttpModule, HttpClientModule,
 | 
					  imports: [
 | 
				
			||||||
    ClipboardModule, MatSnackBarModule],
 | 
					    SharedModule,
 | 
				
			||||||
 | 
					    BrowserModule,
 | 
				
			||||||
 | 
					    BrowserAnimationsModule,
 | 
				
			||||||
 | 
					    appRouting,
 | 
				
			||||||
 | 
					    HttpModule,
 | 
				
			||||||
 | 
					    HttpClientModule,
 | 
				
			||||||
 | 
					    ClipboardModule,
 | 
				
			||||||
 | 
					    MatSnackBarModule,
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  providers: [
 | 
					  providers: [
 | 
				
			||||||
    HttpClient,
 | 
					    HttpClient,
 | 
				
			||||||
    LoginService,
 | 
					    LoginService,
 | 
				
			||||||
| 
						 | 
					@ -53,10 +62,15 @@ import {MatSnackBarModule} from '@angular/material';
 | 
				
			||||||
    SnackBarService,
 | 
					    SnackBarService,
 | 
				
			||||||
    SpinnerService,
 | 
					    SpinnerService,
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  declarations: [
 | 
					  declarations: [
 | 
				
			||||||
    AppComponent,
 | 
					    AppComponent,
 | 
				
			||||||
    routingComponents],
 | 
					    routingComponents
 | 
				
			||||||
  bootstrap: [AppComponent]
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  bootstrap: [
 | 
				
			||||||
 | 
					    AppComponent
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class AppModule {
 | 
					export class AppModule {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,7 @@
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div>
 | 
					  <div>
 | 
				
			||||||
    <div class="squad-cell squad-member-count">
 | 
					    <div class="squad-cell squad-member-count">
 | 
				
			||||||
      Mitglieder: {{squad.memberCount}}
 | 
					      {{'public army.squad.members' | translate}} {{squad.memberCount}}
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<div style="width: 1100px; margin:auto; position: relative;">
 | 
					<div style="width: 1100px; margin:auto; position: relative;">
 | 
				
			||||||
  <h1>Übersicht über alle Spieler, Squads und Armeen</h1>
 | 
					  <h1>{{'public.army.headline' | translate}}</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <div class="pull-left army-column">
 | 
					  <div class="pull-left army-column">
 | 
				
			||||||
    <h3 class="army-head" [style.color]="fraction.COLOR_BLUFOR">{{fraction.BLUFOR}}</h3>
 | 
					    <h3 class="army-head" [style.color]="fraction.COLOR_BLUFOR">{{fraction.BLUFOR}}</h3>
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@
 | 
				
			||||||
                   squadFraction="BLUFOR"
 | 
					                   squadFraction="BLUFOR"
 | 
				
			||||||
                   (memberSelect)="select($event)">
 | 
					                   (memberSelect)="select($event)">
 | 
				
			||||||
    </cc-army-squad>
 | 
					    </cc-army-squad>
 | 
				
			||||||
    <div class="member-count">Armeemitglieder: {{army[0].memberCount}}</div>
 | 
					    <div class="member-count">{{'public.army.members' | translate}} {{army[0].memberCount}}</div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <div class="pull-right army-column">
 | 
					  <div class="pull-right army-column">
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,6 @@
 | 
				
			||||||
                   squadFraction="OPFOR"
 | 
					                   squadFraction="OPFOR"
 | 
				
			||||||
                   (memberSelect)="select($event)">
 | 
					                   (memberSelect)="select($event)">
 | 
				
			||||||
    </cc-army-squad>
 | 
					    </cc-army-squad>
 | 
				
			||||||
    <div class="member-count">Armeemitglieder: {{army[1].memberCount}}</div>
 | 
					    <div class="member-count">{{'public.army.members' | translate}} {{army[1].memberCount}}</div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,5 +32,4 @@ export class ArmyComponent implements OnInit {
 | 
				
			||||||
  select(memberId) {
 | 
					  select(memberId) {
 | 
				
			||||||
    this.router.navigate(['member', memberId], {relativeTo: this.route});
 | 
					    this.router.navigate(['member', memberId], {relativeTo: this.route});
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,13 +7,55 @@ import {SearchFieldComponent} from './common/user-interface/search-field/search-
 | 
				
			||||||
import {MatButtonToggleModule, MatTooltipModule} from '@angular/material';
 | 
					import {MatButtonToggleModule, MatTooltipModule} from '@angular/material';
 | 
				
			||||||
import {MatButtonModule} from '@angular/material/button';
 | 
					import {MatButtonModule} from '@angular/material/button';
 | 
				
			||||||
import {MatIconModule} from '@angular/material/icon';
 | 
					import {MatIconModule} from '@angular/material/icon';
 | 
				
			||||||
 | 
					import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
 | 
				
			||||||
 | 
					import {HttpClient} from '@angular/common/http';
 | 
				
			||||||
 | 
					import {TranslateHttpLoader} from '@ngx-translate/http-loader';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@NgModule({
 | 
					@NgModule({
 | 
				
			||||||
  declarations: [ShowErrorComponent, ListFilterComponent, SearchFieldComponent],
 | 
					  declarations: [
 | 
				
			||||||
  imports: [CommonModule, FormsModule, ReactiveFormsModule, MatButtonToggleModule, MatButtonModule, MatIconModule,
 | 
					    ShowErrorComponent,
 | 
				
			||||||
    MatTooltipModule],
 | 
					    ListFilterComponent,
 | 
				
			||||||
  exports: [FormsModule, ReactiveFormsModule, MatButtonToggleModule, MatButtonModule, MatIconModule, ShowErrorComponent,
 | 
					    SearchFieldComponent
 | 
				
			||||||
    ListFilterComponent, SearchFieldComponent, MatTooltipModule],
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  imports: [
 | 
				
			||||||
 | 
					    CommonModule,
 | 
				
			||||||
 | 
					    FormsModule,
 | 
				
			||||||
 | 
					    ReactiveFormsModule,
 | 
				
			||||||
 | 
					    MatButtonToggleModule,
 | 
				
			||||||
 | 
					    MatButtonModule,
 | 
				
			||||||
 | 
					    MatIconModule,
 | 
				
			||||||
 | 
					    MatTooltipModule,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 3rd party
 | 
				
			||||||
 | 
					    TranslateModule.forRoot({
 | 
				
			||||||
 | 
					      loader: {
 | 
				
			||||||
 | 
					        provide: TranslateLoader,
 | 
				
			||||||
 | 
					        useFactory: HttpLoaderFactory,
 | 
				
			||||||
 | 
					        deps: [HttpClient]
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  exports: [
 | 
				
			||||||
 | 
					    FormsModule,
 | 
				
			||||||
 | 
					    ReactiveFormsModule,
 | 
				
			||||||
 | 
					    MatButtonToggleModule,
 | 
				
			||||||
 | 
					    MatButtonModule,
 | 
				
			||||||
 | 
					    MatIconModule,
 | 
				
			||||||
 | 
					    ShowErrorComponent,
 | 
				
			||||||
 | 
					    ListFilterComponent,
 | 
				
			||||||
 | 
					    SearchFieldComponent,
 | 
				
			||||||
 | 
					    MatTooltipModule,
 | 
				
			||||||
 | 
					    TranslateModule],
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class SharedModule {
 | 
					export class SharedModule {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function HttpLoaderFactory(http: HttpClient) {
 | 
				
			||||||
 | 
					  return new TranslateHttpLoader(
 | 
				
			||||||
 | 
					    http,
 | 
				
			||||||
 | 
					    `/assets/i18n/`,
 | 
				
			||||||
 | 
					    '.json'
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue