codecombat/app/templates/editor/campaign/campaign-level-view.jade

112 lines
4.5 KiB
Text
Raw Normal View History

.jumbotron
.button.close(type="button", aria-hidden="true") ×
h1
span.spr= level.get('name')
a(href="/editor/level/#{level.get('slug')}", target="_blank") (edit)
p= level.get('description')
if analytics.startDay && analytics.endDay
.input-group.input-group-sm
input.form-control#input-startday(type='text', style='width:100px;', value=analytics.startDay)
input.form-control#input-endday(type='text', style='width:100px;', value=analytics.endDay)
button.btn.btn-default.btn-sm#reload-button(style='margin-left:10px;') Reload
h4 Completion Rates
if analytics.levelCompletions.loading
div Loading...
else
table.table.table-bordered.table-condensed.table-hover(style='font-size:10pt')
thead
tr
td Date
td Started
td Finished
td Completion %
if analytics.levelHelps.levels.length === analytics.levelCompletions.levels.length
td Helps Clicked
td Helps / Started
td Help Videos
td Videos / Started
tbody
- for (var i = 0; i < analytics.levelCompletions.levels.length; i++)
tr
td= analytics.levelCompletions.levels[i].created
td= analytics.levelCompletions.levels[i].started
td= analytics.levelCompletions.levels[i].finished
td= analytics.levelCompletions.levels[i].rate
if analytics.levelHelps.levels.length === analytics.levelCompletions.levels.length && analytics.levelCompletions.levels[i].created == analytics.levelHelps.levels[i].day
td= analytics.levelHelps.levels[i].alertHelps + analytics.levelHelps.levels[i].paletteHelps
td= ((analytics.levelHelps.levels[i].alertHelps + analytics.levelHelps.levels[i].paletteHelps) / analytics.levelCompletions.levels[i].started).toFixed(2)
td= analytics.levelHelps.levels[i].videoStarts
td= (analytics.levelHelps.levels[i].videoStarts / analytics.levelCompletions.levels[i].started).toFixed(2)
h4 Average Playtimes
if analytics.levelPlaytimes.loading
div Loading...
else
table.table.table-bordered.table-condensed.table-hover(style='font-size:10pt')
thead
tr
td Date
td Average (s)
tbody
- for (var i = 0; i < analytics.levelPlaytimes.levels.length; i++)
tr
td= analytics.levelPlaytimes.levels[i].created
td= analytics.levelPlaytimes.levels[i].average.toFixed(2)
h4 Common Problems
if analytics.commonProblems.loading
div Loading...
else
table.table.table-bordered.table-condensed.table-hover(style='font-size:10pt')
thead
tr
td Language
td Error Message
td Error Hint
td Count
tbody
- for (var i = 0; i < analytics.commonProblems.levels.length && i < 20; i++)
tr
td= analytics.commonProblems.levels[i].language
td= analytics.commonProblems.levels[i].message
td= analytics.commonProblems.levels[i].hint
td= analytics.commonProblems.levels[i].count
h4 Recent Sessions
if analytics.recentSessions.loading
div Loading...
else
div(style='font-size:10pt') Latest #{analytics.recentSessions.levels.length} sessions for this level
div(style='font-size:10pt') Double-click row to open player and session
table.table.table-bordered.table-condensed.table-hover(style='font-size:10pt')
thead
tr
td Session ID
td Player
td Code Language
td Playtime
td Complete
td Changed
tbody
- for (var i = 0; i < analytics.recentSessions.levels.length; i++)
tr.recent-session(data-player-id=analytics.recentSessions.levels[i].creator, data-session-id=analytics.recentSessions.levels[i]._id)
td= analytics.recentSessions.levels[i]._id
td= analytics.recentSessions.levels[i].creatorName || analytics.recentSessions.levels[i].creator
td= analytics.recentSessions.levels[i].codeLanguage
td= analytics.recentSessions.levels[i].playtime
if analytics.recentSessions.levels[i].state && analytics.recentSessions.levels[i].state.complete
td= analytics.recentSessions.levels[i].state.complete
else
td false
td= analytics.recentSessions.levels[i].changed
if level.get('tasks')
.tasks
h3 Tasks (read only)
ul.list-unstyled
for task in level.get('tasks')
li
input(type='checkbox', checked=task.complete)
span.spl= task.name