2016-03-30 16:57:19 -04:00
|
|
|
extends /templates/base-flat
|
|
|
|
|
|
|
|
block page_nav
|
|
|
|
include ./teacher-dashboard-nav.jade
|
|
|
|
|
|
|
|
block content
|
2016-03-30 19:20:37 -04:00
|
|
|
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')
|
|
|
|
a.btn.btn-lg.btn-primary-alt(href="/teachers/signup" data-i18n='teacher.create_teacher_account')
|
|
|
|
else
|
2016-04-05 12:16:22 -04:00
|
|
|
a.btn.btn-lg.btn-primary(href="/teachers/update-account" data-i18n="teachers_quote.convert_account_title")
|
2016-03-30 19:20:37 -04:00
|
|
|
button#logout-button.btn.btn-lg.btn-primary-alt(data-i18n="login.log_out")
|
|
|
|
|
|
|
|
.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.
|
2016-04-05 12:16:22 -04:00
|
|
|
a.btn.btn-primary.btn-lg(href="/teachers/update-account") Upgrade to teacher account
|
2016-03-30 19:20:37 -04:00
|
|
|
|
|
|
|
.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
|
2016-03-30 18:55:20 -04:00
|
|
|
|
2016-03-30 19:20:37 -04:00
|
|
|
- var archivedClassrooms = view.classrooms.where({archived: true});
|
|
|
|
if _.size(archivedClassrooms)
|
|
|
|
.container
|
|
|
|
h3(data-i18n='teacher.archived_classes')
|
|
|
|
p(data-i18n='teacher.archived_classes_blurb')
|
2016-03-30 18:55:20 -04:00
|
|
|
|
2016-03-30 19:20:37 -04:00
|
|
|
.classes.container
|
|
|
|
each classroom in archivedClassrooms
|
2016-03-30 18:55:20 -04:00
|
|
|
+archivedClassRow(classroom)
|
|
|
|
|
2016-03-30 16:57:19 -04:00
|
|
|
mixin classRow(classroom)
|
|
|
|
.class.row
|
|
|
|
.col-xs-6
|
|
|
|
.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.text-h6(data-i18n='teacher.view_class' href=('/teachers/classes/' + classroom.id))
|
|
|
|
a.edit-classroom.text-h6(data-i18n='teacher.edit_class_settings' data-classroom-id=classroom.id)
|
|
|
|
a.archive-classroom.text-h6(data-i18n='teacher.archive_class' data-classroom-id=classroom.id)
|
|
|
|
|
|
|
|
.progress-col.col-xs-5
|
|
|
|
if classroom.get('members').length == 0
|
|
|
|
+addStudentsButton(classroom)
|
|
|
|
else
|
|
|
|
each course, index in view.courses.models
|
|
|
|
+progressDot(classroom, course, index)
|
|
|
|
.view-class-arrow.col-xs-1
|
|
|
|
a.view-class-arrow-inner.glyphicon.glyphicon-chevron-right(data-classroom-id=classroom.id, href=('/teachers/classes/' + classroom.id))
|
|
|
|
|
|
|
|
|
|
|
|
mixin addStudentsButton(classroom)
|
|
|
|
.add-students
|
|
|
|
.text-center
|
|
|
|
div.small-details(data-i18n='teacher.no_students_yet')
|
|
|
|
| This class has no students yet.
|
|
|
|
a.add-students-btn.btn.btn-lg.btn-primary(data-classroom-id=classroom.id )
|
|
|
|
span(data-i18n='teacher.add_students')
|
|
|
|
| Add Students
|
|
|
|
|
|
|
|
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, index)
|
|
|
|
//- TODO: Give classes abbreviations instead of using index?
|
|
|
|
//- 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 = '';
|
2016-03-30 19:20:37 -04:00
|
|
|
- var started = 0;
|
2016-03-30 16:57:19 -04:00
|
|
|
if courseInstance
|
|
|
|
- complete = courseInstance.numCompleted
|
2016-03-30 19:20:37 -04:00
|
|
|
- started = courseInstance.numStarted
|
|
|
|
- dotClass = complete === total ? 'forest' : started ? 'gold' : '';
|
2016-03-30 16:57:19 -04:00
|
|
|
- var progressDotContext = {total: total, complete: complete};
|
|
|
|
.progress-dot(class=dotClass, data-title=view.progressDotTemplate(progressDotContext))
|
|
|
|
+progressDotLabel(index)
|
|
|
|
|
|
|
|
mixin progressDotLabel(index)
|
|
|
|
.dot-label
|
|
|
|
.text-h6
|
|
|
|
| CS
|
|
|
|
span
|
|
|
|
= index + 1
|
|
|
|
|
|
|
|
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)
|