Unify all manage components to a single module (CC-58)

pull/46/head
HardiReady 2018-10-04 14:08:29 +02:00
parent 36e213bbbf
commit 35a6cdd806
72 changed files with 330 additions and 530 deletions

View File

@ -35,16 +35,16 @@
</a>
<ul class="dropdown-menu">
<li routerLinkActive="active">
<a routerLink='{{config.userPath}}' class="link">{{'navigation.top.management.users' | translate}}</a>
<a routerLink='{{config.manageUserPath}}' class="link">{{'navigation.top.management.users' | translate}}</a>
</li>
<li routerLinkActive="active">
<a routerLink='{{config.squadPath}}' class="link">{{'navigation.top.management.squads' | translate}}</a>
<a routerLink='{{config.manageSquadPath}}' class="link">{{'navigation.top.management.squads' | translate}}</a>
</li>
<li routerLinkActive="active">
<a routerLink='{{config.decorationPath}}' class="link">{{'navigation.top.management.decorations' | translate}}</a>
<a routerLink='{{config.manageDecorationPath}}' class="link">{{'navigation.top.management.decorations' | translate}}</a>
</li>
<li routerLinkActive="active">
<a routerLink='{{config.rankPath}}' class="link">{{'navigation.top.management.ranks' | translate}}</a>
<a routerLink='{{config.manageRankPath}}' class="link">{{'navigation.top.management.ranks' | translate}}</a>
</li>
</ul>
</li>

View File

@ -21,13 +21,14 @@ export class AppConfig {
export const RouteConfig = {
adminPanelPath: 'admin-panel',
decorationPath: 'decorations',
managePath: 'manage',
manageDecorationPath: 'manage/decorations',
manageRankPath: 'manage/ranks',
manageSquadPath: 'manage/squads',
manageUserPath: 'manage/users',
loginPath: 'login',
signUpPath: 'signup',
rankPath: 'ranks',
squadPath: 'squads',
statsPath: 'stats',
userPath: 'users',
overviewPath: 'overview',
request: 'request',
requestAwardPath: 'award',
@ -36,6 +37,8 @@ export const RouteConfig = {
confirmPromotionPath: 'confirm-promotion',
sqlDashboardPath: 'sql-dashboard',
publicPath: 'public',
decorationPath: 'decorations',
rankPath: 'ranks',
rankOverviewPath: 'public/ranks',
decorationOverviewPath: 'public/decorations',
};

View File

@ -23,23 +23,8 @@ export const appRoutes: Routes = [
loadChildren: './request/request.module#RequestModule'
},
{
path: RouteConfig.userPath,
loadChildren: './users/users.module#UsersModule',
canActivate: [LoginGuardHL]
},
{
path: RouteConfig.squadPath,
loadChildren: './squads/squads.module#SquadsModule',
canActivate: [LoginGuardHL]
},
{
path: RouteConfig.decorationPath,
loadChildren: './decorations/decoration.module#DecorationsModule',
canActivate: [LoginGuardHL]
},
{
path: RouteConfig.rankPath,
loadChildren: './ranks/ranks.module#RanksModule',
path: RouteConfig.managePath,
loadChildren: './manage/manage.module#ManageModule',
canActivate: [LoginGuardHL]
},
{

View File

@ -1,39 +0,0 @@
import {decorationRoutesModule, decorationsRoutingComponents} from './decoration.routing';
import {SharedModule} from '../shared.module';
import {CommonModule} from '@angular/common';
import {DecorationStore} from '../services/stores/decoration.store';
import {DecorationService} from '../services/army-management/decoration.service';
import {NgModule} from '@angular/core';
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/decorations/', '.json');
}
@NgModule({
declarations: decorationsRoutingComponents,
imports: [
CommonModule,
SharedModule,
decorationRoutesModule,
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
},
isolate: true
})],
providers: [
DecorationStore,
DecorationService
]
})
export class DecorationsModule {
static routes = decorationRoutesModule;
}

View File

@ -1,33 +0,0 @@
import {RouterModule, Routes} from '@angular/router';
import {DecorationListComponent} from './decoration-list/decoration-list.component';
import {EditDecorationComponent} from './edit-decoration/edit-decoration.component';
import {ModuleWithProviders} from '@angular/core';
import {DecorationItemComponent} from './decoration-list/decoration-item.component';
import {DecorationsComponent} from './decorations.component';
export const decorationsRoutes: Routes = [
{
path: '',
component: DecorationsComponent,
},
{
path: '',
component: DecorationListComponent,
outlet: 'left'
},
{
path: 'new',
component: EditDecorationComponent,
outlet: 'right'
},
{
path: 'edit/:id',
component: EditDecorationComponent,
outlet: 'right'
}];
export const decorationRoutesModule: ModuleWithProviders = RouterModule.forChild(decorationsRoutes);
export const decorationsRoutingComponents = [DecorationsComponent, DecorationItemComponent, DecorationListComponent,
EditDecorationComponent];

View File

@ -1,14 +0,0 @@
import { Component } from '@angular/core';
import {TranslateService} from '@ngx-translate/core';
@Component({
selector: 'cc-decorations-root',
templateUrl: './decorations.component.html',
styleUrls: ['./decorations.component.scss']
})
export class DecorationsComponent {
constructor(private translate: TranslateService) {
translate.setDefaultLang('de');
}
}

View File

@ -1,11 +1,11 @@
import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import {Decoration} from '../../models/model-interfaces';
import {Fraction} from '../../utils/fraction.enum';
import {Decoration} from '../../../models/model-interfaces';
import {Fraction} from '../../../utils/fraction.enum';
@Component({
selector: 'decoration-item',
templateUrl: './decoration-item.component.html',
styleUrls: ['./decoration-item.component.css', '../../style/list-entry.css'],
styleUrls: ['./decoration-item.component.css', '../../../style/list-entry.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DecorationItemComponent implements OnInit {

View File

@ -3,17 +3,17 @@ import {Component, OnInit} from '@angular/core';
import {FormControl} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import {Observable} from 'rxjs/Observable';
import {Decoration} from '../../models/model-interfaces';
import {DecorationService} from '../../services/army-management/decoration.service';
import {Fraction} from '../../utils/fraction.enum';
import {Decoration} from '../../../models/model-interfaces';
import {DecorationService} from '../../../services/army-management/decoration.service';
import {Fraction} from '../../../utils/fraction.enum';
import {MatButtonToggleGroup} from '@angular/material';
import {UIHelpers} from '../../utils/global.helpers';
import {UIHelpers} from '../../../utils/global.helpers';
import {TranslateService} from '@ngx-translate/core';
@Component({
selector: 'cc-decoration-list',
templateUrl: './decoration-list.component.html',
styleUrls: ['./decoration-list.component.css', '../../style/select-list.css']
styleUrls: ['./decoration-list.component.css', '../../../style/select-list.css']
})
export class DecorationListComponent implements OnInit {

View File

@ -1,17 +1,17 @@
import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {NgForm} from '@angular/forms';
import {Decoration} from '../../models/model-interfaces';
import {DecorationService} from '../../services/army-management/decoration.service';
import {Decoration} from '../../../models/model-interfaces';
import {DecorationService} from '../../../services/army-management/decoration.service';
import {Subscription} from 'rxjs/Subscription';
import {Fraction} from '../../utils/fraction.enum';
import {SnackBarService} from '../../services/user-interface/snack-bar/snack-bar.service';
import {Message} from '../../i18n/de.messages';
import {Fraction} from '../../../utils/fraction.enum';
import {SnackBarService} from '../../../services/user-interface/snack-bar/snack-bar.service';
import {Message} from '../../../i18n/de.messages';
import {TranslateService} from '@ngx-translate/core';
@Component({
templateUrl: './edit-decoration.component.html',
styleUrls: ['./edit-decoration.component.css', '../../style/entry-form.css', '../../style/overview.css']
styleUrls: ['./edit-decoration.component.css', '../../../style/entry-form.css', '../../../style/overview.css']
})
export class EditDecorationComponent implements OnInit, OnDestroy {

View File

@ -2,12 +2,11 @@ import {Component} from '@angular/core';
import {TranslateService} from '@ngx-translate/core';
@Component({
selector: 'cc-users-root',
templateUrl: './users.component.html',
styleUrls: ['./users.component.scss']
selector: 'cc-manage-root',
templateUrl: './manage.component.html',
styleUrls: ['./manage.component.scss']
})
export class UsersComponent {
export class ManageComponent {
constructor(private translate: TranslateService) {
this.translate.setDefaultLang('de');
}

View File

@ -1,24 +1,31 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {SharedModule} from '../shared.module';
import {squadRouterModule, squadsRoutingComponents} from './squads.routing';
import {SquadStore} from '../services/stores/squad.store';
import {SquadService} from '../services/army-management/squad.service';
import {CommonModule} from '@angular/common';
import {RankService} from '../services/army-management/rank.service';
import {DecorationService} from '../services/army-management/decoration.service';
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
import {HttpClient} from '@angular/common/http';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
import {manageRouterModule, manageRoutingComponents} from './manage.routing';
import {InfiniteScrollModule} from 'ngx-infinite-scroll';
import {DecorationStore} from '../services/stores/decoration.store';
import {RankStore} from '../services/stores/rank.store';
import {SquadStore} from '../services/stores/squad.store';
import {SquadService} from '../services/army-management/squad.service';
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/squads/', '.json');
return new TranslateHttpLoader(http, './assets/i18n/manage/', '.json');
}
@NgModule({
declarations: squadsRoutingComponents,
declarations: manageRoutingComponents,
imports: [
manageRouterModule,
CommonModule,
SharedModule,
squadRouterModule,
InfiniteScrollModule,
TranslateModule.forChild({
loader: {
@ -31,10 +38,14 @@ export function createTranslateLoader(http: HttpClient) {
],
providers: [
RankStore,
RankService,
DecorationStore,
DecorationService,
SquadStore,
SquadService
]
})
export class SquadsModule {
static routes = squadRouterModule;
export class ManageModule {
static routes = manageRouterModule;
}

View File

@ -0,0 +1,131 @@
import {RouterModule, Routes} from '@angular/router';
import {ModuleWithProviders} from '@angular/core';
import {ManageComponent} from './manage.component';
import {UserListComponent} from './users/user-list/user-list.component';
import {EditUserComponent} from './users/edit-user/edit-user.component';
import {AwardUserComponent} from './users/award-user/award-user.component';
import {RankListComponent} from './ranks/rank-list/rank-list.component';
import {EditRankComponent} from './ranks/edit-rank/edit-rank.component';
import {DecorationListComponent} from './decorations/decoration-list/decoration-list.component';
import {EditDecorationComponent} from './decorations/edit-decoration/edit-decoration.component';
import {SquadListComponent} from './squads/squad-list/squad-list.component';
import {EditSquadComponent} from './squads/edit-squad/edit-squad.component';
import {DecorationItemComponent} from './decorations/decoration-list/decoration-item.component';
import {RankItemComponent} from './ranks/rank-list/rank-item.component';
import {SquadItemComponent} from './squads/squad-list/squad-item.component';
import {UserItemComponent} from './users/user-list/user-item.component';
export const publicRoutes: Routes = [
{
path: 'decorations',
children: [
{
path: '',
component: ManageComponent,
outlet: 'left',
children: [{
path: '',
component: DecorationListComponent
}]
},
{
path: 'new',
component: EditDecorationComponent,
outlet: 'right'
},
{
path: 'edit/:id',
component: EditDecorationComponent,
outlet: 'right'
}
]
},
{
path: 'ranks',
children: [
{
path: '',
component: ManageComponent,
outlet: 'left',
children: [{
path: '',
component: RankListComponent
}]
},
{
path: 'new',
component: EditRankComponent,
outlet: 'right'
},
{
path: 'edit/:id',
component: EditRankComponent,
outlet: 'right'
}
]
},
{
path: 'squads',
children: [
{
path: '',
component: ManageComponent,
outlet: 'left',
children: [{
path: '',
component: SquadListComponent,
}]
},
{
path: 'new',
component: EditSquadComponent,
outlet: 'right'
},
{
path: 'edit/:id',
component: EditSquadComponent,
outlet: 'right'
}
]
},
{
path: 'users',
children: [
{
path: '',
component: ManageComponent,
outlet: 'left',
children: [{
path: '',
component: UserListComponent
}]
},
{
path: 'new',
component: EditUserComponent,
outlet: 'right'
},
{
path: 'edit/:id',
component: EditUserComponent,
outlet: 'right'
},
{
path: 'award/:id',
component: AwardUserComponent,
outlet: 'right'
}
]
}
];
export const manageRouterModule: ModuleWithProviders = RouterModule.forChild(publicRoutes);
export const manageRoutingComponents = [
ManageComponent,
DecorationListComponent, DecorationItemComponent, EditDecorationComponent,
RankListComponent, RankItemComponent, EditRankComponent,
SquadListComponent, SquadItemComponent, EditSquadComponent,
UserListComponent, UserItemComponent, EditUserComponent, AwardUserComponent
];

View File

@ -1,18 +1,18 @@
import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {NgForm} from '@angular/forms';
import {Rank} from '../../models/model-interfaces';
import {RankService} from '../../services/army-management/rank.service';
import {Rank} from '../../../models/model-interfaces';
import {RankService} from '../../../services/army-management/rank.service';
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 {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({
templateUrl: './edit-rank.component.html',
styleUrls: ['./edit-rank.component.css', '../../style/entry-form.css', '../../style/overview.css']
styleUrls: ['./edit-rank.component.css', '../../../style/entry-form.css', '../../../style/overview.css']
})
export class EditRankComponent implements OnInit, OnDestroy {

View File

@ -1,11 +1,11 @@
import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import {Rank} from '../../models/model-interfaces';
import {Fraction} from '../../utils/fraction.enum';
import {Rank} from '../../../models/model-interfaces';
import {Fraction} from '../../../utils/fraction.enum';
@Component({
selector: 'pjm-rank-item',
templateUrl: './rank-item.component.html',
styleUrls: ['./rank-item.component.css', '../../style/list-entry.css'],
styleUrls: ['./rank-item.component.css', '../../../style/list-entry.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class RankItemComponent implements OnInit {

View File

@ -3,17 +3,17 @@ import {Component, OnInit} from '@angular/core';
import {FormControl} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import {Observable} from 'rxjs/Observable';
import {Rank} from '../../models/model-interfaces';
import {RankService} from '../../services/army-management/rank.service';
import {Fraction} from '../../utils/fraction.enum';
import {UIHelpers} from '../../utils/global.helpers';
import {Rank} from '../../../models/model-interfaces';
import {RankService} from '../../../services/army-management/rank.service';
import {Fraction} from '../../../utils/fraction.enum';
import {UIHelpers} from '../../../utils/global.helpers';
import {MatButtonToggleGroup} from '@angular/material';
import {TranslateService} from '@ngx-translate/core';
@Component({
selector: 'cc-rank-list',
templateUrl: './rank-list.component.html',
styleUrls: ['./rank-list.component.css', '../../style/select-list.css']
styleUrls: ['./rank-list.component.css', '../../../style/select-list.css']
})
export class RankListComponent implements OnInit {

View File

@ -1,18 +1,18 @@
import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {NgForm} from '@angular/forms';
import {Squad} from '../../models/model-interfaces';
import {SquadService} from '../../services/army-management/squad.service';
import {Squad} from '../../../models/model-interfaces';
import {SquadService} from '../../../services/army-management/squad.service';
import {Subscription} from 'rxjs/Subscription';
import {Fraction} from '../../utils/fraction.enum';
import {SnackBarService} from '../../services/user-interface/snack-bar/snack-bar.service';
import {Message} from '../../i18n/de.messages';
import {Fraction} from '../../../utils/fraction.enum';
import {SnackBarService} from '../../../services/user-interface/snack-bar/snack-bar.service';
import {Message} from '../../../i18n/de.messages';
import {TranslateService} from '@ngx-translate/core';
@Component({
templateUrl: './edit-squad.component.html',
styleUrls: ['./edit-squad.component.css', '../../style/entry-form.css', '../../style/overview.css']
styleUrls: ['./edit-squad.component.css', '../../../style/entry-form.css', '../../../style/overview.css']
})
export class EditSquadComponent implements OnInit, OnDestroy {

View File

@ -1,11 +1,11 @@
import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import {Squad} from '../../models/model-interfaces';
import {Fraction} from '../../utils/fraction.enum';
import {Squad} from '../../../models/model-interfaces';
import {Fraction} from '../../../utils/fraction.enum';
@Component({
selector: 'pjm-squad-item',
templateUrl: './squad-item.component.html',
styleUrls: ['./squad-item.component.css', '../../style/list-entry.css'],
styleUrls: ['./squad-item.component.css', '../../../style/list-entry.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class SquadItemComponent implements OnInit {

View File

@ -3,17 +3,17 @@ import {Component, OnInit} from '@angular/core';
import {FormControl} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import {Observable} from 'rxjs/Observable';
import {Squad} from '../../models/model-interfaces';
import {SquadService} from '../../services/army-management/squad.service';
import {Fraction} from '../../utils/fraction.enum';
import {UIHelpers} from '../../utils/global.helpers';
import {Squad} from '../../../models/model-interfaces';
import {SquadService} from '../../../services/army-management/squad.service';
import {Fraction} from '../../../utils/fraction.enum';
import {UIHelpers} from '../../../utils/global.helpers';
import {MatButtonToggleGroup} from '@angular/material';
import {TranslateService} from '@ngx-translate/core';
@Component({
selector: 'cc-squad-list',
templateUrl: './squad-list.component.html',
styleUrls: ['./squad-list.component.css', '../../style/select-list.css']
styleUrls: ['./squad-list.component.css', '../../../style/select-list.css']
})
export class SquadListComponent implements OnInit {

View File

@ -1,18 +1,18 @@
import {Component, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {Award, Decoration} from '../../models/model-interfaces';
import {Award, Decoration} from '../../../models/model-interfaces';
import {NgForm} from '@angular/forms';
import {AwardingService} from '../../services/army-management/awarding.service';
import {DecorationService} from '../../services/army-management/decoration.service';
import {Fraction} from '../../utils/fraction.enum';
import {SnackBarService} from '../../services/user-interface/snack-bar/snack-bar.service';
import {Message} from '../../i18n/de.messages';
import {AwardingService} from '../../../services/army-management/awarding.service';
import {DecorationService} from '../../../services/army-management/decoration.service';
import {Fraction} from '../../../utils/fraction.enum';
import {SnackBarService} from '../../../services/user-interface/snack-bar/snack-bar.service';
import {Message} from '../../../i18n/de.messages';
import {TranslateService} from '@ngx-translate/core';
@Component({
templateUrl: './award-user.component.html',
styleUrls: ['./award-user.component.css', '../../style/overview.css', '../../style/hide-scrollbar.css'],
styleUrls: ['./award-user.component.css', '../../../style/overview.css', '../../../style/hide-scrollbar.css'],
})
export class AwardUserComponent implements OnInit {

View File

@ -1,19 +1,19 @@
import {Component, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {Rank, Squad, User} from '../../models/model-interfaces';
import {UserService} from '../../services/army-management/user.service';
import {SquadService} from '../../services/army-management/squad.service';
import {RankService} from '../../services/army-management/rank.service';
import {Rank, Squad, User} from '../../../models/model-interfaces';
import {UserService} from '../../../services/army-management/user.service';
import {SquadService} from '../../../services/army-management/squad.service';
import {RankService} from '../../../services/army-management/rank.service';
import {Subscription} from 'rxjs/Subscription';
import {NgForm} from '@angular/forms';
import {Fraction} from '../../utils/fraction.enum';
import {SnackBarService} from '../../services/user-interface/snack-bar/snack-bar.service';
import {Message} from '../../i18n/de.messages';
import {Fraction} from '../../../utils/fraction.enum';
import {SnackBarService} from '../../../services/user-interface/snack-bar/snack-bar.service';
import {Message} from '../../../i18n/de.messages';
@Component({
templateUrl: './edit-user.component.html',
styleUrls: ['./edit-user.component.css', '../../style/entry-form.css', '../../style/overview.css'],
styleUrls: ['./edit-user.component.css', '../../../style/entry-form.css', '../../../style/overview.css'],
})
export class EditUserComponent implements OnInit {

View File

@ -1,11 +1,11 @@
import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';
import {User} from '../../models/model-interfaces';
import {Fraction} from '../../utils/fraction.enum';
import {User} from '../../../models/model-interfaces';
import {Fraction} from '../../../utils/fraction.enum';
@Component({
selector: 'pjm-user-item',
templateUrl: './user-item.component.html',
styleUrls: ['./user-item.component.css', '../../style/list-entry.css'],
styleUrls: ['./user-item.component.css', '../../../style/list-entry.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class UserItemComponent {

View File

@ -3,18 +3,18 @@ import {Component, OnInit} from '@angular/core';
import {FormControl} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
import {Observable} from 'rxjs/Observable';
import {UserService} from '../../services/army-management/user.service';
import {User} from '../../models/model-interfaces';
import {ADD, LOAD} from '../../services/stores/user.store';
import {Fraction} from '../../utils/fraction.enum';
import {UserService} from '../../../services/army-management/user.service';
import {User} from '../../../models/model-interfaces';
import {ADD, LOAD} from '../../../services/stores/user.store';
import {Fraction} from '../../../utils/fraction.enum';
import {MatButtonToggleGroup} from '@angular/material';
import {UIHelpers} from '../../utils/global.helpers';
import {UIHelpers} from '../../../utils/global.helpers';
import {TranslateService} from '@ngx-translate/core';
@Component({
selector: 'cc-user-list',
templateUrl: './user-list.component.html',
styleUrls: ['./user-list.component.css', '../../style/select-list.css']
styleUrls: ['./user-list.component.css', '../../../style/select-list.css']
})
export class UserListComponent implements OnInit {
@ -69,7 +69,7 @@ export class UserListComponent implements OnInit {
}
deleteUser(user: User) {
this.translate.get('squad.list.delete.confirm', {name: user.username}).subscribe((confirmQuestion) => {
this.translate.get('users.list.delete.confirm', {name: user.username}).subscribe((confirmQuestion) => {
if (confirm(confirmQuestion)) {
this.userService.deleteUser(user)
.subscribe((res) => {

View File

@ -1 +0,0 @@
<router-outlet></router-outlet>

View File

@ -1,14 +0,0 @@
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');
}
}

View File

@ -1,38 +0,0 @@
import {NgModule} from '@angular/core';
import {rankRouterModule, ranksRoutingComponents} from './ranks.routing';
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,
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
},
isolate: true
})
],
providers: [
RankStore,
RankService
]
})
export class RanksModule {
static routes = rankRouterModule;
}

View File

@ -1,31 +0,0 @@
import {RouterModule, Routes} from '@angular/router';
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,
outlet: 'left'
},
{
path: 'new',
component: EditRankComponent,
outlet: 'right'
},
{
path: 'edit/:id',
component: EditRankComponent,
outlet: 'right'
}];
export const rankRouterModule: ModuleWithProviders = RouterModule.forChild(ranksRoutes);
export const ranksRoutingComponents = [RanksComponent, RankItemComponent, RankListComponent, EditRankComponent];

View File

@ -1 +0,0 @@
<router-outlet></router-outlet>

View File

@ -1,14 +0,0 @@
import {Component} from '@angular/core';
import {TranslateService} from '@ngx-translate/core';
@Component({
selector: 'cc-squads-root',
templateUrl: './squads.component.html',
styleUrls: ['./squads.component.scss']
})
export class SquadsComponent {
constructor(private translate: TranslateService) {
this.translate.setDefaultLang('de');
}
}

View File

@ -1,33 +0,0 @@
import {RouterModule, Routes} from '@angular/router';
import {SquadListComponent} from './squad-list/squad-list.component';
import {EditSquadComponent} from './edit-squad/edit-squad.component';
import {ModuleWithProviders} from '@angular/core';
import {SquadItemComponent} from './squad-list/squad-item.component';
import {SquadsComponent} from './squads.component';
export const squadsRoutes: Routes = [
{
path: '',
component: SquadsComponent
},
{
path: '',
component: SquadListComponent,
outlet: 'left'
},
{
path: 'new',
component: EditSquadComponent,
outlet: 'right'
},
{
path: 'edit/:id',
component: EditSquadComponent,
outlet: 'right'
}
];
export const squadRouterModule: ModuleWithProviders = RouterModule.forChild(squadsRoutes);
export const squadsRoutingComponents = [SquadsComponent, SquadItemComponent, SquadListComponent, EditSquadComponent];

View File

@ -1 +0,0 @@
<router-outlet></router-outlet>

View File

@ -1,35 +0,0 @@
import {NgModule} from '@angular/core';
import {usersRouterModule, usersRoutingComponents} from './users.routing';
import {CommonModule} from '@angular/common';
import {SharedModule} from '../shared.module';
import {InfiniteScrollModule} from 'ngx-infinite-scroll';
import {HttpClient} from '@angular/common/http';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/users/', '.json');
}
@NgModule({
declarations: usersRoutingComponents,
imports: [
CommonModule,
SharedModule,
InfiniteScrollModule,
usersRouterModule,
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
},
isolate: true
})
],
})
export class UsersModule {
static routes = usersRouterModule;
}

View File

@ -1,39 +0,0 @@
import {RouterModule, Routes} from '@angular/router';
import {EditUserComponent} from './edit-user/edit-user.component';
import {UserListComponent} from './user-list/user-list.component';
import {AwardUserComponent} from './award-user/award-user.component';
import {ModuleWithProviders} from '@angular/core';
import {UserItemComponent} from './user-list/user-item.component';
import {UsersComponent} from './users.component';
export const usersRoutes: Routes = [
{
path: '',
component: UsersComponent,
},
{
path: '',
component: UserListComponent,
outlet: 'left'
},
{
path: 'new',
component: EditUserComponent,
outlet: 'right'
},
{
path: 'edit/:id',
component: EditUserComponent,
outlet: 'right'
},
{
path: 'award/:id',
component: AwardUserComponent,
outlet: 'right'
}
];
export const usersRouterModule: ModuleWithProviders = RouterModule.forChild(usersRoutes);
export const usersRoutingComponents = [UsersComponent, UserItemComponent, UserListComponent, EditUserComponent,
AwardUserComponent];

View File

@ -1,31 +0,0 @@
{
"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",
"decorations.list.button.add": "Neue Auszeichnung hinzufügen",
"decorations.list.button.delete": "Löschen",
"decorations.list.filter.global": "Global",
"decorations.list.delete.confirm": "Soll die Auszeichnung '{{name}}' ({{fraction}}) wirklich gelöscht werden?",
"decorations.item.label.sort": " - Sortierung {{value}}",
"decorations.submit.headline.edit": "Auszeichnung bearbeiten",
"decorations.submit.headline.new": "Neue Auszeichnung hinzufügen",
"decorations.submit.field.name": "Name",
"decorations.submit.field.fraction": "Fraktion",
"decorations.submit.field.fraction.global": "Global",
"decorations.submit.field.type": "Art",
"decorations.submit.field.type.ribbon": "Ordensband",
"decorations.submit.field.type.medal": "Orden",
"decorations.submit.field.sort": "Sortierung",
"decorations.submit.field.description": "Beschreibung",
"decorations.submit.field.image": "Bild",
"decorations.submit.field.image.error.type": "Bild muss im PNG Format vorliegen",
"decorations.submit,button.submit": "Bestätigen",
"decorations.submit,button.cancel": "Abbrechen"
}

View File

@ -0,0 +1,94 @@
{
"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",
"decorations.list.button.add": "Neue Auszeichnung hinzufügen",
"decorations.list.button.delete": "Löschen",
"decorations.list.filter.global": "Global",
"decorations.list.delete.confirm": "Soll die Auszeichnung '{{name}}' ({{fraction}}) wirklich gelöscht werden?",
"decorations.item.label.sort": " - Sortierung {{value}}",
"decorations.submit.headline.edit": "Auszeichnung bearbeiten",
"decorations.submit.headline.new": "Neue Auszeichnung hinzufügen",
"decorations.submit.field.name": "Name",
"decorations.submit.field.fraction": "Fraktion",
"decorations.submit.field.fraction.global": "Global",
"decorations.submit.field.type": "Art",
"decorations.submit.field.type.ribbon": "Ordensband",
"decorations.submit.field.type.medal": "Orden",
"decorations.submit.field.sort": "Sortierung",
"decorations.submit.field.description": "Beschreibung",
"decorations.submit.field.image": "Bild",
"decorations.submit.field.image.error.type": "Bild muss im PNG Format vorliegen",
"decorations.submit,button.submit": "Bestätigen",
"decorations.submit,button.cancel": "Abbrechen",
"ranks.list.button.add": "Neuen Rank hinzufügen",
"ranks.list.button.delete": "Löschen",
"ranks.list.delete.confirm": "Soll der Rang '{{name}}' ({{fraction}}) wirklich gelöscht werden?",
"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",
"squad.list.tooltip.delete": "Löschen",
"squad.list.delete.confirm": "Soll das Squad '{{name}}' ({{fraction}}) wirklich gelöscht werden?",
"squad.list.tooltip.new": "Neues Squad hinzufügen",
"squad.submit.new.headline": "Neues Squad hinzufügen",
"squad.submit.edit.headline": "Squad bearbeiten",
"squad.submit.field.name": "Name",
"squad.submit.field.fraction": "Fraktion",
"squad.submit.field.sort": "Sortierung",
"squad.submit.field.logo": "Logo",
"squad.submit.error.logo.type": "Bild muss im PNG Format vorliegen",
"squad.submit.button.submit": "Bestätigen",
"squad.submit.button.cancel": "Abbrechen",
"users.list.tooltip.new": "Neuen Teilnehmer hinzufügen",
"users.list.tooltip.delete": "Löschen",
"users.list.tooltip.awards": "Auszeichnungen",
"users.list.filter.no.squad": "Ohne Squad",
"users.list.item.label.no.squad": "ohne Squad/Fraktion",
"users.list.delete.confirm": "Soll der Teilnehmer '{{name}}' wirklich gelöscht werden?",
"users.award.headline": "Teilnehmer auszeichnen",
"users.award.field.decoration": "Auszeichnung",
"users.award.field.decoration.placeholder": "Auswählen...",
"users.award.field.reason": "Begründung",
"users.award.field.reason.placeholder": "Begründung eingeben...",
"users.award.button.submit": "Bestätigen",
"users.award.button.cancel": "Abbrechen",
"users.award.table.head.image": "Bild",
"users.award.table.head.name": "Bezeichnung",
"users.award.table.head.reason": "Begründung",
"users.award.table.head.date": "Datum",
"users.award.table.head.status": "Status",
"users.award.table.button.delete": "Löschen",
"users.award.table.status.in.progress": "In Bearbeitung",
"users.award.table.status.approved": "Genehmigt",
"users.award.table.status.rejected": "Abgelehnt",
"user.submit.headline.new": "Neuen Teilnehmer hinzufügen",
"user.submit.headline.edit": "Teilnehmer bearbeiten",
"user.submit.field.name": "Name",
"user.submit.field.squad": "Squad",
"user.submit.field.squad.not.assigned": "Ohne Fraktion/ Squad",
"user.submit.field.rank": "Rang",
"user.submit.button.submit": "Bestätigen",
"user.submit.button.cancel": "Abbrechen"
}

View File

@ -1,24 +0,0 @@
{
"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.delete.confirm": "Soll der Rang '{{name}}' ({{fraction}}) wirklich gelöscht werden?",
"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"
}

View File

@ -1,3 +0,0 @@
{
}

View File

@ -1,22 +0,0 @@
{
"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",
"squad.list.tooltip.delete": "Löschen",
"squad.list.delete.confirm": "Soll das Squad '{{name}}' ({{fraction}}) wirklich gelöscht werden?",
"squad.list.tooltip.new": "Neues Squad hinzufügen",
"squad.submit.new.headline": "Neues Squad hinzufügen",
"squad.submit.edit.headline": "Squad bearbeiten",
"squad.submit.field.name": "Name",
"squad.submit.field.fraction": "Fraktion",
"squad.submit.field.sort": "Sortierung",
"squad.submit.field.logo": "Logo",
"squad.submit.error.logo.type": "Bild muss im PNG Format vorliegen",
"squad.submit.button.submit": "Bestätigen",
"squad.submit.button.cancel": "Abbrechen"
}

View File

@ -1,3 +0,0 @@
{
}

View File

@ -1,44 +0,0 @@
{
"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",
"users.list.tooltip.new": "Neuen Teilnehmer hinzufügen",
"users.list.tooltip.delete": "Löschen",
"users.list.tooltip.awards": "Auszeichnungen",
"users.list.filter.no.squad": "Ohne Squad",
"users.list.item.label.no.squad": "ohne Squad/Fraktion",
"ranks.list.delete.confirm": "Soll der Teilnehmer '{{name}}' wirklich gelöscht werden?",
"users.award.headline": "Teilnehmer auszeichnen",
"users.award.field.decoration": "Auszeichnung",
"users.award.field.decoration.placeholder": "Auswählen...",
"users.award.field.reason": "Begründung",
"users.award.field.reason.placeholder": "Begründung eingeben...",
"users.award.button.submit": "Bestätigen",
"users.award.button.cancel": "Abbrechen",
"users.award.table.head.image": "Bild",
"users.award.table.head.name": "Bezeichnung",
"users.award.table.head.reason": "Begründung",
"users.award.table.head.date": "Datum",
"users.award.table.head.status": "Status",
"users.award.table.button.delete": "Löschen",
"users.award.table.status.in.progress": "In Bearbeitung",
"users.award.table.status.approved": "Genehmigt",
"users.award.table.status.rejected": "Abgelehnt",
"user.submit.headline.new": "Neuen Teilnehmer hinzufügen",
"user.submit.headline.edit": "Teilnehmer bearbeiten",
"user.submit.field.name": "Name",
"user.submit.field.squad": "Squad",
"user.submit.field.squad.not.assigned": "Ohne Fraktion/ Squad",
"user.submit.field.rank": "Rang",
"user.submit.button.submit": "Bestätigen",
"user.submit.button.cancel": "Abbrechen"
}

View File

@ -1,3 +0,0 @@
{
}