Projet

Général

Profil

Development #50565

orleans: modifier le visuel des champs obligatoires lorsqu'ils ne sont pas remplis

Ajouté par Serghei Mihai il y a environ 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
26 janvier 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Demande formulée par la ville: #49911#note-8


Fichiers

Révisions associées

Révision e8512b94 (diff)
Ajouté par Serghei Mihai il y a environ 3 ans

orleans: highlight widgets with errors (#50565)

Historique

#1

Mis à jour par Frédéric Péters il y a environ 3 ans

Peut-être utile, grosboule-les-bains/extra.js (qui se combine avec le $form-style: light qui a un effet de style similaire)

#3

Mis à jour par Serghei Mihai il y a environ 3 ans

Merci pour l'astuce dans extra.js.
Je préfère éviter d'appliquer le style light au formulaire pour ne pas introduire trop de changements, même si j'aime bien.

#4

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans

Côté couleur je trouve ça un peu fort.
Je verrais mieux un rose plus clair pour le fond
Je te propose de récupérer la couleur de fond et de bordure du message d'alerte (permettrait d'uniformiser).

Il manque la couleur sur les listes checkbox/radio.

#5

Mis à jour par Serghei Mihai il y a environ 3 ans

Thomas Jund a écrit :

Je te propose de récupérer la couleur de fond et de bordure du message d'alerte (permettrait d'uniformiser).

Ok, je vais prendre $notification_error_color pour le fond et pour la bordure assombrir celle-ci de 25%

Il manque la couleur sur les listes checkbox/radio.

Comme ce sont des widgets natifs faits par le navigo, la bordure ne s'y applique pas. Je suis preneur de tes conseils.

#6

Mis à jour par Serghei Mihai il y a environ 3 ans

En désactivant l'apparence par défaut pour les checkbox et radio.

#7

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans

Ça en devient compliqué je trouve. Tu redessines les checkboxs et les radios.
et puis ça ne rend pas la solution compatible avec les champs custom comme template_meeting oui template_evaluation.

J'ai tourné un peu ce problème et je proposerais de cibler plutôt '.content' pour afficher un code couleur d'erreur. Ça englobe le message d'alerte du champ et conserve l'input. Je trouve ça beaucoup plus intéressant, autant d'un point de vue code qu'affichage.

Je pense que ça correspondra aux attentes d'Orléans et c'est même envisageable de l'adapter pour le core. En y ajoutant par exemple une modification de message de champ (champ obligatoire -> champ modifié).

Dis moi ce que tu penses de

CSS :

.widget {
    .content {
        display: inline-block;
        padding: .33em 0;
        transition: padding 200ms;

        &.with-padding {
            padding: .33em;
        }
    }

    &.widget-with-error .content {
        background-color: $notification_error_color;
    }
}

ET JS

$(function() {
  var $widgets_with_error = $('.widget-with-error');

  if ($widgets_with_error.length) {
    $widgets_with_error
      .find('.content').addClass('with-padding')
      .on('change', 'input, select, textarea', function() {
        $widgets_with_error.removeClass('widget-with-error');
      });
  }
});
#8

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans

J'viens de me rendre compte que

.widget {
    .content {
        display: inline-block;
    }
}

peut fait déborder les champs. Il faut ajouter Un `max-width: 100%` en plus.

#9

Mis à jour par Serghei Mihai il y a environ 3 ans

Merci.
Repris tes suggestions avec une transition sur background pour que la disparition de la couleur ne soit pas trop brutale.
Et un bout de JS corrigé pour que seul le widget rempli supprime la couleur de fond.

#10

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans

Du coup tu as 2 propriétés `transition` la seconde écrasant la première.
La première ne sert donc plus à rien. Si tu souhaites conserver la transition sur le padding aussi tu dois les combiner

transition: padding 0.3s, background 0.3s linear;

(Mais pour moi c'est pas nécessaire)

#11

Mis à jour par Serghei Mihai il y a environ 3 ans

Je vais garder la transition sur la couleur de fond.

#12

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans

  • Statut changé de Solution proposée à Solution validée
#13

Mis à jour par Serghei Mihai il y a environ 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit e8512b94a80c81a78f1703bbb189fac1ec4f3d9a (origin/main)
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Tue Jan 26 15:55:47 2021 +0100

    orleans: highlight widgets with errors (#50565)
#14

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF