🐛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/mock1/:courseID': go('courses/mock1/CourseDetailsView')
'courses': go('courses/CoursesView') 'courses': go('courses/CoursesView')
'courses/enroll(/:courseID)': go('courses/CourseEnrollView') 'courses/enroll(/:courseID)': go('courses/CourseEnrollView')
'courses/:courseID': go('courses/CourseDetailsView') 'courses/:courseID(/:courseInstanceID)': go('courses/CourseDetailsView')
'db/*path': 'routeToServer' 'db/*path': 'routeToServer'
'demo(/*subpath)': go('DemoView') 'demo(/*subpath)': go('DemoView')

View file

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

View file

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

View file

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

View file

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

View file

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