extends /templates/common/user block append content ol.breadcrumb li a(href="/") span.glyphicon.glyphicon-home li a(href="/account", data-i18n="nav.account") li.active(data-i18n="nav.profile") if user .vertical-buffer .row .left-column .profile-wrapper img.picture(src="#{user.getPhotoURL(150)}" alt="") div.profile-info h3.name= user.get('name') if favoriteLanguage div.extra-info span(data-i18n="user.favorite_prefix") Favorite language is strong.favorite-language= favoriteLanguage span(data-i18n="user.favorite_postfix") . if playerLevel div.extra-info span.spr(data-i18n="general.player_level") Level strong= playerLevel - var emails = user.getEnabledEmails() // TODO: fix this, use some other method for finding contributor classes other than email settings, since they're private... Maybe achievements? if emails ul.contributor-categories //li.contributor-category img.contributor-image(src="/images/pages/user/general.png") h4.contributor-title CodeCombateer if emails.adventurerNews li.contributor-category img.contributor-image(src="/images/pages/user/adventurer.png") h4.contributor-title a(href="/contribute#adventurer" data-i18n="classes.adventurer_title") Adventurer if emails.ambassadorNews li.contributor-category img.contributor-image(src="/images/pages/user/ambassador.png") h4.contributor-title a(href="/contribute#ambassador" data-i18n="classes.ambassador_title") Ambassador if emails.archmageNews li.contributor-category img.contributor-image(src="/images/pages/user/archmage.png") h4.contributor-title a(href="/contribute#archmage" data-i18n="classes.archmage_title") Archmage if emails.artisanNews li.contributor-category img.contributor-image(src="/images/pages/user/artisan.png") h4.contributor-title a(href="/contribute#artisan" data-i18n="classes.artisan_title") Artisan if emails.scribeNews li.contributor-category img.contributor-image(src="/images/pages/user/scribe.png") h4.contributor-title a(href="/contribute#scribe" data-i18n="classes.scribe_title") Scribe .right-column .panel.panel-default .panel-heading h3.panel-title(data-i18n="clans.clans") Clans if (!clans) .panel-body p(data-i18n="common.loading") else if (clans.length) table.table tr th.col-xs-4(data-i18n="clans.name") Name th.col-xs-4(data-i18n="clans.chieftain") Chieftain th.col-xs-4(data-i18n="play.heroes") Heroes each clan in clans tr td a(href="/clans/#{clan.id}")= clan.get('name') td if idNameMap && idNameMap[clan.get('ownerID')] a(href="/user/#{clan.get('ownerID')}")= idNameMap[clan.get('ownerID')] else a(href="/user/#{clan.get('ownerID')}") Anoner td= clan.get('members').length else .panel-body p(data-i18n="user.not_member_of_clans") Not a member of any clans yet. .panel.panel-default .panel-heading h3.panel-title(data-i18n="user.singleplayer_title") Singleplayer Levels if (!singlePlayerSessions) .panel-body p(data-i18n="common.loading") Loading... else if (singlePlayerSessions.length) table.table tr th.col-xs-4(data-i18n="resources.level") Level th.col-xs-4(data-i18n="user.last_played") Last Played th.col-xs-4(data-i18n="user.status") Status - var count = 0 each session, index in singlePlayerSessions if session.get('levelName') tr(class=count > 4 ? 'hide' : '') - count++; td a(href="/play/level/#{session.get('levelID')}")= session.get('levelName') td= moment(session.get('changed')).fromNow() if session.get('state') && session.get('state').complete === true td(data-i18n="user.status_completed") Completed else td(data-i18n="user.status_unfinished") Unfinished if count > 4 .panel-footer button.btn.btn-info.btn-sm.more-button(data-i18n="editor.more") else .panel-body p(data-i18n="user.no_singleplayer") No Singleplayer games played yet. .panel.panel-default .panel-heading h3.panel-title(data-i18n="user.multiplayer_title") Multiplayer Levels if (!multiPlayerSessions) .panel-body p(data-i18n="common.loading") Loading... else if (multiPlayerSessions.length) table.table tr th.col-xs-4(data-i18n="resources.level") Level th.col-xs-4(data-i18n="user.last_played") Last Played th.col-xs-4(data-i18n="general.score") Score each session, index in multiPlayerSessions tr(class=index > 4 ? 'hide' : '') td - var posturl = '' - if (session.get('team')) posturl = '?team=' + session.get('team') a(href="/play/level/#{session.get('levelID') + posturl}")= session.get('levelName') + (session.get('team') ? ' (' + session.get('team') + ')' : '') td= moment(session.get('changed')).fromNow() if session.get('totalScore') td= parseInt(session.get('totalScore') * 100) else td(data-i18n="user.status_unfinished") Unfinished if multiPlayerSessions.length > 4 .panel-footer button.btn.btn-info.btn-sm.more-button(data-i18n="editor.more") else .panel-body p(data-i18n="user.no_multiplayer") No Multiplayer games played yet. .panel.panel-default .panel-heading h3.panel-title(data-i18n="user.achievements_title") Achievements if ! earnedAchievements .panel-body p(data-i18n="common.loading") Loading... else if ! earnedAchievements.length .panel-body p(data-i18n="user.no_achievements") No achievements earned so far. else table.table tr th.col-xs-4(data-i18n="achievements.achievement") Achievement th.col-xs-4(data-i18n="achievements.last_earned") Last Earned th.col-xs-4(data-i18n="achievements.amount_achieved") Amount each achievement, index in earnedAchievements.models tr(class=index > 4 ? 'hide' : '') td= achievement.get('achievementName') td= moment(achievement.get('changed')).format("MMMM Do YYYY") if achievement.get('achievedAmount') td= achievement.get('achievedAmount') else td if earnedAchievements.length > 4 .panel-footer button.btn.btn-info.btn-sm.more-button(data-i18n="editor.more")