diff --git a/src/app/core/components/contact/contact.component.html b/src/app/core/components/contact/contact.component.html index bced7365fbd4ed3c9149ba755bf65b219cf90dd3..620f411b94bfc9f40c587a68f451d14b45573c84 100644 --- a/src/app/core/components/contact/contact.component.html +++ b/src/app/core/components/contact/contact.component.html @@ -16,9 +16,11 @@ <div class="fields-container"> <div class="field"> - <label class="label" for="lastname" i18n="@@contact.lastname">Lastname</label> + <label class="label" for="lastname"><span i18n="@@contact.lastname">Lastname</span><span + class="required-field">*</span></label> <p class="control has-icons-right"> - <input id="lastname" class="input" type="text" formControlName="lastname" (keyup)="toUppercase('lastname')" + <input id="lastname" class="input" type="text" formControlName="lastname" + (keyup)="toUppercase('lastname')" [ngClass]="{'is-danger': fieldIsInvalid('lastname'), 'is-success': fieldIsValid('lastname')}"> <span class="icon is-small is-right has-text-success" *ngIf="fieldIsValid('lastname')"> <i class="fas fa-check-circle"></i> @@ -39,9 +41,11 @@ </div> <div class="field"> - <label class="label" for="firstname" i18n="@@contact.firstname">Firstname</label> + <label class="label" for="firstname"><span i18n="@@contact.firstname">Firstname</span><span + class="required-field">*</span></label> <p class="control has-icons-right"> - <input id="firstname" class="input" type="text" (keyup)="toUppercase('firstname')" formControlName="firstname" + <input id="firstname" class="input" type="text" (keyup)="toUppercase('firstname')" + formControlName="firstname" [ngClass]="{'is-danger': fieldIsInvalid('firstname'), 'is-success': fieldIsValid('firstname')}"> <span class="icon is-small is-right has-text-success" *ngIf="fieldIsValid('firstname')"> <i class="fas fa-check-circle"></i> @@ -62,9 +66,11 @@ </div> <div class="field"> - <label class="label" for="email" i18n="@@contact.email">Email</label> + <label class="label" for="email"><span i18n="@@contact.email">Email</span><span + class="required-field">*</span></label> <p class="control has-icons-right"> - <input id="email" class="input" type="email" formControlName="email" [ngClass]="{'is-danger': fieldIsInvalid('email'), 'is-success': fieldIsValid('email')}"> + <input id="email" class="input" type="email" formControlName="email" + [ngClass]="{'is-danger': fieldIsInvalid('email'), 'is-success': fieldIsValid('email')}"> <span class="icon is-small is-right has-text-success" *ngIf="fieldIsValid('email')"> <i class="fas fa-check-circle"></i> </span> @@ -85,15 +91,17 @@ </div> <div class="field"> - <label class="label" for="emailConfirmation" i18n="@@contact.emailConfirmation">Confirm your email - address</label> + <label class="label" for="emailConfirmation"><span i18n="@@contact.emailConfirmation">Confirm your email + address</span><span class="required-field">*</span></label> <p class="control has-icons-right"> <input id="emailConfirmation" class="input" type="email" formControlName="emailConfirmation" [ngClass]="{'is-danger': emailConfirmationError || fieldIsInvalid('emailConfirmation'), 'is-success': !emailConfirmationError && fieldIsValid('emailConfirmation')}"> - <span class="icon is-small is-right has-text-success" *ngIf="!emailConfirmationError && fieldIsValid('emailConfirmation')"> + <span class="icon is-small is-right has-text-success" + *ngIf="!emailConfirmationError && fieldIsValid('emailConfirmation')"> <i class="fas fa-check-circle"></i> </span> - <span class="icon is-small is-right has-text-danger" *ngIf="emailConfirmationError || fieldIsInvalid('emailConfirmation')"> + <span class="icon is-small is-right has-text-danger" + *ngIf="emailConfirmationError || fieldIsInvalid('emailConfirmation')"> <i class="fas fa-exclamation-circle"></i> </span> </p> @@ -124,11 +132,12 @@ <div class="column is-12-mobile is-10-tablet is-9-desktop"> <div class="field"> - <label class="label" [for]="subjectLabelFor" i18n="@@contact.subject">Subject</label> + <label class="label" [for]="subjectLabelFor"><span i18n="@@contact.subject">Subject</span><span + class="required-field">*</span></label> <div class="dropdown" [ngClass]="{'is-active': subjectDropdownState}" (clickOutside)="closeSubjectDropdown()"> <div class="dropdown-trigger" (click)="toggleSubject()"> - <button id="subjectDropdown" type="button" class="button" aria-haspopup="true" aria-controls="dropdown-menu" - [disabled]="formDisabled"> + <button id="subjectDropdown" type="button" class="button" aria-haspopup="true" + aria-controls="dropdown-menu" [disabled]="formDisabled"> <span>{{ selectedSubject !== null && selectedSubject.value !== null ? selectedSubject.value : '---'}}</span> <span class="icon is-small"> <i class="fas fa-angle-down" aria-hidden="true"></i> @@ -137,15 +146,16 @@ </div> <div class="dropdown-menu" id="dropdown-menu" role="menu"> <ul class="dropdown-content"> - <li class="dropdown-item" *ngFor="let sub of subjects" (keydown.enter)="setSubject(sub)" (click)="setSubject(sub)" - tabindex=0> + <li class="dropdown-item" *ngFor="let sub of subjects" (keydown.enter)="setSubject(sub)" + (click)="setSubject(sub)" tabindex=0> {{ sub.value }} </li> </ul> </div> </div> <p class="control has-icons-right subject-input-control" *ngIf="displaySubjectInput === true"> - <input id="subjectInput" class="input" type="text" formControlName="subject" [ngClass]="{'is-danger': fieldIsInvalid('subject'), 'is-success': fieldIsValid('subject')}"> + <input id="subjectInput" class="input" type="text" formControlName="subject" + [ngClass]="{'is-danger': fieldIsInvalid('subject'), 'is-success': fieldIsValid('subject')}"> <span class="icon is-small is-right has-text-success" *ngIf="fieldIsValid('subject')"> <i class="fas fa-check-circle"></i> </span> @@ -162,10 +172,11 @@ </div> <div class="field"> - <label class="label" for="text" i18n="@@contact.messageField">Message</label> + <label class="label" for="text"><span i18n="@@contact.messageField">Message</span><span + class="required-field">*</span></label> <p class="control has-icons-right"> - <textarea id="text" class="textarea has-fixed-size" type="textarea" formControlName="text" [ngClass]="{'is-danger': fieldIsInvalid('text'), 'is-success': fieldIsValid('text')}" - rows=6></textarea> + <textarea id="text" class="textarea has-fixed-size" type="textarea" formControlName="text" + [ngClass]="{'is-danger': fieldIsInvalid('text'), 'is-success': fieldIsValid('text')}" rows=6></textarea> <span class="icon is-small is-right has-text-success" *ngIf="fieldIsValid('text')"> <i class="fas fa-check-circle"></i> </span> @@ -180,6 +191,34 @@ </div> </div> </div> + + <div class="field"> + <input id="consent" class="is-checkradio is-success" type="checkbox" formControlName="consent"> + <label for="consent" class="label consent-label"> + <p><span i18n="@@signup.consent">En cochant cette case j'accepte les conditions générales d'utilisation + ainsi que les informations saisies dans ce + formulaire soient traitées pour répondre à ma demande</span><span class="required-field">*</span></p> + + </label> + <p class="consent-text"> + Les champs suivi d'un astérisque (*) sont obligatoires. Les informations contenues dans ces champs font + l’objet d’un traitement informatisé destiné à répondre à votre demande. Les destinataires des informations + sont les services communaux et métropolitains en charge du traitement de votre demande. Conformément à la + loi "informatique et libertés" du 6 janvier 1978 modifiée, vous bénéficiez d’un droit d’accès et de + rectification aux informations qui vous concernent. Si vous souhaitez exercer ce droit et obtenir + communication des informations vous concernant, veuillez-vous adresser à : Métropole de Lyon - Direction des + Affaires Juridiques et de la Commande Publique - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 : par + courrier ou au moyen du formulaire approprié sur ce guichet. Vous pouvez également, pour des motifs + légitimes, vous opposer au traitement des données vous concernant. Dans ce cas, nous ne pourrons pas traiter + la demande soumise via ce formulaire. + </p> + <div class="form-incorrect-field-message" *ngIf="fieldIsInvalid('consent')"> + <div *ngIf="consent.errors['required']"> + Vous devez accepter les conditions générales d'utilisation ainsi que le traitement informatisé de vos + données pour répondre à votre demande. + </div> + </div> + </div> </div> </div> <div class="columns"> @@ -188,11 +227,11 @@ <div class="has-text-right button-wrapper"> <button class="button button-gl is-outlined" type="button" [disabled]="formDisabled" (click)="cancel()" i18n="@@contact.cancel">Cancel</button> - <button type="submit" class="button button-gl" [ngClass]="{'is-loading': formDisabled}" [disabled]="formIsInvalid || formDisabled" - i18n="@@contact.send">Send</button> + <button type="submit" class="button button-gl" [ngClass]="{'is-loading': formDisabled}" + [disabled]="formIsInvalid || formDisabled" i18n="@@contact.send">Send</button> </div> </div> </div> </div> </form> -</div> \ No newline at end of file +</div> diff --git a/src/app/core/components/contact/contact.component.scss b/src/app/core/components/contact/contact.component.scss index 290a38c868bd28a3af443f0ffa09ea63af7222f7..4460fc378f9b7d1f8835107b49d4d41856058be2 100644 --- a/src/app/core/components/contact/contact.component.scss +++ b/src/app/core/components/contact/contact.component.scss @@ -41,10 +41,18 @@ h3 { } } - label { - font-size: 1rem; - font-weight: normal; - font-style: normal; + .is-checkradio[type="checkbox"] + label { + margin: 0; + display: flex; + align-items: center; + } + + .is-checkradio[type="checkbox"] + label::before { + top: unset; + } + + .is-checkradio[type="checkbox"] + label::after { + top: unset; } .fullname { diff --git a/src/app/core/components/contact/contact.component.ts b/src/app/core/components/contact/contact.component.ts index a6ba4625a70d00f2314d30da276f7491794e7d4f..b73e2831f23f8f64e31f767a886a50e9602959f7 100644 --- a/src/app/core/components/contact/contact.component.ts +++ b/src/app/core/components/contact/contact.component.ts @@ -43,6 +43,7 @@ export class ContactComponent implements OnInit { emailConfirmation: ['', [Validators.required, Validators.email]], subject: ['', Validators.required], text: ['', Validators.required], + consent: ['', Validators.requiredTrue], }); } @@ -185,6 +186,7 @@ export class ContactComponent implements OnInit { get emailConfirmation() { return this.form.get('emailConfirmation'); } get subject() { return this.form.get('subject'); } get text() { return this.form.get('text'); } + get consent() { return this.form.get('consent'); } } diff --git a/src/app/core/models/email.model.ts b/src/app/core/models/email.model.ts index 0831e2a7b4014591c8341a8917456272e02fe3e1..d0684fa9d751d1eefebba307d9ba3d56e9d49939 100644 --- a/src/app/core/models/email.model.ts +++ b/src/app/core/models/email.model.ts @@ -5,6 +5,7 @@ export interface IContactForm { text: string; firstname: string; lastname: string; + consent: boolean; } export class Email { diff --git a/src/app/user/components/auth/sign-up/sign-up.component.html b/src/app/user/components/auth/sign-up/sign-up.component.html index 74eabbe3267066615285b0745631c4fde3a31266..ad09f96f47152aca35d9c022baeaca5414332b4c 100644 --- a/src/app/user/components/auth/sign-up/sign-up.component.html +++ b/src/app/user/components/auth/sign-up/sign-up.component.html @@ -246,7 +246,7 @@ <div class="column is-12"> <div class="field"> <input id="acceptMessages" class="is-checkradio is-success" type="checkbox" formControlName="acceptMessages"> - <label for="acceptMessages" class="label acceptMessagesLabel" i18n="@@form.messagesAgreement">I agree to + <label for="acceptMessages" class="label accept-messages-label" i18n="@@form.messagesAgreement">I agree to receive information</label> <p class="acceptMessagesInfo" i18n="@@form.acceptMessagesInfo"> Check this box if you agree to receive information emails from Data about the operation of services, model @@ -255,7 +255,7 @@ </div> </div> - <div class="column is-12"> + <!-- <div class="column is-12"> <div class="field"> <input id="cgu" class="is-checkradio is-success" type="checkbox" formControlName="cgu"> <label for="cgu" class="label cguLabel"><span i18n="@@signup.cgu">I agree to the general terms of @@ -267,31 +267,31 @@ </div> </div> </div> - </div> + </div> --> <div class="column is-12"> - <p class="consent-text"> - Les champs suivi d'un astérisque (*) sont obligatoires. Les informations contenues dans ces champs font - l’objet d’un traitement informatisé destiné à répondre à votre demande. Les destinataires des informations - sont les services communaux et métropolitains en charge du traitement de votre demande. Conformément à la - loi "informatique et libertés" du 6 janvier 1978 modifiée, vous bénéficiez d’un droit d’accès et de - rectification aux informations qui vous concernent. Si vous souhaitez exercer ce droit et obtenir - communication des informations vous concernant, veuillez-vous adresser à : Métropole de Lyon - Direction des - Affaires Juridiques et de la Commande Publique - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 : par - courrier ou au moyen du formulaire approprié sur ce guichet. Vous pouvez également, pour des motifs - légitimes, vous opposer au traitement des données vous concernant. Dans ce cas, nous ne pourrons pas traiter - la demande soumise via ce formulaire. - </p> <div class="field"> <input id="consent" class="is-checkradio is-success" type="checkbox" formControlName="consent"> - <label for="consent" class="label consentLabel"> - <span i18n="@@signup.consent">En cochant cette case j'accepte que les informations saisies dans ce - formulaire soient traitées pour répondre à ma demande.</span><span class="required-field">*</span> + <label for="consent" class="label consent-label"> + <p><span i18n="@@signup.consent">En cochant cette case j'accepte les conditions générales d'utilisation ainsi que les informations saisies dans ce + formulaire soient traitées pour répondre à ma demande</span><span class="required-field">*</span></p> + </label> - - <div class="form-incorrect-field-message" *ngIf="fieldIsInvalid('cgu')"> - <div *ngIf="cgu.errors['required']" i18n="@@signup.errors.mustConsent"> - You must give your consent + <p class="consent-text"> + Les champs suivi d'un astérisque (*) sont obligatoires. Les informations contenues dans ces champs font + l’objet d’un traitement informatisé destiné à répondre à votre demande. Les destinataires des informations + sont les services communaux et métropolitains en charge du traitement de votre demande. Conformément à la + loi "informatique et libertés" du 6 janvier 1978 modifiée, vous bénéficiez d’un droit d’accès et de + rectification aux informations qui vous concernent. Si vous souhaitez exercer ce droit et obtenir + communication des informations vous concernant, veuillez-vous adresser à : Métropole de Lyon - Direction des + Affaires Juridiques et de la Commande Publique - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 : par + courrier ou au moyen du formulaire approprié sur ce guichet. Vous pouvez également, pour des motifs + légitimes, vous opposer au traitement des données vous concernant. Dans ce cas, nous ne pourrons pas traiter + la demande soumise via ce formulaire. + </p> + <div class="form-incorrect-field-message" *ngIf="fieldIsInvalid('consent')"> + <div *ngIf="consent.errors['required']"> + Vous devez accepter les conditions générales d'utilisation ainsi que le traitement informatisé de vos données pour répondre à votre demande. </div> </div> </div> @@ -305,7 +305,6 @@ </div> </div> </div> - </div> </form> </div> diff --git a/src/app/user/components/auth/sign-up/sign-up.component.scss b/src/app/user/components/auth/sign-up/sign-up.component.scss index df0b9eafd8c20dfb296826fce94963865479933d..9be6607f553aed9f3d707f44d76a3b252508edce 100644 --- a/src/app/user/components/auth/sign-up/sign-up.component.scss +++ b/src/app/user/components/auth/sign-up/sign-up.component.scss @@ -17,8 +17,10 @@ h1 { background-color: white; } -.is-checkradio[type="checkbox"] + label.acceptMessagesLabel, .is-checkradio[type="checkbox"] + label.cguLabel, .is-checkradio[type="checkbox"] + label.consentLabel { - margin-left: 0; +.is-checkradio[type="checkbox"] + label { + margin: 0; + display: flex; + align-items: center; } .is-checkradio[type="checkbox"] + label::before { @@ -26,7 +28,7 @@ h1 { } .is-checkradio[type="checkbox"] + label::after { - top: 0.5rem; + top: unset; } .acceptMessagesInfo, .consent-text { @@ -35,9 +37,4 @@ h1 { .consent-text { margin-bottom: 0.75rem; -} - -.required-field { - color: $tomato-color; - padding-left: 0.25rem; } \ No newline at end of file diff --git a/src/app/user/components/auth/sign-up/sign-up.component.ts b/src/app/user/components/auth/sign-up/sign-up.component.ts index 907040998f77056455e22b6d96a532fc64b9d55a..d844cc49e69d05acb3fbaeb5af57ba7a9166737f 100644 --- a/src/app/user/components/auth/sign-up/sign-up.component.ts +++ b/src/app/user/components/auth/sign-up/sign-up.component.ts @@ -49,7 +49,7 @@ export class SignUpComponent implements OnInit { zipcode: [''], city: [''], country: [''], - cgu: [false, Validators.requiredTrue], + // cgu: [false, Validators.requiredTrue], consent: [false, Validators.requiredTrue], }); } @@ -70,7 +70,8 @@ export class SignUpComponent implements OnInit { get zipcode() { return this.form.get('zipcode'); } get city() { return this.form.get('city'); } get contry() { return this.form.get('contry'); } - get cgu() { return this.form.get('cgu'); } + // get cgu() { return this.form.get('cgu'); } + get consent() { return this.form.get('consent'); } get formDisabled(): boolean { return this.form.disabled; diff --git a/src/app/user/components/user-profil/user-profil.component.html b/src/app/user/components/user-profil/user-profil.component.html index 2cd2618866a52e85ec3a66c71cc7be3b56fad5fc..385174c77e734eecade4ba28def8f8df72a261f6 100644 --- a/src/app/user/components/user-profil/user-profil.component.html +++ b/src/app/user/components/user-profil/user-profil.component.html @@ -122,6 +122,34 @@ </div> </div> + <div class="column is-12"> + <div class="field"> + <input id="consent" class="is-checkradio is-success" type="checkbox" formControlName="consent"> + <label for="consent" class="label consent-label"> + <p><span i18n="@@signup.consent">En cochant cette case j'accepte les conditions générales d'utilisation ainsi que les informations saisies dans ce + formulaire soient traitées pour répondre à ma demande</span><span class="required-field">*</span></p> + + </label> + <p class="consent-text"> + Les champs suivi d'un astérisque (*) sont obligatoires. Les informations contenues dans ces champs font + l’objet d’un traitement informatisé destiné à répondre à votre demande. Les destinataires des informations + sont les services communaux et métropolitains en charge du traitement de votre demande. Conformément à la + loi "informatique et libertés" du 6 janvier 1978 modifiée, vous bénéficiez d’un droit d’accès et de + rectification aux informations qui vous concernent. Si vous souhaitez exercer ce droit et obtenir + communication des informations vous concernant, veuillez-vous adresser à : Métropole de Lyon - Direction des + Affaires Juridiques et de la Commande Publique - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 : par + courrier ou au moyen du formulaire approprié sur ce guichet. Vous pouvez également, pour des motifs + légitimes, vous opposer au traitement des données vous concernant. Dans ce cas, nous ne pourrons pas traiter + la demande soumise via ce formulaire. + </p> + <div class="form-incorrect-field-message" *ngIf="fieldIsInvalid(userInfoUpdateForm, 'consent')"> + <div *ngIf="consent.errors['required']"> + Vous devez accepter les conditions générales d'utilisation ainsi que le traitement informatisé de vos données pour répondre à votre demande. + </div> + </div> + </div> + </div> + <div class="column is-12 has-text-right"> <button type="button" class="button button-gl is-outlined" i18n="@@userProfil.deleteAccount" [disabled]="userAccountDeletionRequestIsPending" (click)="openDeleteAccountModal()">Delete diff --git a/src/app/user/components/user-profil/user-profil.component.scss b/src/app/user/components/user-profil/user-profil.component.scss index b1f5456c9c80fc0675035373c5113b488e064d75..f91359601d3434c1cde73f3a701c72cb476b3524 100644 --- a/src/app/user/components/user-profil/user-profil.component.scss +++ b/src/app/user/components/user-profil/user-profil.component.scss @@ -39,3 +39,17 @@ h1 { padding: $size-6; } } + +.is-checkradio[type="checkbox"] + label { + margin: 0; + display: flex; + align-items: center; +} + +.is-checkradio[type="checkbox"] + label::before { + top: unset; +} + +.is-checkradio[type="checkbox"] + label::after { + top: unset; +} diff --git a/src/app/user/components/user-profil/user-profil.component.ts b/src/app/user/components/user-profil/user-profil.component.ts index fe97d40e48eee2827296b12e65d6698f5c121ec9..ca3a5cedbbf3eaa05b652c5b6f418430623e75ac 100644 --- a/src/app/user/components/user-profil/user-profil.component.ts +++ b/src/app/user/components/user-profil/user-profil.component.ts @@ -3,7 +3,7 @@ import { FormGroup, FormBuilder, Validators, AbstractControl } from '@angular/fo import { environment } from '../../../../environments/environment'; import { ValidatePassword } from '../../validators/password.validator'; import { UserService } from '../../services'; -import { PasswordUpdateForm } from '../../models'; +import { PasswordUpdateForm, LegacyAccount } from '../../models'; import { notificationMessages } from '../../../../i18n/traductions'; import { NotificationService } from '../../../core/services'; import { Router } from '@angular/router'; @@ -58,6 +58,7 @@ export class UserProfilComponent implements OnInit { zipcode: [], city: [], country: [], + consent: [false, Validators.requiredTrue], }); this.userInfoUpdateForm.disable(); } @@ -76,6 +77,7 @@ export class UserProfilComponent implements OnInit { get zipcode() { return this.userInfoUpdateForm.get('zipcode'); } get city() { return this.userInfoUpdateForm.get('city'); } get contry() { return this.userInfoUpdateForm.get('contry'); } + get consent() { return this.userInfoUpdateForm.get('consent'); } get newPassword(): AbstractControl { return this.passwordUpdateForm.get('newPassword'); } get newPasswordConfirmation(): AbstractControl { return this.passwordUpdateForm.get('newPasswordConfirmation'); } @@ -195,6 +197,7 @@ export class UserProfilComponent implements OnInit { updateUserInfo() { this.userInfoUpdateForm.disable(); this.userInfoUpdateRequestIsPending = true; // Display loader + const account = new LegacyAccount(this.userInfoUpdateForm.value); this._userService.updateUserInfo(this.userInfoUpdateForm.getRawValue()).pipe( // To do both on success and error when the observable finalize(() => { diff --git a/src/app/user/models/user.model.ts b/src/app/user/models/user.model.ts index 41f556149b923d3cb487fbc12934e92a0fad5568..b6f2adefc775b4eab440d92f8c41bde16c04f5d8 100644 --- a/src/app/user/models/user.model.ts +++ b/src/app/user/models/user.model.ts @@ -34,7 +34,7 @@ export interface ICreateAccountForm { zipcode: string; city: string; country: string; - cgu: boolean; + // cgu: boolean; consent: boolean; } @@ -78,6 +78,33 @@ export interface IUserInfo { zipcode: string; acceptMessages: boolean; email: string; + consent: boolean; +} + +export class UserInfo { + username: string; + lastName: string; + firstName: string; + entreprise: string; + address: string; + city: string; + country: string; + zipcode: string; + acceptMessages: boolean; + email: string; + + constructor(form: IUserInfo) { + this.firstName = form.firstName; + this.lastName = form.lastName; + this.username = form.email; + this.email = form.email; + this.acceptMessages = form.acceptMessages; + this.entreprise = form.entreprise; + this.address = form.address; + this.zipcode = form.zipcode; + this.city = form.city; + this.country = form.country; + } } export class PasswordUpdateForm { diff --git a/src/assets/config/config.json b/src/assets/config/config.json index 6b5aed00495c2837447d7ab27c8ee1391b111414..5bffa515deba25cfbaf929a5f4f7ab8ee0ca6a07 100644 --- a/src/assets/config/config.json +++ b/src/assets/config/config.json @@ -3,8 +3,8 @@ "organizations": "http://localhost:3001/organizations", "resources": "http://localhost:3003", "credits": "http://localhost:3005/credits", - "auth": "http://localhost:3002/", - "middlewareLegacyAuth": "http://localhost:3004/", + "auth": "https://kong-dev.alpha.grandlyon.com/authentication/", + "middlewareLegacyAuth": "https://kong-dev.alpha.grandlyon.com/middleware-legacy", "email": "http://localhost:3001/email", "matomo": "https://matomo-intothesky.alpha.grandlyon.com", "elasticsearch": "https://kong-dev.alpha.grandlyon.com/es-consumer-aware", diff --git a/src/styles.scss b/src/styles.scss index 94b827523f9a769822fc7f36c5da87317126e33e..3abcc32ab89ea53f60081dfb4f840fb8bc875cdc 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -330,6 +330,11 @@ label { } } +label .required-field { + color: $tomato-color; + padding-left: 0.25rem; +} + .form-incorrect-field-message { color: $brand-color; font-style: italic;