Skip to content

Commit 6536a5c

Browse files
Merge pull request #64 from clpetersonucf/issue/54-special-characters-in-folders-cause-problems
Resolves special character matching in score module
2 parents 1ef862b + cd380a5 commit 6536a5c

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

src/_score/score_module.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ public function check_answer($log)
3030
$answers = $this->questions[$log->item_id]->answers;
3131
foreach($answers as $answer)
3232
{
33-
if ($log->text == $answer['text'])
33+
// ensure string values are in parity. The answer value (coming from the qset) may include html entities.
34+
$log_sanitized = html_entity_decode(strtolower(trim($log->text)));
35+
$answer_sanitized = html_entity_decode(strtolower(trim($answer['text'])));
36+
37+
if ($log_sanitized == $answer_sanitized)
3438
{
3539
return $answer['value'];
3640
}

src/scoreScreen.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ SortItOut.controller('SortItOutScoreCtrl', [
3939
$scope.questionValue = 100 / qset.items.length
4040

4141
for (let item of qset.items) {
42-
const folderName = item.answers[0].text
42+
const folderName = sanitizeHelper.desanitize(item.answers[0].text)
4343
if (item.options.image) {
44-
imageMap[item.questions[0].text] = Materia.ScoreCore.getMediaUrl(item.options.image)
44+
imageMap[sanitizeHelper.desanitize(item.questions[0].text)] = Materia.ScoreCore.getMediaUrl(item.options.image)
4545
}
4646
if (folderNames[folderName] == undefined) {
4747
folderNames[folderName] = folders.length
@@ -56,7 +56,12 @@ SortItOut.controller('SortItOutScoreCtrl', [
5656
}
5757

5858
for (let entry of scoreTable) {
59-
const [text, userFolderName, correctFolderName] = entry.data
59+
let [text, userFolderName, correctFolderName] = entry.data
60+
61+
// ensure string values are properly decoded
62+
text = sanitizeHelper.desanitize(text)
63+
userFolderName = sanitizeHelper.desanitize(userFolderName)
64+
correctFolderName = sanitizeHelper.desanitize(correctFolderName)
6065

6166
const correctFolderIndex = folderNames[correctFolderName]
6267
const userFolderIndex = folderNames[userFolderName]
@@ -65,7 +70,7 @@ SortItOut.controller('SortItOutScoreCtrl', [
6570
folders[userFolderIndex].placeCount++
6671

6772
const item = {
68-
text: sanitizeHelper.desanitize(text),
73+
text: text,
6974
correct,
7075
userFolderName,
7176
image: imageMap[text] || false
@@ -78,7 +83,7 @@ SortItOut.controller('SortItOutScoreCtrl', [
7883
} else {
7984
folders[correctFolderIndex].items.push(item)
8085
folders[userFolderIndex].extraItems.push({
81-
text: sanitizeHelper.desanitize(text),
86+
text: text,
8287
image: imageMap[text] || false,
8388
correctFolderName
8489
})

0 commit comments

Comments
 (0)