mirror of
https://gitlab.com/MrFry/moodle-test-userscript
synced 2025-04-01 20:22:48 +02:00
Subject disabling, and frame updating
This commit is contained in:
parent
b40d6b61b9
commit
3fcd18670e
2 changed files with 50 additions and 19 deletions
5
frame.js
5
frame.js
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name Moodle/Elearning/KMOOC test help
|
// @name Moodle/Elearning/KMOOC test help
|
||||||
// @version 1.5.4.2
|
// @version 1.6.0.0
|
||||||
// @description Online Moodle/Elearning/KMOOC test help
|
// @description Online Moodle/Elearning/KMOOC test help
|
||||||
// @author YourFriendlyNeighborhoodDealer
|
// @author YourFriendlyNeighborhoodDealer
|
||||||
// @match https://elearning.uni-obuda.hu/main/*
|
// @match https://elearning.uni-obuda.hu/main/*
|
||||||
|
@ -33,6 +33,9 @@
|
||||||
// @grant GM_setValue
|
// @grant GM_setValue
|
||||||
// @grant GM_xmlhttpRequest
|
// @grant GM_xmlhttpRequest
|
||||||
// @grant GM_openInTab
|
// @grant GM_openInTab
|
||||||
|
// @license GNU General Public License v3.0 or later
|
||||||
|
// @supportURL questionmining.tk
|
||||||
|
// @contributionURL questionmining.tk
|
||||||
// @resource data file:///<file path space is %20, and use "/"-s plz not "\" ty (and add .txt)// UTF-8 PLZ>
|
// @resource data file:///<file path space is %20, and use "/"-s plz not "\" ty (and add .txt)// UTF-8 PLZ>
|
||||||
// @namespace https://greasyfork.org/users/153067
|
// @namespace https://greasyfork.org/users/153067
|
||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
64
main.js
64
main.js
|
@ -20,9 +20,14 @@
|
||||||
|
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
// TODO:
|
||||||
|
// default is not active on new subjects
|
||||||
|
// send version, and check if new is avaible
|
||||||
|
|
||||||
var data; // all data, which is in the resource txt
|
var data; // all data, which is in the resource txt
|
||||||
var addEventListener; // add event listener function
|
var addEventListener; // add event listener function
|
||||||
var lastChangeLog = '- Kérdések adatstruktúra változtatás. Ha jól csináltam, akkor semmit se kellene észrevenni. \n Ha nem, akkor weboldalon lehet hibát jelezni!';
|
var lastChangeLog =
|
||||||
|
' - Összes tárgy letiltása alapból, mert sok tárgy van, és belassulhat :c\n- Az azért jó, hogy sok tárgy van c:';
|
||||||
var serverAdress = "https://questionmining.tk/";
|
var serverAdress = "https://questionmining.tk/";
|
||||||
|
|
||||||
// forcing pages for testing. unless you test, do not set these to true!
|
// forcing pages for testing. unless you test, do not set these to true!
|
||||||
|
@ -629,6 +634,7 @@ function GetRightAnswerFromResultv2(i) {
|
||||||
function Init(cwith) {
|
function Init(cwith) {
|
||||||
if (false) // reset, only for testing!
|
if (false) // reset, only for testing!
|
||||||
{
|
{
|
||||||
|
GM_setValue("version16", undefined);
|
||||||
GM_setValue("version15", undefined);
|
GM_setValue("version15", undefined);
|
||||||
GM_setValue("firstRun", undefined); // GM_getValue("lastVerson") == undefined => firstrun
|
GM_setValue("firstRun", undefined); // GM_getValue("lastVerson") == undefined => firstrun
|
||||||
GM_setValue("showQuestions", undefined);
|
GM_setValue("showQuestions", undefined);
|
||||||
|
@ -660,7 +666,16 @@ function Init(cwith) {
|
||||||
console.log(e.stack);
|
console.log(e.stack);
|
||||||
console.log("------------------------------------------");
|
console.log("------------------------------------------");
|
||||||
}
|
}
|
||||||
// first run is version == undefined !
|
VersionActions();
|
||||||
|
count = Load(cwith); // loads resources
|
||||||
|
if (!url.includes(".pdf")) // showing menu unless its a .pdf page
|
||||||
|
{
|
||||||
|
ShowMenu();
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
function VersionActions() {
|
||||||
var firstRun = GM_getValue("firstRun"); // if the current run is the frst
|
var firstRun = GM_getValue("firstRun"); // if the current run is the frst
|
||||||
if (firstRun == undefined || firstRun == true) // if its undefined, or true
|
if (firstRun == undefined || firstRun == true) // if its undefined, or true
|
||||||
{
|
{
|
||||||
|
@ -680,13 +695,17 @@ function Init(cwith) {
|
||||||
throw "something, so this stuff stops";
|
throw "something, so this stuff stops";
|
||||||
}
|
}
|
||||||
|
|
||||||
count = Load(cwith); // loads resources
|
var version16 = GM_getValue("version16"); // if the current run is the frst
|
||||||
// console.log(data); // logging for debugging
|
if (version16 == undefined || version16 == true) // if its undefined, or true
|
||||||
if (!url.includes(".pdf")) // showing menu unless its a .pdf page
|
|
||||||
{
|
{
|
||||||
ShowMenu();
|
var i = 0;
|
||||||
|
while (GM_getValue("Is" + i + "Active") != undefined) {
|
||||||
|
GM_setValue("Is" + i + "Active", false);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
GM_setValue("version16", false); // setting it to false
|
||||||
}
|
}
|
||||||
return count;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function ReadFile(cwith) {
|
function ReadFile(cwith) {
|
||||||
|
@ -900,6 +919,13 @@ function NLoad(resource, cwith) {
|
||||||
console.log("------------------------------------------");
|
console.log("------------------------------------------");
|
||||||
count = -1; // returns -1 if error
|
count = -1; // returns -1 if error
|
||||||
}
|
}
|
||||||
|
var i = 0;
|
||||||
|
while (i < data.length && !GM_getValue("Is" + i + "Active")) {
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (i >= data.length)
|
||||||
|
document.getElementById("HelperMenuButton").style.background = "yellow";
|
||||||
|
|
||||||
cwith(count);
|
cwith(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -980,9 +1006,9 @@ function HandleUI(url, count) {
|
||||||
// no new version, everything loaded, and show splash is enabled. otherwise something happened, so showing it
|
// no new version, everything loaded, and show splash is enabled. otherwise something happened, so showing it
|
||||||
if (!newVersion && loaded && showSplash) // ------------------------------------------------------------------------------------------------
|
if (!newVersion && loaded && showSplash) // ------------------------------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
|
timeout = 5;
|
||||||
greetMsg = "Moodle/Elearning/KMOOC segéd v. " + GM_info.script.version + ". " + count +
|
greetMsg = "Moodle/Elearning/KMOOC segéd v. " + GM_info.script.version + ". " + count +
|
||||||
" kérdés és " + data.length + " tárgy betöltve. (click for help).";
|
" kérdés és " + data.length + " tárgy betöltve. (click for help).";
|
||||||
console.log(data);
|
|
||||||
if (data.length > 0) {
|
if (data.length > 0) {
|
||||||
var toAdd = [];
|
var toAdd = [];
|
||||||
for (var i = 0; i < data.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
@ -994,11 +1020,11 @@ function HandleUI(url, count) {
|
||||||
greetMsg += "\nAktív tárgyak: " + toAdd.join(", ") + ".";
|
greetMsg += "\nAktív tárgyak: " + toAdd.join(", ") + ".";
|
||||||
} else {
|
} else {
|
||||||
greetMsg += "\nNincs aktív tárgyad. Menüből válassz ki eggyet!";
|
greetMsg += "\nNincs aktív tárgyad. Menüből válassz ki eggyet!";
|
||||||
|
timeout = undefined;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
greetMsg += " Az adatfájlban nem adtál meg nevet. Vagy nem elérhető a szerver. Katt a helpért!";
|
greetMsg += " Az adatfájlban nem adtál meg nevet. Vagy nem elérhető a szerver. Katt a helpért!";
|
||||||
}
|
}
|
||||||
timeout = 5;
|
|
||||||
}
|
}
|
||||||
// new version, nothing loaded
|
// new version, nothing loaded
|
||||||
if (newVersion && !loaded) // --------------------------------------------------------------------------------------------------------------
|
if (newVersion && !loaded) // --------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1607,17 +1633,18 @@ function ShowMessage(msgItem, timeout, funct) {
|
||||||
// shows a fancy menu
|
// shows a fancy menu
|
||||||
function ShowMenu() {
|
function ShowMenu() {
|
||||||
try {
|
try {
|
||||||
var buttonSize = 25; // button size ;)
|
var buttonWidth = 75; // button size ;)
|
||||||
|
var buttonHeight = 55;
|
||||||
var appedtTo = document.body; // will be appended here
|
var appedtTo = document.body; // will be appended here
|
||||||
|
|
||||||
// mainDiv.style.left = (window.innerWidth - width) / 2 + 'px';
|
// mainDiv.style.left = (window.innerWidth - width) / 2 + 'px';
|
||||||
|
|
||||||
var menuButtonDiv = document.createElement("div");
|
var menuButtonDiv = document.createElement("div");
|
||||||
menuButtonDiv.setAttribute("id", "HelperMenuButton");
|
menuButtonDiv.setAttribute("id", "HelperMenuButton");
|
||||||
//menuButtonDiv.style.width = buttonSize + 'px';
|
menuButtonDiv.style.width = buttonWidth + 'px';
|
||||||
menuButtonDiv.style.height = buttonSize + 'px';
|
menuButtonDiv.style.height = buttonHeight + 'px';
|
||||||
menuButtonDiv.style.top = (window.innerHeight - buttonSize * 2) + 'px';
|
menuButtonDiv.style.top = (window.innerHeight - buttonHeight * 1.5) + 'px';
|
||||||
menuButtonDiv.style.left = window.innerWidth - buttonSize * 3 + 'px';
|
menuButtonDiv.style.left = window.innerWidth - buttonWidth * 1.5 + 'px';
|
||||||
menuButtonDiv.style.zIndex = 999999; // TO THE MAX
|
menuButtonDiv.style.zIndex = 999999; // TO THE MAX
|
||||||
menuButtonDiv.style.position = "fixed";
|
menuButtonDiv.style.position = "fixed";
|
||||||
|
|
||||||
|
@ -1631,7 +1658,7 @@ function ShowMenu() {
|
||||||
menuButtonDiv.style.opacity = "0.9"; // setting starting opacity
|
menuButtonDiv.style.opacity = "0.9"; // setting starting opacity
|
||||||
|
|
||||||
// menu text
|
// menu text
|
||||||
var menuTextBox = CreateNodeWithText(menuButtonDiv, "Menu");
|
var menuTextBox = CreateNodeWithText(menuButtonDiv, "Kérdések\nMenü");
|
||||||
|
|
||||||
menuButtonDiv.addEventListener("click", function() {
|
menuButtonDiv.addEventListener("click", function() {
|
||||||
if (document.getElementById("HelperMenu") == null) {
|
if (document.getElementById("HelperMenu") == null) {
|
||||||
|
@ -1643,11 +1670,11 @@ function ShowMenu() {
|
||||||
}); // adding click
|
}); // adding click
|
||||||
|
|
||||||
//addEventListener(window, 'scroll', function () {
|
//addEventListener(window, 'scroll', function () {
|
||||||
// menuButtonDiv.style.top = (pageYOffset + window.innerHeight - buttonSize * 2) + 'px';
|
// menuButtonDiv.style.top = (pageYOffset + window.innerHeight - buttonHeight * 2) + 'px';
|
||||||
//})
|
//})
|
||||||
|
|
||||||
addEventListener(window, 'resize', function() {
|
addEventListener(window, 'resize', function() {
|
||||||
menuButtonDiv.style.left = window.innerWidth - buttonSize * 2 + 'px';
|
menuButtonDiv.style.left = window.innerWidth - buttonWidth * 2 + 'px';
|
||||||
});
|
});
|
||||||
|
|
||||||
appedtTo.appendChild(menuButtonDiv);
|
appedtTo.appendChild(menuButtonDiv);
|
||||||
|
@ -1687,7 +1714,7 @@ function ShowMenuList() {
|
||||||
var tbl = document.createElement('table');
|
var tbl = document.createElement('table');
|
||||||
tbl.style.margin = fiveMargin;
|
tbl.style.margin = fiveMargin;
|
||||||
tbl.style.textAlign = "left";
|
tbl.style.textAlign = "left";
|
||||||
tbl.style.width = "100%";
|
tbl.style.width = "98%";
|
||||||
|
|
||||||
// adding headers ---------------------------------------------------------------------------------------------------------------
|
// adding headers ---------------------------------------------------------------------------------------------------------------
|
||||||
var tr = tbl.insertRow();
|
var tr = tbl.insertRow();
|
||||||
|
@ -1703,6 +1730,7 @@ function ShowMenuList() {
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
for (let i = 0; i < data.length; i++) {
|
for (let i = 0; i < data.length; i++) {
|
||||||
var subjRow = tbl.insertRow();
|
var subjRow = tbl.insertRow();
|
||||||
|
subjRow.style.border = "1px solid #131319";
|
||||||
|
|
||||||
var td = subjRow.insertCell();
|
var td = subjRow.insertCell();
|
||||||
var textBox = CreateNodeWithText(td, data.Subjects[i].Name + " (" + data.Subjects[i].length +
|
var textBox = CreateNodeWithText(td, data.Subjects[i].Name + " (" + data.Subjects[i].length +
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue