codecombat/app/views/courses/CourseDetailsView.coffee

39 lines
1.4 KiB
CoffeeScript
Raw Normal View History

RootView = require 'views/core/RootView'
template = require 'templates/courses/course-details'
CocoCollection = require 'collections/CocoCollection'
Course = require 'models/Course'
CourseInstance = require 'models/CourseInstance'
# TODO: logged out experience
# TODO: no course instances
# TODO: no course instance selected
module.exports = class CourseDetailsView extends RootView
id: 'course-details-view'
template: template
constructor: (options, @courseID) ->
super options
@courseInstanceID = options.courseInstanceID
@course = new Course _id: @courseID
@supermodel.loadModel @course, 'course', cache: false
if @courseInstanceID
@courseInstance = new CourseInstance _id: @courseInstanceID
@supermodel.loadModel @courseInstance, 'course_instance', cache: false
else if !me.isAnonymous()
@courseInstances = new CocoCollection([], { url: "/db/user/#{me.id}/course_instances", model: CourseInstance})
@listenToOnce @courseInstances, 'sync', @onCourseInstancesLoaded
@supermodel.loadCollection(@courseInstances, 'course_instances')
getRenderData: ->
context = super()
context.course = @course
context.courseInstance = @courseInstance
context
onCourseInstancesLoaded: ->
if @courseInstances.models.length is 1
@courseInstance = @courseInstances.models[0]
else if @courseInstances.models.length > 0
@courseInstance = @courseInstances.models[0]