change name property to dataPath

urls
Max Ehrlicher-Schmidt 4 years ago
parent 693fece04b
commit 150585a777

@ -18,8 +18,8 @@
<app-cell <app-cell
*ngFor="let prop of object.properties" *ngFor="let prop of object.properties"
[editable]="data.isLockedByMe && !prop.readonly" [editable]="data.isLockedByMe && !prop.readonly"
[(value)]="data[prop.name]" [(value)]="data[prop.dataPath]"
[label]="prop.translation || prop.name" [label]="prop.translation || prop.dataPath"
[inputType]="prop.type" [inputType]="prop.type"
></app-cell> ></app-cell>
</mat-card> </mat-card>
@ -30,7 +30,7 @@
[dataServiceThatProvidesThePossibleData]="object.dataService" [dataServiceThatProvidesThePossibleData]="object.dataService"
[nameToShowInSelection]="object.nameToShowInSelection" [nameToShowInSelection]="object.nameToShowInSelection"
[columnInfo]="object.columnInfo" [columnInfo]="object.columnInfo"
[data]="data[object.name]" [data]="data[object.dataPath]"
[editable]="data.isLockedByMe" [editable]="data.isLockedByMe"
[tableDataGQLType]="object.tableDataGQLType" [tableDataGQLType]="object.tableDataGQLType"
(referenceIds)="addReferenceIdsToObject($event, object)" (referenceIds)="addReferenceIdsToObject($event, object)"

@ -5,7 +5,7 @@ import { flatten } from 'src/app/helperFunctions/flattenObject';
import { SchemaService } from 'src/app/services/schema.service'; import { SchemaService } from 'src/app/services/schema.service';
interface PropertyTypeInfo { interface PropertyTypeInfo {
name: string; dataPath: string;
translation: string; translation: string;
readonly?: boolean; readonly?: boolean;
type?: string; type?: string;
@ -19,7 +19,7 @@ interface PropertyGroupInfo {
interface ReferenceTableInfo { interface ReferenceTableInfo {
type: string; type: string;
title: string; title: string;
name: string; dataPath: string;
dataService: any; dataService: any;
columnInfo: PropertyTypeInfo[]; columnInfo: PropertyTypeInfo[];
nameToShowInSelection: any; nameToShowInSelection: any;
@ -84,18 +84,18 @@ export class DataPageComponent implements OnInit {
} else if (prop.type === 'ReferenceTable') { } else if (prop.type === 'ReferenceTable') {
prop.tableDataGQLType = prop.tableDataGQLType =
prop.tableDataGQLType || prop.tableDataGQLType ||
this.schemaService.getTypeInformation(this.pageDataGQLType, prop.name) this.schemaService.getTypeInformation(this.pageDataGQLType, prop.dataPath)
.type; .type;
prop.referenceIds = []; prop.referenceIds = [];
} else { } else {
const typeInformation = this.schemaService.getTypeInformation( const typeInformation = this.schemaService.getTypeInformation(
this.pageDataGQLType, this.pageDataGQLType,
prop.name prop.dataPath
); );
prop.type = prop.type || typeInformation.type; prop.type = prop.type || typeInformation.type;
const updateTypeInformation = this.schemaService.getTypeInformation( const updateTypeInformation = this.schemaService.getTypeInformation(
this.pageDataGQLUpdateInputType, this.pageDataGQLUpdateInputType,
prop.name prop.dataPath
); );
prop.readonly = prop.readonly || !updateTypeInformation.isPartOfType; prop.readonly = prop.readonly || !updateTypeInformation.isPartOfType;
} }

@ -42,27 +42,27 @@
<!-- Other Columns --> <!-- Other Columns -->
<ng-container <ng-container
*ngFor="let column of columnInfo" *ngFor="let column of columnInfo"
[matColumnDef]="column.name" [matColumnDef]="column.dataPath"
[sticky]="isStickyColumn(column.name)" [sticky]="isStickyColumn(column.dataPath)"
> >
<th mat-header-cell *matHeaderCellDef mat-sort-header> <th mat-header-cell *matHeaderCellDef mat-sort-header>
{{ column.translation || column.name }} {{ column.translation || column.dataPath }}
</th> </th>
<td mat-cell *matCellDef="let element"> <td mat-cell *matCellDef="let element">
<app-cell <app-cell
*ngIf="column.type === 'Boolean'; else stringValue" *ngIf="column.type === 'Boolean'; else stringValue"
[editable]="false" [editable]="false"
[(value)]="element[column.name]" [(value)]="element[column.dataPath]"
[inputType]="column.type" [inputType]="column.type"
></app-cell> ></app-cell>
<ng-template #stringValue> <ng-template #stringValue>
<span *ngIf="!column.link">{{ element[column.name] }}</span> <span *ngIf="!column.link">{{ element[column.dataPath] }}</span>
<a <a
mat-button mat-button
color="primary" color="primary"
*ngIf="column.link" *ngIf="column.link"
[routerLink]="column.link(element)" [routerLink]="column.link(element)"
>{{ element[column.name] }}</a >{{ element[column.dataPath] }}</a
> >
</ng-template> </ng-template>
</td> </td>

@ -22,7 +22,7 @@ export class ReferenceTableComponent {
/** this array defines the columns and translations of the table and the order they are displayed */ /** this array defines the columns and translations of the table and the order they are displayed */
@Input() @Input()
columnInfo: { columnInfo: {
name: string; dataPath: string;
translation: string; translation: string;
sticky?: boolean; sticky?: boolean;
type?: string; type?: string;
@ -85,7 +85,7 @@ export class ReferenceTableComponent {
ngOnInit() { ngOnInit() {
this.addColumnPropertiesFromGQLSchemaToColumnInfo(); this.addColumnPropertiesFromGQLSchemaToColumnInfo();
this.columnInfo.forEach((column) => { this.columnInfo.forEach((column) => {
this.displayedColumns.push(column.name); this.displayedColumns.push(column.dataPath);
}); });
this.displayedColumns.push('buttons'); this.displayedColumns.push('buttons');
@ -121,15 +121,15 @@ export class ReferenceTableComponent {
for (const column of this.columnInfo) { for (const column of this.columnInfo) {
const typeInformation = this.schemaService.getTypeInformation( const typeInformation = this.schemaService.getTypeInformation(
this.tableDataGQLType, this.tableDataGQLType,
column.name column.dataPath
); );
column.type = column.type || typeInformation.type; column.type = column.type || typeInformation.type;
} }
} }
isStickyColumn(propertyName: string) { isStickyColumn(dataPath: string) {
return ( return (
this.columnInfo.find((column) => column.name === propertyName)?.sticky || this.columnInfo.find((column) => column.dataPath === dataPath)?.sticky ||
false false
); );
} }

@ -97,12 +97,12 @@
<!-- Other Columns --> <!-- Other Columns -->
<ng-container <ng-container
*ngFor="let column of columnInfo" *ngFor="let column of columnInfo"
[matColumnDef]="column.name" [matColumnDef]="column.dataPath"
[sticky]="isStickyColumn(column.name)" [sticky]="isStickyColumn(column.dataPath)"
> >
<!-- add cdkDrag to make columns draggable--> <!-- add cdkDrag to make columns draggable-->
<th mat-header-cell *matHeaderCellDef mat-sort-header> <th mat-header-cell *matHeaderCellDef mat-sort-header>
{{ getTranslation(column.name) }} {{ getTranslation(column.dataPath) }}
</th> </th>
<td mat-cell *matCellDef="let element"> <td mat-cell *matCellDef="let element">
<app-cell <app-cell
@ -117,19 +117,19 @@
(!column.readonly && element.isLockedByMe) (!column.readonly && element.isLockedByMe)
" "
[required]="element.newObject && column.requiredForCreation" [required]="element.newObject && column.requiredForCreation"
(validityChange)="validityChange(element, column.name, $event)" (validityChange)="validityChange(element, column.dataPath, $event)"
[(value)]="element[column.name]" [(value)]="element[column.dataPath]"
[inputType]="column.type" [inputType]="column.type"
[link]="column.link ? column.link(element) : null" [link]="column.link ? column.link(element) : null"
></app-cell> ></app-cell>
<ng-template #stringValue> <ng-template #stringValue>
<span *ngIf="!column.link">{{ element[column.name] }}</span> <span *ngIf="!column.link">{{ element[column.dataPath] }}</span>
<a <a
mat-button mat-button
color="primary" color="primary"
*ngIf="column.link" *ngIf="column.link"
[routerLink]="column.link(element)" [routerLink]="column.link(element)"
>{{ element[column.name] }}</a >{{ element[column.dataPath] }}</a
> >
</ng-template> </ng-template>
</td> </td>

@ -28,7 +28,7 @@ export class TableComponent {
/** this array defines the columns and translations of the table and the order they are displayed */ /** this array defines the columns and translations of the table and the order they are displayed */
@Input() @Input()
columnInfo: { columnInfo: {
name: string; dataPath: string;
translation: string; translation: string;
acceptedForCreation?: boolean; acceptedForCreation?: boolean;
requiredForCreation?: boolean; requiredForCreation?: boolean;
@ -107,7 +107,7 @@ export class TableComponent {
}; };
this.columnInfo.forEach((column) => this.columnInfo.forEach((column) =>
this.displayedColumns.push(column.name) this.displayedColumns.push(column.dataPath)
); );
this.displayedColumns.unshift(this.additionalColumnsFront[0]); this.displayedColumns.unshift(this.additionalColumnsFront[0]);
this.displayedColumns.push(this.additionalColumnsBack[0]); this.displayedColumns.push(this.additionalColumnsBack[0]);
@ -165,37 +165,37 @@ export class TableComponent {
for (const column of this.columnInfo) { for (const column of this.columnInfo) {
const typeInformation = this.schemaService.getTypeInformation( const typeInformation = this.schemaService.getTypeInformation(
this.tableDataGQLType, this.tableDataGQLType,
column.name column.dataPath
); );
column.type = column.type || typeInformation.type; column.type = column.type || typeInformation.type;
} }
for (const column of this.columnInfo) { for (const column of this.columnInfo) {
const typeInformation = this.schemaService.getTypeInformation( const typeInformation = this.schemaService.getTypeInformation(
this.tableDataGQLUpdateInputType, this.tableDataGQLUpdateInputType,
column.name column.dataPath
); );
column.readonly = column.readonly || !typeInformation.isPartOfType; column.readonly = column.readonly || !typeInformation.isPartOfType;
} }
for (const column of this.columnInfo) { for (const column of this.columnInfo) {
const typeInformation = this.schemaService.getTypeInformation( const typeInformation = this.schemaService.getTypeInformation(
this.tableDataGQLCreateInputType, this.tableDataGQLCreateInputType,
column.name column.dataPath
); );
column.requiredForCreation = column.requiredForCreation || typeInformation.isRequired; column.requiredForCreation = column.requiredForCreation || typeInformation.isRequired;
column.acceptedForCreation = column.acceptedForCreation || typeInformation.isPartOfType; column.acceptedForCreation = column.acceptedForCreation || typeInformation.isPartOfType;
} }
} }
getTranslation(propertyName: string) { getTranslation(dataPath: string) {
return ( return (
this.columnInfo.find((column) => column.name === propertyName) this.columnInfo.find((column) => column.dataPath === dataPath)
?.translation || propertyName ?.translation || dataPath
); );
} }
isStickyColumn(propertyName: string) { isStickyColumn(dataPath: string) {
return ( return (
this.columnInfo.find((column) => column.name === propertyName)?.sticky || this.columnInfo.find((column) => column.dataPath === dataPath)?.sticky ||
false false
); );
} }

@ -13,10 +13,10 @@ export class BikeComponent implements OnInit {
type: 'Group', type: 'Group',
title: 'Allgemein', title: 'Allgemein',
properties: [ properties: [
{ name: 'name', translation: 'Name' }, { dataPath: 'name', translation: 'Name' },
{ name: 'id', translation: 'ID', readonly: true }, { dataPath: 'id', translation: 'ID', readonly: true },
{ name: 'Group', translation: 'Gruppe' }, { dataPath: 'Group', translation: 'Gruppe' },
{ name: 'modelName', translation: 'Modell' }, { dataPath: 'modelName', translation: 'Modell' },
], ],
}, },
{ {
@ -24,96 +24,96 @@ export class BikeComponent implements OnInit {
title: 'Versicherungsdaten', title: 'Versicherungsdaten',
properties: [ properties: [
{ {
name: 'insuranceData.billing', dataPath: 'insuranceData.billing',
translation: 'Versicherung Abrechnung', translation: 'Versicherung Abrechnung',
}, },
{ name: 'insuranceData.hasFixedRate', translation: 'Pauschale j/n' }, { dataPath: 'insuranceData.hasFixedRate', translation: 'Pauschale j/n' },
{ name: 'insuranceData.fixedRate', translation: 'Pauschale Betrag' }, { dataPath: 'insuranceData.fixedRate', translation: 'Pauschale Betrag' },
{ name: 'insuranceData.name', translation: 'Versicherer' }, { dataPath: 'insuranceData.name', translation: 'Versicherer' },
{ name: 'insuranceData.benefactor', translation: 'Kostenträger' }, { dataPath: 'insuranceData.benefactor', translation: 'Kostenträger' },
{ name: 'insuranceData.noPnP', translation: 'Nr. P&P' }, { dataPath: 'insuranceData.noPnP', translation: 'Nr. P&P' },
{ {
name: 'insuranceData.maintenanceResponsible', dataPath: 'insuranceData.maintenanceResponsible',
translation: 'Wartung zuständig', translation: 'Wartung zuständig',
}, },
{ {
name: 'insuranceData.maintenanceBenefactor', dataPath: 'insuranceData.maintenanceBenefactor',
translation: 'Wartung Kostenträger', translation: 'Wartung Kostenträger',
}, },
{ {
name: 'insuranceData.maintenanceAgreement', dataPath: 'insuranceData.maintenanceAgreement',
translation: 'Wartungsvereinbarung', translation: 'Wartungsvereinbarung',
}, },
{ {
name: 'insuranceData.projectAllowance', dataPath: 'insuranceData.projectAllowance',
translation: 'Projektzuschuss', translation: 'Projektzuschuss',
}, },
{ name: 'insuranceData.notes', translation: 'Sonstiges' }, { dataPath: 'insuranceData.notes', translation: 'Sonstiges' },
], ],
}, },
{ {
type: 'Group', type: 'Group',
title: 'Maße und Ladungen', title: 'Maße und Ladungen',
properties: [ properties: [
{ name: 'dimensionsAndLoad.bikeLength', translation: 'Länge' }, { dataPath: 'dimensionsAndLoad.bikeLength', translation: 'Länge' },
{ name: 'dimensionsAndLoad.bikeWeight', translation: 'Gewicht' }, { dataPath: 'dimensionsAndLoad.bikeWeight', translation: 'Gewicht' },
{ name: 'dimensionsAndLoad.bikeHeight', translation: 'Höhe' }, { dataPath: 'dimensionsAndLoad.bikeHeight', translation: 'Höhe' },
{ name: 'dimensionsAndLoad.bikeWidth', translation: 'Breite' }, { dataPath: 'dimensionsAndLoad.bikeWidth', translation: 'Breite' },
{ name: 'dimensionsAndLoad.boxHeight', translation: 'Boxhöhe' }, { dataPath: 'dimensionsAndLoad.boxHeight', translation: 'Boxhöhe' },
{ name: 'dimensionsAndLoad.boxLength', translation: 'Boxlänge' }, { dataPath: 'dimensionsAndLoad.boxLength', translation: 'Boxlänge' },
{ name: 'dimensionsAndLoad.boxWidth', translation: 'Boxbreite' }, { dataPath: 'dimensionsAndLoad.boxWidth', translation: 'Boxbreite' },
{ {
name: 'dimensionsAndLoad.hasCoverBox', dataPath: 'dimensionsAndLoad.hasCoverBox',
translation: 'Boxabdeckung j/n', translation: 'Boxabdeckung j/n',
}, },
{ name: 'dimensionsAndLoad.lockable', translation: 'Box abschließbar' }, { dataPath: 'dimensionsAndLoad.lockable', translation: 'Box abschließbar' },
{ {
name: 'dimensionsAndLoad.maxWeightBox', dataPath: 'dimensionsAndLoad.maxWeightBox',
translation: 'max Zuladung Box', translation: 'max Zuladung Box',
}, },
{ {
name: 'dimensionsAndLoad.maxWeightLuggageRack', dataPath: 'dimensionsAndLoad.maxWeightLuggageRack',
translation: 'max Zuladung Gepäckträger', translation: 'max Zuladung Gepäckträger',
}, },
{ {
name: 'dimensionsAndLoad.maxWeightTotal', dataPath: 'dimensionsAndLoad.maxWeightTotal',
translation: 'max Gesamtgewicht', translation: 'max Gesamtgewicht',
}, },
{ name: 'numberOfChildren', translation: 'Anzahl Kinder' }, { dataPath: 'numberOfChildren', translation: 'Anzahl Kinder' },
{ name: 'numberOfWheels', translation: 'Anzahl Räder' }, { dataPath: 'numberOfWheels', translation: 'Anzahl Räder' },
{ name: 'forCargo', translation: 'für Lasten j/n' }, { dataPath: 'forCargo', translation: 'für Lasten j/n' },
{ name: 'forChildren', translation: 'für Kinder j/n' }, { dataPath: 'forChildren', translation: 'für Kinder j/n' },
], ],
}, },
{ {
type: 'Group', type: 'Group',
title: 'Sicherheitsinformationen', title: 'Sicherheitsinformationen',
properties: [ properties: [
{ name: 'security.frameNumber', translation: 'Rahmennummer' }, { dataPath: 'security.frameNumber', translation: 'Rahmennummer' },
{ name: 'security.adfcCoding', translation: 'ADFC Codierung' }, { dataPath: 'security.adfcCoding', translation: 'ADFC Codierung' },
{ {
name: 'security.keyNumberAXAChain', dataPath: 'security.keyNumberAXAChain',
translation: 'Schlüsselnrummer Rahmenschloss', translation: 'Schlüsselnrummer Rahmenschloss',
}, },
{ {
name: 'security.keyNumberFrameLock', dataPath: 'security.keyNumberFrameLock',
translation: 'Schlüsselnrummer AXA-Kette', translation: 'Schlüsselnrummer AXA-Kette',
}, },
{ name: 'security.policeCoding', translation: 'Polizei Codierung' }, { dataPath: 'security.policeCoding', translation: 'Polizei Codierung' },
], ],
}, },
{ {
type: 'Group', type: 'Group',
title: 'Ausstattung', title: 'Ausstattung',
properties: [ properties: [
{ name: 'technicalEquipment.bicycleShift', translation: 'Schaltung' }, { dataPath: 'technicalEquipment.bicycleShift', translation: 'Schaltung' },
{ name: 'technicalEquipment.isEBike', translation: 'E-Bike j/n' }, { dataPath: 'technicalEquipment.isEBike', translation: 'E-Bike j/n' },
{ {
name: 'technicalEquipment.hasLightSystem', dataPath: 'technicalEquipment.hasLightSystem',
translation: 'Lichtanlage j/n', translation: 'Lichtanlage j/n',
}, },
{ {
name: 'technicalEquipment.specialFeatures', dataPath: 'technicalEquipment.specialFeatures',
translation: 'Besonderheiten', translation: 'Besonderheiten',
}, },
], ],
@ -122,11 +122,11 @@ export class BikeComponent implements OnInit {
type: 'Group', type: 'Group',
title: 'Sonstiges', title: 'Sonstiges',
properties: [ properties: [
{ name: 'stickerBikeNameState', translation: 'Aufkleber Status' }, { dataPath: 'stickerBikeNameState', translation: 'Aufkleber Status' },
{ name: 'note', translation: 'Aufkleber Kommentar' }, { dataPath: 'note', translation: 'Aufkleber Kommentar' },
{ name: 'taxes.costCenter', translation: 'Steuern Kostenstelle' }, { dataPath: 'taxes.costCenter', translation: 'Steuern Kostenstelle' },
{ {
name: 'taxes.organisationArea', dataPath: 'taxes.organisationArea',
translation: 'Steuern Vereinsbereich', translation: 'Steuern Vereinsbereich',
}, },
], ],
@ -135,14 +135,14 @@ export class BikeComponent implements OnInit {
type: 'Group', type: 'Group',
title: 'provider', title: 'provider',
properties: [ properties: [
{ name: 'provider.id', translation: '' }, { dataPath: 'provider.id', translation: '' },
{ name: 'provider.formName', translation: '' }, { dataPath: 'provider.formName', translation: '' },
{ name: 'provider.privatePerson.id', translation: '' }, { dataPath: 'provider.privatePerson.id', translation: '' },
{ name: 'provider.privatePerson.person.id', translation: '' }, { dataPath: 'provider.privatePerson.person.id', translation: '' },
{ name: 'provider.privatePerson.person.name', translation: '' }, { dataPath: 'provider.privatePerson.person.name', translation: '' },
{ name: 'provider.privatePerson.person.firstName', translation: '' }, { dataPath: 'provider.privatePerson.person.firstName', translation: '' },
{ {
name: 'provider.privatePerson.person.contactInformation.email', dataPath: 'provider.privatePerson.person.contactInformation.email',
translation: '', translation: '',
}, },
], ],
@ -151,19 +151,19 @@ export class BikeComponent implements OnInit {
type: 'Group', type: 'Group',
title: 'lendingstation', title: 'lendingstation',
properties: [ properties: [
{ name: 'lendingStation.id', translation: '' }, { dataPath: 'lendingStation.id', translation: '' },
{ name: 'lendingStation.name', translation: '' }, { dataPath: 'lendingStation.name', translation: '' },
{ name: 'lendingStation.address.number', translation: '' }, { dataPath: 'lendingStation.address.number', translation: '' },
{ name: 'lendingStation.address.street', translation: '' }, { dataPath: 'lendingStation.address.street', translation: '' },
{ name: 'lendingStation.address.zip', translation: '' }, { dataPath: 'lendingStation.address.zip', translation: '' },
], ],
}, },
{ {
type: 'ReferenceTable', type: 'ReferenceTable',
title: 'Equipmenttypen', title: 'Equipmenttypen',
name: 'equipmentType', dataPath: 'equipmentType',
dataService: null, dataService: null,
columnInfo: [{name: 'name', translation: "Name"}, {name: 'description', translation: "Beschreibung"}], columnInfo: [{dataPath: 'name', translation: "Name"}, {dataPath: 'description', translation: "Beschreibung"}],
nameToShowInSelection: (element) => {return element.name}, nameToShowInSelection: (element) => {return element.name},
propertyNameOfUpdateInput: "equipmentTypeIds" propertyNameOfUpdateInput: "equipmentTypeIds"
}, },
@ -180,7 +180,7 @@ export class BikeComponent implements OnInit {
private equipmentTypeService: EquipmentTypeService private equipmentTypeService: EquipmentTypeService
) { ) {
this.propertiesInfo.find( this.propertiesInfo.find(
(prop) => prop.name === 'equipmentType' (prop) => prop.dataPath === 'equipmentType'
).dataService = this.equipmentTypeService; ).dataService = this.equipmentTypeService;
} }

@ -9,98 +9,113 @@ import { BikesService } from 'src/app/services/bikes.service';
export class BikesComponent implements OnInit { export class BikesComponent implements OnInit {
columnInfo = [ columnInfo = [
{ {
name: 'name', dataPath: 'name',
translation: 'Name', translation: 'Name',
sticky: true, sticky: true,
link: (row: any) => { link: (row: any) => {
return '/bike/' + row.id; return '/bike/' + row.id;
}, },
}, },
{ name: 'id', translation: 'ID', readonly: true }, { dataPath: 'id', translation: 'ID', readonly: true },
{ name: 'group', translation: 'Gruppe' }, { dataPath: 'group', translation: 'Gruppe' },
{ name: 'modelName', translation: 'Modell' }, { dataPath: 'modelName', translation: 'Modell' },
{ name: 'insuranceData.billing', translation: 'Versicherung Abrechnung' }, {
{ name: 'insuranceData.hasFixedRate', translation: 'Pauschale j/n' }, dataPath: 'insuranceData.billing',
{ name: 'insuranceData.fixedRate', translation: 'Pauschale Betrag' }, translation: 'Versicherung Abrechnung',
{ name: 'insuranceData.name', translation: 'Versicherer' }, },
{ name: 'insuranceData.benefactor', translation: 'Kostenträger' }, { dataPath: 'insuranceData.hasFixedRate', translation: 'Pauschale j/n' },
{ name: 'insuranceData.noPnP', translation: 'Nr. P&P' }, { dataPath: 'insuranceData.fixedRate', translation: 'Pauschale Betrag' },
{ { dataPath: 'insuranceData.name', translation: 'Versicherer' },
name: 'insuranceData.maintenanceResponsible', { dataPath: 'insuranceData.benefactor', translation: 'Kostenträger' },
{ dataPath: 'insuranceData.noPnP', translation: 'Nr. P&P' },
{
dataPath: 'insuranceData.maintenanceResponsible',
translation: 'Wartung zuständig', translation: 'Wartung zuständig',
}, },
{ {
name: 'insuranceData.maintenanceBenefactor', dataPath: 'insuranceData.maintenanceBenefactor',
translation: 'Wartung Kostenträger', translation: 'Wartung Kostenträger',
}, },
{ {
name: 'insuranceData.maintenanceAgreement', dataPath: 'insuranceData.maintenanceAgreement',
translation: 'Wartungsvereinbarung', translation: 'Wartungsvereinbarung',
}, },
{ name: 'insuranceData.projectAllowance', translation: 'Projektzuschuss' }, {
{ name: 'insuranceData.notes', translation: 'Sonstiges' }, dataPath: 'insuranceData.projectAllowance',
{ name: 'dimensionsAndLoad.bikeLength', translation: 'Länge' }, translation: 'Projektzuschuss',
{ name: 'dimensionsAndLoad.bikeWeight', translation: 'Gewicht' }, },
{ name: 'dimensionsAndLoad.bikeHeight', translation: 'Höhe' }, { dataPath: 'insuranceData.notes', translation: 'Sonstiges' },
{ name: 'dimensionsAndLoad.bikeWidth', translation: 'Breite' }, { dataPath: 'dimensionsAndLoad.bikeLength', translation: 'Länge' },
{ name: 'dimensionsAndLoad.boxHeight', translation: 'Boxhöhe' }, { dataPath: 'dimensionsAndLoad.bikeWeight', translation: 'Gewicht' },
{ name: 'dimensionsAndLoad.boxLength', translation: 'Boxlänge' }, { dataPath: 'dimensionsAndLoad.bikeHeight', translation: 'Höhe' },
{ name: 'dimensionsAndLoad.boxWidth', translation: 'Boxbreite' }, { dataPath: 'dimensionsAndLoad.bikeWidth', translation: 'Breite' },
{ name: 'dimensionsAndLoad.hasCoverBox', translation: 'Boxabdeckung j/n' }, { dataPath: 'dimensionsAndLoad.boxHeight', translation: 'Boxhöhe' },
{ name: 'dimensionsAndLoad.lockable', translation: 'Box abschließbar' }, { dataPath: 'dimensionsAndLoad.boxLength', translation: 'Boxlänge' },
{ name: 'dimensionsAndLoad.maxWeightBox', translation: 'max Zuladung Box' }, { dataPath: 'dimensionsAndLoad.boxWidth', translation: 'Boxbreite' },
{ {
name: 'dimensionsAndLoad.maxWeightLuggageRack', dataPath: 'dimensionsAndLoad.hasCoverBox',
translation: 'Boxabdeckung j/n',
},
{ dataPath: 'dimensionsAndLoad.lockable', translation: 'Box abschließbar' },
{
dataPath: 'dimensionsAndLoad.maxWeightBox',
translation: 'max Zuladung Box',
},
{
dataPath: 'dimensionsAndLoad.maxWeightLuggageRack',
translation: 'max Zuladung Gepäckträger', translation: 'max Zuladung Gepäckträger',
}, },
{ {
name: 'dimensionsAndLoad.maxWeightTotal', dataPath: 'dimensionsAndLoad.maxWeightTotal',
translation: 'max Gesamtgewicht', translation: 'max Gesamtgewicht',
}, },
{ name: 'numberOfChildren', translation: 'Anzahl Kinder' }, { dataPath: 'numberOfChildren', translation: 'Anzahl Kinder' },
{ name: 'numberOfWheels', translation: 'Anzahl Räder' }, { dataPath: 'numberOfWheels', translation: 'Anzahl Räder' },
{ name: 'forCargo', translation: 'für Lasten j/n' }, { dataPath: 'forCargo', translation: 'für Lasten j/n' },
{ name: 'forChildren', translation: 'für Kinder j/n' }, { dataPath: 'forChildren', translation: 'für Kinder j/n' },
{ name: 'security.frameNumber', translation: 'Rahmennummer' }, { dataPath: 'security.frameNumber', translation: 'Rahmennummer' },
{ name: 'security.adfcCoding', translation: 'ADFC Codierung' }, { dataPath: 'security.adfcCoding', translation: 'ADFC Codierung' },
{ {
name: 'security.keyNumberAXAChain', dataPath: 'security.keyNumberAXAChain',
translation: 'Schlüsselnrummer Rahmenschloss', translation: 'Schlüsselnrummer Rahmenschloss',
}, },
{ {
name: 'security.keyNumberFrameLock', dataPath: 'security.keyNumberFrameLock',
translation: 'Schlüsselnrummer AXA-Kette', translation: 'Schlüsselnrummer AXA-Kette',
}, },
{ name: 'security.policeCoding', translation: 'Polizei Codierung' }, { dataPath: 'security.policeCoding', translation: 'Polizei Codierung' },
{ name: 'technicalEquipment.bicycleShift', translation: 'Schaltung' }, { dataPath: 'technicalEquipment.bicycleShift', translation: 'Schaltung' },
{ name: 'technicalEquipment.isEBike', translation: 'E-Bike j/n' }, { dataPath: 'technicalEquipment.isEBike', translation: 'E-Bike j/n' },
{ {
name: 'technicalEquipment.hasLightSystem', dataPath: 'technicalEquipment.hasLightSystem',
translation: 'Lichtanlage j/n', translation: 'Lichtanlage j/n',
}, },
{ {
name: 'technicalEquipment.specialFeatures', dataPath: 'technicalEquipment.specialFeatures',
translation: 'Besonderheiten', translation: 'Besonderheiten',
}, },
{ name: 'stickerBikeNameState', translation: 'Aufkleber Status' }, { dataPath: 'stickerBikeNameState', translation: 'Aufkleber Status' },
{ name: 'note', translation: 'Aufkleber Kommentar' }, { dataPath: 'note', translation: 'Aufkleber Kommentar' },
{ name: 'taxes.costCenter', translation: 'Steuern Kostenstelle' }, { dataPath: 'taxes.costCenter', translation: 'Steuern Kostenstelle' },
{ name: 'taxes.organisationArea', translation: 'Steuern Vereinsbereich' }, {
{ name: 'provider.id', translation: '' }, dataPath: 'taxes.organisationArea',
{ name: 'provider.formName', translation: '' }, translation: 'Steuern Vereinsbereich',
{ name: 'provider.privatePerson.id', translation: '' }, },
{ name: 'provider.privatePerson.person.id', translation: '' }, { dataPath: 'provider.id', translation: '' },
{ name: 'provider.privatePerson.person.name', translation: '' }, { dataPath: 'provider.formName', translation: '' },
{ name: 'provider.privatePerson.person.firstName', translation: '' }, { dataPath: 'provider.privatePerson.id', translation: '' },
{ { dataPath: 'provider.privatePerson.person.id', translation: '' },
name: 'provider.privatePerson.person.contactInformation.email', { dataPath: 'provider.privatePerson.person.name', translation: '' },
{ dataPath: 'provider.privatePerson.person.firstName', translation: '' },
{
dataPath: 'provider.privatePerson.person.contactInformation.email',
translation: '', translation: '',
}, },
{ name: 'lendingStation.id', translation: '' }, { dataPath: 'lendingStation.id', translation: '' },
{ name: 'lendingStation.name', translation: '' }, { dataPath: 'lendingStation.name', translation: '' },
{ name: 'lendingStation.address.number', translation: '' }, { dataPath: 'lendingStation.address.number', translation: '' },
{ name: 'lendingStation.address.street', translation: '' }, { dataPath: 'lendingStation.address.street', translation: '' },
{ name: 'lendingStation.address.zip', translation: '' }, { dataPath: 'lendingStation.address.zip', translation: '' },
]; ];
dataService: any; dataService: any;

@ -10,9 +10,9 @@ export class EquipmentTypesComponent implements OnInit {
headline = 'Ausstattungstypen'; headline = 'Ausstattungstypen';
columnInfo = [ columnInfo = [
{ name: 'id', translation: 'ID', readonly: true }, { dataPath: 'id', translation: 'ID', readonly: true },
{ name: 'name', translation: 'Name', requiredForCreation: true }, { dataPath: 'name', translation: 'Name', requiredForCreation: true },
{ name: 'description', translation: 'Beschreibung' }, { dataPath: 'description', translation: 'Beschreibung' },
]; ];
dataService: EquipmentTypeService; dataService: EquipmentTypeService;

Loading…
Cancel
Save