information wrapper

This commit is contained in:
mrfry 2022-05-10 12:01:59 +02:00
parent d213f2516b
commit 58a2fce2fe

View file

@ -116,7 +116,7 @@
// Devel vars
// ------------------------------------------------------------------------------
// forcing pages for testing. unless you test, do not set these to true!
const isDevel = false
const isDevel = true
const forcedMatchString = isDevel ? 'default' : null
// only one of these should be true for testing
const forceTestPage = isDevel && false
@ -390,6 +390,26 @@
}
const questionNodeVariants = {
hasInformationText: {
criteria: () => {
const firstChild =
document.getElementsByTagName('form')[1].childNodes[0].childNodes[0]
if (!firstChild.className.includes('informationitem')) {
return false
}
const questionNodes = Array.from(
document.getElementsByTagName('form')[1].childNodes[0].childNodes
)
return questionNodes.length > 0
},
getter: () => {
return Array.from(
document.getElementsByTagName('form')[1].childNodes[0].childNodes
).filter((node) => {
return !node.className.includes('informationitem')
})
},
},
formFirst: {
criteria: () => {
const questionNodes = Array.from(
@ -434,6 +454,7 @@
`question nodes ${key} criteria was true, but result is an empty array!`
)
} else {
log(`Using question node getter variant: ${key}`)
return true
}
}
@ -720,6 +741,7 @@
`result nodes ${key} criteria was true, but result is an empty array!`
)
} else {
log(`Using question node getter variant: ${key}`)
return true
}
}
@ -774,12 +796,13 @@
if (getter.requirement(node)) {
try {
res = getter.getterFunction(node)
log(`[Question getter] Using ${key}`)
return true
} catch (e) {
log(`${key} failed`)
log(`[Question getter] ${key} failed`)
}
} else {
log(`${key} did not pass`)
log(`[Question getter] ${key} did not pass`)
}
})
@ -803,6 +826,7 @@
log('Answer or question array is empty, skipping question')
resolve({ success: false })
}
console.log({ node: node, questionPromises: questionPromises, answerPromises: answerPromises, possibleAnswers: possibleAnswers })
Promise.all([
Promise.all(questionPromises),
@ -825,12 +849,12 @@
resolve(result)
})
.catch((err) => {
warn('Error in getQuizFromNode()')
warn('Error in getQuizFromNode() (creating question)')
warn(err)
resolve({ success: false })
})
} catch (e) {
warn('Error in getQuizFromNode()!')
warn('Error in getQuizFromNode() (creating promises)')
warn(e)
warn(node)
}