Skip to content

Commit 3e193cc

Browse files
authored
New: Added progressive ItemsComponentModel bars (#221)
1 parent b167625 commit 3e193cc

2 files changed

+9
-2
lines changed

js/PageLevelProgressIndicatorView.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Adapt from 'core/js/adapt';
2+
import ItemsComponentModel from 'core/js/models/itemsComponentModel';
23

34
class PageLevelProgressIndicatorView extends Backbone.View {
45

@@ -41,7 +42,7 @@ class PageLevelProgressIndicatorView extends Backbone.View {
4142
} else {
4243
this.listenTo(Adapt, 'remove', this.remove);
4344
}
44-
this.listenTo(Adapt.course, 'bubble:change:_isComplete', this.refresh);
45+
this.listenTo(Adapt.course, 'bubble:change:_isComplete bubble:change:_isVisited', this.refresh);
4546
}
4647

4748
setPercentageComplete() {
@@ -51,6 +52,12 @@ class PageLevelProgressIndicatorView extends Backbone.View {
5152
}
5253

5354
calculatePercentage() {
55+
const isPresentationComponentWithItems = (!this.model.isTypeGroup('question') && this.model instanceof ItemsComponentModel);
56+
if (isPresentationComponentWithItems) {
57+
const children = this.model.getChildren();
58+
const visited = children.filter(child => child.get('_isVisited'));
59+
return Math.round(visited.length / children.length * 100);
60+
}
5461
return this.model.get('_isComplete') ? 100 : 0;
5562
}
5663

js/adapt-contrib-pageLevelProgress.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class PageLevelProgress extends Backbone.Controller {
5858
'router:contentObject': this.renderNavigationView
5959
});
6060

61-
this.listenTo(Adapt.course, 'bubble:change:_isComplete', this.onCompletionChange);
61+
this.listenTo(Adapt.course, 'bubble:change:_isComplete bubble:change:_isVisited', this.onCompletionChange);
6262
}
6363

6464
onCompletionChange(event) {

0 commit comments

Comments
 (0)