|
- import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
- import {AbstractCreateDataComponent} from "@app/_interfaces/AbstractCreateDataComponent";
- import {
- ShippingCompanyService,
- VesselJsonld,
- VesselService,
- } from "@app/core/api/v1";
- import {ModalStatus} from "@app/_helpers/modal.states";
- import {FormGroup} from "@angular/forms";
- import {vesselForm} from "@app/_forms/apiForms";
- import {ListColDefinition} from "@app/_components/list/list-col-definition";
- import {SearchSelectComponent} from "@app/_components/search-select/search-select.component";
- import {ListGetDataFunctionType} from "@app/_components/list/list-get-data-function-type";
-
- @Component({
- selector: 'app-vessel-new',
- templateUrl: './vessel-new.component.html',
- styleUrl: './vessel-new.component.scss'
- })
- export class VesselNewComponent extends AbstractCreateDataComponent<VesselJsonld> implements OnInit {
- @Input() public override data!: VesselJsonld;
- @Output() public override submit: EventEmitter<ModalStatus> = new EventEmitter<ModalStatus>();
-
- protected readonly SearchSelectComponent = SearchSelectComponent;
- override form: FormGroup = vesselForm;
- protected shippingCompanyColDefinitions: ListColDefinition[];
-
- constructor(
- private vesselService: VesselService,
- private shippingCompanyService: ShippingCompanyService,
- ) {
- super();
- this.shippingCompanyColDefinitions = SearchSelectComponent.getDefaultColDefShippingCompanies();
- }
-
- override ngOnInit() {
- if (this.data) {
- this.form.patchValue(this.data);
- }
- }
-
- getInitialData(): VesselJsonld {
- return {} as VesselJsonld;
- }
-
- getShippingCompanies: ListGetDataFunctionType = (index: number, pageSize: number, term?: string) => {
- return this.shippingCompanyService.shippingCompaniesGetCollection(
- index,
- pageSize,
- term
- );
- }
-
- onSubmit() {
- if (this.form.valid) {
- this.vesselService.vesselsPost(
- this.form.value as VesselJsonld
- ).subscribe(
- data => {
- this.form.reset();
- this.submit.emit(ModalStatus.Submitted);
- }
- );
- }
- }
- }
|