Browse Source

added an option to add traits to the dashboard

Warafear 1 year ago
parent
commit
5ef5c8da13

+ 27 - 1
src/app/journal/journal-character/class/class.component.ts

@@ -4,6 +4,8 @@ import { DataService } from 'src/services/data/data.service';
 import { ModalService } from 'src/services/modal/modal.service';
 import { AbilityModalComponent } from '../../journal-stats/ability-panel/ability-table/ability-modal/ability-modal.component';
 import { Ability } from 'src/interfaces/ability';
+import { TraitModalComponent } from '../../journal-stats/ability-panel/trait-table/trait-modal/trait-modal.component';
+import { Trait } from 'src/interfaces/traits';
 
 @Component({
   selector: 'class',
@@ -64,6 +66,30 @@ export class ClassComponent {
   }
 
   private addTrait(feature: any) {
-    console.log('trait');
+    let index = feature.name.indexOf('Optional');
+    if (index > -1) {
+      feature.name = feature.name.slice(index, 8);
+    }
+    let trait: Trait = {
+      name: feature.name,
+      shortDescription: '',
+      longDescription: feature.description,
+      origin: 'Class',
+    };
+    this.modalAccessor.openModal(TraitModalComponent, {
+      trait: trait,
+      isUpdate: true,
+      isAddedFromCharacter: true,
+    });
+    const resultSubscription = this.modalAccessor.result$.subscribe(
+      (result) => {
+        if (result.state === 'update' || result.state === 'add') {
+          let traits = this.dataAccessor.traits;
+          traits.push(result.data);
+          this.dataAccessor.traits = traits;
+        }
+        resultSubscription.unsubscribe();
+      }
+    );
   }
 }

+ 2 - 2
src/app/journal/journal-stats/ability-panel/trait-table/trait-modal/trait-modal.component.html

@@ -40,13 +40,13 @@
     </div>
 
     <div class="horizontal-buttons">
-      @if(isUpdate){
+      @if(isUpdate && !isAddedFromCharacter){
       <ui-button [color]="'green'" style="width: 45%" (click)="update()"
         >Aktualisieren</ui-button
       >
       }@else{
       <ui-button [color]="'green'" style="width: 45%" (click)="add()"
-        >hinzufügen</ui-button
+        >Hinzufügen</ui-button
       >
       }
       <ui-button [color]="'red'" style="width: 45%" (click)="cancel()"

+ 1 - 0
src/app/journal/journal-stats/ability-panel/trait-table/trait-modal/trait-modal.component.ts

@@ -11,6 +11,7 @@ import { ModalService } from 'src/services/modal/modal.service';
 export class TraitModalComponent {
   @Input() public isUpdate: boolean = false;
   @Input() public trait: Trait | undefined;
+  @Input() public isAddedFromCharacter: boolean = false;
 
   shortEditor: Editor = new Editor();
   longEditor: Editor = new Editor();