Half the account page is there

This commit is contained in:
Ruben Vereecken 2014-07-16 12:39:18 +02:00
parent 0288786098
commit 023a7adc81
7 changed files with 146 additions and 31 deletions
app
styles
templates
views/account
server/levels/sessions

View file

@ -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

View file

@ -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

View file

@ -1,5 +0,0 @@
#account-home-view
.main-content-area
padding: 20px 20px
img#avatar
width: 150px

View file

@ -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

View file

@ -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

View file

@ -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()

View file

@ -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')