MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Freifunk Köln, Bonn und Umgebung
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
K (Off-by-one)
(27 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
/* Das folgende JavaScript wird für alle Benutzer geladen. */
const DATE_CONFIG = [
document.addEventListener("DOMContentLoaded", function(event) {  
    {
  console.log("Log", document.getElementById("termine"));
        week: 1, // 1st week
});
        day: 4, // Thursday
        text: 'in der <a rel="nofollow" class="external text" href="https://www.openstreetmap.org/way/123890490">Alten VHS, Wilhelmstraße 34</a>, <b>20:00</b> Uhr'
    }, {
        week: 2, //2nd week
        day: 4, // Thursday
        text: 'im <a rel="nofollow" class="external text" href="https://koeln.ccc.de">C4</a> in Köln, <a rel="nofollow" class="external text" href="http://www.koeln.ccc.de/c4/faq/index.xml#anreise">Helios Str. 6a</a>, <b>20:00</b> Uhr'
    }, {
        week: 3, // 3rd week
        day: 4, // Thursday
        text: 'in der <a rel="nofollow" class="external text" href="https://www.openstreetmap.org/way/123890490">Alten VHS, Wilhelmstraße 34</a>, <b>20:00</b> Uhr'
    }
];
 
const upcomingDates = function(){
    var ret = "";
    var today = new Date();
    for (var counter = 0;counter < 3; counter++){
        var text = null;
        while (!(text = getDateText(today))) { // Count
            today.setDate(today.getDate() + 1);
        }
        today.setDate(today.getDate() + 1);
        ret += text;
    }
    return ret;
};
const getDateText = function (d) {
    const dayOfMonth = d.getDate();
    const month = d.getMonth() +1;
    const year = d.getFullYear();
 
    for(var index = 0; index < DATE_CONFIG.length; index++){
        const conf = DATE_CONFIG[index];
        if (d.getDay() == conf.day && dayOfMonth <= 7 * conf.week){
            const dateStr = (dayOfMonth <= 9) ? "0" + dayOfMonth : "" + dayOfMonth;
            const monthStr = (month <= 9) ? "0" + month : "" + month;
            return '<li>' + dateStr + '.' + monthStr + '.' + year + " " + conf.text + '</li>';
        }
    }
    return null;
};
const div =  document.getElementById("termine");
if(div) {
    div.innerHTML = "<ul>" + upcomingDates() + "</ul>";
}

Version vom 14. Dezember 2019, 19:11 Uhr

const DATE_CONFIG = [
    {
        week: 1, // 1st week
        day: 4, // Thursday
        text: 'in der <a rel="nofollow" class="external text" href="https://www.openstreetmap.org/way/123890490">Alten VHS, Wilhelmstraße 34</a>, <b>20:00</b> Uhr'
    }, {
        week: 2, //2nd week
        day: 4, // Thursday
        text: 'im <a rel="nofollow" class="external text" href="https://koeln.ccc.de">C4</a> in Köln, <a rel="nofollow" class="external text" href="http://www.koeln.ccc.de/c4/faq/index.xml#anreise">Helios Str. 6a</a>, <b>20:00</b> Uhr'
    }, {
        week: 3, // 3rd week
        day: 4, // Thursday
        text: 'in der <a rel="nofollow" class="external text" href="https://www.openstreetmap.org/way/123890490">Alten VHS, Wilhelmstraße 34</a>, <b>20:00</b> Uhr'
    }
];

const upcomingDates = function(){
    var ret = "";
    var today = new Date();
    for (var counter = 0;counter < 3; counter++){
        var text = null;
        while (!(text = getDateText(today))) { // Count
            today.setDate(today.getDate() + 1);
        }
        today.setDate(today.getDate() + 1);
        ret += text;
    }
    return ret;
};
const getDateText = function (d) {
    const dayOfMonth = d.getDate();
    const month = d.getMonth() +1;
    const year = d.getFullYear();

    for(var index = 0; index < DATE_CONFIG.length; index++){
        const conf = DATE_CONFIG[index];
        if (d.getDay() == conf.day && dayOfMonth <= 7 * conf.week){
            const dateStr = (dayOfMonth <= 9) ? "0" + dayOfMonth : "" + dayOfMonth;
            const monthStr = (month <= 9) ? "0" + month : "" + month;
            return '<li>' + dateStr + '.' + monthStr + '.' + year + " " + conf.text + '</li>';
        }
    }
     return null;
};
const div =  document.getElementById("termine");
if(div) {
    div.innerHTML = "<ul>" + upcomingDates() + "</ul>";
}