diff --git a/app/core/Router.coffee b/app/core/Router.coffee index 28ca9854a..462809e9a 100644 --- a/app/core/Router.coffee +++ b/app/core/Router.coffee @@ -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') diff --git a/app/templates/courses/courses.jade b/app/templates/courses/courses.jade index e9f62e2f6..29536fc58 100644 --- a/app/templates/courses/courses.jade +++ b/app/templates/courses/courses.jade @@ -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 diff --git a/app/views/courses/CourseDetailsView.coffee b/app/views/courses/CourseDetailsView.coffee index f4eac6223..ceb19dff9 100644 --- a/app/views/courses/CourseDetailsView.coffee +++ b/app/views/courses/CourseDetailsView.coffee @@ -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 diff --git a/app/views/courses/CoursesView.coffee b/app/views/courses/CoursesView.coffee index fd8cc45a8..84a0942c3 100644 --- a/app/views/courses/CoursesView.coffee +++ b/app/views/courses/CoursesView.coffee @@ -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) -> diff --git a/app/views/play/level/ControlBarView.coffee b/app/views/play/level/ControlBarView.coffee index a8784fcd6..418c1dcc8 100644 --- a/app/views/play/level/ControlBarView.coffee +++ b/app/views/play/level/ControlBarView.coffee @@ -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 = '/' diff --git a/app/views/play/level/modal/HeroVictoryModal.coffee b/app/views/play/level/modal/HeroVictoryModal.coffee index 74fb9cb00..bf41620ab 100644 --- a/app/views/play/level/modal/HeroVictoryModal.coffee +++ b/app/views/play/level/modal/HeroVictoryModal.coffee @@ -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'