mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-24 16:17:57 -05:00
173 lines
6.3 KiB
Text
173 lines
6.3 KiB
Text
extends /templates/base
|
|
|
|
block content
|
|
h3.text-right
|
|
if me.isAnonymous()
|
|
a(href="/teachers")
|
|
span(data-i18n="courses.teachers_click")
|
|
span !
|
|
else
|
|
a(href="/courses/teachers")
|
|
span(data-i18n="courses.teachers_click")
|
|
span !
|
|
|
|
#main-content
|
|
if me.isAnonymous()
|
|
|
|
h1.text-center(data-i18n="courses.welcome_to_courses")
|
|
|
|
.text-center
|
|
p
|
|
h3(data-i18n="courses.ready_to_play")
|
|
p
|
|
button#start-new-game-btn.btn.btn-default(data-i18n="courses.start_new_game")
|
|
p
|
|
span.spr -
|
|
span.text-uppercase(data-i18n="general.or")
|
|
span.spl -
|
|
p
|
|
button#log-in-btn.btn.btn-default(data-i18n="login.log_in")
|
|
|
|
h3#play-now-to-learn-header.text-center.text-uppercase(data-i18n="courses.play_now_learn_header")
|
|
ul
|
|
li(data-i18n="courses.play_now_learn_1")
|
|
li(data-i18n="courses.play_now_learn_2")
|
|
li(data-i18n="courses.play_now_learn_3")
|
|
li(data-i18n="courses.play_now_learn_4")
|
|
|
|
else
|
|
|
|
- var showHOCComplete = false;
|
|
if view.hocCourseInstance
|
|
- var course = view.courses.get(view.hocCourseInstance.get('courseID'));
|
|
- var campaign = view.campaigns.get(course.get('campaignID'));
|
|
- var stats = campaign.statsForSessions(view.hocCourseInstance.sessions);
|
|
- showHOCComplete = stats.levels.done && !view.classrooms.size();
|
|
|
|
.text-center
|
|
if !showHOCComplete
|
|
h1(data-i18n="courses.welcome_to_page") Welcome to your Courses page!
|
|
else
|
|
h1(data-i18n="courses.completed_hoc")
|
|
h2(data-i18n="courses.ready_for_more_header")
|
|
ul.text-left
|
|
li(data-i18n="courses.ready_for_more_1")
|
|
li(data-i18n="courses.ready_for_more_2")
|
|
li(data-i18n="courses.ready_for_more_3")
|
|
a.btn.btn-lg.btn-success(href="/play") Play Now
|
|
|
|
if view.hocCourseInstance && !view.classrooms.size()
|
|
h3(data-i18n="courses.saved_games")
|
|
hr
|
|
|
|
.course-instance-entry
|
|
h3
|
|
span(data-i18n="courses.hoc")
|
|
span.spr :
|
|
span.spr(data-i18n="courses.course")
|
|
span 1
|
|
span.spr= (me.get('aceConfig') || {}).language === 'javascript' ? 'JavaScript' : 'Python'
|
|
small
|
|
a#change-language-link(data-i18n="courses.change_language")
|
|
+course-instance-body(view.hocCourseInstance)
|
|
.clearfix
|
|
|
|
else if view.classrooms.size()
|
|
h3.text-uppercase(data-i18n="courses.my_classes")
|
|
hr
|
|
|
|
for classroom in view.classrooms.models
|
|
- var justAdded = classroom.id === view.classroomJustAdded;
|
|
- var classroomClass = justAdded ? 'just-added' : '';
|
|
if justAdded
|
|
#just-added-text.text-center(data-i18n="courses.class_added")
|
|
|
|
//- sigh
|
|
div(class=classroomClass)
|
|
h3
|
|
span.spr= classroom.get('name')
|
|
span.spr (#{(classroom.get('aceConfig') || {}).language === 'javascript' ? 'JavaScript' : 'Python'})
|
|
a(href="/courses/"+classroom.id, data-i18n="courses.view_class")
|
|
|
|
- var courseInstances = view.courseInstances.where({classroomID: classroom.id});
|
|
for courseInstance in courseInstances
|
|
|
|
.course-instance-entry
|
|
- var course = view.courses.get(courseInstance.get('courseID'));
|
|
h3
|
|
span.spr= course.get('name')
|
|
small
|
|
a(href="/courses/"+courseInstance.get('courseID')+'/'+courseInstance.id, data-i18n="courses.view_levels")
|
|
+course-instance-body(courseInstance)
|
|
.clearfix
|
|
|
|
else
|
|
.text-center
|
|
button#start-new-game-btn.btn.btn-success.btn-lg(data-i18n="courses.start_new_game")
|
|
|
|
h3.text-uppercase(data-i18n="courses.join_class")
|
|
hr
|
|
|
|
form#join-class-form.form-inline
|
|
.help-block
|
|
em(data-i18n="courses.ask_teacher_for_code")
|
|
.form-group
|
|
input#class-code-input.form-control(data-i18n="[placeholder]courses.enter_c_code", placeholder="<Enter Class Code>", value=view.classCode)
|
|
input#join-class-button.btn.btn-default(type="submit", data-i18n="[value]courses.join", value="Join")
|
|
|
|
if view.state === 'enrolling'
|
|
.progress.progress-striped.active
|
|
.progress-bar(style="width: 100%", data-i18n="courses.joining") Joining class
|
|
|
|
if view.errorMessage
|
|
.alert.alert-danger= view.errorMessage
|
|
|
|
|
|
#begin-hoc-area.hide
|
|
h3.text-center(data-i18n="common.loading")
|
|
.progress.progress-striped.active
|
|
.progress-bar(style="width: 100%")
|
|
|
|
|
|
mixin course-instance-body(courseInstance)
|
|
- var course = view.courses.get(courseInstance.get('courseID'));
|
|
- var campaign = view.campaigns.get(course.get('campaignID'));
|
|
- var stats = campaign.statsForSessions(courseInstance.sessions);
|
|
if stats.levels.done
|
|
.text-success
|
|
span.glyphicon.glyphicon-ok
|
|
span.spl(data-i18n="courses.course_complete")
|
|
span !
|
|
.pull-right
|
|
if stats.levels.done
|
|
- var arenaLevel = stats.levels.arena;
|
|
if arenaLevel
|
|
- var arenaURL = "/play/ladder/"+arenaLevel.slug+"/course/"+courseInstance.id;
|
|
a.btn.btn-warning.btn-lg(href=arenaURL)
|
|
span(data-i18n="courses.play_arena")
|
|
else
|
|
a.btn.btn-default.btn-lg(disabled=true, data-i18n="courses.course_complete")
|
|
else if courseInstance.sessions.size()
|
|
- var lastLevel = stats.levels.lastPlayed;
|
|
- var levelURL = "/play/level/"+lastLevel.slug+"?course="+courseInstance.get('courseID')+"&course-instance="+courseInstance.id;
|
|
a.btn.btn-success.btn-lg(href=levelURL)
|
|
span(data-i18n="common.continue")
|
|
else
|
|
- var firstLevel = stats.levels.first;
|
|
- var levelURL = "/play/level/"+firstLevel.slug+"?course="+courseInstance.get('courseID')+"&course-instance="+courseInstance.id;
|
|
a.btn.btn-info.btn-lg(href=levelURL)
|
|
span(data-i18n="courses.start")
|
|
|
|
div
|
|
span(data-i18n="clans.playtime")
|
|
span.spr :
|
|
span= moment.duration(stats.playtime, 'seconds').humanize()
|
|
|
|
if stats.levels.lastPlayed
|
|
div
|
|
span(data-i18n="courses.last_level")
|
|
span.spr :
|
|
span= stats.levels.lastPlayed.name
|
|
|
|
.progress
|
|
.progress-bar(style="width:"+stats.levels.pctDone)= stats.levels.pctDone
|