// @TODO ui:connectionAlert .header-wrap a.label.undo-button(x-bind='click:undo', ng-show='_undo') Undo include ./menu header.site-header(ng-class='{hidden: user.preferences.hideHeader}', role='banner', data-partysize='{{party.members.length>1 ? truarr(party.members.length) : 0}}') // avatar .herobox-wrap.main-herobox(ng-controller='UserAvatarCtrl') include ./avatar //app:avatar:avatar(profile='{{user}}', main='true') // stat bars .hero-stats .meter.health(title='Health') .bar(style='width: {{percent(user.stats.hp, 50)}}%;') span.meter-text i.icon-heart {{user.stats.hp | number:0}} / 50 .meter.experience(title='Experience') .bar(style='width: {{percent(user.stats.exp,tnl(user.stats.lvl))}}%;') span.meter-text i.icon-star {{user.stats.exp | number:0}} / {{tnl(user.stats.lvl)}} // FIXME doesn't look great here, but the "Experience" CSS title rollover covers it where it was before span(ng-show='user.history.exp') a(x-bind='click:toggleChart', data-id='exp', tooltip='Progress') i.icon-signal // party // I have an idea to use this loop for the user's herobox/avatar as well NOTE TO SELF: Ask Tyler if some kind of inter-leaving is possible where we can put ONE of the results of this loop BEFORE the progress bars, and the rest after .herobox-wrap(ng-repeat='memberId in _party.members', ng-class='{hidden: memberId == userId}') app:avatar:avatar(ng-hide='memberId == userId', profile='{{_members[memberId]}}', party='true') // Would be way cleaner as a Derby template `data-content=""`, but it was just printing HTML as text // I've re-implemented the rollover using the actual `herobox`/avatar template and data-attributes. This Derby template idea would have been really handy but this is pretty versatile, and keeps it all in the avatar section app:alerts:hiding-bailey