Files
edx-platform/lms/static/js/discovery/models/course_discovery.js
Eric Fischer 5bc6b31e29 eslint --fix
2017-12-08 14:38:41 -05:00

62 lines
1.8 KiB
JavaScript

(function(define) {
define([
'underscore',
'backbone',
'js/discovery/models/course_card',
'js/discovery/models/facet_option'
], function(_, Backbone, CourseCard, FacetOption) {
'use strict';
return Backbone.Model.extend({
url: '/search/course_discovery/',
jqhxr: null,
defaults: {
totalCount: 0,
latestCount: 0
},
initialize: function() {
this.courseCards = new Backbone.Collection([], {model: CourseCard});
this.facetOptions = new Backbone.Collection([], {model: FacetOption});
},
parse: function(response) {
var courses = response.results || [];
var facets = response.facets || {};
this.courseCards.add(_.pluck(courses, 'data'));
this.set({
totalCount: response.total,
latestCount: courses.length
});
var options = this.facetOptions;
_(facets).each(function(obj, key) {
_(obj.terms).each(function(count, term) {
options.add({
facet: key,
term: term,
count: count
}, {merge: true});
});
});
},
reset: function() {
this.set({
totalCount: 0,
latestCount: 0
});
this.courseCards.reset();
this.facetOptions.reset();
},
latest: function() {
return this.courseCards.last(this.get('latestCount'));
}
});
});
}(define || RequireJS.define));