Subject disabling, and frame updating

This commit is contained in:
YourFriendlyNeighborhoodDealer 2018-12-17 12:57:59 +01:00
parent b40d6b61b9
commit 3fcd18670e
2 changed files with 50 additions and 19 deletions

View file

@ -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
View file

@ -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 +