first version
This commit is contained in:
parent
0376f5e5b8
commit
7f7cb6a2b2
165
main.js
Normal file
165
main.js
Normal file
@ -0,0 +1,165 @@
|
||||
"use strict";
|
||||
|
||||
const DATA_KEY = 'pas-data-64a755500efe9b8275422e16f551bc06'
|
||||
|
||||
const FIELD_NAMES = [
|
||||
'firstname',
|
||||
'lastname',
|
||||
'birthday',
|
||||
'placeofbirth',
|
||||
'firstname',
|
||||
'birthday',
|
||||
'placeofbirth',
|
||||
'address',
|
||||
'city',
|
||||
'zipcode',
|
||||
'datesortie',
|
||||
'heuresortie'
|
||||
];
|
||||
|
||||
function get_fields()
|
||||
{
|
||||
|
||||
const fields = {};
|
||||
for (let i = 0; i < FIELD_NAMES.length; i++)
|
||||
{
|
||||
let field_id = 'field-' + FIELD_NAMES[i];
|
||||
fields[FIELD_NAMES[i]] = document.getElementById(field_id);
|
||||
}
|
||||
return fields;
|
||||
}
|
||||
|
||||
function get_checkbox()
|
||||
{
|
||||
const checkbox_names = [
|
||||
'travail',
|
||||
'achats',
|
||||
'sante',
|
||||
'famille',
|
||||
'handicap',
|
||||
'sport_animaux',
|
||||
'convocation',
|
||||
'missions',
|
||||
'enfants'
|
||||
];
|
||||
const checkbox = {};
|
||||
for (let i = 0; i < checkbox_names.length; i++)
|
||||
{
|
||||
let checkbox_id = 'checkbox-' + checkbox_names[i];
|
||||
checkbox[checkbox_names[i]] = document.getElementById(checkbox_id);
|
||||
}
|
||||
return checkbox;
|
||||
}
|
||||
|
||||
function load_data() {
|
||||
const stored = window.localStorage.getItem(DATA_KEY);
|
||||
if(stored)
|
||||
{
|
||||
return JSON.parse(stored);
|
||||
}
|
||||
else
|
||||
{
|
||||
const data = {
|
||||
'fields': {},
|
||||
'checkbox': []
|
||||
};
|
||||
for (let field in FIELD_NAMES)
|
||||
{
|
||||
data['fields'][FIELD_NAMES[field]] = '';
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function save_data(fields, checkbox)
|
||||
{
|
||||
console.debug('saving_data')
|
||||
const data = {
|
||||
'fields': {},
|
||||
'checkbox': []
|
||||
};
|
||||
for (let field in fields)
|
||||
{
|
||||
let value = fields[field];
|
||||
data['fields'][field] = value.value;
|
||||
}
|
||||
for (let box_name in checkbox)
|
||||
{
|
||||
let checked = checkbox[box_name].checked;
|
||||
if (checked)
|
||||
{
|
||||
data['checkbox'].push(box_name);
|
||||
}
|
||||
}
|
||||
window.localStorage.setItem(DATA_KEY, JSON.stringify(data));
|
||||
console.debug('data-saved')
|
||||
}
|
||||
|
||||
function fill_form(fields, checkbox)
|
||||
{
|
||||
const data = load_data();
|
||||
const date = new Date();
|
||||
for (let field in fields)
|
||||
{
|
||||
let element = fields[field];
|
||||
if (field === 'datesortie')
|
||||
{
|
||||
const day = date.getDate();
|
||||
const month = date.getMonth() + 1;
|
||||
const year = date.getFullYear();
|
||||
const date_string = year.toString() + '-' + month.toString() + '-' + day.toString();
|
||||
element.value = date_string;
|
||||
|
||||
}
|
||||
else if (field === 'heuresortie')
|
||||
{
|
||||
const hours = date.getHours();
|
||||
const minutes = date.getMinutes();
|
||||
const time_string = hours.toString() + ':' + minutes.toString();
|
||||
element.value = time_string;
|
||||
}
|
||||
else
|
||||
{
|
||||
element.value = data['fields'][field];
|
||||
}
|
||||
}
|
||||
|
||||
for (let box in checkbox)
|
||||
{
|
||||
if(data['checkbox'].includes(box))
|
||||
{
|
||||
checkbox[box].checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
checkbox[box].checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function main(main)
|
||||
{
|
||||
console.log('starting PAS');
|
||||
console.debug('retrieve fields');
|
||||
const fields = get_fields();
|
||||
console.debug('retrieve checkbox');
|
||||
const checkbox = get_checkbox();
|
||||
console.debug('retrieve generate_button');
|
||||
const generateButton = document.getElementById('generate-btn');
|
||||
console.debug('attach to validation');
|
||||
generateButton.onclick = function(event){save_data(fields, checkbox);}
|
||||
console.debug('trying to fill the form');
|
||||
fill_form(fields, checkbox);
|
||||
console.debug('setup done');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
main();
|
||||
}
|
||||
catch(error)
|
||||
{
|
||||
console.error(error);
|
||||
}
|
21
manifest.json
Normal file
21
manifest.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
|
||||
"manifest_version": 2,
|
||||
"name": "PAS",
|
||||
"version": "1.0",
|
||||
|
||||
"description": "Enregistre et préremplis les autorisations de sortie sur le site https://media.interieur.gouv.fr/deplacement-covid-19/ Le code source est siponible a l'adresse: https://git.katzei.fr/meewan/pas",
|
||||
|
||||
"icons": {
|
||||
"48": "media/icon-48.png"
|
||||
},
|
||||
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["https://media.interieur.gouv.fr/deplacement-covid-19/"],
|
||||
"js": ["main.js"]
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
BIN
media/icon-48.png
Normal file
BIN
media/icon-48.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.4 KiB |
BIN
media/icon.png
Normal file
BIN
media/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
2
packer.sh
Executable file
2
packer.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#/bin/bash
|
||||
zip -r -FS ../pas.zip * --exclude *.git* --exclude packer.sh
|
BIN
pas-1.0-an+fx.xpi
Normal file
BIN
pas-1.0-an+fx.xpi
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user