mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-14 07:00:01 -04:00
parent
60f5e88280
commit
99a148a136
3 changed files with 22 additions and 11 deletions
|
@ -7,3 +7,7 @@ module.exports =
|
|||
courseArenaLadder: ({level, courseInstance}) ->
|
||||
"/play/ladder/#{level.get('slug')}/course/#{courseInstance.id}"
|
||||
|
||||
courseLevel: ({level, courseInstance}) ->
|
||||
url = "/play/level/#{level.get('slug')}?course=#{courseInstance.get('courseID')}&course-instance=#{courseInstance.id}"
|
||||
url += "&codeLanguage=#{level.get('primerLanguage')}" if level.get('primerLanguage')
|
||||
url
|
||||
|
|
|
@ -115,26 +115,24 @@ mixin course-instance-body(courseInstance, classroom)
|
|||
- var arenaLevel = stats.levels.arena;
|
||||
- var projectLevel = stats.levels.project;
|
||||
if arenaLevel
|
||||
- var arenaURL = "/play/ladder/"+arenaLevel.get('slug')+"/course/"+courseInstance.id;
|
||||
a.play-btn.btn.btn-forest-alt.btn-lg.m-b-1(data-href=arenaURL, data-level-slug=arenaLevel.get('slug'), data-event-action="Students Play Arena")
|
||||
- var url = view.urls.courseArenaLadder({level: view.originalLevelMap[arenaLevel.get('original')] || arenaLevel, courseInstance: courseInstance});
|
||||
a.play-btn.btn.btn-forest-alt.btn-lg.m-b-1(data-href=url, data-level-slug=arenaLevel.get('slug'), data-event-action="Students Play Arena")
|
||||
span(data-i18n="courses.play_arena")
|
||||
else if projectLevel
|
||||
- var projectURL = "/play/level/"+projectLevel.get('slug')+"?course="+course.id+"&course-instance="+courseInstance.id;
|
||||
a.play-btn.btn.btn-forest-alt.btn-lg.m-b-1(data-href=projectURL, data-level-slug=projectLevel.get('slug'), data-event-action="Students Play Project")
|
||||
- var url = view.urls.courseLevel({level: view.originalLevelMap[projectLevel.get('original')] || projectLevel, courseInstance: courseInstance});
|
||||
a.play-btn.btn.btn-forest-alt.btn-lg.m-b-1(data-href=url, data-level-slug=projectLevel.get('slug'), data-event-action="Students Play Project")
|
||||
span(data-i18n="courses.view_project")
|
||||
else
|
||||
a.btn.btn-default.btn-lg.m-b-1(disabled=true, data-i18n="courses.course_complete")
|
||||
else if stats.levels.next != stats.levels.first
|
||||
- var next = stats.levels.next;
|
||||
- var levelURL = "/play/level/"+next.get('slug')+"?course="+courseInstance.get('courseID')+"&course-instance="+courseInstance.id;
|
||||
a.play-btn.btn.btn-forest.btn-lg.m-b-1(data-href=levelURL, data-level-slug=next.get('slug'), data-event-action="Students Continue Course")
|
||||
- var url = view.urls.courseLevel({level: view.originalLevelMap[next.get('original')] || next, courseInstance: courseInstance});
|
||||
a.play-btn.btn.btn-forest.btn-lg.m-b-1(data-href=url, data-level-slug=next.get('slug'), data-event-action="Students Continue Course")
|
||||
span(data-i18n="common.continue")
|
||||
else
|
||||
- var firstLevel = stats.levels.first;
|
||||
- var levelURL = "/play/level/"+firstLevel.get('slug')+"?course="+courseInstance.get('courseID')+"&course-instance="+courseInstance.id;
|
||||
if firstLevel.get('primerLanguage')
|
||||
- levelURL += "&codeLanguage=" + firstLevel.get('primerLanguage');
|
||||
a.play-btn.btn.btn-navy.btn-lg.m-b-1(data-href=levelURL, data-level-slug=firstLevel.get('slug'), data-event-action="Students Start Course")
|
||||
- var url = view.urls.courseLevel({level: view.originalLevelMap[firstLevel.get('original')] || firstLevel, courseInstance: courseInstance});
|
||||
a.play-btn.btn.btn-navy.btn-lg.m-b-1(data-href=url, data-level-slug=firstLevel.get('slug'), data-event-action="Students Start Course")
|
||||
span(data-i18n="courses.start")
|
||||
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ Course = require 'models/Course'
|
|||
Classroom = require 'models/Classroom'
|
||||
Classrooms = require 'collections/Classrooms'
|
||||
LevelSession = require 'models/LevelSession'
|
||||
Levels = require 'collections/Levels'
|
||||
NameLoader = require 'core/NameLoader'
|
||||
Campaign = require 'models/Campaign'
|
||||
ThangType = require 'models/ThangType'
|
||||
|
@ -50,6 +51,8 @@ module.exports = class CoursesView extends RootView
|
|||
@supermodel.trackCollection(@ownedClassrooms)
|
||||
@courses = new CocoCollection([], { url: "/db/course", model: Course})
|
||||
@supermodel.loadCollection(@courses)
|
||||
@originalLevelMap = {}
|
||||
@urls = require('core/urls')
|
||||
|
||||
# TODO: Trim this section for only what's necessary
|
||||
@hero = new ThangType
|
||||
|
@ -95,7 +98,13 @@ module.exports = class CoursesView extends RootView
|
|||
@ownerNameMap[ownerID] = NameLoader.getName(ownerID) for ownerID in ownerIDs
|
||||
@render?()
|
||||
)
|
||||
|
||||
_.forEach _.unique(_.pluck(@classrooms.models, 'id')), (classroomID) =>
|
||||
levels = new Levels()
|
||||
@listenTo levels, 'sync', =>
|
||||
return if @destroyed
|
||||
@originalLevelMap[level.get('original')] = level for level in levels.models
|
||||
@render()
|
||||
@supermodel.trackRequest(levels.fetchForClassroom(classroomID, { data: { project: 'original,primerLanguage,slug' }}))
|
||||
|
||||
onClickLogInButton: ->
|
||||
modal = new AuthModal()
|
||||
|
|
Loading…
Reference in a new issue