mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-20 20:42:44 -05:00
61be34a0f4
Closes #3870
127 lines
5.1 KiB
Text
127 lines
5.1 KiB
Text
extends /templates/base-flat
|
|
|
|
block page_nav
|
|
include ./teacher-dashboard-nav.jade
|
|
|
|
block content
|
|
if !me.isTeacher() && !view.classrooms.size()
|
|
.access-restricted.container.text-center.m-y-3
|
|
h5(data-i18n='teacher.access_restricted')
|
|
p(data-i18n='teacher.teacher_account_required')
|
|
if me.isAnonymous()
|
|
.login-button.btn.btn-lg.btn-primary(data-i18n='login.log_in')
|
|
button.btn.btn-lg.btn-primary-alt.create-teacher-btn(data-event-action="Teachers Classes Create Teacher Account", data-i18n='teacher.create_teacher_account')
|
|
else
|
|
button.btn.btn-lg.btn-primary.update-teacher-btn(data-event-action="Teachers Classes Convert Teacher Account", data-i18n="teachers_quote.convert_account_title")
|
|
button#logout-button.btn.btn-lg.btn-primary-alt(data-i18n="login.log_out")
|
|
|
|
.container
|
|
.teacher-account-blurb.text-center.col-xs-6.col-xs-offset-3.m-y-3
|
|
h5(data-i18n='teacher.what_is_a_teacher_account')
|
|
p(data-i18n='teacher.teacher_account_explanation')
|
|
|
|
else
|
|
if !me.isTeacher()
|
|
.alert.alert-danger.text-center
|
|
.container
|
|
// DNT: Temporary
|
|
h3 ATTENTION: Please upgrade your account to a Teacher Account.
|
|
p
|
|
| We are transitioning to a new improved classroom management system for instructors.
|
|
| Please convert your account to ensure you retain access to your classrooms.
|
|
button.btn.btn-primary.btn-lg.update-teacher-btn(data-event-action="Teachers Classes Convert Teacher Account Temp") Upgrade to teacher account
|
|
|
|
.container
|
|
h3(data-i18n='teacher.current_classes')
|
|
|
|
.classes.container
|
|
// Loop each class
|
|
each classroom in view.classrooms.models
|
|
unless classroom.get('archived')
|
|
+classRow(classroom)
|
|
|
|
+createClassButton
|
|
|
|
- var archivedClassrooms = view.classrooms.where({archived: true});
|
|
if _.size(archivedClassrooms)
|
|
.container
|
|
h3(data-i18n='teacher.archived_classes')
|
|
p(data-i18n='teacher.archived_classes_blurb')
|
|
|
|
.classes.container
|
|
each classroom in archivedClassrooms
|
|
+archivedClassRow(classroom)
|
|
|
|
mixin classRow(classroom)
|
|
.class.row
|
|
.class-details-col
|
|
.text-h4.semibold
|
|
= classroom.get('name')
|
|
.language.small
|
|
span(data-i18n='teacher.language')
|
|
| :
|
|
span.language-name
|
|
= classroom.capitalLanguage
|
|
.student-count.small
|
|
span(data-i18n='teacher.students')
|
|
| :
|
|
span
|
|
= classroom.get('members').length
|
|
.class-links
|
|
a.view-class-btn.text-h6(data-i18n='teacher.view_class' data-classroom-id=classroom.id data-event-action="Teachers Classes View Class Link")
|
|
a.edit-classroom.text-h6(data-i18n='teacher.edit_class_settings' data-classroom-id=classroom.id data-event-action="Teachers Classes Edit Class Started")
|
|
a.archive-classroom.text-h6(data-i18n='teacher.archive_class' data-classroom-id=classroom.id data-event-action="Teachers Classes Archive Class")
|
|
|
|
.flex-right
|
|
.progress-col
|
|
if classroom.get('members').length == 0
|
|
+addStudentsButton(classroom)
|
|
else
|
|
- var courses = classroom.getSortedCourses().map(function(c) { return view.courses.get(c._id); });
|
|
- var courseLabelsArray = view.helper.courseLabelsArray(courses);
|
|
each trimCourse, index in classroom.get('courses') || []
|
|
- var course = view.courses.get(trimCourse._id);
|
|
if view.courseInstances.findWhere({ classroomID: classroom.id, courseID: course.id })
|
|
- var label = courseLabelsArray[index];
|
|
+progressDot(classroom, course, label)
|
|
.view-class-arrow
|
|
a.view-class-arrow-inner.glyphicon.glyphicon-chevron-right.view-class-btn(data-classroom-id=classroom.id data-event-action="Teachers Classes View Class Chevron")
|
|
|
|
|
|
mixin addStudentsButton(classroom)
|
|
.add-students
|
|
.text-center
|
|
div.small-details(data-i18n='teacher.no_students_yet_view_class')
|
|
|
|
mixin createClassButton
|
|
.create-class
|
|
.text-center
|
|
a.create-classroom-btn.btn.btn-lg.btn-primary(data-i18n='teacher.create_new_class')
|
|
| Create a New Class
|
|
|
|
mixin progressDot(classroom, course, label)
|
|
//- TODO: inefficient. Cache this in the view?
|
|
- courseInstance = view.courseInstances.findWhere({ courseID: course.id, classroomID: classroom.id })
|
|
- var total = classroom.get('members').length
|
|
- var complete = 0;
|
|
- var dotClass = '';
|
|
- var started = 0;
|
|
if courseInstance
|
|
- complete = courseInstance.numCompleted
|
|
- started = courseInstance.started
|
|
- dotClass = complete === total ? 'forest' : started ? 'gold' : '';
|
|
- var progressDotContext = {total: total, complete: complete};
|
|
.progress-dot(class=dotClass, data-title=view.progressDotTemplate(progressDotContext))
|
|
+progressDotLabel(label)
|
|
|
|
mixin progressDotLabel(label)
|
|
.dot-label.text-h6= label
|
|
|
|
mixin archivedClassRow(classroom)
|
|
.class.row
|
|
.col-xs-10
|
|
span
|
|
= classroom.get('name')
|
|
.col-xs-2
|
|
.class-links.pull-right
|
|
a.unarchive-classroom.text-h6(data-i18n='teacher.unarchive_class' data-classroom-id=classroom.id)
|