Skip to content

Commit 1fc8aed

Browse files
committed
Ajout de boutons pour choisir le contexte
1 parent c027625 commit 1fc8aed

File tree

13 files changed

+235
-58
lines changed

13 files changed

+235
-58
lines changed

CHANGELOG.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,28 @@
11
# Changelog
22

3+
## [2.2.0]
4+
5+
- Ajout de boutons pour choisir le contexte
6+
- Correction de liens erronés, et informations manquantes
7+
8+
## [2.1.0]
9+
10+
- Correction de motif
11+
- Reconstruction du formulaire
12+
- Modification du pdf (certificate.pdf)
13+
- Repositionnement des textes ajoutés
14+
315
## [2.0.0]
416

517
- Reconstruction du formulaire
618
- Modification du pdf
719
- Repositionnement des textes ajoutés
20+
821
## [1.1.0]
922

1023
- Modification du pdf (certificate.pdf)
1124
- Repositionnement des textes ajoutés
12-
- Accessibilité : ajout d'un texte (en blanc) pour indiquer aux lecteurs de pdf audio la présence d'un QR-code dans le document généré
25+
- Accessibilité : ajout d'un texte (en blanouton pour choisir le contextec) pour indiquer aux lecteurs de pdf audio la présence d'un QR-code dans le document généré
1326

1427
## [1.1.1]
1528

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ Les projets open source suivants ont été utilisés pour le développement de c
3939
service :
4040

4141
- [PDF-LIB](https://pdf-lib.js.org/)
42+
- [remove-accents](https://github.com/tyxla/remove-accents)
43+
- [secure-ls](https://github.com/softvar/secure-ls)
4244
- [qrcode](https://github.com/soldair/node-qrcode)
4345
- [Bootstrap](https://getbootstrap.com/)
4446
- [Font Awesome](https://fontawesome.com/license)

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "attestation-derogatoire-de-deplacement",
3-
"version": "2.0.0",
3+
"version": "2.2.0",
44
"description": "Générateur d'attestation de déplacement dérogatoire'",
55
"main": "certificate.js",
66
"scripts": {

src/certificate.pdf

56 Bytes
Binary file not shown.

src/css/main.css

Lines changed: 118 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,34 @@ a {
129129
}
130130
}
131131

132+
@media (prefers-color-scheme: dark) {
133+
a.curfew-button {
134+
color: white;
135+
background-color: #43436B;
136+
}
137+
}
138+
139+
@media (prefers-color-scheme: dark) {
140+
#curfew-reason-fieldset.targeted {
141+
color: white;
142+
background-color: #43436B;
143+
}
144+
}
145+
146+
@media (prefers-color-scheme: dark) {
147+
#curfew-reason-fieldset.targeted.in-quarantine {
148+
color: white;
149+
background-color: #6B0B0B;
150+
}
151+
}
152+
153+
@media (prefers-color-scheme: dark) {
154+
#quarantine-reason-fieldset.targeted {
155+
color: white;
156+
background-color: #6B0B0B;
157+
}
158+
}
159+
132160
p {
133161
color: black;
134162
}
@@ -664,10 +692,10 @@ input[type=number] {
664692
}
665693

666694
.fieldset {
667-
margin-left: -1.25em;
668-
margin-right: -1.25em;
669-
padding-left: 1.25em;
670-
padding-right: 1.25em;
695+
margin-left: -1.5rem;
696+
margin-right: -1.5rem;
697+
padding-left: 1.5rem;
698+
padding-right: 1.5rem;
671699
border: 3px solid transparent;
672700
}
673701

@@ -678,3 +706,89 @@ input[type=number] {
678706
.fieldset-error {
679707
border: 3px solid red;
680708
}
709+
710+
.sanitary-context ~ * {
711+
display: none
712+
}
713+
714+
.sanitary-context ~ label {
715+
display: block
716+
}
717+
718+
.sanitary-context:checked ~ * {
719+
display: block;
720+
}
721+
722+
#curfew-reason-fieldset {
723+
display: none;
724+
background: #DDF;
725+
}
726+
#curfew-reason-fieldset.targeted,
727+
#quarantine-reason-fieldset.targeted {
728+
display: block;
729+
}
730+
#quarantine-reason-fieldset {
731+
display: none;
732+
background: #FEE;
733+
}
734+
735+
.curfew-button {
736+
display: block;
737+
width: 40%;
738+
text-decoration: none;
739+
background: #DDF;
740+
}
741+
742+
.quarantine-button {
743+
display: block;
744+
width: 40%;
745+
text-decoration: none;
746+
background: #FEE;
747+
}
748+
749+
#formgroup-storedata {
750+
clear: both;
751+
padding-top: 2rem !important;
752+
}
753+
754+
.context-title {
755+
font-size: 1.2em;
756+
font-weight: bold;
757+
}
758+
.context-subtitle {
759+
font-size: 0.8rem;
760+
}
761+
762+
.context-wrapper-error {
763+
border: 1px solid red;
764+
padding: 1%;
765+
}
766+
767+
.context-wrapper-error .context-title {
768+
color: red;
769+
}
770+
771+
.button-wrapper {
772+
display: flex;
773+
justify-content: space-between;
774+
}
775+
776+
#curfew-reason-fieldset.in-quarantine {
777+
background: #FEE;
778+
}
779+
780+
#curfew-reason-fieldset.targeted {
781+
display: block;
782+
}
783+
784+
.fieldset-wrapper.fieldset-error {
785+
margin-left: -1.5rem;
786+
margin-right: -1.5rem;
787+
padding-left: 1.5rem;
788+
padding-right: 1.5rem;
789+
}
790+
791+
.quarantine-subtitle,
792+
.curfew-subtitle {
793+
padding: 1rem 0;
794+
}

src/form-data.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
"items": [
104104
{
105105
"code": "travail",
106-
"label": "<strong> 1. Activité professionnelle enseignement et formation </strong> <br> Déplacements entre le domicile et le lieu d’exercice de l’activité professionnelle ou le lieu d’enseignement et de formation, déplacements professionnels ne pouvant être différés ;"
106+
"label": "<strong> 1. Activité professionnelle, enseignement et formation </strong> <br> Déplacements entre le domicile et le lieu d’exercice de l’activité professionnelle ou le lieu d’enseignement et de formation, déplacements professionnels ne pouvant être différés ;"
107107
},
108108
{
109109
"code": "sante",
@@ -119,7 +119,7 @@
119119
},
120120
{
121121
"code": "judiciaire",
122-
"label": "<strong> 5. Convocation judiciaire ou administrative </strong> <br> Déplacements pour répondre à une convocation judiciaire ou administrative. ;"
122+
"label": "<strong> 5. Convocation judiciaire ou administrative </strong> <br> Déplacements pour répondre à une convocation judiciaire ou administrative, déplacements pour se rendre chez un professionnel du droit, pour un acte ou une démarche qui ne peuvent être réalisés à distance ;"
123123
},
124124
{
125125
"code": "missions",
@@ -132,7 +132,7 @@
132132
{
133133
"code": "animaux",
134134
"label": "<strong> 8. Animaux de compagnie </strong> <br>Déplacements brefs autour du domicile pour les besoins des animaux de compagnie <a class=\"footnote\" href=\"#footnote2\">[2]</a> ;"
135-
},
135+
}
136136
]
137137
},
138138
{
@@ -153,7 +153,7 @@
153153
},
154154
{
155155
"code": "demarche",
156-
"label": "<strong> 12. Démarches administratives ou juridiques </strong> <br> Déplacements pour se rendre dans un service public ou chez un professionnel du droit, pour un acte ou une démarche qui ne peuvent être réalisés à distance."
156+
"label": "<strong> 12. Démarches administratives ou juridiques </strong> <br> Déplacements pour se rendre dans un service public."
157157
}
158158
]
159159
}

src/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
<meta property="og:title" content="Générateur d'attestation de déplacement dérogatoire - COVID-19" />
1616
<meta property="og:locale" content="fr_FR" />
1717
<meta property="og:description" content="Ce service officiel génère une version numérique de la déclaration de déplacement covid-19 à présenter aux forces de sécurité lors d’un contrôle." />
18-
<link rel="canonical" href="https://media.interieur.gouv.fr{{ PUBLIC_URL || '/deplacement-covid-19' }}" />
19-
<meta property="og:url" content="https://media.interieur.gouv.fr{{ PUBLIC_URL || '/deplacement-covid-19' }}" />
18+
<link rel="canonical" href="https://media.interieur.gouv.fr{{ PUBLIC_URL || '/attestation-deplacement-derogatoire-covid-19' }}" />
19+
<meta property="og:url" content="https://media.interieur.gouv.fr{{ PUBLIC_URL || '/attestation-deplacement-derogatoire-covid-19' }}" />
2020
<meta property="og:site_name" content="Générateur d'attestation de déplacement dérogatoire - COVID-19" />
2121
<script type='application/ld+json'>{"@context":"http://www.schema.org","@type":"GovernmentOrganization","name":"Générateur d'attestation de déplacement dérogatoire - COVID-19","description":"Ce service officiel génère une version numérique de la déclaration de déplacement covid-19 à présenter aux forces de sécurité lors d’un contrôle.","address":{"@type":"PostalAddress","addressCountry":"France"}}</script>
2222

src/js/form-util.js

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export function getReasons (reasonInputs) {
133133
return reasons
134134
}
135135

136-
export function prepareInputs (formInputs, reasonInputs, reasonFieldset, reasonAlert, snackbar, releaseDateInput) {
136+
export function prepareInputs (formInputs, reasonInputs, reasonFieldsetsWrapper, reasonAlerts, snackbar, releaseDateInput, contextWrapper) {
137137
const lsProfile = secureLS.get('profile')
138138

139139
// Continue to store data if already stored
@@ -167,8 +167,8 @@ export function prepareInputs (formInputs, reasonInputs, reasonFieldset, reasonA
167167
reasonInputs.forEach(radioInput => {
168168
radioInput.addEventListener('change', function (event) {
169169
const isInError = reasonInputs.every(input => !input.checked)
170-
reasonFieldset.classList.toggle('fieldset-error', isInError)
171-
reasonAlert.classList.toggle('hidden', !isInError)
170+
reasonFieldsetsWrapper.classList.toggle('fieldset-error', isInError)
171+
reasonAlerts.map(reasonAlert => reasonAlert.classList.toggle('hidden', !isInError))
172172
})
173173
})
174174
$('#cleardata').addEventListener('click', () => {
@@ -183,11 +183,15 @@ export function prepareInputs (formInputs, reasonInputs, reasonFieldset, reasonA
183183
$('#generate-btn').addEventListener('click', async (event) => {
184184
event.preventDefault()
185185

186+
if ($$('.targeted').length === 0) {
187+
contextWrapper.classList.add('context-wrapper-error')
188+
}
189+
186190
const reasons = getReasons(reasonInputs)
187191
if (!reasons) {
188-
reasonFieldset.classList.add('fieldset-error')
189-
reasonAlert.classList.remove('hidden')
190-
reasonFieldset.scrollIntoView && reasonFieldset.scrollIntoView()
192+
reasonFieldsetsWrapper.classList.add('fieldset-error')
193+
reasonAlerts.map(reasonAlert => reasonAlert.classList.remove('hidden'))
194+
// reasonFieldsetsWrapper.scrollIntoView && reasonFieldsetsWrapper.scrollIntoView()
191195
return
192196
}
193197

@@ -207,15 +211,39 @@ export function prepareInputs (formInputs, reasonInputs, reasonFieldset, reasonA
207211
downloadBlob(pdfBlob, `attestation-${creationDate}_${creationHour}.pdf`)
208212
showSnackbar(snackbar, 6000)
209213
})
214+
215+
const curfewFieldset = $('#curfew-reason-fieldset')
216+
const quarantineFieldset = $('#quarantine-reason-fieldset')
217+
const curfewSubtitle = $('.curfew-subtitle')
218+
const quarantineSubtitle = $('.quarantine-subtitle')
219+
$$('.context-button').map(anchor => anchor.addEventListener('click', (event) => {
220+
contextWrapper.classList.remove('context-wrapper-error')
221+
reasonFieldsetsWrapper.classList.toggle('hidden', false)
222+
if (event.target.className.includes('curfew-button')) {
223+
curfewFieldset.classList.toggle('in-quarantine', false)
224+
curfewFieldset.classList.toggle('targeted', true)
225+
quarantineFieldset.classList.toggle('targeted', false)
226+
curfewSubtitle.classList.toggle('hidden', false)
227+
quarantineSubtitle.classList.toggle('hidden', true)
228+
}
229+
if (event.target.className.includes('quarantine-button')) {
230+
curfewFieldset.classList.toggle('in-quarantine', true)
231+
curfewFieldset.classList.toggle('targeted', true)
232+
quarantineFieldset.classList.toggle('targeted', true)
233+
curfewSubtitle.classList.toggle('hidden', true)
234+
quarantineSubtitle.classList.toggle('hidden', false)
235+
}
236+
}))
210237
}
211238

212239
export function prepareForm () {
213240
const formInputs = $$('#form-profile input')
214241
const snackbar = $('#snackbar')
215242
const reasonInputs = [...$$('input[name="field-reason"]')]
216-
const reasonFieldset = $('#reason-fieldset')
217-
const reasonAlert = reasonFieldset.querySelector('.msg-alert')
243+
const reasonFieldsetsWrapper = $('.fieldset-wrapper')
244+
const reasonAlerts = $$('.msg-alert')
218245
const releaseDateInput = $('#field-datesortie')
246+
const contextWrapper = $('.context-wrapper')
219247
setReleaseDateTime(releaseDateInput)
220-
prepareInputs(formInputs, reasonInputs, reasonFieldset, reasonAlert, snackbar, releaseDateInput)
248+
prepareInputs(formInputs, reasonInputs, reasonFieldsetsWrapper, reasonAlerts, snackbar, releaseDateInput, contextWrapper)
221249
}

0 commit comments

Comments
 (0)