mods
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
# Application
|
||||||
|
DEVELOP_MODE=false
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
MYSQL_USER=db_user
|
MYSQL_USER=db_user
|
||||||
MYSQL_PASSWORD=PAssword123
|
MYSQL_PASSWORD=PAssword123
|
||||||
|
|||||||
@@ -4,10 +4,11 @@ import { CylinderService } from './cylinder.service';
|
|||||||
import { AuthModule } from '../auth/auth.module';
|
import { AuthModule } from '../auth/auth.module';
|
||||||
import { DatabaseModule } from 'src/shared/database/database.module';
|
import { DatabaseModule } from 'src/shared/database/database.module';
|
||||||
import { SharedServiceModule } from 'src/shared/service/shared.service.module';
|
import { SharedServiceModule } from 'src/shared/service/shared.service.module';
|
||||||
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
controllers: [CylinderController],
|
controllers: [CylinderController],
|
||||||
providers: [CylinderService],
|
providers: [CylinderService, ConfigService],
|
||||||
imports: [AuthModule, DatabaseModule, SharedServiceModule],
|
imports: [AuthModule, DatabaseModule, SharedServiceModule],
|
||||||
})
|
})
|
||||||
export class CylinderModule {}
|
export class CylinderModule {}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
|
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
|
||||||
|
import { ConfigService } from '@nestjs/config';
|
||||||
import { Cylinder, User } from 'src/model/entitites';
|
import { Cylinder, User } from 'src/model/entitites';
|
||||||
import { ActivityRepository, CylinderRepository, KeyRepository } from 'src/model/repositories';
|
import { ActivityRepository, CylinderRepository, KeyRepository } from 'src/model/repositories';
|
||||||
import { HelperService } from 'src/shared/service/system.helper.service';
|
import { HelperService } from 'src/shared/service/system.helper.service';
|
||||||
@@ -9,15 +10,24 @@ export class CylinderService {
|
|||||||
private readonly cylinderRepo: CylinderRepository,
|
private readonly cylinderRepo: CylinderRepository,
|
||||||
private readonly keyRepo: KeyRepository,
|
private readonly keyRepo: KeyRepository,
|
||||||
private systemActivityRepo: ActivityRepository,
|
private systemActivityRepo: ActivityRepository,
|
||||||
private readonly helper: HelperService
|
private readonly helper: HelperService,
|
||||||
|
private readonly configService: ConfigService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
get isDevelopMode(): boolean {
|
||||||
|
return (this.configService.get('DEVELOP_MODE') || '').toLowerCase() == 'true';
|
||||||
|
}
|
||||||
|
|
||||||
async getCylinders(user: User): Promise<Cylinder[]> {
|
async getCylinders(user: User): Promise<Cylinder[]> {
|
||||||
const c = await this.cylinderRepo.find({
|
let c = await this.cylinderRepo.find({
|
||||||
where: { system: { managers: { id: user.id } } },
|
where: { system: { managers: { id: user.id } } },
|
||||||
order: { name: { direction: 'ASC' } },
|
order: { name: { direction: 'ASC' } },
|
||||||
relations: ['system', 'keys'],
|
relations: ['system', 'keys'],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (this.isDevelopMode) {
|
||||||
|
c = c.filter(c => c.name.toLowerCase().includes('develop') || c.system.name.toLocaleLowerCase().includes('develop'))
|
||||||
|
}
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,11 @@ import { KeyService } from './key.service';
|
|||||||
import { DatabaseModule } from 'src/shared/database/database.module';
|
import { DatabaseModule } from 'src/shared/database/database.module';
|
||||||
import { AuthModule } from '../auth/auth.module';
|
import { AuthModule } from '../auth/auth.module';
|
||||||
import { SharedServiceModule } from 'src/shared/service/shared.service.module';
|
import { SharedServiceModule } from 'src/shared/service/shared.service.module';
|
||||||
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
controllers: [KeyController],
|
controllers: [KeyController],
|
||||||
providers: [KeyService],
|
providers: [KeyService, ConfigService],
|
||||||
imports: [DatabaseModule, AuthModule, SharedServiceModule],
|
imports: [DatabaseModule, AuthModule, SharedServiceModule],
|
||||||
})
|
})
|
||||||
export class KeyModule {}
|
export class KeyModule {}
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import {
|
|||||||
import { KeyHandoutRepository } from 'src/model/repositories/key-handout.repository';
|
import { KeyHandoutRepository } from 'src/model/repositories/key-handout.repository';
|
||||||
import { ActivityHelperService } from 'src/shared/service/activity.logger.service';
|
import { ActivityHelperService } from 'src/shared/service/activity.logger.service';
|
||||||
import { HelperService } from 'src/shared/service/system.helper.service';
|
import { HelperService } from 'src/shared/service/system.helper.service';
|
||||||
import { IsNull, Not } from 'typeorm';
|
import { FindOperator, IsNull, Not } from 'typeorm';
|
||||||
|
import { faker } from '@faker-js/faker';
|
||||||
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class KeyService {
|
export class KeyService {
|
||||||
@@ -18,27 +20,39 @@ export class KeyService {
|
|||||||
private readonly handoverRepo: KeyHandoutRepository,
|
private readonly handoverRepo: KeyHandoutRepository,
|
||||||
private readonly activityService: ActivityHelperService,
|
private readonly activityService: ActivityHelperService,
|
||||||
private readonly helper: HelperService,
|
private readonly helper: HelperService,
|
||||||
|
private readonly configService: ConfigService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
get isDevelopMode(): boolean {
|
||||||
|
return (this.configService.get('DEVELOP_MODE') || '').toLowerCase() == 'true';
|
||||||
|
}
|
||||||
|
|
||||||
async getUsersKeys(user: User): Promise<Key[]> {
|
async getUsersKeys(user: User): Promise<Key[]> {
|
||||||
const keys = await this.keyrepository.find({
|
let keys = await this.keyrepository.find({
|
||||||
where: { cylinder: { system: { managers: { id: user.id } } }, keyLost: IsNull() },
|
where: { cylinder: { system: { managers: { id: user.id } } }, keyLost: IsNull() },
|
||||||
relations: ['cylinder', 'cylinder.system', 'customer'],
|
relations: ['cylinder', 'cylinder.system', 'customer'],
|
||||||
});
|
});
|
||||||
for (let k of keys) {
|
for (let k of keys) {
|
||||||
k.customer = await this.getCustomerOfLastHandout(user, k.id);
|
k.customer = await this.getCustomerOfLastHandout(user, k.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.isDevelopMode) {
|
||||||
|
keys = keys.filter(k => k.cylinder.some(c => c.name.toLowerCase().includes('develop') || c.system.name.toLowerCase().includes('develop')))
|
||||||
|
}
|
||||||
return keys;
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
async getLostKeys(user: User): Promise<Key[]> {
|
async getLostKeys(user: User): Promise<Key[]> {
|
||||||
const keys = await this.keyrepository.find({
|
let keys = await this.keyrepository.find({
|
||||||
where: { cylinder: { system: { managers: { id: user.id } } }, keyLost: Not(IsNull()) },
|
where: { cylinder: { system: { managers: { id: user.id } } }, keyLost: Not(IsNull()) },
|
||||||
relations: ['cylinder', 'cylinder.system', 'customer'],
|
relations: ['cylinder', 'cylinder.system', 'customer'],
|
||||||
});
|
});
|
||||||
for (let k of keys) {
|
for (let k of keys) {
|
||||||
k.customer = await this.getCustomerOfLastHandout(user, k.id);
|
k.customer = await this.getCustomerOfLastHandout(user, k.id);
|
||||||
}
|
}
|
||||||
|
if (this.isDevelopMode) {
|
||||||
|
keys = keys.filter(k => k.cylinder.some(c => c.name.toLowerCase().includes('develop') || c.system.name.toLowerCase().includes('develop')))
|
||||||
|
}
|
||||||
return keys;
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,11 @@ import { SystemController } from './system.controller';
|
|||||||
import { AuthModule } from '../auth/auth.module';
|
import { AuthModule } from '../auth/auth.module';
|
||||||
import { DatabaseModule } from 'src/shared/database/database.module';
|
import { DatabaseModule } from 'src/shared/database/database.module';
|
||||||
import { MailModule } from '../mail/mail.module';
|
import { MailModule } from '../mail/mail.module';
|
||||||
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
controllers: [SystemController],
|
controllers: [SystemController],
|
||||||
providers: [SystemService],
|
providers: [SystemService, ConfigService],
|
||||||
imports: [AuthModule, DatabaseModule, MailModule],
|
imports: [AuthModule, DatabaseModule, MailModule],
|
||||||
})
|
})
|
||||||
export class SystemModule {}
|
export class SystemModule {}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { ActivityRepository, KeySystemRepository, UserRepository } from 'src/mod
|
|||||||
import { User } from 'src/model/entitites';
|
import { User } from 'src/model/entitites';
|
||||||
import { IUser } from 'src/model/interface';
|
import { IUser } from 'src/model/interface';
|
||||||
import { MailService } from '../mail/mail.service';
|
import { MailService } from '../mail/mail.service';
|
||||||
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class SystemService {
|
export class SystemService {
|
||||||
@@ -12,8 +13,13 @@ export class SystemService {
|
|||||||
private systemRepo: KeySystemRepository,
|
private systemRepo: KeySystemRepository,
|
||||||
private userRepo: UserRepository,
|
private userRepo: UserRepository,
|
||||||
private systemActivityRepo: ActivityRepository,
|
private systemActivityRepo: ActivityRepository,
|
||||||
private mailService: MailService
|
private mailService: MailService,
|
||||||
|
private readonly configService: ConfigService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
get isDevelopMode(): boolean {
|
||||||
|
return (this.configService.get('DEVELOP_MODE') || '').toLowerCase() == 'true';
|
||||||
|
}
|
||||||
|
|
||||||
async create(user: User, createSystemDto: CreateSystemDto) {
|
async create(user: User, createSystemDto: CreateSystemDto) {
|
||||||
const sys = this.systemRepo.create(createSystemDto);
|
const sys = this.systemRepo.create(createSystemDto);
|
||||||
@@ -34,11 +40,17 @@ export class SystemService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
findAll(user: User) {
|
async findAll(user: User) {
|
||||||
return this.systemRepo.find({
|
let systems = await this.systemRepo.find({
|
||||||
where: { managers: { id: user.id } },
|
where: { managers: { id: user.id } },
|
||||||
order: { name: { direction: 'ASC' } },
|
order: { name: { direction: 'ASC' } },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (this.isDevelopMode) {
|
||||||
|
systems = systems.filter(s => s.name.toLocaleLowerCase().includes('develop'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return systems;
|
||||||
}
|
}
|
||||||
|
|
||||||
findOne(id: string) {
|
findOne(id: string) {
|
||||||
|
|||||||
@@ -28,12 +28,12 @@
|
|||||||
<button matButton [mat-dialog-close]="null">Abbrechen</button>
|
<button matButton [mat-dialog-close]="null">Abbrechen</button>
|
||||||
|
|
||||||
@if(key.keyLost != null) {
|
@if(key.keyLost != null) {
|
||||||
<button matButton="elevated" (click)="closeFound()">
|
<button matButton="elevated" (click)="closeFound()" class="btn-primary">
|
||||||
<mat-icon>report</mat-icon>
|
<mat-icon>report</mat-icon>
|
||||||
Als gefunden melden
|
Als gefunden melden
|
||||||
</button>
|
</button>
|
||||||
} @else {
|
} @else {
|
||||||
<button matButton="elevated" (click)="closeWithData()">
|
<button matButton="elevated" (click)="closeWithData()" class="btn-warning">
|
||||||
<mat-icon>report_problem</mat-icon>
|
<mat-icon>report_problem</mat-icon>
|
||||||
Als verloren melden
|
Als verloren melden
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -47,9 +47,7 @@ export class KeysComponent {
|
|||||||
valueFormatter: (data: any) => { return data; },
|
valueFormatter: (data: any) => { return data; },
|
||||||
cellRenderer: (data: any) => {return data.value?.map((m: ICylinder) => m.name).join(', ')},
|
cellRenderer: (data: any) => {return data.value?.map((m: ICylinder) => m.name).join(', ')},
|
||||||
tooltipValueGetter: (data: any) => data.value?.map((m: ICylinder) => m.name).join(','),
|
tooltipValueGetter: (data: any) => data.value?.map((m: ICylinder) => m.name).join(','),
|
||||||
onCellDoubleClicked(event) {
|
onCellDoubleClicked(event) {},
|
||||||
|
|
||||||
},
|
|
||||||
cellEditorPopup: true,
|
cellEditorPopup: true,
|
||||||
filterValueGetter: (params: any) => {return params.data.cylinder?.map((m: ICylinder) => m.name).join(', ')},
|
filterValueGetter: (params: any) => {return params.data.cylinder?.map((m: ICylinder) => m.name).join(', ')},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -79,10 +79,7 @@ export class AgDeleteKeyComponent implements ICellRendererAngularComp {
|
|||||||
})
|
})
|
||||||
).subscribe({
|
).subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
let data = this.params.api.getGridOption("rowData");
|
this.setData();
|
||||||
data = data?.filter(d => d.id != this.key.id);
|
|
||||||
this.params.api.setGridOption("rowData", data);
|
|
||||||
this.params.api.setGridOption("loading", false);
|
|
||||||
},
|
},
|
||||||
error: () => {
|
error: () => {
|
||||||
this.params.api.setGridOption("loading", false);
|
this.params.api.setGridOption("loading", false);
|
||||||
@@ -122,8 +119,16 @@ export class AgDeleteKeyComponent implements ICellRendererAngularComp {
|
|||||||
this.key.keyLost = n;
|
this.key.keyLost = n;
|
||||||
this.params.api.refreshCells();
|
this.params.api.refreshCells();
|
||||||
this.api.updateKey(this.key).subscribe();
|
this.api.updateKey(this.key).subscribe();
|
||||||
|
this.setData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private setData() {
|
||||||
|
let data = this.params.api.getGridOption("rowData");
|
||||||
|
data = data?.filter(d => d.id != this.key.id);
|
||||||
|
this.params.api.setGridOption("rowData", data);
|
||||||
|
this.params.api.setGridOption("loading", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user