Moved the use of store to services

This commit is contained in:
Giuseppe
2018-10-11 14:18:55 +02:00
parent d5c5749784
commit d2e522749d
13 changed files with 182 additions and 142 deletions

View File

@@ -1,25 +1,22 @@
import { ChangeDetectorRef, Component, Inject, OnDestroy, ViewChild } from '@angular/core';
import { Store } from '@ngrx/store';
import { DynamicFormControlEvent, DynamicFormControlModel } from '@ng-dynamic-forms/core';
import { Subscription } from 'rxjs/Subscription';
import { TranslateService } from '@ngx-translate/core';
import { isEqual } from 'lodash';
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
import { FormComponent } from '../../../shared/form/form.component';
import { FormService } from '../../../shared/form/form.service';
import { SaveSubmissionFormAction, SectionStatusChangeAction, } from '../../objects/submission-objects.actions';
import { SectionModelComponent } from '../models/section.model';
import { SubmissionState } from '../../submission.reducers';
import { SubmissionFormsConfigService } from '../../../core/config/submission-forms-config.service';
import { hasValue, isNotEmpty, isNotUndefined, isUndefined } from '../../../shared/empty.util';
import { ConfigData } from '../../../core/config/config-data';
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
import { submissionSectionDataFromIdSelector, submissionSectionFromIdSelector } from '../../selectors';
import { SubmissionFormsModel } from '../../../core/shared/config/config-submission-forms.model';
import { SubmissionSectionError, SubmissionSectionObject } from '../../objects/submission-objects.reducer';
import { FormFieldPreviousValueObject } from '../../../shared/form/builder/models/form-field-previous-value-object';
import { WorkspaceitemSectionDataType } from '../../../core/submission/models/workspaceitem-sections.model';
import { Subscription } from 'rxjs/Subscription';
import { GLOBAL_CONFIG } from '../../../../config';
import { GlobalConfig } from '../../../../config/global-config.interface';
import { SectionDataObject } from '../models/section-data.model';
@@ -28,7 +25,6 @@ import { SectionsType } from '../sections-type';
import { SubmissionService } from '../../submission.service';
import { FormOperationsService } from './form-operations.service';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { TranslateService } from '@ngx-translate/core';
import { SectionsService } from '../sections.service';
import { difference } from '../../../shared/object.util';
@@ -59,7 +55,6 @@ export class FormSectionComponent extends SectionModelComponent implements OnDes
protected formService: FormService,
protected formConfigService: SubmissionFormsConfigService,
protected notificationsService: NotificationsService,
protected store: Store<SubmissionState>,
protected sectionService: SectionsService,
protected submissionService: SubmissionService,
protected translate: TranslateService,
@@ -77,7 +72,7 @@ export class FormSectionComponent extends SectionModelComponent implements OnDes
.subscribe((config: SubmissionFormsModel) => {
this.formConfig = config;
this.formId = this.formService.getUniqueId(this.sectionData.id);
this.store.select(submissionSectionDataFromIdSelector(this.submissionId, this.sectionData.id))
this.sectionService.getSectionData(this.submissionId, this.sectionData.id)
.take(1)
.subscribe((sectionData: WorkspaceitemSectionDataType) => {
if (isUndefined(this.formModel)) {
@@ -180,7 +175,7 @@ export class FormSectionComponent extends SectionModelComponent implements OnDes
.filter((formValid) => formValid !== this.valid)
.subscribe((formState) => {
this.valid = formState;
this.store.dispatch(new SectionStatusChangeAction(this.submissionId, this.sectionData.id, this.valid));
this.sectionService.setSectionStatus(this.submissionId, this.sectionData.id, this.valid);
}),
/**
* Subscribe to form's data
@@ -193,7 +188,7 @@ export class FormSectionComponent extends SectionModelComponent implements OnDes
/**
* Subscribe to section state
*/
this.store.select(submissionSectionFromIdSelector(this.submissionId, this.sectionData.id))
this.sectionService.getSectionState(this.submissionId, this.sectionData.id)
.filter((sectionState: SubmissionSectionObject) => {
return isNotEmpty(sectionState) && (isNotEmpty(sectionState.data) || isNotEmpty(sectionState.errors))
})
@@ -214,7 +209,7 @@ export class FormSectionComponent extends SectionModelComponent implements OnDes
const value = this.formOperationsService.getFieldValueFromChangeEvent(event);
if (this.EnvConfig.submission.autosave.metadata.indexOf(metadata) !== -1 && isNotEmpty(value)) {
this.store.dispatch(new SaveSubmissionFormAction(this.submissionId));
this.submissionService.dispatchSave(this.submissionId);
}
}