From 86b15a4d6e407dc8c7e4cfec71ad4e044d19b18f Mon Sep 17 00:00:00 2001 From: LAB-MI Date: Thu, 16 Apr 2020 08:15:53 +0000 Subject: [PATCH] Automated Release v1.0.0 Please find changes in CHANGELOG.md file --- .eslintrc.js | 1 + CHANGELOG.md | 42 +- CONTRIBUTORS | 21 +- README.md | 2 +- doc-tools/conception.md | 59 +++ doc-tools/grid.html | 52 +++ package-lock.json | 2 +- package.json | 25 +- ...4-20-Attestation-etranger-metropole-FR.pdf | Bin 0 -> 27206 bytes ...station_deplacement_International_EN-1.pdf | Bin 0 -> 25378 bytes src/Flag_of_France.svg | 13 + src/certificate-en.js | 328 +++++++++++++++ src/certificate.js | 204 +++++----- .../apple-touch-icon-120x120-precomposed.png | Bin 7894 -> 0 bytes src/favicons/apple-touch-icon-120x120.png | Bin 7894 -> 0 bytes src/favicons/apple-touch-icon-precomposed.png | Bin 16618 -> 0 bytes src/favicons/apple-touch-icon.png | Bin 16618 -> 10438 bytes src/favicons/favicon.ico | Bin 1150 -> 0 bytes src/favicons/site.webmanifest | 20 - src/flag EN.svg | 70 ++++ src/index-en.html | 378 ++++++++++++++++++ src/index.html | 259 ++++++++---- src/main.css | 63 ++- src/robots.txt | 2 +- src/sitemap.xml | 8 +- 25 files changed, 1266 insertions(+), 283 deletions(-) create mode 100644 doc-tools/conception.md create mode 100644 doc-tools/grid.html create mode 100644 src/07-04-20-Attestation-etranger-metropole-FR.pdf create mode 100644 src/Attestation_deplacement_International_EN-1.pdf create mode 100644 src/Flag_of_France.svg create mode 100644 src/certificate-en.js delete mode 100644 src/favicons/apple-touch-icon-120x120-precomposed.png delete mode 100644 src/favicons/apple-touch-icon-120x120.png delete mode 100644 src/favicons/apple-touch-icon-precomposed.png delete mode 100644 src/favicons/favicon.ico create mode 100644 src/flag EN.svg create mode 100644 src/index-en.html diff --git a/.eslintrc.js b/.eslintrc.js index df66db4..6a307b5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -9,6 +9,7 @@ module.exports = { "no-console": process.env.NODE_ENV === "production" ? "error" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", "comma-dangle": [2, "always-multiline"], + "no-var": 2, }, overrides: [ { diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c3fe97..89d1240 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,45 +1,5 @@ # Changelog -## [1.0.13] - 2020-04-06 +## [1.0.0] - 2020-04-15 ### Added - first public release -## [1.1.0] - 2020-04-08 -### Added -- (#21, #23, #25, #26, #27, #28, #29) :wheelchair: improve A11Y support -- adds github links in footer -- (#19) clear localstorage -- prevent sending personal data -- 💚 Publish html as workflow asset and code in public repository -- Add sitemap and tell robots.txt to scan the sitemap -- Add Changelog -### Changes -- (#18) 📝 Update header for reasons section -- (#3) ✏ Replace codiv by covid in package.json, README -- changes start target -- (#1) 🐛 Autocomplete birthday field only on keyup, not when deleting -- (#1) 🎹 Improve regex control pattern for birhtday -- :recycle: Move check update code to dedicated file -- :recycle: Move dom utils in dedicated file -- :sparkles: Notify user about newer version -- :sparkles: Add cache with service workers -- :recycle: Cleanup directory structure -- :heavy_plus_sign: Avoid using env specific syntax in npm scripts -- changes PWA display -## [1.1.1] - 2020-04-09 -### Fixed -- :wrench: Fix parcel-plugin-sw-cache configuration -### Added -- :pencil: add CONTRIBUTORS -### Changes -- :pencil: change LICENCE ( #16 ) -## [1.1.2] - 2020-04-10 -### Added -- ♿ Increase contrast ratio hover link color (#29) -- ♿ Add landmarks roles to header, main and footer sections (#43) -- ♿ Add title to open stores link and add more explicit text (#44, #45) -- ♿ Expose aria-invalid field assistance technologies (#24) -- ✹ Add timestamp to generated pdf (#9) -- 💄 Don't use autocompletion for release date and time (#31) -- 💄 Add underline on hover links -### Fixes -- Fix Typo site.webmanifest (#52) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a02fe4f..7c4c2f2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,20 +1,13 @@ -Ce gĂ©nĂ©rateur d'attestation de dĂ©placement dĂ©rogatoire a Ă©tĂ© mis en place dans le cadre du confinement liĂ© Ă  la pandĂ©mie du virus COVID-19 de 2020. -Ce service repose sur l'utilisation initale du projet covid-19-certificate de Johann Pardanaud . +Ce gĂ©nĂ©rateur d'attestation de dĂ©placement international dĂ©rogatoire a Ă©tĂ© mis en place dans le cadre du confinement liĂ© Ă  la pandĂ©mie du virus COVID-19 de 2020. +Ce service repose sur l'utilisation initale du projet covid-19-certificate de Johann Pardanaud et de l'attestation de dĂ©placement nationale dĂ©rogatoire du ministĂšre de l'intĂ©rieur. Il a Ă©tĂ© enrichi par l'incubateur du ministĂšre de l'intĂ©rieur : le LAB-MI . La liste qui suit mentionne les diffĂ©rents participants ayant contribuĂ© Ă  rendre ce service utile Ă  la fois Ă  la population et aux forces de l'ordre : - Johann Pardanaud (https://github.com/nesk) + +La liste qui suit mentionne les diffĂ©rents participants ayant contribuĂ© Ă  rendre ce service utile Ă  la fois Ă  la population et aux forces de l'ordre : + Philippe Bron (https://github.com/PhilippeBron) Cristian (https://github.com/cristianpb) - Stanislas OrmiĂšres (https://github.com/laruiss) - Caroline Robillard (https://github.com/Carolinedanslesnuages) - Joel Pagniez (https://github.com/JoelPagniez) - Sophie GUERLAIS - Philippe (https://github.com/pli01) - Matthieu Bacconnier (https://github.com/Neamar) - Hugo Cartigny (https://github.com/BlueskyFR) - SĂ©bastien TouzĂ© (https://github.com/SebastienTouze) - John Livingston (https://github.com/JohnXLivingston) - David Libeau (https://github.com/DavidLibeau) - Arnaud Delafosse (https://github.com/ArnaudDelafosse) + Victor JournĂ© (https://github.com/victorjourne) + Philippe (https://github.com/pli01) \ No newline at end of file diff --git a/README.md b/README.md index 31d86de..5ef6e90 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# GĂ©nĂ©rateur de certificat de dĂ©placement +# GĂ©nĂ©rateur: ATTESTATION DE DÉPLACEMENT INTERNATIONAL DÉROGATOIRE VERS LA FRANCE MÉTROPOLITAINE ## DĂ©velopper diff --git a/doc-tools/conception.md b/doc-tools/conception.md new file mode 100644 index 0000000..cb142a6 --- /dev/null +++ b/doc-tools/conception.md @@ -0,0 +1,59 @@ +# Attestation de dĂ©placement international dĂ©rogatoire vers la France mĂ©tropolitaine + +## Fichiers pdf des attestations papier : + +- version française : 07-04-20-Attestation-etranger-metropole-FR.pdf +- version anglaise : Attestation_deplacement_International_EN-1.pdf + +## Analyse de la structure du document + +### Champs ajoutĂ©s : + +- nationalitĂ© +- typologie de nationalitĂ©s : pays tiers ; eu ou assimilĂ©s ; française + +### Champs supprimĂ©s : + +- lieu de naissance +- date de sortie +- heure de sortie + +### Remarques : + +- Les motifs sont identiques pour les types tiers et eu. +- Pas de motif pour les français. +- Un seul motif possible dĂ©fini en fonction du type de nationalitĂ© + +## Structure des champs du QR Code + +- **Cree le:** creationDate a creationHour;\n +- **Nom:** `firstname`;\n +- **Prenom:** `lastname`;\n +- **Naissance:** `birthday` (`nationality`);\n +- **Adresse:** `address` `zipcode` `town` `country`;\n +- **Sortie:** N/A;\n +- **Motifs:** `national`-`reason` (`reaseon` Ă  vide pour les français) + +### Correspondances formulaire/QR Code + +Afin de pouvoir ĂȘtre sotckĂ©es dans le QR Code, Ă  chaque choix du formulaire est associĂ© un alias. + +#### types de nationalitĂ©s + +| libellĂ© formulaire | alias | +|:-----|:-----| +| Ressortissants de pays tiers | tiers | +| Ressortissants de l’Union europĂ©enne et assimilĂ©s | eu | +| Ressortissants de nationalitĂ© française | fr | + +#### types de motifs + +| libellĂ© formulaire | alias | +|:-----|:-----| +| Personnes ayant leur rĂ©sidence principale en France | residence | +| Personnes transitant par la France pour rejoindre leur rĂ©sidence | transit | +| Professionnels de santĂ© aux fins de lutter contre le Covid-19 | prof._sante | +| Transporteurs de marchandises | marchandises | +| Equipages et personnels exploitant des vols | equipage | +| Personnels des missions diplomatiques et consulaires | diplomatique | +| Travailleurs frontaliers | frontalier | \ No newline at end of file diff --git a/doc-tools/grid.html b/doc-tools/grid.html new file mode 100644 index 0000000..1209dce --- /dev/null +++ b/doc-tools/grid.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + diff --git a/package-lock.json b/package-lock.json index fd6b9e1..3e5e358 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "deplacement-covid-19", + "name": "deplacement-vers-france-covid-19", "version": "0.0.1", "lockfileVersion": 1, "requires": true, diff --git a/package.json b/package.json index caae57e..00c3e9e 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,16 @@ { - "name": "deplacement-covid-19", + "name": "deplacement-vers-france-covid-19", "version": "0.0.1", - "description": "GĂ©nĂ©rateur d'attestation de dĂ©placement dĂ©rogatoire'", + "description": "GĂ©nĂ©rateur d'attestation de dĂ©placement international dĂ©rogatoire vers la France", "main": "certificate.js", "scripts": { - "lint": "eslint ./*.js", - "start": "cross-env VERSION=${VERSION:-localversion} parcel --public-url ${PUBLIC_URL:-/deplacement-covid-19} ./src/index.html", + "lint": "eslint src/*.js", + "format": "npm run lint -- --fix", + "start": "cross-env VERSION=${VERSION:-localversion} parcel --public-url ${PUBLIC_URL:-/deplacement-vers-france-covid-19} ./src/index.html", "clean:dist": "rimraf dist", "prebuild": "run-s lint clean:dist", - "build": "parcel build --public-url ${PUBLIC_URL:-/deplacement-covid-19} ./src/index.html ./src/robots.txt ./src/sitemap.xml", - "postbuild": "PUBLIC_URL=${PUBLIC_URL:-/deplacement-covid-19} react-snap", + "build": "parcel build --public-url ${PUBLIC_URL:-/deplacement-vers-france-covid-19} ./src/index.html ./src/index-en.html ./src/robots.txt ./src/sitemap.xml", + "postbuild": "PUBLIC_URL=${PUBLIC_URL:-/deplacement-vers-france-covid-19} react-snap", "preserve": "npm run build", "serve": "serve dist", "serve:dist": "serve dist" @@ -19,7 +20,7 @@ "url": "git+https://github.com/lab-mi/deplacement-covid-19" }, "keywords": [], - "author": "", + "author": "MinistĂšre de l'IntĂ©rieur", "license": "MIT", "bugs": { "url": "https://github.com/lab-mi/deplacement-covid-19/issues" @@ -55,7 +56,8 @@ "qrcode": "^1.4.4" }, "browserslist": [ - "last 5 versions" + "last 5 versions", + "ios_saf >= 7" ], "reactSnap": { "source": "dist", @@ -73,6 +75,9 @@ "strategy": "default", "clearDist": false, "templatedURLs": { - "./": ["index.html"] - } } + "./": [ + "index.html" + ] + } + } } diff --git a/src/07-04-20-Attestation-etranger-metropole-FR.pdf b/src/07-04-20-Attestation-etranger-metropole-FR.pdf new file mode 100644 index 0000000000000000000000000000000000000000..06bee026226f9b80fa6c2d501e3d8150d7adcba3 GIT binary patch literal 27206 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%0D3V<7VjpjZh{4!+%bHYYE&oz4VB|cVaIHtSg}C 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 z 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 PLxDr1#C1%8O}hU9Lq68) literal 0 HcmV?d00001 diff --git a/src/Attestation_deplacement_International_EN-1.pdf b/src/Attestation_deplacement_International_EN-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9fd7b2941a9bae51c4d5d5343b23abb550ebc50f GIT binary patch literal 25378 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 Nff$+_Y>1K){|ESImn;AP literal 0 HcmV?d00001 diff --git a/src/Flag_of_France.svg b/src/Flag_of_France.svg new file mode 100644 index 0000000..681f049 --- /dev/null +++ b/src/Flag_of_France.svg @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/src/certificate-en.js b/src/certificate-en.js new file mode 100644 index 0000000..8d99a5c --- /dev/null +++ b/src/certificate-en.js @@ -0,0 +1,328 @@ +import 'bootstrap/dist/css/bootstrap.min.css' + +import './main.css' + +import { PDFDocument, StandardFonts } from 'pdf-lib' +import QRCode from 'qrcode' +import { library, dom } from '@fortawesome/fontawesome-svg-core' +import { faEye, faFilePdf } from '@fortawesome/free-solid-svg-icons' + +import './check-updates' +import { $, $$ } from './dom-utils' +import pdfBase from './Attestation_deplacement_International_EN-1.pdf' + +library.add(faEye, faFilePdf) + +dom.watch() + +$('#radio-language-fr').addEventListener('click', async event => { + window.location.href = '/index' +}) + +const generateQR = async text => { + try { + const opts = { + errorCorrectionLevel: 'M', + type: 'image/png', + quality: 0.92, + margin: 1, + } + return await QRCode.toDataURL(text, opts) + } catch (err) { + console.error(err) + } +} + +function saveProfile () { + for (const field of $$('#form-profile input')) { + localStorage.setItem(field.id.substring('field-'.length), field.value) + } +} + +function getProfile () { + const fields = {} + for (let i = 0; i < localStorage.length; i++) { + const name = localStorage.key(i) + fields[name] = localStorage.getItem(name) + } + return fields +} + +function idealFontSize (font, text, maxWidth, minSize, defaultSize) { + let currentSize = defaultSize + let textWidth = font.widthOfTextAtSize(text, defaultSize) + + while (textWidth > maxWidth && currentSize > minSize) { + textWidth = font.widthOfTextAtSize(text, --currentSize) + } + + return (textWidth > maxWidth) ? null : currentSize +} + +async function generatePdf (profile, typeNationality, reasons) { + const creationDate = new Date().toLocaleDateString('fr-FR') + const creationHour = new Date().toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' }).replace(':', 'h') + + const { lastname, firstname, birthday, nationality, address, zipcode, town, country } = profile + + const data = [ + `Cree le: ${creationDate} a ${creationHour}`, + `Nom: ${lastname}`, + `Prenom: ${firstname}`, + `Naissance: ${birthday} (${nationality})`, + `Adresse: ${address} ${zipcode} ${town} ${country}`, + 'Sortie: N/A', + `Motifs: ${typeNationality}-${reasons}`, + ].join(';\n ') + + const existingPdfBytes = await fetch(pdfBase).then(res => res.arrayBuffer()) + + const pdfDoc = await PDFDocument.load(existingPdfBytes) + const page1 = pdfDoc.getPages()[0] + + const font = await pdfDoc.embedFont(StandardFonts.Helvetica) + const drawText = (text, x, y, size = 11) => { + page1.drawText(text, { x, y, size, font }) + } + + drawText(`${firstname} ${lastname}`, 125, 590) + drawText(birthday, 125, 567) + drawText(nationality, 125, 545) + drawText(`${address} ${zipcode}`, 127, 527) + drawText(`${town}, ${country}`, 127, 505) + + if (typeNationality === 'tiers') { + if (reasons.includes('residence')) { + drawText('x', 49, 449, 19) + } + if (reasons.includes('transit')) { + drawText('x', 49, 412, 19) + } + if (reasons.includes('prof._sante')) { + drawText('x', 49, 385, 19) + } + if (reasons.includes('marchandises')) { + drawText('x', 49, 370, 19) + } + if (reasons.includes('equipage')) { + drawText('x', 49, 354, 19) + } + if (reasons.includes('diplomatique')) { + drawText('x', 49, 339, 19) + } + if (reasons.includes('frontalier')) { + drawText('x', 49, 313, 19) + } + } + + if (typeNationality === 'eu') { + if (reasons.includes('resident')) { + drawText('x', 49, 276, 19) + } + if (reasons.includes('transit')) { + drawText('x', 49, 263, 19) + } + if (reasons.includes('prof._sante')) { + drawText('x', 49, 250, 19) + } + if (reasons.includes('marchandises')) { + drawText('x', 49, 238, 19) + } + if (reasons.includes('equipage')) { + drawText('x', 49, 225, 19) + } + if (reasons.includes('diplomatique')) { + drawText('x', 49, 212, 19) + } + if (reasons.includes('frontalier')) { + drawText('x', 49, 189, 19) + } + } + if (typeNationality === 'fr') { + drawText('x', 49, 162, 19) + } + let locationSize = idealFontSize(font, profile.town, 83, 7, 11) + + if (!locationSize) { + alert('Le nom de la ville risque de ne pas ĂȘtre affichĂ© correctement en raison de sa longueur. ' + + 'Essayez d\'utiliser des abrĂ©viations ("Saint" en "St." par exemple) quand cela est possible.') + locationSize = 7 + } + + // Fait Ă  : + drawText(profile.town, 395, 142, locationSize) + // Le + drawText(`${new Date().toLocaleDateString('fr-FR', { month: 'numeric', day: 'numeric' })}`, 488, 142) + + const generatedQR = await generateQR(data) + + const qrImage = await pdfDoc.embedPng(generatedQR) + + page1.drawImage(qrImage, { + x: 450, + y: 572, + width: 100, + height: 100, + }) + + pdfDoc.addPage() + const page2 = pdfDoc.getPages()[1] + page2.drawImage(qrImage, { + x: 50, + y: page2.getHeight() - 350, + width: 300, + height: 300, + }) + + const pdfBytes = await pdfDoc.save() + + return new Blob([pdfBytes], { type: 'application/pdf' }) +} + +function downloadBlob (blob, fileName) { + const link = document.createElement('a') + const url = URL.createObjectURL(blob) + link.href = url + link.download = fileName + document.body.appendChild(link) + link.click() +} + +function getAndSaveReasons () { + const values = $$('input[name="field-reason"]:checked') + .map(x => x.value) + .join('-') + localStorage.setItem('reasons', values) + return values +} + +function getAndSaveTypeNationality () { + const typeNationality = $$('input[name="field-type-nationality"]:checked') + .map(x => x.value) + .join('-') + localStorage.setItem('typeNationality', typeNationality) + + return typeNationality +} + +// see: https://stackoverflow.com/a/32348687/1513045 +function isFacebookBrowser () { + const ua = navigator.userAgent || navigator.vendor || window.opera + return ua.includes('FBAN') || ua.includes('FBAV') +} + +if (isFacebookBrowser()) { + $('#alert-facebook').value = 'ATTENTION !! Vous utilisez actuellement le navigateur Facebook, ce gĂ©nĂ©rateur ne fonctionne pas correctement au sein de ce navigateur ! Merci d\'ouvrir Chrome sur Android ou bien Safari sur iOS.' + $('#alert-facebook').classList.remove('d-none') +} + +function addSlash () { + $('#field-birthday').value = $('#field-birthday').value.replace(/^(\d{2})$/g, '$1/') + $('#field-birthday').value = $('#field-birthday').value.replace(/^(\d{2})\/(\d{2})$/g, '$1/$2/') + $('#field-birthday').value = $('#field-birthday').value.replace(/\/\//g, '/') +} + +$('#field-birthday').onkeyup = function () { + const key = event.keyCode || event.charCode + if (key === 8 || key === 46) { + return false + } else { + addSlash() + return false + } +} + +const snackbar = $('#snackbar') + +$('#generate-btn').addEventListener('click', async event => { + event.preventDefault() + + saveProfile() + const typeNationality = getAndSaveTypeNationality() + let reasons + if (typeNationality === 'fr') { + reasons = 'N/A' + } else { + reasons = getAndSaveReasons() + } + + const pdfBlob = await generatePdf(getProfile(), typeNationality, reasons) + localStorage.clear() + const creationDate = new Date().toLocaleDateString('fr-CA') + const creationHour = new Date().toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' }).replace(':', '-') + downloadBlob(pdfBlob, `attestation-${creationDate}_${creationHour}.pdf`) + + snackbar.classList.remove('d-none') + setTimeout(() => snackbar.classList.add('show'), 100) + + setTimeout(function () { + snackbar.classList.remove('show') + setTimeout(() => snackbar.classList.add('d-none'), 500) + }, 6000) +}) + +$$('input').forEach(input => { + const exempleElt = input.parentNode.parentNode.querySelector('.exemple') + if (input.placeholder && exempleElt) { + input.addEventListener('input', (event) => { + if (input.value) { + exempleElt.innerHTML = 'ex. : ' + input.placeholder + } else { + exempleElt.innerHTML = '' + } + }) + } +}) + +const conditions = { + '#field-firstname': { + condition: 'length', + }, + '#field-lastname': { + condition: 'length', + }, + '#field-birthday': { + condition: 'pattern', + pattern: /^([0][1-9]|[1-2][0-9]|30|31)\/([0][1-9]|10|11|12)\/(19[0-9][0-9]|20[0-1][0-9]|2020)/g, + }, + '#field-nationality': { + condition: 'length', + }, + '#field-address': { + condition: 'length', + }, + '#field-town': { + condition: 'length', + }, + '#field-zipcode': { + condition: 'lenght', + }, + '#field-country': { + condition: 'length', + }, +} + +Object.keys(conditions).forEach(field => { + $(field).addEventListener('input', () => { + if (conditions[field].condition === 'pattern') { + const pattern = conditions[field].pattern + if ($(field).value.match(pattern)) { + $(field).setAttribute('aria-invalid', 'false') + } else { + $(field).setAttribute('aria-invalid', 'true') + } + } + if (conditions[field].condition === 'length') { + if ($(field).value.length > 0) { + $(field).setAttribute('aria-invalid', 'false') + } else { + $(field).setAttribute('aria-invalid', 'true') + } + } + }) +}) + +function addVersion () { + document.getElementById('version').innerHTML = `${new Date().getFullYear()} - ${process.env.VERSION}` +} +addVersion() diff --git a/src/certificate.js b/src/certificate.js index 46f0778..ed363f7 100644 --- a/src/certificate.js +++ b/src/certificate.js @@ -9,17 +9,19 @@ import { faEye, faFilePdf } from '@fortawesome/free-solid-svg-icons' import './check-updates' import { $, $$ } from './dom-utils' -import pdfBase from './certificate.pdf' +import pdfBase from './07-04-20-Attestation-etranger-metropole-FR.pdf' library.add(faEye, faFilePdf) dom.watch() -var year, month, day +$('#radio-language-en').addEventListener('click', async event => { + window.location.href = '/index-en' +}) const generateQR = async text => { try { - var opts = { + const opts = { errorCorrectionLevel: 'M', type: 'image/png', quality: 0.92, @@ -31,39 +33,9 @@ const generateQR = async text => { } } -function pad (str) { - return String(str).padStart(2, '0') -} - -function setDateNow (date) { - year = date.getFullYear() - month = pad(date.getMonth() + 1) // Les mois commencent Ă  0 - day = pad(date.getDate()) -} - -document.addEventListener('DOMContentLoaded', setReleaseDateTime) - -function setReleaseDateTime () { - const loadedDate = new Date() - setDateNow(loadedDate) - const releaseDateInput = document.querySelector('#field-datesortie') - releaseDateInput.value = `${year}-${month}-${day}` - - const hour = pad(loadedDate.getHours()) - const minute = pad(loadedDate.getMinutes()) - - const releaseTimeInput = document.querySelector('#field-heuresortie') - releaseTimeInput.value = `${hour}:${minute}` -} - function saveProfile () { for (const field of $$('#form-profile input')) { - if (field.id === 'field-datesortie') { - var dateSortie = field.value.split('-') - localStorage.setItem(field.id.substring('field-'.length), `${dateSortie[2]}/${dateSortie[1]}/${dateSortie[0]}`) - } else { - localStorage.setItem(field.id.substring('field-'.length), field.value) - } + localStorage.setItem(field.id.substring('field-'.length), field.value) } } @@ -87,23 +59,21 @@ function idealFontSize (font, text, maxWidth, minSize, defaultSize) { return (textWidth > maxWidth) ? null : currentSize } -async function generatePdf (profile, reasons) { +async function generatePdf (profile, typeNationality, reasons) { const creationDate = new Date().toLocaleDateString('fr-FR') const creationHour = new Date().toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' }).replace(':', 'h') - const { lastname, firstname, birthday, lieunaissance, address, zipcode, town, datesortie, heuresortie } = profile - const releaseHours = String(heuresortie).substring(0, 2) - const releaseMinutes = String(heuresortie).substring(3, 5) + const { lastname, firstname, birthday, nationality, address, zipcode, town, country } = profile const data = [ `Cree le: ${creationDate} a ${creationHour}`, `Nom: ${lastname}`, `Prenom: ${firstname}`, - `Naissance: ${birthday} a ${lieunaissance}`, - `Adresse: ${address} ${zipcode} ${town}`, - `Sortie: ${datesortie} a ${releaseHours}h${releaseMinutes}`, - `Motifs: ${reasons}`, - ].join('; ') + `Naissance: ${birthday} (${nationality})`, + `Adresse: ${address} ${zipcode} ${town} ${country}`, + 'Sortie: N/A', + `Motifs: ${typeNationality}-${reasons}`, + ].join(';\n ') const existingPdfBytes = await fetch(pdfBase).then(res => res.arrayBuffer()) @@ -115,31 +85,61 @@ async function generatePdf (profile, reasons) { page1.drawText(text, { x, y, size, font }) } - drawText(`${firstname} ${lastname}`, 123, 686) - drawText(birthday, 123, 661) - drawText(lieunaissance, 92, 638) - drawText(`${address} ${zipcode} ${town}`, 134, 613) + drawText(`${firstname} ${lastname}`, 125, 590) + drawText(birthday, 125, 567) + drawText(nationality, 125, 545) + drawText(`${address} ${zipcode}`, 127, 527) + drawText(`${town}, ${country}`, 127, 505) - if (reasons.includes('travail')) { - drawText('x', 76, 527, 19) + if (typeNationality === 'tiers') { + if (reasons.includes('residence')) { + drawText('x', 49, 449, 19) + } + if (reasons.includes('transit')) { + drawText('x', 49, 412, 19) + } + if (reasons.includes('prof._sante')) { + drawText('x', 49, 385, 19) + } + if (reasons.includes('marchandises')) { + drawText('x', 49, 370, 19) + } + if (reasons.includes('equipage')) { + drawText('x', 49, 354, 19) + } + if (reasons.includes('diplomatique')) { + drawText('x', 49, 328, 19) + } + if (reasons.includes('frontalier')) { + drawText('x', 49, 302, 19) + } } - if (reasons.includes('courses')) { - drawText('x', 76, 478, 19) + + if (typeNationality === 'eu') { + if (reasons.includes('resident')) { + drawText('x', 49, 265, 19) + } + if (reasons.includes('transit')) { + drawText('x', 49, 249, 19) + } + if (reasons.includes('prof._sante')) { + drawText('x', 49, 234, 19) + } + if (reasons.includes('marchandises')) { + drawText('x', 49, 218, 19) + } + if (reasons.includes('equipage')) { + drawText('x', 49, 202, 19) + } + if (reasons.includes('diplomatique')) { + drawText('x', 49, 177, 19) + } + if (reasons.includes('frontalier')) { + drawText('x', 49, 150, 19) + } } - if (reasons.includes('sante')) { - drawText('x', 76, 436, 19) - } - if (reasons.includes('famille')) { - drawText('x', 76, 400, 19) - } - if (reasons.includes('sport')) { - drawText('x', 76, 345, 19) - } - if (reasons.includes('judiciaire')) { - drawText('x', 76, 298, 19) - } - if (reasons.includes('missions')) { - drawText('x', 76, 260, 19) + if (typeNationality === 'fr') { + drawText('x', 49, 127, 19) } let locationSize = idealFontSize(font, profile.town, 83, 7, 11) @@ -149,26 +149,18 @@ async function generatePdf (profile, reasons) { locationSize = 7 } - drawText(profile.town, 111, 226, locationSize) - - if (reasons !== '') { - // Date sortie - drawText(`${profile.datesortie}`, 92, 200) - drawText(releaseHours, 200, 201) - drawText(releaseMinutes, 220, 201) - } - - // Date crĂ©ation - drawText('Date de crĂ©ation:', 464, 150, 7) - drawText(`${creationDate} Ă  ${creationHour}`, 455, 144, 7) + // Fait Ă  : + drawText(profile.town, 388, 107, locationSize) + // Le + drawText(`${new Date().toLocaleDateString('fr-FR', { month: 'numeric', day: 'numeric' })}`, 488, 107) const generatedQR = await generateQR(data) const qrImage = await pdfDoc.embedPng(generatedQR) page1.drawImage(qrImage, { - x: page1.getWidth() - 170, - y: 155, + x: 450, + y: 572, width: 100, height: 100, }) @@ -189,7 +181,7 @@ async function generatePdf (profile, reasons) { function downloadBlob (blob, fileName) { const link = document.createElement('a') - var url = URL.createObjectURL(blob) + const url = URL.createObjectURL(blob) link.href = url link.download = fileName document.body.appendChild(link) @@ -204,6 +196,15 @@ function getAndSaveReasons () { return values } +function getAndSaveTypeNationality () { + const typeNationality = $$('input[name="field-type-nationality"]:checked') + .map(x => x.value) + .join('-') + localStorage.setItem('typeNationality', typeNationality) + + return typeNationality +} + // see: https://stackoverflow.com/a/32348687/1513045 function isFacebookBrowser () { const ua = navigator.userAgent || navigator.vendor || window.opera @@ -237,12 +238,19 @@ $('#generate-btn').addEventListener('click', async event => { event.preventDefault() saveProfile() - const reasons = getAndSaveReasons() - const pdfBlob = await generatePdf(getProfile(), reasons) + const typeNationality = getAndSaveTypeNationality() + let reasons + if (typeNationality === 'fr') { + reasons = 'N/A' + } else { + reasons = getAndSaveReasons() + } + + const pdfBlob = await generatePdf(getProfile(), typeNationality, reasons) localStorage.clear() const creationDate = new Date().toLocaleDateString('fr-CA') const creationHour = new Date().toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' }).replace(':', '-') - downloadBlob(pdfBlob, `attestation-${creationDate}_${creationHour}.pdf`) + downloadBlob(pdfBlob, `attestation-${creationDate}_${creationHour}.pdf`) snackbar.classList.remove('d-none') setTimeout(() => snackbar.classList.add('show'), 100) @@ -275,9 +283,9 @@ const conditions = { }, '#field-birthday': { condition: 'pattern', - pattern: /^([0][1-9]|[1-2][0-9]|30|31)\/([0][1-9]|10|11|12)\/(19[0-9][0-9]|20[0-1][0-9]|2020)/g + pattern: /^([0][1-9]|[1-2][0-9]|30|31)\/([0][1-9]|10|11|12)\/(19[0-9][0-9]|20[0-1][0-9]|2020)/g, }, - '#field-lieunaissance': { + '#field-nationality': { condition: 'length', }, '#field-address': { @@ -287,34 +295,28 @@ const conditions = { condition: 'length', }, '#field-zipcode': { - condition: 'pattern', - pattern: /\d{5}/g + condition: 'lenght', }, - '#field-datesortie': { - condition: 'pattern', - pattern: /\d{4}-\d{2}-\d{2}/g + '#field-country': { + condition: 'length', }, - '#field-heuresortie': { - condition: 'pattern', - pattern: /\d{2}:\d{2}/g - } } Object.keys(conditions).forEach(field => { $(field).addEventListener('input', () => { - if (conditions[field].condition == 'pattern') { - const pattern = conditions[field].pattern; + if (conditions[field].condition === 'pattern') { + const pattern = conditions[field].pattern if ($(field).value.match(pattern)) { - $(field).setAttribute('aria-invalid', "false"); + $(field).setAttribute('aria-invalid', 'false') } else { - $(field).setAttribute('aria-invalid', "true"); + $(field).setAttribute('aria-invalid', 'true') } } - if (conditions[field].condition == 'length') { + if (conditions[field].condition === 'length') { if ($(field).value.length > 0) { - $(field).setAttribute('aria-invalid', "false"); + $(field).setAttribute('aria-invalid', 'false') } else { - $(field).setAttribute('aria-invalid', "true"); + $(field).setAttribute('aria-invalid', 'true') } } }) diff --git a/src/favicons/apple-touch-icon-120x120-precomposed.png b/src/favicons/apple-touch-icon-120x120-precomposed.png deleted file mode 100644 index b40c2e262766cb1d432f1a8829cb6181e2df7e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7894 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 Ap#T5? diff --git a/src/favicons/apple-touch-icon-120x120.png b/src/favicons/apple-touch-icon-120x120.png deleted file mode 100644 index b40c2e262766cb1d432f1a8829cb6181e2df7e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7894 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 Ap#T5? diff --git a/src/favicons/apple-touch-icon-precomposed.png b/src/favicons/apple-touch-icon-precomposed.png deleted file mode 100644 index 7e93fe302e233df6f4ab55ff7e7bdf0ad702e2c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16618 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 OjH0ZXOpTOT$o~L`iAyB_ diff --git a/src/favicons/apple-touch-icon.png b/src/favicons/apple-touch-icon.png index 7e93fe302e233df6f4ab55ff7e7bdf0ad702e2c0..187463338903274ef766212708ecaf08f5bd70aa 100644 GIT binary patch literal 10438 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 literal 16618 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 OjH0ZXOpTOT$o~L`iAyB_ diff --git a/src/favicons/favicon.ico b/src/favicons/favicon.ico deleted file mode 100644 index 26cee483e75a89852e9cdf26d845a82240f88fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmbW1&r2IY6vrotB)0yF7Q9vvF*l{)$-g0b@ZwEx{f!i zl4U2gI;P5ZM>4SA`t+1snf9~c_K%i|+r!62UE z@gkn{o5^T6{gFmCtHC>w%AZ4DNZoR4D;6A%63*;y_O_n!F&D#kw;OAnow(TF$KO~C z_n}b5dtkjpA`5$t4^B_x_tFxM$HuVI-j2}5hH+D6YC^`_?~dy^Sg_mm9Qr7ai?y{C zc|8`31?gnc^c>79KhyY7P=7N1LhmDu d@b0c2s}Zw?%L`SnyC&=Fx5G6o{{!#!{{TW#6;S{H diff --git a/src/favicons/site.webmanifest b/src/favicons/site.webmanifest index 6b1f870..2dcee57 100644 --- a/src/favicons/site.webmanifest +++ b/src/favicons/site.webmanifest @@ -14,26 +14,6 @@ "src": "android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" - }, - { - "src": "apple-touch-icon.png", - "sizes": "180x180", - "type": "image/png" - }, - { - "src": "apple-touch-icon-precomposed.png", - "sizes": "180x180", - "type": "image/png" - }, - { - "src": "apple-touch-icon-120x120.png", - "sizes": "120x120", - "type": "image/png" - }, - { - "src": "apple-touch-icon-120x120-precomposed.png", - "sizes": "120x120", - "type": "image/png" } ], "orientation": "portrait-primary", diff --git a/src/flag EN.svg b/src/flag EN.svg new file mode 100644 index 0000000..dc69fa0 --- /dev/null +++ b/src/flag EN.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/index-en.html b/src/index-en.html new file mode 100644 index 0000000..356b20f --- /dev/null +++ b/src/index-en.html @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + COVID-19 – Generator of international travel certificate to mainland France + + + +
+ + +
+ +
+

Fill online your digital certificate :

+

All fields are mandatory.

+ +
+ +
+ + +
+

+
+ +
+ +
+ + +
+

+
+ +
+ +
+ + +
+

+
+ +
+ +
+ + +
+

+
+ +
+ +
+ + +
+

+
+ +
+ +
+ + +
+

+
+ +
+ +
+ + +
+

+
+ +
+ +
+ + +
+

+
+ +
+ You are : + +
+ + + +
+ Choose the reason : +
+ + [1], who are holders of a French or European residence permit or valid long-stay visa, accompanied by their spouse and + children. +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
+ +
+ + + +
+ Choose the reason : +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+ +

+ +

+ +
+ The certificate is downloaded on your terminal. +
+
+ + +
+
+

+ [1] United Kingdom, Iceland, Liechtenstein, Norway, Andorra, Monaco, Switzerland, San Marino, Holy See.
+ [2] European Union, United Kingdom, Iceland, Liechtenstein, Norway, Andorra, Monaco, Switzerland, San Marino and Holy See nationals (2004/38/CE directive). +

+ +

+ The source code of this service is available for consultation on GitHub. +

+

+ Ministry of the Interior - DNUM - SDIT +

+ logo dnum +
+
+ + +
+ A new version is available. Click on the button to get it. +

+ +

+
+ + + + diff --git a/src/index.html b/src/index.html index 64408ed..e6fa25d 100644 --- a/src/index.html +++ b/src/index.html @@ -6,19 +6,19 @@ - + - + - + - - - - + + + + @@ -26,25 +26,50 @@ - COVID-19 – GĂ©nĂ©rateur d'attestation de dĂ©placement dĂ©rogatoire + COVID-19 – GĂ©nĂ©rateur d'attestation de dĂ©placement international dĂ©rogatoire vers la France mĂ©tropolitaine
@@ -55,7 +80,7 @@

Remplissez en ligne votre attestation numérique :

Tous les champs sont obligatoires.

- +
@@ -67,14 +92,13 @@ autocomplete="given-name" placeholder="Jean" required - autofocus aria-invalid="true" >

- +
@@ -87,13 +111,12 @@ placeholder="Dupont" aria-invalid="true" required - autofocus >

- +
@@ -114,24 +137,25 @@

- +
- +

- +
@@ -141,15 +165,15 @@ id="field-address" name="address" aria-invalid="true" - autocomplete="address-line1" - placeholder="999 avenue de france" + autocomplete="address-line1" + placeholder="999 avenue de Belgique" required >

- +
@@ -160,91 +184,151 @@ name="town" autocomplete="address-level1" aria-invalid="true" - placeholder="Paris" + placeholder="Bruxelles" required >

- +

- -
- Choisissez le ou les motif(s) de sortie -
- - + +
+ +
+ +
- +

+
+ +
+ Vous ĂȘtes : +
- - + + + +
+ Choisissez le motif : +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
- +
- - + + + +
+ Choisissez le motif +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
- +
- - -
- -
- - -
-
- - -
-
- - + +
+
- -
- -
- - -
-
- -
- -
- - -
-
- - +

@@ -253,14 +337,21 @@ L'attestation est téléchargée sur votre appareil.
+ +
+

+ [1] Royaume-Uni, Islande, Liechtenstein, NorvĂšge, Andorre, Monaco, Suisse, Saint-Marin, Saint SiĂšge.
+ [2] Ressortissants de l’Union europĂ©enne et ressortissants britanniques, ainsi que les ressortissants islandais, liechtensteinois, norvĂ©giens, andorrans, monĂ©gasques, suisses, saint-marinais, citoyens du Saint SiĂšge (directive 2004/38/CE). +

+

Le code source de ce service est consultable sur Github.

MinistÚre de l'Intérieur - DNUM - SDIT -

+

logo dnum
@@ -268,11 +359,11 @@ - +
Une nouvelle version est disponible. Cliquer sur le bouton pour l'obtenir. diff --git a/src/main.css b/src/main.css index 76ce46b..06fa10e 100644 --- a/src/main.css +++ b/src/main.css @@ -29,14 +29,14 @@ h1 { } /* Small devices (landscape phones, 576px and up) */ -@media (min-width: 576px) { +@media (min-width: 576px) { h1 { font-size: 2.5em; } } /* Medium devices (tablets, 768px and up) */ -@media (min-width: 768px) { +@media (min-width: 768px) { h1 { font-size: 3em; } @@ -46,6 +46,13 @@ svg { height: 1em; } +ul.flex-justify { + display: flex; + justify-content:space-between; + padding: 0; + margin: 0; + } + h1.flex.flex-wrap { display: flex; flex-wrap: wrap; @@ -83,6 +90,11 @@ a { transform: translateY(-2px); } +#form-profile .form-nationality-label { + font-weight: 800; + transform: translateY(-2px); +} + #form-generate .form-check { margin: 10px; } @@ -155,6 +167,27 @@ input:valid+span:after { width: 50%; } +fieldset .form-language { + display: flex; + align-items: right; +} + +.legend-language { + text-align: left; + font-size: 1rem; + color: #000000; +} + +.form-language .form-check-label { + font-size: 1rem; + font-weight: bold; + color: #000000; +} + +.flags { + width: 20px; + height: 15px; +} .covid-title { display: flex; @@ -185,11 +218,10 @@ input:valid+span:after { .text-alert{ text-align: left; + font-style: italic; color: #000000; } - - .btn-attestation { padding: 0.9em; font-size: 1.2em; @@ -308,13 +340,13 @@ input:valid+span:after { text-decoration: none; color: #ffffff; } - + } em { font-size: .8rem; } } - + .titre-2 { text-align: left; font-size: 1.5rem; @@ -401,3 +433,22 @@ input:valid+span:after { left: 50%; transform: translateX(-50%); } + +.control:not(:checked) ~ .conditional, +#radio-fr:not(:checked) ~ .conditional, +#radio-eu:not(:checked) ~ .conditional, +#radio-tiers:not(:checked) ~ .conditional { + clip: rect(0 0 0 0); + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; +} + +[id^="footnote"] { + margin: 30px auto; + max-width: 400px; + font-size: 0.8em; + color: #000000; + +} diff --git a/src/robots.txt b/src/robots.txt index 423bf62..5306e97 100644 --- a/src/robots.txt +++ b/src/robots.txt @@ -1 +1 @@ -Sitemap: https://media.interieur.gouv.fr/deplacement-covid-19/sitemap.xml +Sitemap: https://media.interieur.gouv.fr/deplacement-vers-france-covid-19/sitemap.xml diff --git a/src/sitemap.xml b/src/sitemap.xml index c7b756d..f41161b 100644 --- a/src/sitemap.xml +++ b/src/sitemap.xml @@ -8,20 +8,20 @@ - https://media.interieur.gouv.fr/deplacement-covid-19/ + https://media.interieur.gouv.fr/deplacement-vers-france-covid-19/ 2020-04-06T04:22:03+00:00 1.00 - https://media.interieur.gouv.fr/deplacement-covid-19/confidentialite.html + https://media.interieur.gouv.fr/deplacement-vers-france-covid-19/confidentialite.html 2020-04-06T04:22:03+00:00 0.80 - https://media.interieur.gouv.fr/deplacement-covid-19/index.html + https://media.interieur.gouv.fr/deplacement-vers-france-covid-19/index.html 2020-04-06T04:22:03+00:00 0.64 - \ No newline at end of file +