codecombat/app/templates/admin/analytics-subscriptions.jade
Matt Lott 6dc51e27e4 🐛Admin dashboard deleted users
Also disabling invoice caching to see if that is what causes invalid
sub end counts.
2015-05-11 10:37:44 -07:00

159 lines
5 KiB
Text

extends /templates/base
block content
if !me.isAdmin()
div You must be logged in as an admin to view this page.
else
if total === 0
h4 Fetching dashboard data...
else
.container-fluid
.row
.col-md-5.big-stat.total-count
div.description Total
div.count= total
.col-md-5.big-stat.remaining-count
div.description Remaining
div.count= total - cancelled
.col-md-5.big-stat.cancelled-count
div.description Cancelled
div.count= cancelled
.col-md-5.big-stat.growth-rate
div.description 30 Day Total Growth
div.count #{monthlyGrowth.toFixed(1)}%
.col-md-5.big-stat.churn-count
div.description Monthly Churn (cancelled / total)
div.count #{monthlyChurn.toFixed(1)}%
each graph in analytics.graphs
.line-graph-container
each line in graph.lines
each point in line.points
.graph-point-info-container(data-pointid="#{point.pointID}")
div(style='font-weight:bold;') #{point.day}
each value in point.values
div #{value}
h2 Recent Subscribers
if !subscribers || subscribers.length < 1
h4 Fetching recent subscribers...
else
table.table.table-striped.table-condensed
thead.subscribers-thead
tr
th Sub ID
th User Start
th Sub Start
if subscriberCancelled
th Cancelled
else
th
th Conversion
th Email
th Hero
th Level
th Age
th Spoken
th Clans
tbody.subscribers-tbody
each subscriber in subscribers
tr
td
a(href="https://dashboard.stripe.com/customers/#{subscriber.customerID}", target="_blank")= subscriber.subscriptionID
td= subscriber.user.dateCreated.substring(0, 10)
td= subscriber.start.substring(0, 10)
td
if subscriber.cancel
span= subscriber.cancel.substring(0, 10)
td
if subscriber.user.stripe && subscriber.user.stripe.sponsorID
span *sponsored*
else if subscriber.user.conversion
span= subscriber.user.conversion
if subscriber.user.deleted
td DELETED
else
td= subscriber.user.emailLower
td= subscriber.hero
td= subscriber.level
td= subscriber.user.ageRange
td= subscriber.user.preferredLanguage
if subscriber.user.clans
td= subscriber.user.clans.length
else
td
h2 Recent Cancellations
if !cancellations || cancellations.length < 1
h4 Fetching recent cancellations...
else
table.table.table-striped.table-condensed
thead.subscribers-thead
tr
th Sub ID
th User ID
th User Start
th Sub Start
th Sub Cancel
th Length
th Level
th Age
th Spoken
th Clans
tbody.subscribers-tbody
each cancellation in cancellations
tr
td
a(href="https://dashboard.stripe.com/customers/#{cancellation.customerID}", target="_blank")= cancellation.subscriptionID
if cancellation.userID
td
a(href="/user/#{cancellation.userID}")= cancellation.userID
else
td
if cancellation.user
td= cancellation.user.dateCreated.substring(0, 10)
else
td
td= cancellation.start.substring(0, 10)
td= cancellation.cancel.substring(0, 10)
td= moment.duration(new Date(cancellation.cancel) - new Date(cancellation.start)).humanize()
td= cancellation.level
if cancellation.user
td= cancellation.user.ageRange
td= cancellation.user.preferredLanguage
if cancellation.user.clans
td= cancellation.user.clans.length
else
td
else
td
td
td
td
h2 Subscriptions
if !subs || subs.length < 1
h4 Fetching subscriptions...
else
table.table.table-condensed
thead
tr
th Day
th Total
th Started
th Cancelled
th Net (cancelled)
th Ended
th Net (ended)
tbody
each sub in subs
tr
td= sub.day
td= sub.total
td= sub.started
td= sub.cancelled
td= sub.started - sub.cancelled
td= sub.ended
td= sub.started - sub.ended