mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-14 07:00:01 -04:00
Add invite link and capacity info to CourseDetailsView
This commit is contained in:
parent
d200ac4a32
commit
212ee8a65a
3 changed files with 32 additions and 2 deletions
|
@ -247,11 +247,19 @@ mixin progress-members-popup-started(i, level)
|
|||
|
||||
mixin invite-tab
|
||||
p(data-i18n="courses.invite_students")
|
||||
p TODO: Student unlock code
|
||||
p TODO: Class capacity
|
||||
// TODO: finalize text here and then i18n it
|
||||
h3 Link to join course
|
||||
p Give this link to students you would like to have join the course.
|
||||
a= document.location.origin + "/account/prepaid?_ppc=" + view.prepaid.get('code')
|
||||
p Or have us email them directly:
|
||||
textarea.invite-emails(rows=3, data-i18n="[placeholder]courses.enter_emails", placeholder="Enter student emails to invite, one per line")
|
||||
div(style='margin-top:10px;')
|
||||
button.btn.btn-success.btn-invite(data-i18n="courses.send_invites")
|
||||
h3 Class Capacity
|
||||
if view.prepaid.loaded
|
||||
p
|
||||
span.spr Course slots used:
|
||||
span #{view.prepaid.get('redeemers').length} / #{view.prepaid.get('maxRedeemers')}.
|
||||
|
||||
mixin levels-tab
|
||||
table.table.table-striped.table-condensed
|
||||
|
|
|
@ -129,6 +129,7 @@ module.exports = class CocoView extends Backbone.View
|
|||
context.isIE = @isIE()
|
||||
context.moment = moment
|
||||
context.translate = $.i18n.t
|
||||
context.view = @
|
||||
context
|
||||
|
||||
afterRender: ->
|
||||
|
|
|
@ -7,6 +7,7 @@ RootView = require 'views/core/RootView'
|
|||
template = require 'templates/courses/course-details'
|
||||
User = require 'models/User'
|
||||
utils = require 'core/utils'
|
||||
Prepaid = require 'models/Prepaid'
|
||||
|
||||
module.exports = class CourseDetailsView extends RootView
|
||||
id: 'course-details-view'
|
||||
|
@ -22,6 +23,7 @@ module.exports = class CourseDetailsView extends RootView
|
|||
'click .progress-level-cell': 'onClickProgressLevelCell'
|
||||
'mouseenter .progress-level-cell': 'onMouseEnterPoint'
|
||||
'mouseleave .progress-level-cell': 'onMouseLeavePoint'
|
||||
'click .btn-invite': 'onClickButtonInvite'
|
||||
|
||||
constructor: (options, @courseID, @courseInstanceID) ->
|
||||
super options
|
||||
|
@ -31,6 +33,7 @@ module.exports = class CourseDetailsView extends RootView
|
|||
@memberSort = 'nameAsc'
|
||||
@course = @supermodel.getModel(Course, @courseID) or new Course _id: @courseID
|
||||
@listenTo @course, 'sync', @onCourseSync
|
||||
@prepaid = new Prepaid()
|
||||
if @course.loaded
|
||||
@onCourseSync()
|
||||
else
|
||||
|
@ -55,6 +58,7 @@ module.exports = class CourseDetailsView extends RootView
|
|||
context.sortedMembers = @sortedMembers ? []
|
||||
context.userConceptStateMap = @userConceptStateMap ? {}
|
||||
context.userLevelStateMap = @userLevelStateMap ? {}
|
||||
context.document = document
|
||||
context
|
||||
|
||||
onCourseSync: ->
|
||||
|
@ -119,6 +123,20 @@ module.exports = class CourseDetailsView extends RootView
|
|||
@members = new CocoCollection([], { url: "/db/course_instance/#{@courseInstance.id}/members", model: User, comparator: 'nameLower' })
|
||||
@listenToOnce @members, 'sync', @onMembersSync
|
||||
@supermodel.loadCollection @members, 'members', cache: false
|
||||
if @adminMode
|
||||
prepaidID = @course.get('prepaidID')
|
||||
if not prepaidID
|
||||
prepaidID = '560ef835444e5c9a847e0218'
|
||||
# TODO: Just abort if no prepaidID
|
||||
@prepaid = @supermodel.getModel(Prepaid, prepaidID) or new Prepaid _id: prepaidID
|
||||
@listenTo @prepaid, 'sync', @onPrepaidSync
|
||||
if @prepaid.loaded
|
||||
@onPrepaidSync()
|
||||
else
|
||||
@supermodel.loadModel @prepaid, 'prepaid'
|
||||
@render?()
|
||||
|
||||
onPrepaidSync: ->
|
||||
@render?()
|
||||
|
||||
onLevelSessionsSync: ->
|
||||
|
@ -226,6 +244,9 @@ module.exports = class CourseDetailsView extends RootView
|
|||
viewArgs: [{}, levelSlug]
|
||||
}
|
||||
|
||||
onClickButtonInvite: (e) ->
|
||||
|
||||
|
||||
onMouseEnterPoint: (e) ->
|
||||
$('.progress-popup-container').hide()
|
||||
container = $(e.target).find('.progress-popup-container').show()
|
||||
|
|
Loading…
Reference in a new issue