script(type='text/ng-template', id='modals/member.html') .modal-header h4 span {{::profile.profile.name}} span(ng-if='::contribText && profile.contributor.level') - {{::contribText(profile.contributor, profile.backer)}} .modal-body .container-fluid .row .col-md-6 img.img-rendering-auto(ng-show='::profile.profile.imageUrl', ng-src='{{::profile.profile.imageUrl}}') markdown(ng-show='::profile.profile.blurb', text='::profile.profile.blurb') ul.muted.list-unstyled(ng-if='::profile.auth.timestamps') li {{profile._id}} li(ng-show='::profile.auth.timestamps.created') |  =env.t('memberSince') |  | {{::profile.auth.timestamps.created | date:user.preferences.dateFormat}} - li(ng-show='::profile.auth.timestamps.loggedin') |  =env.t('lastLoggedIn') |  | {{::profile.auth.timestamps.loggedin | date:user.preferences.dateFormat}} - h3=env.t('stats') // @TODO: Figure out why this isn't showing up in front page .label.label-info {{:: {warrior:env.t("warrior"), wizard:env.t("mage"), rogue:env.t("rogue"), healer:env.t("healer")}[profile.stats.class] }} include ../profiles/stats .col-md-6 .row +herobox() .row h3=env.t('achievements') include ../profiles/achievements .modal-footer .btn-group.pull-left(ng-if='::user') button.btn.btn-md.btn-default(ng-if='user.inbox.blocks | contains:profile._id', tooltip=env.t('unblock'), ng-click="User.blockUser({params:{uuid:profile._id}})", tooltip-placement='right') span.glyphicon.glyphicon-plus button.btn.btn-md.btn-default(ng-if='profile._id != user._id && !profile.contributor.admin && !(user.inbox.blocks | contains:profile._id)', tooltip=env.t('block'), ng-click="User.blockUser({params:{uuid:profile._id}})", tooltip-placement='right') span.glyphicon.glyphicon-ban-circle button.btn.btn-md.btn-default(tooltip=env.t('sendPM'), ng-click="openModal('private-message',{controller:'MemberModalCtrl'})", tooltip-placement='right') span.glyphicon.glyphicon-envelope button.btn.btn-md.btn-default(tooltip=env.t('sendGift'), ng-click="openModal('send-gift',{controller:'MemberModalCtrl'})", tooltip-placement='right') span.glyphicon.glyphicon-gift button.btn.btn-default(ng-click='$close()')=env.t('close') script(type='text/ng-template', id='modals/private-message.html') .modal-header h4=env.t('pmHeading', {name: "{{profile.profile.name}}"}) .modal-body textarea.form-control(type='text',rows='5',ui-keydown='{"meta-enter":"sendPrivateMessage(profile._id, _message)"}',placeholder=env.t('needsTextPlaceholder'),ng-model='_message', focus-element='true') include ../formatting-help .modal-footer //- Due to a quirk in Bootstrap UI, we need to wrap this so the tooltip can //- appear when the button is disabled. // //- Source: http://getbootstrap.com/javascript/#tooltips // "Tooltips on disabled elements require wrapper elements" // .disabled-tooltip-wrapper(tooltip="{{_message ? '' : env.t('needsText')}}") button.btn.btn-primary(ng-disabled='!_message',ng-click='sendPrivateMessage(profile._id, _message)')=env.t("send") button.btn.btn-default(ng-click='$close()')=env.t('cancel') script(type='text/ng-template', id='modals/send-gift.html') .modal-header h4=env.t('sendGiftHeading', {name: "{{::profile.profile.name}}"}) .modal-body .panel.panel-default(class="{{gift.type=='gems' ? 'panel-primary' : 'transparent'}}", ng-click='gift.type="gems"') .panel-heading .pull-right span(ng-show='gift.gems.fromBalance')=env.t('sendGiftGemsBalance', {number: "{{::user.balance*4}}"}) span(ng-hide='gift.gems.fromBalance')=env.t('sendGiftCost', {cost: "{{gift.gems.amount/4}}"}) =env.t('gemsPopoverTitle') .panel-body .row .col-md-6 .form-group input.form-control(type='number', placeholder='Number of Gems', min='0', max='{{gift.gems.fromBalance ? user.balance*4 : ""}}', ng-model='gift.gems.amount') .col-md-6 .btn-group a.btn.btn-default(ng-class="{active:gift.gems.fromBalance}", ng-click="gift.gems.fromBalance=true")=env.t('sendGiftFromBalance') a.btn.btn-default(ng-class="{active:!gift.gems.fromBalance}", ng-click="gift.gems.fromBalance=false")=env.t('sendGiftPurchase') .panel.panel-default(class="{{gift.type=='subscription' ? 'panel-primary' : 'transparent'}}", ng-click='gift.type="subscription"') .panel-heading=env.t('subscription') .panel-body .form-group .radio(ng-repeat='block in Content.subscriptionBlocks | toArray | omit:"discount==true" | orderBy:"months"') label input(type="radio", name="subRadio", ng-value="block.key", ng-model='gift.subscription.key') =env.t('sendGiftSubscription', {price: '{{::block.price}}', months: '{{::block.months}}'}) textarea.form-control(rows='3', ng-model='gift.message', placeholder=env.t('sendGiftMessagePlaceholder')) include ../formatting-help .modal-footer - var fromBal = "gift.type=='gems' && gift.gems.fromBalance" button.btn.btn-primary(ng-show=fromBal, ng-click='sendGift(profile._id)')=env.t("send") a.btn.btn-primary(ng-hide=fromBal, ng-click='Payments.showStripe({gift:gift, uuid:profile._id})')=env.t('card') a.btn.btn-warning(ng-hide=fromBal, href='/paypal/checkout?_id={{::user._id}}&apiToken={{::User.settings.auth.apiToken}}&gift={{Payments.encodeGift(profile._id, gift)}}') PayPal .btn.btn-success(ng-hide=fromBal, ng-click="Payments.amazonPayments.init({type: 'single', gift: gift, giftedTo: profile._id})") Amazon Payments button.btn.btn-default(ng-click='$close()')=env.t('cancel') script(type='text/ng-template', id='modals/abuse-flag.html') .modal-header h4!=env.t('abuseFlagModalHeading', {name: "{{profile.profile.name}}"}) .modal-body blockquote markdown(text="abuseObject.text") p!=env.t('abuseFlagModalBody', {firstLinkStart: "", secondLinkStart: "", linkEnd: ""}) .modal-footer button.pull-left.btn.btn-danger(ng-click='clearFlagCount(abuseObject, groupId)', ng-if='user.contributor.admin && abuseObject.flagCount > 0') | Reset Flag Count button.btn.btn-primary(ng-click='$close()')=env.t('cancel') button.btn.btn-danger(ng-click='reportAbuse(user, abuseObject, groupId)')=env.t("abuseFlagModalButton") script(type='text/ng-template', id='modals/remove-member.html') .modal-header.text-center h4=env.t('sureKick') p.lead: strong {{::removeMemberData.member.profile.name}} .modal-body textarea.form-control(type='text',rows='5',placeholder=env.t('optionalMessage'),ng-model='removeMemberData.message') .modal-footer button.pull-left.btn.btn-danger(ng-click='confirmRemoveMember(true); $close()')=env.t('yesRemove') button.btn.btn-default(ng-click='confirmRemoveMember(false); $close()')=env.t('cancel')