Moodle Hausaufgabenlog-Autofüller

Automatisches ausfüllen der standard-Daten und Erstellung eines Gerüsts für den Hausaufgabenlog auf moodle.bbbaden.ch.

2018-08-22 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Moodle Hausaufgabenlog-Autofüller
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  Automatisches ausfüllen der standard-Daten und Erstellung eines Gerüsts für den Hausaufgabenlog auf moodle.bbbaden.ch.
// @author       Dan6erbond
// @match        https://moodle.bbbaden.ch/*
// @grant        none
// ==/UserScript==

var editor = null;
var tätigkeitenPrompt = null;
var arbeitsaufwandPrompt = null;
var gelerntesPrompt = null;
var offeneFragenPrompt = null;

function getElementByXpath(path) {
  return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}

setTimeout(function(){changeBearbeitenButton();}, 1000);

function changeBearbeitenButton(){
	getElementyByXpath("//*[@id=\"region-main\"]/div/div[3]/div/form/div/input[1]").innerHTML = "Journaleintrag hinzufügen";
}

setTimeout(function(){checkForEditor();}, 1000);

function checkForEditor(){
    editor = document.getElementById("id_text_editoreditable");

    if (editor != null){
        tätigkeitenPrompt = prompt("Tätigkeiten:", "Repetition.");
        arbeitsaufwandPrompt = prompt("Arbeitsaufwand:", "10 Minuten.");
        gelerntesPrompt = prompt("Gelerntes:", "Nichts.");
        offeneFragenPrompt = prompt("Offene Fragen:", "Keine.");

		if (tätigkeitenPrompt == null || arbeitsaufwandPrompt == null || gelerntesPrompt == null || offeneFragenPrompt == null)
			return;
		
        fillOutLog();		
    }
}

function fillOutLog(){	
    var d = new Date();
    var dateString = d.getDate() + "." + (d.getMonth()+1) + "." + d.getFullYear();

    var header = document.createElement("p");
    var headerChild = document.createElement("b");
    headerChild.innerHTML = "Hausaufgabenlog vom " + dateString;
    header.appendChild(headerChild);

    var text = document.createElement("p");
    var list = document.createElement("ul");

    var tätigkeiten = document.createElement("li");
    var tätigkeitenTitel = document.createElement("b");
    tätigkeitenTitel.innerHTML = "Tätigkeiten: ";
    var tätigkeitenText = document.createTextNode(tätigkeitenPrompt);
    tätigkeiten.appendChild(tätigkeitenTitel);
    tätigkeiten.appendChild(tätigkeitenText);

    var arbeitsaufwand = document.createElement("li");
    var arbeitsaufwandTitel = document.createElement("b");
    arbeitsaufwandTitel.innerHTML = "Arbeitsaufwand: ";
    var arbeitsaufwandText = document.createTextNode(arbeitsaufwandPrompt);
    arbeitsaufwand.appendChild(arbeitsaufwandTitel);
    arbeitsaufwand.appendChild(arbeitsaufwandText);

    var gelerntes = document.createElement("li");
    var gelerntesTitel = document.createElement("b");
    gelerntesTitel.innerHTML = "Gelerntes: ";
    var gelerntesText = document.createTextNode(gelerntesPrompt);
    gelerntes.appendChild(gelerntesTitel);
    gelerntes.appendChild(gelerntesText);

    var offeneFragen = document.createElement("li");
    var offeneFragenTitel = document.createElement("b");
    offeneFragenTitel.innerHTML = "Offene Fragen: ";
    var offeneFragenText = document.createTextNode(offeneFragenPrompt);
    offeneFragen.appendChild(offeneFragenTitel);
    offeneFragen.appendChild(offeneFragenText);

    list.appendChild(tätigkeiten);
    list.appendChild(arbeitsaufwand);
    list.appendChild(gelerntes);
    list.appendChild(offeneFragen);
    text.appendChild(list);

    editor.appendChild(header);
    editor.appendChild(text);	
}