1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
| <!doctype html>
<html lang="fr">
<head>
<meta charset ="UTF-8">
<title>...</title>
<meta name="Author" content="NoSmoking">
<style>
table {
border: 1px solid #888;
border-collapse: separate;
border-spacing: 0;
font: 1em Verdana,Geneva,Arial,Helvetica,sans-serif;
background-color: #FFF;
}
table thead tr {
background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.2) )repeat scroll 0% 0% #EEE;
}
table caption {
padding: .5em;
font-size: 1.5em;
font-weight: bold;
color: #666;
}
table thead td {
border-top: 1px solid white;
text-align: center;
text-shadow: 1px 1px 0 #FFF;
}
table tbody tr:first-child td {
border-top: 1px solid #888;
}
table tbody td {
border-top: 1px solid #CCC;
}
table td {
padding: 0.5em;
min-width: 10em;
border-right: 1px solid #888;
border-left: 1px solid #FFF;
white-space: nowrap;
word-break: normal;
}
table tr td:last-child {
border-right: none;
}
</style>
</head>
<body>
<table id="planning">
<caption>Planning des réunions</caption>
<thead>
<tr >
<td>Mois</td>
<td>Date</td>
<td>ATA</td>
</tr>
</thead>
<tbody></tbody>
</table>
<script>
var data = [
{"ATA": 20,"Date": ""},
{"ATA": 21,"Date": "08/11/2016"},
{"ATA": 22,"Date": "01/02/2017"},
{"ATA": 23,"Date": "01/03/2017"},
{"ATA": 24,"Date": ""},
{"ATA": 25,"Date": ""},
{"ATA": 26,"Date": ""},
{"ATA": 27,"Date": "20/09/2016"},
{"ATA": 28,"Date": "08/12/2016"},
{"ATA": 29,"Date": "01/06/2017"},
{"ATA": 30,"Date": ""},
{"ATA": 31,"Date": ""},
{"ATA": 32,"Date": "05/04/2017"},
{"ATA": 33,"Date": "03/05/2017"},
{"ATA": 34,"Date": ""},
{"ATA": 35,"Date": "01/02/2017"},
{"ATA": 36,"Date": ""},
{"ATA": 38,"Date": ""},
{"ATA": 42,"Date": ""},
{"ATA": 44,"Date": ""},
{"ATA": 46,"Date": "05/04/2017"},
{"ATA": 47,"Date": ""},
{"ATA": 49,"Date": "01/03/2017"},
{"ATA": 52,"Date": ""},
{"ATA": 73,"Date": ""},
{"ATA": 92,"Date": ""}
];
var json_mois={"01":"Janvier", "02":"Février","03":"Mars","04":"Avril","05":"Mai","06":"Juin","07":"Juillet","08":"Août","09":"Septembre","10":"Octobre","11":"Novembre","12":"Décembre"};
/**
* tri les dates au format jj/mm/aaaa
**/
function triParDate(a, b) {
var aDate = a.Date.split('/').reverse().join('');
var bDate = b.Date.split('/').reverse().join('');
if (aDate === bDate ){
return a.ATA > b.ATA ? 1 : -1;
}
return aDate > bDate ? 1 : -1;
}
// il faut trier par date
data.sort(triParDate);
// date de prise en compte
var d = new Date();
var dateRef = '' +d.getFullYear() +(d.getMonth() +1) +d.getDate();
// récup. des données concernées
var dataTable = data.filter( function(obj){
return (dateRef <= obj.Date.split('/').reverse().join(''));
});
// construction du contenu de la table
var html = [];
var i, nb = dataTable.length;
var previousDate = 'jj/mm/aaaa';
var ligneEnCours = false; // évite fermeture balise la 1st fois
for (i = 0; i < nb; i += 1) {
// condition sur la date
if (dataTable[i].Date) {
// si date différente on crée une nouvelle ligne
if (dataTable[i].Date !== previousDate) {
// fermeture de la ligne précédente éventuelle
if (ligneEnCours) {
html.push('</td></tr>');
}
// ouvre la ligne
html.push('<tr>');
// ajout mois
html.push('<td>' + (json_mois[dataTable[i].Date.split('/')[1]] || '?') + '</td>');
// ajout date
html.push('<td>' + dataTable[i].Date + '</td>');
// ajout le ATA sans fermer la cellule
html.push('<td>' + dataTable[i].ATA);
// nouvelle date de réfèrence
previousDate = dataTable[i].Date;
// traitement en cours
ligneEnCours = true;
}
// sinon on ajoute
else {
html.push(' - ' + dataTable[i].ATA);
}
}
}
// on ferme proprement
html.push('</td></tr>');
// on injecte le code dans le <tbody>
var oTable = document.querySelector('#planning');
oTable.tBodies[0].innerHTML = html.join('');
</script>
</body>
</html> |
Partager