This commit is contained in:
Yann Esposito (Yogsototh) 2021-09-06 15:37:20 +02:00
parent 1b1b8169b6
commit c3d52fe242
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646

View file

@ -14,10 +14,17 @@
text-align: center;
border: solid 1px;
}
.card { border: solid 2px #FDD; border-radius: 4px; width: 1em; height: 1em; padding: 3px; text-align: center;
weight: bold; margin: 0 auto; display: inline-block;}
.yann { background-color: #C32; color: white; }
.wanderson { background-color: #3A2; color: white; }
.card { border-radius: 6px;
border: solid 1px #000;
color: white;
min-width: 1em;
height: 1em;
padding: 1px 3px 3px ;
text-align: center;
font-weight: bold;
margin: 2px;
display: inline-block;
}
</style>
</head>
<body>
@ -29,8 +36,16 @@
<div id="main"></div>
</body>
<script>
(function () {
var people = [ "yann", "wanderson" ];
// (function () {
var people = ["Ag",
"Ambrose",
"Irina",
"Kiril",
"Mark",
"Olivier",
"Rob",
"Wanderson",
];
var nbcolumns = 2;
var fts = [ "SX Session", "Bug Squashing", "Secure Client" ]
@ -51,12 +66,18 @@
cards.forEach(function(card){ card.draggable = true; card.ondragstart = drag; });
}
function genTable () {
var t = document.createElement("table");
t.id = "maintable";
t.appendChild(mkTitleRow(["FT","v1.81","v1.82","v1.83","v1.84"]));
var previous = 2; // nb of previous release to show (2 means, 1 previous to prod, + current in prod)
var nexts = 4; // nb of next releases to show
var nbcolumns = previous + nexts;
var rels = releases( previous, nexts );
rels[0]="FT";
t.appendChild(mkTitleRow(rels));
fts.forEach( function(ft) {
t.appendChild(mkRow(ft,4));
t.appendChild(mkRow(ft,nbcolumns));
});
return t;
}
@ -90,10 +111,25 @@
var devdiv = document.createElement('div');
devdiv.classList.add(devname);
devdiv.classList.add('card');
devdiv.textContent = devname.charAt(0).toUpperCase();
devdiv.textContent = devname;
devdiv.style.backgroundColor = genColor(devname);
return devdiv;
}
function hashcode(s){
return s.split("").reduce(
function(acc,l){
acc = acc + (l.charCodeAt(0) - 'A'.charCodeAt(0));
return acc;
},
0);
}
function genColor(devname) {
var h = 2.17*hashcode(devname) % 256;
return "hsl(" + h + ",80%, 36%)";
}
function createDev(devname){
var res = devcard(devname);
res.id = devname;
@ -104,12 +140,53 @@
ev.dataTransfer.setData("text", ev.target.id);
}
// release logic
function getWeekNumber(d) {
// Copy date so don't modify original
d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
// Set to nearest Thursday: current date + 4 - current day number
// Make Sunday's day number 7
d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7));
// Get first day of year
var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));
// Calculate full weeks to nearest Thursday
var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7);
// Return array of year and week number
return [d.getUTCFullYear(), weekNo];
}
// should return a list of next releases
// use the current date
function releases(previous,nexts) {
var curr = new Date; // get current date
var monday = curr.getDate() - curr.getDay() + 1;
var wed = monday + 2;
var nbDays = curr.getDay() - 3;
var afterWed = nbDays > 0;
var w = getWeekNumber(curr);
var year = w[0];
var week = w[1];
var release = "";
var releaseWeek = (week+1)%2;
var releaseNumVersion = Math.floor((week - 16)/2) + 71;
var currentVersion = "v1." + (releaseNumVersion - (1 + previous));
var size=nexts + previous + 1;
var releases = new Array(size)
for (i = 0; i < size; i++) {
releases [i] = "v1." + (releaseNumVersion + (i - 3));
}
return releases;
}
// drag n drop
function drop(ev,el) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
el.appendChild(document.getElementById(data));
}
window.addEventListener("load", init);
})();
// })();
</script>
</html>