codecombat/app/views/courses/mock1/CoursesView.coffee
2015-07-29 16:11:06 -07:00

55 lines
1.6 KiB
CoffeeScript

app = require 'core/application'
RootView = require 'views/core/RootView'
template = require 'templates/courses/mock1/courses'
module.exports = class CoursesView extends RootView
id: 'courses-view'
template: template
events:
'click .btn-enter': 'onClickEnter'
'click .btn-have-code': 'onClickHaveCode'
'click .btn-more-info': 'onClickMoreInfo'
'click .btn-redeem-code': 'onClickRedeemCode'
constructor: (options) ->
super options
@initData()
getRenderData: ->
context = super()
context.courses = @courses ? []
context
initData: ->
mockData = require 'views/courses/mock1/CoursesMockData'
@courses = mockData.courses
for course, i in @courses
if _.random(0, 2) > 0
course.unlocked = true
else
break
onClickEnter: (e) ->
courseID = $(e.target).data('course-id')
app.router.navigate "/courses/mock1/#{courseID}"
window.location.reload()
onClickHaveCode: (e) ->
courseID = $(e.target).data('course-id')
courseTitle = $(e.target).data('course-title')
$('#redeemCodeModal').find('.modal-title').text(courseTitle)
$('#redeemCodeModal').find('.redeem-code-btn').data('course-id', courseID)
onClickMoreInfo: (e) ->
courseID = $(e.target).data('course-id')
app.router.navigate "/courses/mock1/#{courseID}/info"
window.location.reload()
onClickRedeemCode: (e) ->
$('#redeemCodeModal').modal('hide')
courseID = $(e.target).data('course-id')
# TODO: would just navigate instead of rendering unlock here in practice
@courses[courseID].unlocked = true
@render?()