separate choice from form

This commit is contained in:
Tykayn 2021-05-04 09:42:56 +02:00 committed by tykayn
parent 186e5e36da
commit f6ce22480c
3 changed files with 47 additions and 40 deletions

View File

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

View File

@ -1,11 +1,14 @@
<div class="validation-error-list" [ngClass]="{ 'has-background-warning': totalErrors > 0 }">
<div
class="validation-error-list padded"
[ngClass]="{ 'has-background-warning': totalErrors > 0, 'has-background-success': totalErrors === 0 }"
>
<h1 class="title is-1">
Validation
</h1>
<span class="status"> statut: {{ form.status }} </span>
<span class="has-background-warning total-errors" *ngIf="form && getFormValidationErrors()">
<span class="status marged"> statut: {{ form.status }} </span>
<strong class="marged has-background-warning total-errors" *ngIf="form && totalErrors">
{{ totalErrors }} erreurs de validation
</span>
</strong>
<ul>
<li *ngFor="let m of messages">

View File

@ -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++;