🐛Fix instance selection on /courses page

This commit is contained in:
Matt Lott 2015-09-24 17:52:00 -07:00
parent d7d6694ee9
commit feef9c0ac6
6 changed files with 15 additions and 14 deletions

View file

@ -65,7 +65,7 @@ module.exports = class CocoRouter extends Backbone.Router
'courses/mock1/:courseID': go('courses/mock1/CourseDetailsView')
'courses': go('courses/CoursesView')
'courses/enroll(/:courseID)': go('courses/CourseEnrollView')
'courses/:courseID': go('courses/CourseDetailsView')
'courses/:courseID(/:courseInstanceID)': go('courses/CourseDetailsView')
'db/*path': 'routeToServer'
'demo(/*subpath)': go('DemoView')

View file

@ -92,12 +92,13 @@ mixin teacher-dialog(course)
.container-fluid
.row
.col-md-8
select.form-control.select-session
select.form-control.select-session(data-course-id="#{course.id}")
each inst in instances
if inst.get('name')
option(value="#{inst.id}")= inst.get('name')
else
option(value="#{inst.id}") *unnamed*
if inst.get('courseID') == course.id
if inst.get('name')
option(value="#{inst.id}")= inst.get('name')
else
option(value="#{inst.id}") *unnamed*
.col-md-4
button.btn.btn-success.btn-enter(data-course-id="#{course.id}") Enter
.row.button-row.center.row-pick-class

View file

@ -25,7 +25,8 @@ module.exports = class CourseDetailsView extends RootView
constructor: (options, @courseID, @courseInstanceID) ->
super options
@courseInstanceID ?= utils.getQueryVariable('ciid', false) or options.courseInstanceID
@courseID ?= options.courseID
@courseInstanceID ?= options.courseInstanceID
@adminMode = me.isAdmin()
@memberSort = 'nameAsc'
@course = @supermodel.getModel(Course, @courseID) or new Course _id: @courseID

View file

@ -74,10 +74,11 @@ module.exports = class CoursesView extends RootView
onClickEnter: (e) ->
$('.continue-dialog').modal('hide')
courseID = $(e.target).data('course-id')
courseInstanceID = $('.select-session').val()
courseInstanceID = $(".select-session[data-course-id=#{courseID}]").val()
route = "/courses/#{courseID}/#{courseInstanceID}"
viewClass = require 'views/courses/CourseDetailsView'
viewArgs = [{courseInstanceID:courseInstanceID}, courseID]
navigationEvent = route: "/courses/#{courseID}", viewClass: viewClass, viewArgs: viewArgs
viewArgs = [{}, courseID, courseInstanceID]
navigationEvent = route: route, viewClass: viewClass, viewArgs: viewArgs
Backbone.Mediator.publish 'router:navigate', navigationEvent
onClickStudent: (e) ->

View file

@ -98,7 +98,7 @@ module.exports = class ControlBarView extends CocoView
@homeViewArgs.push @courseID
@homeViewClass = 'views/courses/CourseDetailsView'
if @courseInstanceID
@homeLink += "?ciid=#{@courseInstanceID}"
@homeLink += "/#{@courseInstanceID}"
@homeViewArgs.push @courseInstanceID
else
@homeLink = '/'

View file

@ -408,7 +408,7 @@ module.exports = class HeroVictoryModal extends ModalView
if @courseID
link += "/#{@courseID}"
if @courseInstanceID
link += "?ciid=#{@courseInstanceID}"
link += "/#{@courseInstanceID}"
else
link = '/play'
nextCampaign = @getNextLevelCampaign()
@ -436,10 +436,8 @@ module.exports = class HeroVictoryModal extends ModalView
viewArgs = [options]
if @courseID
viewClass = require 'views/courses/CourseDetailsView'
options.courseID = @courseID
viewArgs.push @courseID
if @courseInstanceID
options.courseInstanceID = @courseInstanceID
viewArgs.push @courseInstanceID
else
viewClass = require 'views/play/CampaignView'