mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-26 14:03:28 -04:00
Half the account page is there
This commit is contained in:
parent
0288786098
commit
023a7adc81
7 changed files with 146 additions and 31 deletions
app
styles
templates
views/account
server/levels/sessions
|
@ -1,5 +1,12 @@
|
|||
#user-home-view
|
||||
#avatar
|
||||
width: 150px
|
||||
#account-home-view
|
||||
dl
|
||||
margin-bottom: 0px
|
||||
|
||||
content: "blub"
|
||||
img#picture
|
||||
max-width: 50%
|
||||
|
||||
.panel
|
||||
margin-bottom: 10px
|
||||
|
||||
h2
|
||||
margin-bottom: 0px
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
@import "../bootstrap/variables"
|
||||
@import "../bootstrap/mixins"
|
||||
|
||||
// This is still very blocky. Browser reflows? Investigate why.
|
||||
.open > .dropdown-menu
|
||||
|
@ -34,6 +35,9 @@
|
|||
opacity: 1
|
||||
top: 100%
|
||||
|
||||
a.disabled
|
||||
color: #5b5855
|
||||
|
||||
#top-nav
|
||||
a.navbar-brand
|
||||
padding: 4px 20px 0px 20px
|
||||
|
@ -53,6 +57,7 @@
|
|||
.account-settings-image
|
||||
width: 18px
|
||||
height: 18px
|
||||
margin-right: 5px
|
||||
|
||||
.glyphicon-user
|
||||
font-size: 16px
|
||||
|
@ -86,19 +91,14 @@
|
|||
padding: 15px
|
||||
letter-spacing: 1px
|
||||
font: 15px 'Helvetica Neue', Helvetica, Arial, sans-serif
|
||||
&:after
|
||||
display: table
|
||||
content: " "
|
||||
clear: both
|
||||
+clearfix()
|
||||
|
||||
li.user-dropdown-footer
|
||||
padding: 10px
|
||||
margin-left: 0px
|
||||
font-size: 14px
|
||||
&:after
|
||||
display: table
|
||||
content: " "
|
||||
clear: both
|
||||
+clearfix()
|
||||
|
||||
.btn-flat
|
||||
border: #ddd 1px solid
|
||||
border-radius: 0px
|
||||
|
@ -112,7 +112,7 @@
|
|||
&:hover
|
||||
color: #f8e413
|
||||
|
||||
.navbar-link-text > a:hover
|
||||
.navbar-link-text > li > a:hover
|
||||
background: darken($body-bg, 3%)
|
||||
|
||||
.btn, .btn-group, .fancy-select
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
#account-home-view
|
||||
.main-content-area
|
||||
padding: 20px 20px
|
||||
img#avatar
|
||||
width: 150px
|
|
@ -1,8 +1,100 @@
|
|||
extends /templates/base
|
||||
|
||||
block content
|
||||
.clearfix
|
||||
.col-sm-6.clearfix
|
||||
h2 Account Settings
|
||||
hr
|
||||
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h3.panel-title
|
||||
a(href="account/settings#me") Me
|
||||
.panel-body
|
||||
dl
|
||||
dt Name
|
||||
dd=me.get('name')
|
||||
dt Email
|
||||
dd abe@lincoln
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h3.panel-title
|
||||
a(href="account/settings#picture") Picture
|
||||
.panel-body.text-center
|
||||
img#picture(src="#{me.getPhotoURL(150)}" alt="")
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h3.panel-title
|
||||
a(href="account/settings#wizard") Wizard
|
||||
//.panel-body
|
||||
| Lorem Ipsum
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h3.panel-title
|
||||
a(href="account/settings#emails") Emails
|
||||
.panel-body
|
||||
.form
|
||||
.form-group.checkbox
|
||||
label.control-label(for="email_archmageNews")
|
||||
span General
|
||||
input#email_archmageNews(name="email_archmageNews", type="checkbox", checked=subs.generalNews, disabled="true")
|
||||
.form-group.checkbox
|
||||
label.control-label(for="email_archmageNews")
|
||||
span.spr(data-i18n="classes.archmage_title")
|
||||
| Archmage
|
||||
span(data-i18n="classes.archmage_title_description")
|
||||
| (Coder)
|
||||
input#email_archmageNews(name="email_archmageNews", type="checkbox", checked=subs.archmageNews, disabled="true")
|
||||
.form-group.checkbox
|
||||
label.control-label(for="email_artisanNews")
|
||||
span.spr(data-i18n="classes.artisan_title")
|
||||
| Artisan
|
||||
span(data-i18n="classes.artisan_title_description")
|
||||
| (Level Builder)
|
||||
input#email_artisanNews(name="email_artisanNews", type="checkbox", checked=subs.artisanNews, disabled="true")
|
||||
.form-group.checkbox
|
||||
label.control-label(for="email_adventurerNews")
|
||||
span.spr(data-i18n="classes.adventurer_title")
|
||||
| Adventurer
|
||||
span(data-i18n="classes.adventurer_title_description")
|
||||
| (Level Playtester)
|
||||
input#email_adventurerNews(name="email_adventurerNews", type="checkbox", checked=subs.adventurerNews, disabled="true")
|
||||
.form-group.checkbox
|
||||
label.control-label(for="email_scribeNews")
|
||||
span.spr(data-i18n="classes.scribe_title")
|
||||
| Scribe
|
||||
span(data-i18n="classes.scribe_title_description")
|
||||
| (Article Editor)
|
||||
input#email_scribeNews(name="email_scribeNews", type="checkbox", checked=subs.scribeNews, disabled="true")
|
||||
.form-group.checkbox
|
||||
label.control-label(for="email_diplomatNews")
|
||||
span.spr(data-i18n="classes.diplomat_title")
|
||||
| Diplomat
|
||||
span(data-i18n="classes.diplomat_title_description")
|
||||
| (Translator)
|
||||
input#email_diplomatNews(name="email_diplomatNews", type="checkbox", checked=subs.diplomatNews, disabled="true")
|
||||
.form-group.checkbox
|
||||
label.control-label(for="email_ambassadorNews")
|
||||
span.spr(data-i18n="classes.ambassador_title")
|
||||
| Ambassador
|
||||
span(data-i18n="classes.ambassador_title_description")
|
||||
| (Support)
|
||||
input#email_ambassadorNews(name="email_ambassadorNews", type="checkbox", checked=subs.ambassadorNews, disabled="true")
|
||||
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h3.panel-title
|
||||
a(href="account/settings#password") Password
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h3.panel-title
|
||||
a(href="account/settings#job-profile") Job Profile
|
||||
.col-sm-6
|
||||
h2 Recently Played
|
||||
hr
|
||||
|
||||
//block content
|
||||
h2 Account
|
||||
div
|
||||
.col-sm-3.text-center
|
||||
img#avatar(src="#{me.getPhotoURL(100)}")
|
||||
h3=me.get('name') || 'Anoner'
|
||||
|
@ -10,11 +102,22 @@ block content
|
|||
dl.dl-horizontal
|
||||
if me.get('firstName') || me.get('lastName')
|
||||
dt Full name
|
||||
dd=me.get('firstName') + ' ' + me.get('lastName')
|
||||
dd=me.get('firstName') || '' + ' ' + me.get('lastName') || ''
|
||||
dt Email
|
||||
dd
|
||||
span.spr=me.get('email')
|
||||
span (subscriptions)
|
||||
//span (subscriptions)
|
||||
hr
|
||||
- var dateCreated = me.get('dateCreated');
|
||||
- var signedCLA = me.get('signedCLA');
|
||||
- console.log(moment)
|
||||
dt Member since
|
||||
dd= moment(dateCreated).format('MMMM Do YYYY')
|
||||
if signedCLA
|
||||
dt Signed CLA
|
||||
dd= moment(signedCLA).format('MMMM Do YYYY')
|
||||
|
||||
// TODO Have social network icons here for easy linking
|
||||
|
||||
.col-sm-3
|
||||
h3 Account
|
||||
|
@ -33,3 +136,5 @@ block content
|
|||
a Statistics
|
||||
li
|
||||
a Code
|
||||
|
||||
|
||||
|
|
|
@ -35,12 +35,6 @@ body
|
|||
else
|
||||
span.glyphicon.glyphicon-user
|
||||
|
||||
//else
|
||||
button.btn.btn-primary.navbuttontext.header-font.auth-button
|
||||
span(data-i18n="login.log_in") Log In
|
||||
span.spr.spl /
|
||||
span(data-i18n="login.sign_up") Create Account
|
||||
|
||||
ul(class='navbar-link-text').nav.navbar-nav.pull-right
|
||||
li.play
|
||||
a.header-font(href='/play', data-i18n="nav.play") Levels
|
||||
|
@ -53,7 +47,7 @@ body
|
|||
img.account-settings-image(src=me.getPhotoURL(18), alt="")
|
||||
else
|
||||
i.glyphicon.glyphicon-user
|
||||
.navbuttontext-account(data-i18n="nav.account") Account
|
||||
.navbuttontext-account(data-i18n="nav.account" href="/account") Account
|
||||
span.caret
|
||||
ul.dropdown-menu(role="menu")
|
||||
li.user-dropdown-header
|
||||
|
@ -65,12 +59,18 @@ body
|
|||
.col-xs-4.text-center
|
||||
a(href="#") Stats
|
||||
.col-xs-4.text-center
|
||||
a.disabled(href="#") Code
|
||||
a.disabled() Code
|
||||
li.user-dropdown-footer
|
||||
.pull-left
|
||||
a.btn.btn-default.btn-flat(href="") Account
|
||||
a.btn.btn-default.btn-flat(href="/account") Account
|
||||
.pull-right
|
||||
a.btn.btn-default.btn-flat(href="") Log Out
|
||||
button#logout-button.btn.btn-default.btn-flat(data-i18n="login.log_out") Log Out
|
||||
else
|
||||
li
|
||||
button.btn.btn-primary.navbuttontext.header-font.auth-button
|
||||
span(data-i18n="login.log_in") Log In
|
||||
span.spr.spl /
|
||||
span(data-i18n="login.sign_up") Create Account
|
||||
|
||||
block outer_content
|
||||
#outer-content-wrapper
|
||||
|
|
|
@ -12,6 +12,12 @@ module.exports = class AccountHomeView extends View
|
|||
super options
|
||||
return unless me
|
||||
|
||||
getRenderData: ->
|
||||
c = super()
|
||||
c.subs = {}
|
||||
c.subs[sub] = 1 for sub in c.me.getEnabledEmails()
|
||||
c
|
||||
|
||||
afterRender: ->
|
||||
super()
|
||||
@openModelView new AuthModalView if me.isAnonymous()
|
||||
|
|
|
@ -42,4 +42,6 @@ LevelSessionSchema.pre 'save', (next) ->
|
|||
delete previous[id] if initd
|
||||
next()
|
||||
|
||||
LevelSessionSchema.index {user: 1, changed: -1}, {sparse: true, name: 'last played index'}
|
||||
|
||||
module.exports = LevelSession = mongoose.model('level.session', LevelSessionSchema, 'level.sessions')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue