Skip to content

Commit b874d5e

Browse files
committed
Merge pull request #661 from LearningLocker/issue/display-fallback
Adds fallback for displays and names.
2 parents 4ea2a9c + 891bdae commit b874d5e

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

public/assets/js/reports/reports/editLayout.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,27 @@ define([
114114
relations: {
115115
actors: typeaheadHelpers.view('actors', 'Actor', 'Start typing name e.g. Bob', typeaheadHelpers.displayActor),
116116
verbs: typeaheadHelpers.view('verbs', 'Verb', 'Start typing verb e.g. completed', function (item) {
117-
var id = item.id
117+
var id = item.id;
118+
var value = null;
119+
120+
// Return a human-readable value if the browser defines languages.
121+
if (navigator.languages instanceof Array) {
122+
value = item.display && (navigator.languages.map(function (lang) {
123+
return item.display[lang];
124+
}).filter(function (value) {
125+
return value != null;
126+
})[0] || (item.display[Object.keys(item.display)[0]]));
127+
}
128+
129+
// Display human-readable value if it exists
130+
if (value != null) {
131+
return value + ' (' + id + ')';
132+
}
133+
134+
// Otherwise display just the identifier.
135+
else {
136+
return id
137+
}
118138
return item.display['en-GB'] + ' (' + id + ')';
119139
}),
120140
activities: typeaheadHelpers.view('activities', 'Activity URL', 'www.example.com/quiz/1'),

public/assets/js/reports/reports/typeaheadHelpers.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ define([
1010

1111
// Return a human-readable value if the browser defines languages.
1212
if (navigator.languages instanceof Array) {
13-
value = navigator.languages.map(function (lang) {
14-
return item.definition && item.definition.name && item.definition.name[lang];
13+
value = item.definition && item.definition.name && (navigator.languages.map(function (lang) {
14+
return item.definition.name[lang];
1515
}).filter(function (value) {
1616
return value != null;
17-
})[0];
17+
})[0] || (item.definition.name[Object.keys(item.definition.name)[0]]));
1818
}
1919

2020
// Display human-readable value if it exists

0 commit comments

Comments
 (0)