Separating contact emails into premium subscriber support and basic general support.

This commit is contained in:
Nick Winter 2014-12-18 20:34:59 -08:00
parent ffa3366b8a
commit d801ed61ce
16 changed files with 32 additions and 58 deletions

View file

@ -477,12 +477,13 @@
contact:
contact_us: "Contact CodeCombat"
welcome: "Good to hear from you! Use this form to send us email. "
contribute_prefix: "If you're interested in contributing, check out our "
contribute_page: "contribute page"
contribute_suffix: "!"
forum_prefix: "For anything public, please try "
forum_page: "our forum"
forum_suffix: " instead."
subscribe_prefix: "If you need help figuring out a level, please"
subscribe: "buy a CodeCombat subscription"
subscribe_suffix: "and we'll be happy to help you with your code."
subscriber_support: "Since you're a CodeCombat subscriber, your email will get our priority support."
where_reply: "Where should we reply?"
send: "Send Feedback"
contact_candidate: "Contact Candidate" # Deprecated

View file

@ -206,16 +206,8 @@ $level-resize-transition-time: 0.5s
@include opacity(1)
@media screen and (min-aspect-ratio: 17/10)
display: none
.hour-of-code-explanation
margin-top: 5px
color: white
font-size: 12px
a
color: white
text-decoration: underline
&:not(.premium)
display: none
#fullscreen-editor-background-screen
background-color: black

View file

@ -104,13 +104,6 @@
&.btn-#{nth($tuple, 1)}
@include banner-button(nth($tuple, 2), #FFF)
.footer .footer-link-text a
@include opacity(0.75)
@include transition(opacity .10s linear)
&:hover, &:active
@include opacity(1)
$GI: 0.5 // gradient intensity; can tweak this 0-1
.gradient
@ -152,22 +145,3 @@
top: 0
height: 100%
width: 2%
.footer
@media screen and (min-aspect-ratio: 17/10)
display: none
&:not(:hover)
@include opacity(0.6)
.hour-of-code-explanation
margin-top: 5px
color: white
font-size: 12px
&:not(:hover)
@include opacity(0.75)
a
color: white
text-decoration: underline

View file

@ -6,13 +6,16 @@ block modal-header-content
block modal-body-content
p
span(data-i18n="contact.welcome") Good to hear from you! Use this form to send us email.
span(data-i18n="contact.contribute_prefix") If you're interested in contributing, check out our
a(href="/contribute", data-dismiss="modal", data-i18n="contact.contribute_page") contribute page
span(data-i18n="contact.contribute_suffix") !
p
span(data-i18n="contact.forum_prefix") For anything public, please try
span.spl(data-i18n="contact.forum_prefix") For anything public, please try
a(href="http://discourse.codecombat.com/", data-i18n="contact.forum_page") our forum
span(data-i18n="contact.forum_suffix") instead.
if me.isPremium()
p(data-i18n="contact.subscriber_support") Since you're a CodeCombat subscriber, your email will get our priority support.
else
p
span(data-i18n="contact.subscribe_prefix") If you need help figuring out a level, please
a.spl.spr(data-toggle="coco-modal", data-target="core/SubscribeModal", data-i18n="contact.subscribe") buy a CodeCombat subscription
span(data-i18n="contact.subscribe_suffix") and we'll be happy to help you with your code.
.form
.form-group
label.control-label(for="contact-email", data-i18n="general.email") Email

View file

@ -34,6 +34,7 @@
button.btn.btn-lg.btn-warning.banner.header-font#stop-real-time-playback-button(title="Stop real-time playback", data-i18n="play_level.skip") Skip
#play-footer
p(class='footer-link-text')
a(title='Send CodeCombat a message', tabindex=-1, data-toggle="coco-modal", data-target="core/ContactModal", data-i18n="nav.contact") Contact
if !me.get('anonymous')
#play-footer(class=me.isPremium() ? "premium" : "")
p(class='footer-link-text')
a(title='Send CodeCombat a message', tabindex=-1, data-toggle="coco-modal", data-target="core/ContactModal", data-i18n="nav.contact") Contact

View file

@ -11,7 +11,3 @@
#level-chat-view
#playback-view
#thang-hud
.footer
.content
p(class='footer-link-text')
a(title='Send CodeCombat a message', tabindex=-1, data-toggle="coco-modal", data-target="core/ContactModal", data-i18n="nav.contact") Contact

View file

@ -83,6 +83,9 @@
else
span.player-name.spr= me.get('name')
button#logout-button.btn.btn-illustrated.btn-warning(data-i18n="login.log_out") Log Out
if me.isPremium()
button.btn.btn-illustrated.btn-primary(data-i18n="nav.contact", data-toggle="coco-modal", data-target="core/ContactModal") Contact
button.btn.btn-lg.btn-inverse#volume-button(title="Adjust volume")
.glyphicon.glyphicon-volume-off

View file

@ -1,7 +1,7 @@
RootView = require 'views/core/RootView'
template = require 'templates/account/subscription-view'
CocoCollection = require 'collections/CocoCollection'
SubscribeModal = require 'views/play/modal/SubscribeModal'
SubscribeModal = require 'views/core/SubscribeModal'
module.exports = class SubscriptionView extends RootView
id: "subscription-view"
@ -33,7 +33,7 @@ module.exports = class SubscriptionView extends RootView
c.cost = "$#{(subscription.plan.amount/100).toFixed(2)}"
if card = @stripeInfo.cards?.data?[0]
c.card = "#{card.brand}: x#{card.last4}"
c.stripeInfo = @stripeInfo
c.subscribed = me.get('stripe')?.planID
c.active = me.isPremium()

View file

@ -1,5 +1,5 @@
ModalView = require 'views/core/ModalView'
template = require 'templates/play/modal/subscribe-modal'
template = require 'templates/core/subscribe-modal'
stripeHandler = require 'core/services/stripe'
utils = require 'core/utils'
AuthModal = require 'views/core/AuthModal'

View file

@ -9,7 +9,7 @@ ThangType = require 'models/ThangType'
MusicPlayer = require 'lib/surface/MusicPlayer'
storage = require 'core/storage'
AuthModal = require 'views/core/AuthModal'
SubscribeModal = require 'views/play/modal/SubscribeModal'
SubscribeModal = require 'views/core/SubscribeModal'
Level = require 'models/Level'
trackedHourOfCode = false

View file

@ -1,7 +1,7 @@
CocoView = require 'views/core/CocoView'
template = require 'templates/play/level/level_loading'
utils = require 'core/utils'
SubscribeModal = require 'views/play/modal/SubscribeModal'
SubscribeModal = require 'views/core/SubscribeModal'
module.exports = class LevelLoadingView extends CocoView
id: 'level-loading-view'

View file

@ -17,7 +17,7 @@ createMailContext = (sender, message, user, recipientID, subject, done) ->
context =
email_id: sendwithus.templates.plain_text_email
recipient:
address: config.mail.username
address: if user?.isPremium() then config.mail.supportPremium else config.mail.supportPrimary
sender:
address: config.mail.username
reply_to: sender

View file

@ -36,6 +36,9 @@ else
config.mongo.password = process.env.COCO_MONGO_PASSWORD or ''
config.mail =
username: process.env.COCO_MAIL_SERVICE_USERNAME or ''
supportPrimary: process.env.COCO_MAIL_SUPPORT_PRIMARY or ''
supportPremium: process.env.COCO_MAIL_SUPPORT_PREMIUM or ''
username: process.env.COCO_MAIL_SERVICE_USERNAME or ''
mailchimpAPIKey: process.env.COCO_MAILCHIMP_API_KEY or ''
mailchimpWebhook: process.env.COCO_MAILCHIMP_WEBHOOK or '/mail/webhook'

View file

@ -58,11 +58,12 @@ setupExpressMiddleware = (app) ->
express.logger.format('prod', productionLogging)
app.use(express.logger('prod'))
app.use express.compress filter: (req, res) ->
return false if req.headers.host is 'codecombat.com' # CloudFlare will gzip it for us on codecombat.com
compressible res.getHeader('Content-Type')
else
express.logger.format('dev', developmentLogging)
app.use(express.logger('dev'))
app.use(express.static(path.join(__dirname, 'public')))
app.use(express.static(path.join(__dirname, 'public'), maxAge: 30 * 60 * 1000))
app.use(useragent.express())
app.use(express.favicon())