diff --git a/static/src/app/ranks/edit-rank/edit-rank.component.html b/static/src/app/ranks/edit-rank/edit-rank.component.html index 9b0d94e..e0b16a1 100644 --- a/static/src/app/ranks/edit-rank/edit-rank.component.html +++ b/static/src/app/ranks/edit-rank/edit-rank.component.html @@ -1,44 +1,43 @@
-

Rang editieren

-

Neuen Rang hinzufügen

+

{{'ranks.submit.headline.edit' | translate}}

+

{{'ranks.submit.headline.new' | translate}}

- + - - +
- + - +
- + - +
- + - Bild muss im PNG Format vorliegen + {{'ranks.submit.field.image.error.format' | translate}} @@ -47,7 +46,7 @@ diff --git a/static/src/app/ranks/edit-rank/edit-rank.component.ts b/static/src/app/ranks/edit-rank/edit-rank.component.ts index 07497c3..3a566b1 100644 --- a/static/src/app/ranks/edit-rank/edit-rank.component.ts +++ b/static/src/app/ranks/edit-rank/edit-rank.component.ts @@ -7,6 +7,7 @@ import {Subscription} from 'rxjs/Subscription'; import {Fraction} from '../../utils/fraction.enum'; import {Message} from '../../i18n/de.messages'; import {SnackBarService} from '../../services/user-interface/snack-bar/snack-bar.service'; +import {TranslateService} from '@ngx-translate/core'; @Component({ @@ -34,7 +35,8 @@ export class EditRankComponent implements OnInit, OnDestroy { constructor(private route: ActivatedRoute, private router: Router, private rankService: RankService, - private snackBarService: SnackBarService) { + private snackBarService: SnackBarService, + private translate: TranslateService) { } ngOnInit() { @@ -73,7 +75,12 @@ export class EditRankComponent implements OnInit, OnDestroy { this.router.navigate(['..'], {relativeTo: this.route}); }); } else { - return window.alert(`Bild ist ein Pflichtfeld`); + this.translate.get('ranks.submit.field.image').subscribe((fieldNameIMage) => { + this.translate.get('public.error.message.required', + {fieldName: fieldNameIMage}).subscribe((message) => { + this.snackBarService.showError(message, 4000); + }) + }); } } else { if (this.fileList) { @@ -95,12 +102,4 @@ export class EditRankComponent implements OnInit, OnDestroy { this.router.navigate([this.rank._id ? '../..' : '..'], {relativeTo: this.route}); return false; } - - canDeactivate(): boolean { - if (this.saved || !this.form.dirty) { - return true; - } - return window.confirm(`Ihr Formular besitzt ungespeicherte Änderungen, möchten Sie die Seite wirklich verlassen?`); - } - } diff --git a/static/src/app/ranks/rank-list/rank-item.component.html b/static/src/app/ranks/rank-list/rank-item.component.html index 3ae7b0b..5b65a98 100644 --- a/static/src/app/ranks/rank-list/rank-item.component.html +++ b/static/src/app/ranks/rank-list/rank-item.component.html @@ -8,12 +8,13 @@
{{fraction.OPFOR}} {{fraction.BLUFOR}} - - Stufe {{rank.level}} + {{'ranks.list.item.label.level' | translate:{level: rank.level} }}
- +
diff --git a/static/src/app/ranks/rank-list/rank-list.component.html b/static/src/app/ranks/rank-list/rank-list.component.html index 7be0fd2..7c5ac4a 100644 --- a/static/src/app/ranks/rank-list/rank-list.component.html +++ b/static/src/app/ranks/rank-list/rank-list.component.html @@ -2,7 +2,7 @@ diff --git a/static/src/app/ranks/ranks.component.html b/static/src/app/ranks/ranks.component.html new file mode 100644 index 0000000..0680b43 --- /dev/null +++ b/static/src/app/ranks/ranks.component.html @@ -0,0 +1 @@ + diff --git a/static/src/app/ranks/ranks.component.scss b/static/src/app/ranks/ranks.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/static/src/app/ranks/ranks.component.ts b/static/src/app/ranks/ranks.component.ts new file mode 100644 index 0000000..f05c382 --- /dev/null +++ b/static/src/app/ranks/ranks.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import {TranslateService} from '@ngx-translate/core'; + +@Component({ + selector: 'cc-ranks-root', + templateUrl: './ranks.component.html', + styleUrls: ['./ranks.component.scss'] +}) +export class RanksComponent { + + constructor(private translate: TranslateService) { + translate.setDefaultLang('de'); + } +} diff --git a/static/src/app/ranks/ranks.module.ts b/static/src/app/ranks/ranks.module.ts index 9940058..1ec36e3 100644 --- a/static/src/app/ranks/ranks.module.ts +++ b/static/src/app/ranks/ranks.module.ts @@ -4,11 +4,34 @@ import {SharedModule} from '../shared.module'; import {CommonModule} from '@angular/common'; import {RankService} from '../services/army-management/rank.service'; import {RankStore} from '../services/stores/rank.store'; +import {TranslateLoader, TranslateModule} from '@ngx-translate/core'; +import {HttpClient} from '@angular/common/http'; +import {TranslateHttpLoader} from '@ngx-translate/http-loader'; + +export function createTranslateLoader(http: HttpClient) { + return new TranslateHttpLoader(http, './assets/i18n/ranks/', '.json'); +} @NgModule({ declarations: ranksRoutingComponents, - imports: [CommonModule, SharedModule, rankRouterModule], - providers: [RankStore, RankService] + imports: [ + CommonModule, + SharedModule, + rankRouterModule, + + TranslateModule.forChild({ + loader: { + provide: TranslateLoader, + useFactory: (createTranslateLoader), + deps: [HttpClient] + }, + isolate: true + }) + ], + providers: [ + RankStore, + RankService + ] }) export class RanksModule { static routes = rankRouterModule; diff --git a/static/src/app/ranks/ranks.routing.ts b/static/src/app/ranks/ranks.routing.ts index 076775b..4cc697b 100644 --- a/static/src/app/ranks/ranks.routing.ts +++ b/static/src/app/ranks/ranks.routing.ts @@ -3,8 +3,13 @@ import {RankListComponent} from './rank-list/rank-list.component'; import {EditRankComponent} from './edit-rank/edit-rank.component'; import {RankItemComponent} from './rank-list/rank-item.component'; import {ModuleWithProviders} from '@angular/core'; +import {RanksComponent} from './ranks.component'; export const ranksRoutes: Routes = [ + { + path: '', + component: RanksComponent, + }, { path: '', component: RankListComponent, @@ -23,5 +28,4 @@ export const ranksRoutes: Routes = [ export const rankRouterModule: ModuleWithProviders = RouterModule.forChild(ranksRoutes); -export const ranksRoutingComponents = [RankItemComponent, RankListComponent, EditRankComponent]; - +export const ranksRoutingComponents = [RanksComponent, RankItemComponent, RankListComponent, EditRankComponent]; diff --git a/static/src/app/squads/edit-squad/edit-squad.component.ts b/static/src/app/squads/edit-squad/edit-squad.component.ts index 9542769..1a0a22a 100644 --- a/static/src/app/squads/edit-squad/edit-squad.component.ts +++ b/static/src/app/squads/edit-squad/edit-squad.component.ts @@ -75,10 +75,10 @@ export class EditSquadComponent implements OnInit, OnDestroy { this.router.navigate(['..'], {relativeTo: this.route}); }); } else { - this.translate.get('squad.submit.field.logo').subscribe((fieldNameLogfile) => { + this.translate.get('squad.submit.field.logo').subscribe((fieldNameLogo) => { this.translate.get('public.error.message.required', - {fieldName: fieldNameLogfile}).subscribe((message) => { - return window.alert(message); + {fieldName: fieldNameLogo}).subscribe((message) => { + this.snackBarService.showError(message, 4000); }) }); } diff --git a/static/src/app/statistic/war/war-submit/war-submit.component.ts b/static/src/app/statistic/war/war-submit/war-submit.component.ts index 6dc009a..c037c8f 100644 --- a/static/src/app/statistic/war/war-submit/war-submit.component.ts +++ b/static/src/app/statistic/war/war-submit/war-submit.component.ts @@ -66,7 +66,7 @@ export class WarSubmitComponent { this.translate.get('stats.war.submit.logfile').subscribe((fieldNameLogfile) => { this.translate.get('public.error.message.required', {fieldName: fieldNameLogfile}).subscribe((message) => { - return window.alert(message); + this.snackBarService.showError(message, 4000); }) }) } diff --git a/static/src/app/users/edit-user/edit-user.component.ts b/static/src/app/users/edit-user/edit-user.component.ts index 4cc5803..702e375 100644 --- a/static/src/app/users/edit-user/edit-user.component.ts +++ b/static/src/app/users/edit-user/edit-user.component.ts @@ -130,5 +130,4 @@ export class EditUserComponent implements OnInit { return o1._id === o2._id; } } - } diff --git a/static/src/assets/i18n/ranks/de.json b/static/src/assets/i18n/ranks/de.json new file mode 100644 index 0000000..38db0a0 --- /dev/null +++ b/static/src/assets/i18n/ranks/de.json @@ -0,0 +1,23 @@ +{ + "public.error.message.required": "{{fieldName}} ist ein Pflichtfeld", + "public.error.message.min.length": "{{fieldName}} muss mindestens {{boundary}} Zeichen enthalten", + "public.error.message.max.length": "{{fieldName}} darf maximal {{boundary}} Zeichen enthalten", + "public.error.message.email": "Bitte geben Sie eine gültige E-Mail Adresse an", + "public.error.message.no.user": "Der eingetragene Benutzer existiert nicht.", + "public.error.message.default": "{{fieldName}} ist nicht valide", + "public.common.search.button": "Suchen", + + "ranks.list.button.add": "Neuen Rank hinzufügen", + "ranks.list.button.delete": "Löschen", + "ranks.list.item.label.level": " - Stufe {{level}}", + + "ranks.submit.headline.new": "Neuen Rang hinzufügen", + "ranks.submit.headline.edit": "Rang bearbeiten", + "ranks.submit.field.name": "Name", + "ranks.submit.field.fraction": "Fraktion", + "ranks.submit.field.level": "Stufe", + "ranks.submit.field.image": "Bild", + "ranks.submit.field.image.error.format": "Bild muss im PNG Format vorliegen", + "ranks.submit.button.submit": "Bestätigen", + "ranks.submit.button.cancel": "Abbrechen" +} diff --git a/static/src/assets/i18n/ranks/en.json b/static/src/assets/i18n/ranks/en.json new file mode 100644 index 0000000..0db3279 --- /dev/null +++ b/static/src/assets/i18n/ranks/en.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/static/src/assets/i18n/squads/de.json b/static/src/assets/i18n/squads/de.json index dd76273..37d4f51 100644 --- a/static/src/assets/i18n/squads/de.json +++ b/static/src/assets/i18n/squads/de.json @@ -1,5 +1,4 @@ { - "public.error.headline": "Oops, diese Seite kennen wir nicht...", "public.error.message.required": "{{fieldName}} ist ein Pflichtfeld", "public.error.message.min.length": "{{fieldName}} muss mindestens {{boundary}} Zeichen enthalten", "public.error.message.max.length": "{{fieldName}} darf maximal {{boundary}} Zeichen enthalten", diff --git a/static/src/assets/i18n/users/de.json b/static/src/assets/i18n/users/de.json index 1d2b505..67489a8 100644 --- a/static/src/assets/i18n/users/de.json +++ b/static/src/assets/i18n/users/de.json @@ -1,5 +1,4 @@ { - "public.error.headline": "Oops, diese Seite kennen wir nicht...", "public.error.message.required": "{{fieldName}} ist ein Pflichtfeld", "public.error.message.min.length": "{{fieldName}} muss mindestens {{boundary}} Zeichen enthalten", "public.error.message.max.length": "{{fieldName}} darf maximal {{boundary}} Zeichen enthalten",