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: `
`
})
@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;
}
}