From 2c2fc762ba50f0712d262cc35f4dd720ae6f64e9 Mon Sep 17 00:00:00 2001 From: MrFry Date: Fri, 24 Jan 2020 20:01:27 +0100 Subject: [PATCH] UI refactor, questions with image data getting fix --- stable.user.js | 73 +++++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 42 deletions(-) diff --git a/stable.user.js b/stable.user.js index 55d8cca..be24012 100755 --- a/stable.user.js +++ b/stable.user.js @@ -80,7 +80,6 @@ fatalError: 'Fatál error. Check console (f12). Kattints az üzenetre az összes kérdés/válaszért manuális kereséshez!', consoleErrorInfo: 'Itteni hibák 100% a moodle hiba. Kivéve, ha oda van írva hogy script error ;) Ha ilyesmi szerepel itt, akkor olvasd el a segítség szekciót!', freshStartWarning: '

Moodle teszt userscript:

1.5.0 verzió: a script mostantól XMLHTTP kéréseket küld szerver fele! Erre a userscript futtató kiegészitőd is figyelmeztetni fog! Ha ez történik, a script rendes működése érdekében engedélyezd (Always allow domain)! Ha nem akarod, hogy ez történjen, akkor ne engedélyezd, vagy a menüben válaszd ki a "helyi fájl használata" opciót!

Elküldött adatok: minden teszt után a kérdés-válasz páros. Fogadott adatok: Az összes eddig ismert kérdés. Érdemes help-et elolvasni!!!

Ez az ablak frissités után eltűnik. Ha nem, akkor a visza gombbal próbálkozz.
', - couldntLoadData: 'Nem sikerült betölteni az adatokat, előfordulhat hogy nem elérhető a szerver! Segítségért kattints!', noResult: 'Nincs találat :( Kattints az üzenetre az összes kérdés/válaszért manuális kereséshez! Előfordulhat, hogy a tárgyat nem válsztottad ki a menüben.', videoHelp: 'Miután elindítottad: Play/pause: space. Seek: Bal/jobb nyíl.', menuButtonText: 'Kérdések Menu', @@ -762,11 +761,10 @@ 'use strict' console.time('main') - Init(function (count, subjCount) { + Init(function () { var url = location.href // eslint-disable-line - let skipLoad = getVal('skipLoad') - if (count === -2 && subjCount === -2 && skipLoad) { + if (getVal('skipLoad')) { if (url.includes('/quiz/') && url.includes('attempt.php')) { ShowMessage({ m: texts.passiveModeActiveOnTest, @@ -781,7 +779,7 @@ HandleResults(url) } else if ((!url.includes('/quiz/') && !url.includes('review.php') && !url.includes('.pdf')) || (forceDefaultPage)) { // if the current window is any other window than a quiz or pdf. - HandleUI(url, count, subjCount) + HandleUI(url) } } catch (e) { ShowMessage({ @@ -840,7 +838,10 @@ } VersionActions() if (!url.includes('.pdf')) { ShowMenu() } - cwith() + GetXHRVersion().then((version) => { + lastestVersion = version + cwith(version) + }) } function VersionActions () { @@ -870,10 +871,9 @@ // : }}} // : UI handling {{{ - function HandleUI (url, count, subjCount) { + function HandleUI (url) { // FIXME: normal string building with localisation :/ var newVersion = false // if the script is newer than last start - var loaded = count !== -1 // if script could load stuff try { newVersion = info().script.version !== getVal('lastVerson') @@ -883,12 +883,9 @@ var greetMsg = '' // message to show at the end var timeout = null // the timeout. if null, it wont be hidden // no new version, nothing loaded - if (!newVersion && !loaded) { // -------------------------------------------------------------------------------------------------------------- - greetMsg = texts.couldntLoadData - } var showSplash = (getVal('showSplash') === undefined) || getVal('showSplash') // getting value, if splash screen should be shown. Its true, if its undefined, or true // no new version, everything loaded, and show splash is enabled. otherwise something happened, so showing it - if (!newVersion && loaded && showSplash) { // ------------------------------------------------------------------------------------------------ + if (!newVersion && showSplash) { // ------------------------------------------------------------------------------------------------ timeout = 5 greetMsg = 'Moodle/Elearning/KMOOC segéd v. ' + info().script.version + '. ' @@ -896,33 +893,9 @@ greetMsg += 'Új verzió elérhető: ' + lastestVersion + '\n' timeout = undefined } - greetMsg += count + ' kérdés és ' + subjCount + ' tárgy betöltve. (click for help).' - // TODO - // if (data.length > 0) { - // var toAdd = [] - // for (var i = 0; i < data.length; i++) { - // if (data.GetIfActive(i)) { - // toAdd.push(data.Subjects[i].Name + ' (' + data.Subjects[i].length + ')') - // } - // } - // if (toAdd.length !== 0) { - // greetMsg += '\nAktív tárgyak: ' + toAdd.join(', ') + '.' - // } else { - // AlertOnNoQuestion() - // greetMsg += '\nNincs aktív tárgyad. Menüből válassz ki eggyet!' - // timeout = undefined - // } - // } else { - // greetMsg += ' nem elérhető a szerver. Katt a helpért!' - // } } - // new version, nothing loaded - if (newVersion && !loaded) { // -------------------------------------------------------------------------------------------------------------- - greetMsg = 'Moodle/Elearning/KMOOC segéd v. ' + info().script.version + '. Új verzió!\n Írd át a @resouce tagnál az elírési utat! Kivéve ha üres a file, akkor töltsd fel :) Nincs kérdés betöltve! Segítséghez kattints. Changelog:\n' + texts.lastChangeLog // showing changelog too - } - // new version, everything loaded -> set lastVerson to current - if (newVersion && loaded) { // -------------------------------------------------------------------------------------------------------------- - greetMsg = 'Moodle/Elearning/KMOOC segéd v. ' + info().script.version + '. ' + count + ' kérdés és ' + subjCount + ' tárgy betöltve. Verzió frissítve ' + info().script.version + '-re. Changelog:\n' + texts.lastChangeLog + if (newVersion) { // -------------------------------------------------------------------------------------------------------------- + greetMsg = 'Moodle/Elearning/KMOOC segéd v. ' + info().script.version + '. Verzió frissítve ' + info().script.version + '-re. Changelog:\n' + texts.lastChangeLog setVal('lastVerson', info().script.version) // setting lastVersion } if (!SUtils.EmptyOrWhiteSpace(motd)) { @@ -999,10 +972,9 @@ msg += result[k].q.Q + '\n' // adding the question if yes } msg += result[k].q.A.replace(/, /g, '\n') // adding answer - // TODO - // if (result[k].q.HasImage()) { - // msg += '\n\nKépek fenti válaszok sorrendjében: ' + result[k].q.data.images.join(', ') // if it has image part, adding that too - // } + if (result[k].q.data.type === 'image') { + msg += '\n\nKépek fenti válaszok sorrendjében: ' + result[k].q.data.images.join(', ') // if it has image part, adding that too + } allMessages.push({ m: msg, p: result[k].match @@ -1938,7 +1910,24 @@ return paragraphElement } + function GetXHRVersion () { + return new Promise((resolve, reject) => { + xmlhttpRequest({ + method: 'GET', + url: serverAdress + 'version', + onload: function (response) { + resolve(response.responseText) + }, + onerror: (e) => { + console.log('GET ERROR', e) + reject(new Error('get error')) + } + }) + }) + } + function GetXHRQuestionAnswer (question) { + console.log('sentquestion:', question) // TODO: remove return new Promise((resolve, reject) => { let url = serverAdress + 'q?' let params = []