UNPKG

@tutor/exercise-list

Version:
65 lines (59 loc) 1.83 kB
module.exports = function(ko) { var ExerciseViewModel, OverviewPageViewModel; ExerciseViewModel = (function() { function ExerciseViewModel(data) { this.id = data.id; this.number = data.number; this.dueDate = ko.observable(new Date(Date.parse(data.dueDate))); this.points = 2; this.maxPoints = data.tasks.reduce((function(previousValue, currentValue) { return previousValue + currentValue.maxPoints; }), 0); this.formattedDueDate = ko.computed((function(_this) { return function() { return _this.dueDate().toLocaleDateString(); }; })(this)); this.isOld = ko.computed((function(_this) { return function() { return _this.dueDate().getTime() < Date.now(); }; })(this)); } return ExerciseViewModel; })(); OverviewPageViewModel = (function() { function OverviewPageViewModel() { this.exercises = ko.observableArray(); this.getExercises((function(_this) { return function(exercises) { return _this.exercises(exercises.map(function(e) { return _this.createExerciseViewModel(e); }).sort(function(a, b) { if (a.isOld()) { if (b.isOld()) { return 0; } else { return 1; } } else { if (b.isOld()) { return 1; } else { return 0; } } })); }; })(this)); } OverviewPageViewModel.prototype.createExerciseViewModel = function(e) { return new ExerciseViewModel(e); }; return OverviewPageViewModel; })(); return { ExerciseViewModel: ExerciseViewModel, OverviewPageViewModel: OverviewPageViewModel }; };