UI refactor, questions with image data getting fix

This commit is contained in:
MrFry 2020-01-24 20:01:27 +01:00
parent 4e9525c167
commit 2c2fc762ba

View file

@ -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: '<h1>Moodle teszt userscript:<h1><h3>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!</h3> <h3>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!!!</h3><h5>Ez az ablak frissités után eltűnik. Ha nem, akkor a visza gombbal próbálkozz.</h5>',
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 = []