Skip to content

Commit 7ea5fec

Browse files
author
daniel-abbey
committed
Merge pull request #697 from LearningLocker/develop
v1.7.0
2 parents 3c43984 + d03d407 commit 7ea5fec

File tree

8 files changed

+55
-58
lines changed

8 files changed

+55
-58
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.6.1
1+
1.7.0

app/controllers/LrsController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ public function destroy($lrs_id){
190190
* @return View
191191
*/
192192
public function statements($lrs_id){
193+
$site = \Site::first();
193194
$statements = (new StatementIndexer)->index(new IndexOptions([
194195
'lrs_id' => $lrs_id,
195196
'limit' => $this->statement->count([
@@ -198,10 +199,10 @@ public function statements($lrs_id){
198199
]),
199200
'scopes' => ['all']
200201
]))->orderBy('statement.stored', 'DESC')->paginate(15);
201-
202202
return View::make('partials.statements.list', array_merge($this->getLrs($lrs_id), [
203203
'statements' => $statements,
204-
'statement_nav' => true
204+
'statement_nav' => true,
205+
'lang' => $site->lang
205206
]));
206207
}
207208

app/controllers/ReportingController.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,14 @@ private function getLrs($lrs_id) {
6969
* @return reporting view.
7070
*/
7171
public function index($lrs_id) {
72+
$site = \Site::first();
7273
return View::make("{$this->views}.index", array_merge($this->getLrs($lrs_id), [
7374
'reporting_nav' => true,
7475
'reports' => $this->report->index([
7576
'lrs_id' => $lrs_id
7677
]),
77-
'client' => (new \Client)->where('lrs_id', $lrs_id)->first()
78+
'client' => (new \Client)->where('lrs_id', $lrs_id)->first(),
79+
'lang' => $site->lang
7880
]));
7981
}
8082

@@ -85,14 +87,16 @@ public function index($lrs_id) {
8587
* @return reporting view.
8688
*/
8789
public function statements($lrs_id, $report_id) {
90+
$site = \Site::first();
8891
return View::make("{$this->views}.statements", array_merge($this->getLrs($lrs_id), [
8992
'reporting_nav' => true,
9093
'statements' => $this->report->statements($report_id, [
9194
'lrs_id' => $lrs_id
9295
])->select('statement')->paginate(20),
9396
'report' => $this->report->show($report_id, [
9497
'lrs_id' => $lrs_id
95-
])
98+
]),
99+
'lang' => $site->lang
96100
]));
97101
}
98102

@@ -105,7 +109,6 @@ public function statements($lrs_id, $report_id) {
105109
**/
106110
public function typeahead($lrs, $segment, $query){
107111
$options = self::$segments[$segment];
108-
109112
return Response::json($this->report->setQuery(
110113
$lrs,
111114
$query,
@@ -114,4 +117,4 @@ public function typeahead($lrs, $segment, $query){
114117
));
115118
}
116119

117-
}
120+
}

app/models/Report.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ public function getMatchAttribute() {
5656
$instructorMatch['$or'][] = $this->constructOr($key, $value);
5757
} else {
5858
if (is_array($value)) {
59-
$match[$key] = ['$in' => $value];
59+
if($value[0] != '<>') {
60+
$match[$key] = ['$in' => $value];
61+
} else {
62+
$match[$key] = ['$lte' => $value[2], '$gte' => $value[1]];
63+
}
6064
} else {
6165
$match[$key] = $value;
6266
}
@@ -100,7 +104,11 @@ public function getWhereAttribute() {
100104
array_push($instructorArray, [$key, $query[$key]]);
101105
} else {
102106
if (is_array($query[$key])) {
103-
array_push($wheres, [$key, 'in', $query[$key]]);
107+
if($query[$key][0] != '<>') {
108+
array_push($wheres, [$key, 'in', $query[$key]]);
109+
} else {
110+
array_push($wheres, [$key, 'between', $query[$key][1], $query[$key][2]]);
111+
}
104112
} else {
105113
array_push($wheres, [$key, '=', $query[$key]]);
106114
}

app/views/partials/reporting/index.blade.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
<script>
66
window.lrs = {
77
key: '{{ $client->api['basic_key']}}',
8-
secret: '{{ $client->api['basic_secret'] }}'
8+
secret: '{{ $client->api['basic_secret'] }}',
9+
lang: '{{ $lang }}'
910
};
1011
</script>
1112
{{ HTML::style('assets/css/exports.css')}}

app/views/partials/statements/item.blade.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,16 @@
2424
$name = 'no name available';
2525
}
2626
27-
if( isset($statement['verb']['display']) ){
27+
if( isset($statement['verb']['display']) ){
2828
$verb = $statement['verb']['display'];
2929
if (!is_array($verb)) {
3030
$verb = [$verb];
3131
}
32-
$verb = reset( $verb );
32+
if (isset($verb[$lang])) {
33+
$verb = $verb[$lang];
34+
} else {
35+
$verb = reset( $verb );
36+
}
3337
}else{
3438
$verb = $statement['verb']['id'];
3539
}

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

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -114,28 +114,7 @@ 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;
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-
}
138-
return item.display['en-GB'] + ' (' + id + ')';
117+
return typeaheadHelpers.displayLangString(item.id, item.display);
139118
}),
140119
activities: typeaheadHelpers.view('activities', 'Activity URL', 'www.example.com/quiz/1'),
141120
activityTypes: typeaheadHelpers.view('activityTypes', 'Activity Type URL', 'www.example.com/activity-type/course', typeaheadHelpers.displayItem),
@@ -146,4 +125,4 @@ define([
146125
languages: typeaheadHelpers.view('languages', 'Language', 'en-GB', typeaheadHelpers.displayItem)
147126
}
148127
});
149-
});
128+
});

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

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,7 @@ define([
55
var getKeys = function (display) {
66
// Sets display to default if not set.
77
display = display || function (item) {
8-
var id = item.id;
9-
var value = null;
10-
11-
// Return a human-readable value if the browser defines languages.
12-
if (navigator.languages instanceof Array) {
13-
value = item.definition && item.definition.name && (navigator.languages.map(function (lang) {
14-
return item.definition.name[lang];
15-
}).filter(function (value) {
16-
return value != null;
17-
})[0] || (item.definition.name[Object.keys(item.definition.name)[0]]));
18-
}
19-
20-
// Display human-readable value if it exists
21-
if (value != null) {
22-
return value + ' (' + id + ')';
23-
}
24-
25-
// Otherwise display just the identifier.
26-
else {
27-
return id;
28-
}
8+
return displayLangString(item.id, item.definition && item.definition.name);
299
};
3010

3111
return function (items, query) {
@@ -34,9 +14,11 @@ define([
3414
});
3515
};
3616
};
17+
3718
var displayItem = function (item) {
3819
return item;
3920
};
21+
4022
var displayActor = function (actor) {
4123
var id= '';
4224
var pre = '';
@@ -54,6 +36,7 @@ define([
5436
}
5537
return actor.name + ' (' + pre + id + ')';
5638
};
39+
5740
var view = function (segment, type, example, display) {
5841
return CompositeView.extend({
5942
example: example,
@@ -65,10 +48,28 @@ define([
6548
});
6649
};
6750

51+
var displayLangString = function (id, langMap) {
52+
var value = null;
53+
54+
// Return a human-readable value if the browser defines languages.
55+
if (navigator.languages instanceof Array) {
56+
value = langMap && ([window.lrs.lang].concat(navigator.languages || []).map(function (lang) {
57+
return langMap[lang];
58+
}).filter(function (value) {
59+
return value != null;
60+
})[0] || (langMap[Object.keys(langMap)[0]]));
61+
}
62+
63+
// Display human-readable value if it exists. Otherwise display just the identifier.
64+
65+
return value != null ? (value + ' (' + id + ')') : id;
66+
};
67+
6868
return {
6969
getKeys: getKeys,
7070
displayItem: displayItem,
7171
displayActor: displayActor,
72-
view: view
72+
view: view,
73+
displayLangString: displayLangString
7374
};
74-
});
75+
});

0 commit comments

Comments
 (0)