import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { Observable } from 'rxjs/Rx'; import { Injectable } from "@angular/core"; import { SectorFieldsActions } from '../../actions/sectorfields.actions'; import { NgRedux, select } from 'ng2-redux'; import { ISectorFields } from '../../store/sectorfields/sectorfields.types'; import { IAppState } from '../../store/store'; //import ApplicationPreview from './application.preview'; import { FormBuilder, FormGroup, FormControl, FormArray } from '@angular/forms'; import {AppSettings} from '../../app.settings'; @Component({ selector: 'sector-fields-select', template: `
  • {{sectorField$.name}}
  • ` }) @Injectable() export default class SectorFieldsSelect implements OnInit { private sectorFields$: Observable; public formGroup: FormGroup; public cfs = new FormArray([]); private sectorActive = -1; constructor(private fb: FormBuilder, private _cfa: SectorFieldsActions, private _ngRedux: NgRedux, private router: Router) { this.formGroup = this.fb.group({ formArray: this.cfs }); }; ngOnInit() { this._cfa.getSectorFields(); this.sectorFields$ = this._ngRedux.select(state => { state.sectorFields.reduce(({}, sectorField) =>{ this.cfs.push(new FormControl(sectorField.selected, [])); if (sectorField.selected === true) { this.sectorActive = sectorField.id - 1; } return sectorField; }, {}); return state.sectorFields; }); } navigateToSchools() { //this.saveSelected(); this.router.navigate(['/region-schools-select']); } saveSelected() { for (let i = 0; i < this.formGroup.value.formArray.length; i++) this.formGroup.value.formArray[i] = false; if (this.sectorActive != -1) this.formGroup.value.formArray[this.sectorActive] = true; this._cfa.saveSectorFieldsSelected(this.formGroup.value.formArray); } setActiveSectorAndSave(ind) { if (ind === this.sectorActive) ind = -1; this.sectorActive = ind; this.saveSelected(); } toggleBackgroundColor(ind) { return ((this.sectorActive === ind) ? "cyan" : "#eeeeee"); } retrieveCheck() { for (let i = 0; i < this.formGroup.value.formArray.length; i++) if (this.formGroup.value.formArray[i] === true) { this.sectorActive = i; return i; } return -1; } }