From f6ce22480cbd1fe1ed9e1bb0a038cc6df8fa2030 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Tue, 4 May 2021 09:42:56 +0200 Subject: [PATCH] separate choice from form --- .../administration/form/form.component.ts | 67 +++++++++---------- .../errors-list/errors-list.component.html | 11 +-- .../form/errors-list/errors-list.component.ts | 9 ++- 3 files changed, 47 insertions(+), 40 deletions(-) diff --git a/src/app/features/administration/form/form.component.ts b/src/app/features/administration/form/form.component.ts index 7407057a..f3ff8b77 100644 --- a/src/app/features/administration/form/form.component.ts +++ b/src/app/features/administration/form/form.component.ts @@ -9,6 +9,7 @@ import { Router } from '@angular/router'; import { environment } from '../../../../environments/environment'; import { PollUtilitiesService } from '../../../core/services/poll.utilities.service'; import { StorageService } from '../../../core/services/storage.service'; +import { defaultDates, defaultTimeOfDay } from '../../../../../mocks/old-stuff/config/defaultConfigs'; @Component({ selector: 'app-admin-form', @@ -53,29 +54,29 @@ export class FormComponent implements OnInit { creatorEmail: ['', [Validators.required]], custom_url: [this.pollUtilitiesService.makeUuid(), [Validators.required]], description: ['', [Validators.required]], - choices: this.fb.array([ - this.fb.group({ - label: ['', [Validators.required]], - imageUrl: ['', [Validators.required]], - }), - ]), - dateChoices: this.fb.array([ - this.fb.group({ - label: ['', [Validators.required]], - // if we have enabled detailed time choices per date choice, we have to make a time property for each date choice - timeChoices: this.fb.array([ - this.fb.group({ - label: ['', [Validators.required]], - }), - ]), - }), - ]), - // these time choice are meant to be the same for each day - timeChoices: this.fb.array([ - this.fb.group({ - label: ['', [Validators.required]], - }), - ]), + // choices: this.fb.array([ + // this.fb.group({ + // label: ['', [Validators.required]], + // imageUrl: ['', [Validators.required]], + // }), + // ]), + // dateChoices: this.fb.array([ + // this.fb.group({ + // label: ['', [Validators.required]], + // // if we have enabled detailed time choices per date choice, we have to make a time property for each date choice + // timeChoices: this.fb.array([ + // this.fb.group({ + // label: ['', [Validators.required]], + // }), + // ]), + // }), + // ]), + // // these time choice are meant to be the same for each day + // timeChoices: this.fb.array([ + // this.fb.group({ + // label: ['', [Validators.required]], + // }), + // ]), kind: ['', [Validators.required]], areResultsPublic: [true, [Validators.required]], whoCanChangeAnswers: ['everybody', [Validators.required]], @@ -141,18 +142,14 @@ export class FormComponent implements OnInit { startDateInterval: new Date(), endDateInterval: new Date(), comments: [], - choices: [ - { - name: 'un choix', - url: 'https://placekitten.com/120/150', - }, - ], - dateChoices: [ - { - name: new Date(), - }, - ], - timeChoices: [], + // choices: [ + // { + // name: 'un choix', + // url: 'https://placekitten.com/120/150', + // }, + // ], + // dateChoices: defaultDates, + // timeChoices: defaultTimeOfDay, }); } diff --git a/src/app/features/shared/components/ui/form/errors-list/errors-list.component.html b/src/app/features/shared/components/ui/form/errors-list/errors-list.component.html index 07007cb4..d8505d18 100644 --- a/src/app/features/shared/components/ui/form/errors-list/errors-list.component.html +++ b/src/app/features/shared/components/ui/form/errors-list/errors-list.component.html @@ -1,11 +1,14 @@ -
+

Validation

- statut: {{ form.status }} - + statut: {{ form.status }} + {{ totalErrors }} erreurs de validation - +
  • diff --git a/src/app/features/shared/components/ui/form/errors-list/errors-list.component.ts b/src/app/features/shared/components/ui/form/errors-list/errors-list.component.ts index 38c2e36b..b045e5d5 100644 --- a/src/app/features/shared/components/ui/form/errors-list/errors-list.component.ts +++ b/src/app/features/shared/components/ui/form/errors-list/errors-list.component.ts @@ -24,7 +24,14 @@ export class ErrorsListComponent implements OnInit { this.messages = []; Object.keys(this.form.controls).forEach((key) => { - const controlErrors: ValidationErrors = this.form.get(key).errors; + const theKey = this.form.get(key); + const invalidData = theKey.invalid; + if (invalidData) { + totalErrors++; + console.log('key', key, invalidData); + this.messages.push('' + key + ' est invalide'); + } + const controlErrors: ValidationErrors = theKey.errors; if (controlErrors != null) { console.log('controlErrors', controlErrors); totalErrors++;