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

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