Specify Requiered Itemgroups for Itemslot
All checks were successful
E2E Testing / test (push) Successful in 1m35s
All checks were successful
E2E Testing / test (push) Successful in 1m35s
This commit is contained in:
parent
b70aee9004
commit
bc523029fc
@ -43,7 +43,7 @@ import {
|
|||||||
MatColumnDef,
|
MatColumnDef,
|
||||||
MatHeaderCell,
|
MatHeaderCell,
|
||||||
MatHeaderCellDef,
|
MatHeaderCellDef,
|
||||||
MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef,
|
MatHeaderRow, MatHeaderRowDef, MatNoDataRow, MatRow, MatRowDef,
|
||||||
MatTable
|
MatTable
|
||||||
} from "@angular/material/table";
|
} from "@angular/material/table";
|
||||||
import {MatCheckbox} from "@angular/material/checkbox";
|
import {MatCheckbox} from "@angular/material/checkbox";
|
||||||
@ -101,6 +101,12 @@ import {MatAutocomplete, MatAutocompleteTrigger} from "@angular/material/autocom
|
|||||||
import {
|
import {
|
||||||
CharacteristicSelectorComponent
|
CharacteristicSelectorComponent
|
||||||
} from "./editor/character-editor/inventory-slot-editor/inventory-slot-characteristic-editor/characteristic-selector/characteristic-selector.component";
|
} from "./editor/character-editor/inventory-slot-editor/inventory-slot-characteristic-editor/characteristic-selector/characteristic-selector.component";
|
||||||
|
import {
|
||||||
|
RequieredInheritancesEditorComponent
|
||||||
|
} from "./editor/character-editor/inventory-slot-editor/requiered-inheritances-editor/requiered-inheritances-editor.component";
|
||||||
|
import {
|
||||||
|
RequieredInheritancesCreatorComponent
|
||||||
|
} from "./editor/character-editor/inventory-slot-editor/requiered-inheritances-editor/requiered-inheritances-creator/requiered-inheritances-creator.component";
|
||||||
// AoT requires an exported function for factories
|
// AoT requires an exported function for factories
|
||||||
const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new TranslateHttpLoader(http, './assets/i18n/', '.json');
|
const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new TranslateHttpLoader(http, './assets/i18n/', '.json');
|
||||||
|
|
||||||
@ -133,7 +139,9 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new Transl
|
|||||||
InheritedItemCharacteristicEditorComponent,
|
InheritedItemCharacteristicEditorComponent,
|
||||||
InventorySlotEditorComponent,
|
InventorySlotEditorComponent,
|
||||||
InventorySlotCharacteristicEditorComponent,
|
InventorySlotCharacteristicEditorComponent,
|
||||||
CharacteristicSelectorComponent
|
CharacteristicSelectorComponent,
|
||||||
|
RequieredInheritancesEditorComponent,
|
||||||
|
RequieredInheritancesCreatorComponent
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
@ -199,7 +207,8 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new Transl
|
|||||||
MatExpansionPanelHeader,
|
MatExpansionPanelHeader,
|
||||||
MatExpansionPanelDescription,
|
MatExpansionPanelDescription,
|
||||||
MatAutocomplete,
|
MatAutocomplete,
|
||||||
MatAutocompleteTrigger
|
MatAutocompleteTrigger,
|
||||||
|
MatNoDataRow
|
||||||
],
|
],
|
||||||
providers: [],
|
providers: [],
|
||||||
bootstrap: [AppComponent]
|
bootstrap: [AppComponent]
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
[@detailExpand]="element == expandedSlot ? 'expanded' : 'collapsed'">
|
[@detailExpand]="element == expandedSlot ? 'expanded' : 'collapsed'">
|
||||||
|
|
||||||
<app-inventory-slot-characteristic-editor [inventorySlot]="element" [itemgroups]="itemgroups"></app-inventory-slot-characteristic-editor>
|
<app-inventory-slot-characteristic-editor [inventorySlot]="element" [itemgroups]="itemgroups"></app-inventory-slot-characteristic-editor>
|
||||||
|
<app-requiered-inheritances-editor [inventorySlot]="element" [itemgroups]="itemgroups"></app-requiered-inheritances-editor>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
<h1 matDialogTitle>Add Itemgroup Requierement</h1>
|
||||||
|
<mat-dialog-content>
|
||||||
|
<mat-form-field appearance="outline" class="long-form">
|
||||||
|
<mat-label>Select Itemgroup as Requierement</mat-label>
|
||||||
|
<mat-select [formControl]="selectorCtrl">
|
||||||
|
<mat-option *ngFor="let option of itemgroups" [value]="option">{{option.componentName}}</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
</mat-dialog-content>
|
||||||
|
<mat-dialog-actions align="end">
|
||||||
|
<button mat-raised-button (click)="cancel()">Cancel</button>
|
||||||
|
<button mat-raised-button color="primary" (click)="submit()" [disabled]="selectorCtrl.invalid">Submit</button>
|
||||||
|
</mat-dialog-actions>
|
@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { RequieredInheritancesCreatorComponent } from './requiered-inheritances-creator.component';
|
||||||
|
|
||||||
|
describe('RequieredInheritancesCreatorComponent', () => {
|
||||||
|
let component: RequieredInheritancesCreatorComponent;
|
||||||
|
let fixture: ComponentFixture<RequieredInheritancesCreatorComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [RequieredInheritancesCreatorComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(RequieredInheritancesCreatorComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,28 @@
|
|||||||
|
import {Component, Inject} from '@angular/core';
|
||||||
|
import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
|
||||||
|
import {ItemGroup} from "../../../../../project/game-model/inventory/ItemGroup";
|
||||||
|
import {FormControl, Validators} from "@angular/forms";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-requiered-inheritances-creator',
|
||||||
|
templateUrl: './requiered-inheritances-creator.component.html',
|
||||||
|
styleUrl: './requiered-inheritances-creator.component.scss'
|
||||||
|
})
|
||||||
|
export class RequieredInheritancesCreatorComponent {
|
||||||
|
|
||||||
|
selectorCtrl = new FormControl('', Validators.required)
|
||||||
|
|
||||||
|
constructor(@Inject(MAT_DIALOG_DATA) public itemgroups: ItemGroup[],
|
||||||
|
private dialogRef: MatDialogRef<RequieredInheritancesCreatorComponent>) {
|
||||||
|
}
|
||||||
|
|
||||||
|
cancel() {
|
||||||
|
this.dialogRef.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
submit() {
|
||||||
|
if(this.selectorCtrl.value != undefined) {
|
||||||
|
this.dialogRef.close(this.selectorCtrl.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
<table mat-table [dataSource]="datasource" class="mat-elevation-z8">
|
||||||
|
<ng-container matColumnDef="itemgroupName">
|
||||||
|
<th mat-header-cell *matHeaderCellDef>Itemgroup Name</th>
|
||||||
|
<td mat-cell *matCellDef="let requieredInheritence">{{requieredInheritence.componentName}}</td>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="itemgroupDescription">
|
||||||
|
<th mat-header-cell *matHeaderCellDef>Itemgroup Description</th>
|
||||||
|
<td mat-cell *matCellDef="let requieredInheritence">{{requieredInheritence.componentDescription}}</td>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="delete">
|
||||||
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
|
<button mat-icon-button (click)="addInheritance()"><mat-icon>add</mat-icon></button>
|
||||||
|
</th>
|
||||||
|
<td mat-cell *matCellDef="let requieredInheritence">
|
||||||
|
<button mat-icon-button color="warn" (click)="deleteRequieredInheritence(requieredInheritence)"><mat-icon>delete</mat-icon></button>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||||
|
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
||||||
|
|
||||||
|
<tr class="mat-row" *matNoDataRow>
|
||||||
|
<td class="mat-cell" colspan="4">No reqiered Inheritence: Items of all Itemgroups can be added</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
@ -0,0 +1,3 @@
|
|||||||
|
.mat-column-delete {
|
||||||
|
width: 32px;
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { RequieredInheritancesEditorComponent } from './requiered-inheritances-editor.component';
|
||||||
|
|
||||||
|
describe('RequieredInheritancesEditorComponent', () => {
|
||||||
|
let component: RequieredInheritancesEditorComponent;
|
||||||
|
let fixture: ComponentFixture<RequieredInheritancesEditorComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [RequieredInheritancesEditorComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(RequieredInheritancesEditorComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,49 @@
|
|||||||
|
import {Component, Input, OnInit} from '@angular/core';
|
||||||
|
import {InventorySlot} from "../../../../project/game-model/inventory/intentory-slots/InventorySlot";
|
||||||
|
import {ItemGroup} from "../../../../project/game-model/inventory/ItemGroup";
|
||||||
|
import {MatTableDataSource} from "@angular/material/table";
|
||||||
|
import {MatDialog} from "@angular/material/dialog";
|
||||||
|
import {
|
||||||
|
RequieredInheritancesCreatorComponent
|
||||||
|
} from "./requiered-inheritances-creator/requiered-inheritances-creator.component";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-requiered-inheritances-editor',
|
||||||
|
templateUrl: './requiered-inheritances-editor.component.html',
|
||||||
|
styleUrl: './requiered-inheritances-editor.component.scss'
|
||||||
|
})
|
||||||
|
export class RequieredInheritancesEditorComponent implements OnInit{
|
||||||
|
|
||||||
|
@Input() inventorySlot: InventorySlot | undefined
|
||||||
|
@Input() itemgroups: ItemGroup[] = []
|
||||||
|
|
||||||
|
datasource: MatTableDataSource<ItemGroup> = new MatTableDataSource<ItemGroup>();
|
||||||
|
displayedColumns: string[] = ['itemgroupName', 'itemgroupDescription', 'delete']
|
||||||
|
|
||||||
|
constructor(private dialog: MatDialog) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.datasource.data = this.inventorySlot!.requiredInheritances;
|
||||||
|
}
|
||||||
|
|
||||||
|
addInheritance() {
|
||||||
|
const dialogRef = this.dialog.open(RequieredInheritancesCreatorComponent, {
|
||||||
|
data: this.itemgroups,
|
||||||
|
width: "400px"
|
||||||
|
})
|
||||||
|
|
||||||
|
dialogRef.afterClosed().subscribe(res => {
|
||||||
|
if(res != undefined) {
|
||||||
|
console.log("Added")
|
||||||
|
this.inventorySlot!.addRequieredInheritence(res);
|
||||||
|
this.datasource.data = this.inventorySlot!.requiredInheritances;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteRequieredInheritence(requieredInheritence: ItemGroup) {
|
||||||
|
this.inventorySlot!.removeRequieredInheritence(requieredInheritence)
|
||||||
|
this.datasource.data = this.inventorySlot!.requiredInheritances;
|
||||||
|
}
|
||||||
|
}
|
@ -20,4 +20,14 @@ export class InventorySlot {
|
|||||||
this.slotCharacteristics.push(slotCharacteristic);
|
this.slotCharacteristics.push(slotCharacteristic);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addRequieredInheritence(itemgroup: ItemGroup) {
|
||||||
|
if(this.requiredInheritances.find(group => group.componentName === itemgroup.componentName) == undefined) {
|
||||||
|
this.requiredInheritances.push(itemgroup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
removeRequieredInheritence(itemgroup: ItemGroup) {
|
||||||
|
this.requiredInheritances = this.requiredInheritances.filter(group => group.componentName !== itemgroup.componentName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user