MediaWiki:Common.js/Sprechstunde.js

MediaWiki-Schnittstellenseite
< MediaWiki:Common.js
Version vom 12. Juli 2023, 15:44 Uhr von Markus Scholz (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
// Das Script Sprechstunde.js signalisiert den Status der Sprechstunde, die Daten werden über die Vorlage:Sprechstunde eingebunden

function isToday(date) {
    var now = new Date();
    var today = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);
    var date = new Date(parseInt(date.split(".")[2]), parseInt(date.split(".")[1]) - 1, parseInt(date.split(".")[0]), 0, 0, 0);
    if (today.getTime() == date.getTime()) {
        return true;
    } else {
        return false;
    }
}
    
function toogleConsultationButton() {
    $('.sprechstunde').each(function() {
        // Heutigen Wochentag und Tagesminuten berechnen
        var now = new Date();
        var weekday = now.getDay();
        var dayminutes = parseInt(now.getHours()) * 60 + parseInt(now.getMinutes());
        // Feiertage bilden Ausnahme vom Zeitplan
        var workday = true;
        var holiday = $(this).data('feiertage');
        if (holiday) {
            $.each( holiday, function( i, date ) {
                if (isToday(date)) {
                    workday = false;
                    return false;
                }
            });
        }
        // Zeitplan für Sprechstunde
        var online = false;
        var link = false;
        if (workday) {
            var timetable = $(this).data('zeitplan');
            if (timetable) {
                $.each( timetable, function( i, datensatz ) {
                    if (datensatz.wochentag == weekday) {
                        var begin = parseInt(datensatz.beginn.split(":")[0]) * 60 + parseInt(datensatz.beginn.split(":")[1]);
                        var end = parseInt(datensatz.ende.split(":")[0]) * 60 + parseInt(datensatz.ende.split(":")[1]);
                        if ((begin <= dayminutes) && (end > dayminutes)) {
                            online = true;
                            link = datensatz.link;
                            return false;
                        }    
                    }
                });
            }
        }
        // Verfügbarkeit der Sprechstunde anzeigen
        if (online) {
            $("img", this).attr("src", "https://wiki.llz.uni-halle.de/images/d/db/Sprechstunde_offen.svg");
            $("a", this).attr("href", link);
        } else {
            $("img", this).attr("src", "https://wiki.llz.uni-halle.de/images/f/f6/Sprechstunde_geschlossen.svg");
            $("a", this).attr("href", "https://wiki.llz.uni-halle.de/Portal:Onlinebetrieb/An_der_Onlinesprechstunde_teilnehmen");
        }
    });
}

$(function() {
    if ($('.sprechstunde').length) {
        toogleConsultationButton();
        var task = setInterval(toogleConsultationButton, 10000);
    }
});