123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { CompanyType } from './../../../../shared/models/company/company.type';
- import { MsgState } from './../../../../ngrx/msg.state';
- import {
- CreateFormToUpdateCompanyAction,
- UpdateCompanyWithFormDataAction,
- } from './../../../../ngrx/companies/companies.actions';
- import { CompaniesServices } from './../../../../shared/services/companies.service';
- import { FormGroup, FormBuilder, Validators } from '@angular/forms';
- import { CompanyState } from './../../../../ngrx/companies/company.state';
- import { ActivatedRoute, Router } from '@angular/router';
- import { Component, OnInit } from '@angular/core';
- import { Store } from '@ngrx/store';
- import { Company } from 'src/app/shared/models/company/company.model';
-
- @Component({
- selector: 'app-company-update',
- templateUrl: './company-update.component.html',
- styleUrls: ['./company-update.component.css'],
- })
- export class CompanyUpdateComponent implements OnInit {
- companyId: number;
- companyFormGroup!: FormGroup;
- companyState!: CompanyState;
- msgState = MsgState;
- companyTypes = CompanyType;
-
- constructor(
- activatedRoute: ActivatedRoute,
- private store: Store<{ companyReducerKey: CompanyState }>,
- private formBuilder: FormBuilder,
- private companiesService: CompaniesServices,
- private router: Router
- ) {
- this.companyId = activatedRoute.snapshot.params['companyId'];
- }
-
- ngOnInit(): void {
- this.companiesService
- .getCompanyById(this.companyId)
- .subscribe((company: Company) => {
- this.store.dispatch(new CreateFormToUpdateCompanyAction(company));
-
- this.store.subscribe((state) => {
- this.companyState = state.companyReducerKey;
- this.companyFormGroup = this.formBuilder.group({
- id: [this.companyState.currentCompany?.id, Validators.required],
- companyName: [
- this.companyState.currentCompany?.companyName,
- [Validators.required, Validators.minLength(5)],
- ],
- companyType: [
- this.companyState.currentCompany?.companyType,
- Validators.required,
- ],
- creationDate: [
- this.companyState.currentCompany?.creationDate,
- Validators.required,
- ],
- });
- });
- });
- }
-
- onCompanyUpdate() {
- let company: Company = this.companyFormGroup.value;
-
- if (window.confirm(this.msgState.CONFIRM_UPDATE)) {
- this.store.dispatch(new UpdateCompanyWithFormDataAction(company));
- }
- }
-
- onUpdateOk() {
- this.router.navigate(['/companies-management']);
- }
- }
|