Project

General

Profile

Bug #54003

avoir un template pour récuperer les données du connecteur Impôts Particulier

Added by Serghei Mihai about 1 month ago. Updated 10 days ago.

Status:
Solution proposée
Priority:
Normal
Assignee:
Target version:
-
Start date:
17 May 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

De #48668#note-24 :

Le connecteur dans Passerelle renverra une page HTML au navigateur, affichant que tout s'est bien passé, et fait un postMessage sur window.parent avec les données obtenues.

Le template, appliqué à un champ w.c.s doit contenir le JS qui:

  • intercepte le postMessage
  • pose l' id des données dans le champ caché
  • affiche un message expliquant ce qui s'est passé
  • ferme l'onglet/l'iframe

Prévoir un bouton pour virer les données du champ et permet de recommencer.


Files


Related issues

Related to Passerelle - Development #53879: connecteur FranceConnect / API Impôts ParticulierSolution déployée10 May 2021

Actions

History

#2

Updated by Serghei Mihai about 1 month ago

#3

Updated by Serghei Mihai about 1 month ago

  • Description updated (diff)
#4

Updated by Benjamin Dauvergne 22 days ago

  • Assignee set to Benjamin Dauvergne
#5

Updated by Benjamin Dauvergne 22 days ago

Première proposition, je vais avoir besoin d'aide :
  • pour savoir dans quel fichier je dois déposer les bouts de style (et éventuellement les renommer pour coller à la politique de nommage des classes)
  • pour revoir le style pour obtenir un rendu moins pourri et plus proche de celui du bouton FranceConnect natif tout en conservant le coté un peu libre du texte (on ne veut pas "S'identifier avec FranceConnect" comme partout, puisque le but c'est quand mêmes d'obtenir les données des impôts à la fin, pas juste valider son identité avec FC)
#6

Updated by Benjamin Dauvergne 22 days ago

Pour référence le rendu de mon bouton tout moisi et le rendu natif avec le thème FC (tout le bouton est un SVG les caractères ne viennent pas d'une police mais ont été aplatis dans le SVG, je ne sais pas si on peut trouver une police proche).

#7

Updated by Serghei Mihai 22 days ago

J'avais commencé à bosser dessus.

En terme de vocabulaire je voyais plutôt "Obtenir avec France Connect".

#9

Updated by Benjamin Dauvergne 22 days ago

  • Assignee changed from Benjamin Dauvergne to Serghei Mihai

Je passe la main à Serghei et Thomas.

#10

Updated by Benjamin Dauvergne 14 days ago

Petit changement par rapport à mon interface entre le connecteur et le template, en cas d'erreur ça fait window.opener.postMessage({"error": "message technique", "data": {..détail de l'erreur...}} au niveau du template il ne faut pas afficher ça tel quel, juste dire, Les services de l'état sont en panne. mais ce serait bien de logger ça dans la console js par contre, que ce soit facile à analyser.

#11

Updated by Serghei Mihai 14 days ago

Voici une première version avec interception de l'erreur et affichage du message indiquant qu'il y a eu une erreur.

#13

Updated by Benjamin Dauvergne 14 days ago

À quoi sert ce bout de style ?

<style>
  .select2-container {
      display: none;
  }
</style>

class="franceconnect--error" style="display: none" 

Je ne connais pas la politique à ce sujet mais je penser que tu peux poser ça dans le .scss aussi.


Le code d'ouverture de popup ne marche pas, les options sont à passer sous forme de chaîne1, pas d'arguments nommés à la python, au passage reprendre le centrage minimal et les options de présentation qui sont coté passerelle pour l'ouverture de la popup.

+                var left = (screen.width/2)-(w/2);
+                var top = (screen.height/2)-(h/2);
+                return window.open(
+                    url, title,
+                    'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);

1 https://developer.mozilla.org/fr/docs/Web/API/Window/open

#14

Updated by Serghei Mihai 14 days ago

  • Status changed from Solution proposée to En cours

Benjamin Dauvergne a écrit :

À quoi sert ce bout de style ?

Cacher le champ select2.


[...]

Je ne connais pas la politique à ce sujet mais je penser que tu peux poser ça dans le .scss aussi.

Je l'ai mis inline pour qu'en backoffice, lors du preview du formulaire, le message ne soit pas affiché.


Le code d'ouverture de popup ne marche pas, les options sont à passer sous forme de chaîne1, pas d'arguments nommés à la python, au passage reprendre le centrage minimal et les options de présentation qui sont coté passerelle pour l'ouverture de la popup.

[...]

Ok, je vais corriger ça.

#15

Updated by Benjamin Dauvergne 13 days ago

Serghei Mihai a écrit :

Cacher le champ select2.

Ok, je n'avais pas vu le {{ block.super }} vu que ça n'était pas dans mon template d'origine; y a-t-il a des chose utiles pour nous dans le template select_jsonp.html ? On pourrait peut-être hériter directement de qommon/forms/widget.html à la place.

#16

Updated by Benjamin Dauvergne 11 days ago

Benjamin Dauvergne a écrit :

Serghei Mihai a écrit :

Cacher le champ select2.

Ok, je n'avais pas vu le {{ block.super }} vu que ça n'était pas dans mon template d'origine; y a-t-il a des chose utiles pour nous dans le template select_jsonp.html ? On pourrait peut-être hériter directement de qommon/forms/widget.html à la place.

Je me plussoie tout seul, vu qu'on est quand même loin de l'usage select/JSONP je serais plutôt pour que le template n'utilise pas du tout l'héritage dans le bloc widget-control, ça sera plus simple pour celui qui viendra relire plus tard (pas besoin de se demander s'il existe une interaction entre les deux ou pas) et aucune chaîne liée à select2 ne doit apparaître non plus; la seule chose à conserver c'est la gestion de data-initial-display-value, tout le reste est à gérer avec des <input type="hidden"/>, la valeur raw et la valeur display, la valeur display peut-être visible mais en read-only, il me semble qu'il faut qu'elle soit soumise et donc qu'elle ait un attribut "name" pour ça fonctionne correctement, cf. extrait de qommon.form.js :

      // create an additional hidden field to hold the label of the selected
      // option, it is necessary as the server may not have any knowledge of
      // possible options.
      var $input_display_value = $('<input>', {
              type: 'hidden',
              name: $(elem).attr('name') + '_display',
              value: $(elem).data('initial-display-value')
      });
#17

Updated by Serghei Mihai 10 days ago

C'est plus simple, en effet.

Also available in: Atom PDF