diff --git a/frame.js b/frame.js index 770eaf5..df69da6 100644 --- a/frame.js +++ b/frame.js @@ -21,7 +21,7 @@ // ==UserScript== // @name Moodle/Elearning/KMOOC test help -// @version 1.5.4.2 +// @version 1.6.0.0 // @description Online Moodle/Elearning/KMOOC test help // @author YourFriendlyNeighborhoodDealer // @match https://elearning.uni-obuda.hu/main/* @@ -33,6 +33,9 @@ // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant GM_openInTab +// @license GNU General Public License v3.0 or later +// @supportURL questionmining.tk +// @contributionURL questionmining.tk // @resource data file:/// // @namespace https://greasyfork.org/users/153067 // ==/UserScript== diff --git a/main.js b/main.js index 07f4879..3e6d9a1 100644 --- a/main.js +++ b/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 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/"; // forcing pages for testing. unless you test, do not set these to true! @@ -629,6 +634,7 @@ function GetRightAnswerFromResultv2(i) { function Init(cwith) { if (false) // reset, only for testing! { + GM_setValue("version16", undefined); GM_setValue("version15", undefined); GM_setValue("firstRun", undefined); // GM_getValue("lastVerson") == undefined => firstrun GM_setValue("showQuestions", undefined); @@ -660,7 +666,16 @@ function Init(cwith) { console.log(e.stack); 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 if (firstRun == undefined || firstRun == true) // if its undefined, or true { @@ -680,13 +695,17 @@ function Init(cwith) { throw "something, so this stuff stops"; } - count = Load(cwith); // loads resources - // console.log(data); // logging for debugging - if (!url.includes(".pdf")) // showing menu unless its a .pdf page + var version16 = GM_getValue("version16"); // if the current run is the frst + if (version16 == undefined || version16 == true) // if its undefined, or true { - 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) { @@ -900,6 +919,13 @@ function NLoad(resource, cwith) { console.log("------------------------------------------"); 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); } @@ -980,9 +1006,9 @@ function HandleUI(url, count) { // no new version, everything loaded, and show splash is enabled. otherwise something happened, so showing it if (!newVersion && loaded && showSplash) // ------------------------------------------------------------------------------------------------ { + timeout = 5; 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)."; - console.log(data); if (data.length > 0) { var toAdd = []; for (var i = 0; i < data.length; i++) { @@ -994,11 +1020,11 @@ function HandleUI(url, count) { greetMsg += "\nAktív tárgyak: " + toAdd.join(", ") + "."; } else { greetMsg += "\nNincs aktív tárgyad. Menüből válassz ki eggyet!"; + timeout = undefined; } } else { 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 if (newVersion && !loaded) // -------------------------------------------------------------------------------------------------------------- @@ -1607,17 +1633,18 @@ function ShowMessage(msgItem, timeout, funct) { // shows a fancy menu function ShowMenu() { try { - var buttonSize = 25; // button size ;) + var buttonWidth = 75; // button size ;) + var buttonHeight = 55; var appedtTo = document.body; // will be appended here // mainDiv.style.left = (window.innerWidth - width) / 2 + 'px'; var menuButtonDiv = document.createElement("div"); menuButtonDiv.setAttribute("id", "HelperMenuButton"); - //menuButtonDiv.style.width = buttonSize + 'px'; - menuButtonDiv.style.height = buttonSize + 'px'; - menuButtonDiv.style.top = (window.innerHeight - buttonSize * 2) + 'px'; - menuButtonDiv.style.left = window.innerWidth - buttonSize * 3 + 'px'; + menuButtonDiv.style.width = buttonWidth + 'px'; + menuButtonDiv.style.height = buttonHeight + 'px'; + menuButtonDiv.style.top = (window.innerHeight - buttonHeight * 1.5) + 'px'; + menuButtonDiv.style.left = window.innerWidth - buttonWidth * 1.5 + 'px'; menuButtonDiv.style.zIndex = 999999; // TO THE MAX menuButtonDiv.style.position = "fixed"; @@ -1631,7 +1658,7 @@ function ShowMenu() { menuButtonDiv.style.opacity = "0.9"; // setting starting opacity // menu text - var menuTextBox = CreateNodeWithText(menuButtonDiv, "Menu"); + var menuTextBox = CreateNodeWithText(menuButtonDiv, "Kérdések\nMenü"); menuButtonDiv.addEventListener("click", function() { if (document.getElementById("HelperMenu") == null) { @@ -1643,11 +1670,11 @@ function ShowMenu() { }); // adding click //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() { - menuButtonDiv.style.left = window.innerWidth - buttonSize * 2 + 'px'; + menuButtonDiv.style.left = window.innerWidth - buttonWidth * 2 + 'px'; }); appedtTo.appendChild(menuButtonDiv); @@ -1687,7 +1714,7 @@ function ShowMenuList() { var tbl = document.createElement('table'); tbl.style.margin = fiveMargin; tbl.style.textAlign = "left"; - tbl.style.width = "100%"; + tbl.style.width = "98%"; // adding headers --------------------------------------------------------------------------------------------------------------- var tr = tbl.insertRow(); @@ -1703,6 +1730,7 @@ function ShowMenuList() { if (data && data.length > 0) { for (let i = 0; i < data.length; i++) { var subjRow = tbl.insertRow(); + subjRow.style.border = "1px solid #131319"; var td = subjRow.insertCell(); var textBox = CreateNodeWithText(td, data.Subjects[i].Name + " (" + data.Subjects[i].length +