issue-2-scriptAccounts #4
@ -25,6 +25,7 @@ import {MatActionList, MatListItem} from "@angular/material/list";
 | 
			
		||||
import {EditorComponent} from "./editor/editor.component";
 | 
			
		||||
import {MatTab, MatTabGroup, MatTabLabel} from "@angular/material/tabs";
 | 
			
		||||
import {ScriptAccountEditorComponent} from "./editor/script-account-editor/script-account-editor.component";
 | 
			
		||||
import {ModelComponentEditorComponent} from "./editor/model-component-editor/model-component-editor.component";
 | 
			
		||||
 | 
			
		||||
// AoT requires an exported function for factories
 | 
			
		||||
const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader =>  new TranslateHttpLoader(http, './assets/i18n/', '.json');
 | 
			
		||||
@ -34,7 +35,8 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader =>  new Transl
 | 
			
		||||
    AppComponent,
 | 
			
		||||
    ScriptAccountOverviewComponent,
 | 
			
		||||
    EditorComponent,
 | 
			
		||||
    ScriptAccountEditorComponent
 | 
			
		||||
    ScriptAccountEditorComponent,
 | 
			
		||||
    ModelComponentEditorComponent
 | 
			
		||||
  ],
 | 
			
		||||
  imports: [
 | 
			
		||||
    BrowserModule,
 | 
			
		||||
@ -69,7 +71,8 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader =>  new Transl
 | 
			
		||||
    MatLabel,
 | 
			
		||||
    MatFormField,
 | 
			
		||||
    ReactiveFormsModule,
 | 
			
		||||
    MatError
 | 
			
		||||
    MatError,
 | 
			
		||||
 | 
			
		||||
  ],
 | 
			
		||||
  providers: [],
 | 
			
		||||
  bootstrap: [AppComponent]
 | 
			
		||||
 | 
			
		||||
@ -5,6 +5,7 @@
 | 
			
		||||
      <span>{{modelComponent.componentName}}</span>
 | 
			
		||||
      <button class="content-label" mat-icon-button (click)="closeGameModelComponent(modelComponent)"><mat-icon>close</mat-icon></button>
 | 
			
		||||
    </ng-template>
 | 
			
		||||
    <app-model-component-editor [modelComponent]="modelComponent"></app-model-component-editor>
 | 
			
		||||
    <app-script-account-editor *ngIf="modelComponent.type === ModelComponentType.SCRIPTACCOUNT"
 | 
			
		||||
                               [scriptAccount]="convertModelComponentToScriptAccount(modelComponent)"></app-script-account-editor>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
<mat-form-field appearance="fill" class="long-form">
 | 
			
		||||
  <mat-label>Name</mat-label>
 | 
			
		||||
  <input matInput [formControl]="nameCtrl" (change)="onUpdateName()">
 | 
			
		||||
  <mat-error *ngIf="nameCtrl.hasError('required')">Please enter a valid number!</mat-error>
 | 
			
		||||
</mat-form-field>
 | 
			
		||||
<mat-form-field appearance="fill" class="long-form">
 | 
			
		||||
  <mat-label>Description</mat-label>
 | 
			
		||||
  <textarea matInput [formControl]="descriptionCtrl" (change)="onUpdateDescription()" rows="3"></textarea>
 | 
			
		||||
</mat-form-field>
 | 
			
		||||
@ -0,0 +1,3 @@
 | 
			
		||||
.long-form {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,23 @@
 | 
			
		||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
 | 
			
		||||
 | 
			
		||||
import { ModelComponentEditorComponent } from './model-component-editor.component';
 | 
			
		||||
 | 
			
		||||
describe('ModelComponentEditorComponent', () => {
 | 
			
		||||
  let component: ModelComponentEditorComponent;
 | 
			
		||||
  let fixture: ComponentFixture<ModelComponentEditorComponent>;
 | 
			
		||||
 | 
			
		||||
  beforeEach(async () => {
 | 
			
		||||
    await TestBed.configureTestingModule({
 | 
			
		||||
      imports: [ModelComponentEditorComponent]
 | 
			
		||||
    })
 | 
			
		||||
    .compileComponents();
 | 
			
		||||
    
 | 
			
		||||
    fixture = TestBed.createComponent(ModelComponentEditorComponent);
 | 
			
		||||
    component = fixture.componentInstance;
 | 
			
		||||
    fixture.detectChanges();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should create', () => {
 | 
			
		||||
    expect(component).toBeTruthy();
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
import {Component, Input, OnInit} from '@angular/core';
 | 
			
		||||
import {ModelComponent} from "../../game-model/ModelComponent";
 | 
			
		||||
import {FormControl, Validators} from "@angular/forms";
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-model-component-editor',
 | 
			
		||||
  templateUrl: './model-component-editor.component.html',
 | 
			
		||||
  styleUrl: './model-component-editor.component.scss'
 | 
			
		||||
})
 | 
			
		||||
export class ModelComponentEditorComponent implements OnInit{
 | 
			
		||||
  @Input('modelComponent') modelComponent: ModelComponent | undefined
 | 
			
		||||
 | 
			
		||||
  nameCtrl: FormControl = new FormControl('', [Validators.required]);
 | 
			
		||||
  descriptionCtrl: FormControl = new FormControl('' );
 | 
			
		||||
 | 
			
		||||
  ngOnInit() {
 | 
			
		||||
    this.nameCtrl.setValue(this.modelComponent!.componentName);
 | 
			
		||||
    this.descriptionCtrl.setValue(this.modelComponent!.componentDescription);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  onUpdateName() {
 | 
			
		||||
    this.modelComponent!.componentName = this.nameCtrl.value;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  onUpdateDescription() {
 | 
			
		||||
    this.modelComponent!.componentDescription = this.descriptionCtrl.value;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected readonly name = name;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user