improve(translations): merge pr and lots of fixes

This commit is contained in:
Matteo Pagliazzi
2014-01-23 17:02:16 +01:00
11 changed files with 197 additions and 186 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
p.muted(ng-show='questCount < 1')=env.t('noScrolls')
p.muted!=env.t('scrollsText1') + ' <a href="/#/options/groups/party">' + env.t('scrollsText2') + '</a>'
div(ng-repeat='(quest_key,points) in ownedItems(user.items.quests)', ng-init='quest = Content.quests[quest_key]')
button.customize-option(popover=('{{quest.previous && !user.achievements.quests[quest.previous] ? "' + env.t('scrollsPre') + '" : quest.notes}}'), popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='showQuest(quest_key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes}}", popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='showQuest(quest_key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
.badge.badge-info.stack-count {{points}}
li.customize-menu
+3 -4
View File
@@ -1,8 +1,7 @@
// ------ Challenges -------
.modal(style='position: relative;top: auto;left: auto;right: auto;margin: 0 auto 20px;z-index: 1;max-width: 100%;')
.modal-header
h3
| Challenges
h3=env.t('challenges')
a.pull-right(target='_blank', href='https://trello.com/card/challenges-individual-party-guild-public/50e5d3684fe3a7266b0036d6/58')
i.icon-question-sign
.modal-body(bindonce='group.challenges')
@@ -12,5 +11,5 @@
td
a(ui-sref='options.social.challenges.detail({cid:challenge._id})') {{challenge.name}}
div(ng-if='group.challenges.length == 0')
p.
No challenges yet, visit <a class='label' ui-sref='options.social.challenges'><i class=icon-bullhorn></i> Challenges</a> to create one.
p
=env.t('noChallenges') + " <a class='label' ui-sref='options.social.challenges'><i class=icon-bullhorn></i> " + env.t('challenges') + "</a> " + env.t('toCreate')
+45 -42
View File
@@ -1,12 +1,12 @@
script(type='text/ng-template', id='partials/options.social.challenges.detail.close.html')
a.btn.btn-small.btn-danger(ng-click="delete(closingChal)") Delete
h5 - Or -
select(ui-select2, ng-required=true, ng-model='closingChal.winner', data-placeholder='Select winner, close challenge', ng-change='selectWinner(closingChal)', )
a.btn.btn-small.btn-danger(ng-click="delete(closingChal)")=env.t('delete')
h5=env.t('minusOr')
select(ui-select2, ng-required=true, ng-model='closingChal.winner', data-placeholder=env.t('selectWinner'), ng-change='selectWinner(closingChal)', )
option(value='')
option(ng-repeat='u in closingChal.members', value='{{u._id}}') {{u.profile.name}}
small.pull-right
a(ng-click='cancelClosing(closingChal)') cancel
a(ng-click='cancelClosing(closingChal)')=env.t('cancel')
script(type='text/ng-template', id='partials/options.social.challenges.detail.member.html')
.modal.wide-modal
@@ -16,43 +16,44 @@ script(type='text/ng-template', id='partials/options.social.challenges.detail.me
.modal-body
habitrpg-tasks(main=false)
.modal-footer
a.btn(ng-click='$state.go("^")') Close
a.btn(ng-click='$state.go("^")')=env.t('close')
script(type='text/ng-template', id='partials/options.social.challenges.detail.html')
// Edit button
div(bindonce='challenge', ng-if='challenge.leader==user._id')
ul.unstyled
li(ng-hide='challenge._locked==false')
button.btn.btn-small.btn-default(ng-click='challenge._locked = false') Edit
button.btn.btn-small.btn-warning(ng-click='close(challenge, $event)', tooltip='Delete or select winner') End Challenge
button.btn.btn-small.btn-default(ng-click='challenge._locked = false')=env.t('edit')
button.btn.btn-small.btn-warning(ng-click='close(challenge, $event)', tooltip=env.t('deleteOrSelect'))=env.t('endChallenge')
li(ng-show='challenge._locked==false')
button.btn.btn-small.btn-primary(ng-click='save(challenge)') Save
button.btn.btn-small.btn-default(ng-click='challenge._locked=true') Cancel
button.btn.btn-small.btn-primary(ng-click='save(challenge)')=env.t('save')
button.btn.btn-small.btn-default(ng-click='challenge._locked=true')=env.t('cancel')
div(ng-show='challenge._locked==false')
.-options
input.option-content(type='text', ng-model='challenge.name')
.option-medium
input.option-content(type='text', minlength="3", maxlength="16", ng-model='challenge.shortName', placeholder='Tag Name', required)
textarea.option-content(cols='3', placeholder='Description', ng-model='challenge.description')
input.option-content(type='text', minlength="3", maxlength="16", ng-model='challenge.shortName', placeholder=env.t('challengeTag'), required)
textarea.option-content(cols='3', placeholder=env.t('challengeDescr'), ng-model='challenge.description')
hr
.well(bindonce='challenge', ng-if='challenge.description')
markdown(ng-model='challenge.description')
i.icon-question-sign(popover="These are the challenge's tasks. As users participate, they will change color and gain graphs to show you the overall progress of the group.", popover-trigger='mouseenter', popover-placement='right')
i.icon-question-sign(popover=env.t('challengeDiscription'), popover-trigger='mouseenter', popover-placement='right')
habitrpg-tasks(obj='challenge', main=false)
// Member List
div(bindonce='challenge', ng-if='challenge.members.length > 0')
a.btn.btn-primary.btn-small.pull-right(href='/api/v2/challenges/{{challenge._id}}/csv') Export to CSV
h3 How's Everyone Doing?
a.btn.btn-primary.btn-small.pull-right(href='/api/v2/challenges/{{challenge._id}}/csv')
=env.t('exportChallengeCSV')
h3=env.t('hows')
menu
button.customize-option(ng-repeat='member in challenge.members', ng-click='toggleMember(challenge._id, member._id)') {{member.profile.name}}
div(ui-view)
// Accordion version if we choose that instead
//- div(ng-if='challenge.members')
h4 How's Everyone Doing?
h4=env.t('hows')
.accordion-group(bindonce='challenge.members', ng-repeat='member in challenge.members')
.accordion-heading
a.accordion-toggle(ng-click='toggleMember(challenge._id, member._id)') {{member.profile.name}}
@@ -63,59 +64,59 @@ script(type='text/ng-template', id='partials/options.social.challenges.detail.ht
script(type='text/ng-template', id='partials/options.social.challenges.html')
.row-fluid
.span2.well#challenges-filters
h3 Filter:
h4 Groups
h3=env.t('filter') + ':'
h4=env.t('groups')
ul.unstyled
a.btn.btn-mini.pull-left(ng-click='selectAll()') All
a.btn.btn-mini(ng-click='selectNone()') None
a.btn.btn-mini.pull-left(ng-click='selectAll()')=env.t('all')
a.btn.btn-mini(ng-click='selectNone()')=env.t('noNone')
br
label.checkbox(ng-repeat='group in groupsFilter')
input(type='checkbox', ng-model='search.group[group._id]')
| {{group.name}}
h4 Membership
h4=env.t('membership')
label.radio
input(type='radio', name='search-participation-radio', ng-click='search._isMember = true')
| Participating
=env.t('participating')
label.radio
input(type='radio', name='search-participation-radio', ng-click='search._isMember = false')
| Not Participating
=env.t('notParticipating')
label.radio
input(type='radio', name='search-participation-radio', ng-click='search._isMember = undefined', checked='checked')
| Either
=env.t('either')
.span10
// Creation form
button.btn.btn-success#create-challenge-btn(ng-click='create()', ng-hide='newChallenge') Create Challenge
button.btn.btn-success#create-challenge-btn(ng-click='create()', ng-hide='newChallenge')=env.t('createChallenge')
.create-challenge-from.well(ng-if='newChallenge')
form(ng-submit='save(newChallenge)')
div
input.btn.btn-success(type='submit', value='Save')
input.btn.btn-danger(type='button', ng-click='discard()', value='Discard')
input.btn.btn-success(type='submit', value=env.t('save'))
input.btn.btn-danger(type='button', ng-click='discard()', value=env.t('discard'))
select(ng-model='newChallenge.group', ng-required='required', name='Group', ng-options='g._id as g.name for g in groups')
.challenge-options
input.option-content(type='text', ng-model='newChallenge.name', placeholder='Challenge Title', required='required')
input.option-content(type='text', ng-model='newChallenge.name', placeholder=env.t('challengeTitle'), required='required')
.option-medium
input.option-content(type='text', minlength="3", maxlength="16", ng-model='newChallenge.shortName', placeholder='Tag Name', required)
input.option-content(type='text', minlength="3", maxlength="16", ng-model='newChallenge.shortName', placeholder=env.t('challengeTag'), required)
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Tags')
i.icon-question-sign(popover="Challenges appear on tag-lists & task-tooltips. So while you'll want a descriptive title above, you'll also need a 'short name'. Eg, 'Lose 10 pounds in 3 months' might become '-10lb' (Click the '?' for more info).", popover-trigger='mouseenter', popover-placement='right')
i.icon-question-sign(popover=env.t('challengeTagPop'), popover-trigger='mouseenter', popover-placement='right')
textarea.option-content(cols='3', placeholder='Description', ng-model='newChallenge.description')
textarea.option-content(cols='3', placeholder=env.t('challengeDescr'), ng-model='newChallenge.description')
//- what's going on here?
br
br
.option-medium
input.option-content(type='number', min="{{newChallenge.group=='habitrpg' ? 1 : 0}}", max="{{maxPrize}}", ng-model='newChallenge.prize', placeholder='Prize')
input.option-content(type='number', min="{{newChallenge.group=='habitrpg' ? 1 : 0}}", max="{{maxPrize}}", ng-model='newChallenge.prize', placeholder=env.t('prize'))
span.input-suffix.Pet_Currency_Gem1x.inline-gems
i.icon-question-sign(popover="If someone can 'win' your challenge, you can optionally award that winner a Gem prize. Max = #gems you own (+ guild.gems, if you created this challenge's guild). Note: This prize can't be changed later.", popover-trigger='mouseenter', popover-placement='right')
span(ng-show='newChallenge.group=="habitrpg"').
&nbsp;Minimum 1 Gem for <strong>public challenges</strong> (helps prevent spam, it really does).
i.icon-question-sign(popover=env.t('prizePop'), popover-trigger='mouseenter', popover-placement='right')
span(ng-show='newChallenge.group=="habitrpg"')
=env.t('min1Gem') + ' <strong>' + env.t('publicChallenges') + '</strong> ' + env.t('helpsPrevent')
.option-medium(ng-if='user.contributor.admin')
label.checkbox
input(type='checkbox', ng-model='newChallenge.official')
| Official HabitRPG Challenge
=env.t('officialChallenge')
habitrpg-tasks(main=false, obj='newChallenge')
@@ -124,12 +125,14 @@ script(type='text/ng-template', id='partials/options.social.challenges.html')
.accordion-heading
ul.pull-right.challenge-accordion-header-specs
li(ng-if='challenge.official')
span.label.label-success Official HabitRPG Challenge
span.label.label-success=env.t('officialChallenge')
li {{challenge.group.name}}
li
| by&nbsp;
=env.t('by')
strong {{challenge.leader.profile.name}}
li {{challenge.memberCount}} Participants
li
| {{challenge.memberCount}}
= ' ' + env.t('participants')
li(ng-show='challenge.prize')
// prize
table(ng-show='challenge.prize')
@@ -137,16 +140,16 @@ script(type='text/ng-template', id='partials/options.social.challenges.html')
td {{challenge.prize}}
td
.Pet_Currency_Gem1x(style='margin-left:0px')
td Prize
td=env.t('prize')
li
// leave / join
a.btn.btn-small.btn-danger(ng-show='challenge._isMember', ng-click='clickLeave(challenge, $event)')
i.icon-ban-circle
| Leave
=env.t('leave')
a.btn.btn-small.btn-success(ng-hide='challenge._isMember', ng-click='join(challenge)')
i.icon-ok
| Join
=env.t('join')
a.accordion-toggle(ng-click='toggle(challenge._id)') {{challenge.name}}
.accordion-body(ng-class='{collapse: !$stateParams.cid == challenge._id}')
.accordion-inner(ng-if='$stateParams.cid == challenge._id')
div(ui-view)
div(ui-view)
+3 -3
View File
@@ -10,7 +10,7 @@ form.chat-form(ng-submit='postChat(group,message.content)')
table.pull-right
tr
td
input.btn.chat-btn(type='submit', value='Send Chat', ng-class='{disabled: _sending == true}')
input.btn.chat-btn(type='submit', value=env.t('sendChat'), ng-class='{disabled: _sending == true}')
td
button.btn(type="button", ng-click='sync(group)', tooltip='Fetch Recent Messages')
i(class='pull-right icon-refresh')
button.btn(type="button", ng-click='sync(group)', tooltip=env.t('toolTipMsg'))
i(class='pull-right icon-refresh')
+2 -2
View File
@@ -9,6 +9,6 @@ li.chat-message(bindonce='group.chat', ng-repeat='message in group.chat', bo-cla
a.label(ng-show='countExists(message.likes)',ng-class='{"label-success":message.likes[user._id]}',ng-click='likeChatMessage(group,message)') +{{countExists(message.likes)}}
a.chat-plus-one.muted(ng-show='!countExists(message.likes)',ng-click='likeChatMessage(group,message)',style='background-color:#eee;padding:3px 3px 0px 3px') +1
a(bo-show='user.contributor.admin || message.uuid == user.id', ng-click='deleteChatMessage(group, message)',style='padding: 0px 3px')
i.icon-trash(tooltip='Delete')
i.icon-trash(tooltip=env.t('delete'))
a.label.chat-message(bo-show='message.user', class='float-label', bo-class='{"label-npc": message.backer.npc, "label-contributor-{{message.contributor.level}}":message.contributor.level}', ng-click='clickMember(message.uuid, true)')
span(tooltip='{{contribText(message.contributor, message.backer)}}') {{message.user}}&nbsp;
span(tooltip='{{contribText(message.contributor, message.backer)}}') {{message.user}}&nbsp;
+8 -9
View File
@@ -5,22 +5,21 @@ form.form-horizontal(ng-submit='create(newGroup)')
.controls
input#new-group-name.input-medium.option-content(required, type='text', placeholder='{{text}} Name', ng-model='newGroup.name')
.control-group
label.control-label(for='new-group-description') Description
label.control-label(for='new-group-description')=env.t('description')
.controls
textarea#new-group-description.option-content(cols='3', placeholder='Description', ng-model='newGroup.description')
textarea#new-group-description.option-content(cols='3', placeholder=env.t('description'), ng-model='newGroup.description')
.control-group(ng-show='type=="guild"')
.controls
label.radio
input(type='radio', name='new-group-privacy', value='public', ng-model='newGroup.privacy')
| Public
=env.t('public')
label.radio
input(type='radio', name='new-group-privacy', value='private', ng-model='newGroup.privacy')
| Invite Only
input.btn(type='submit', ng-disabled='!newGroup.privacy && !newGroup.name', value='Create')
span.gem-cost 4 Gems
=env.t('inviteOnly')
input.btn(type='submit', ng-disabled='!newGroup.privacy && !newGroup.name', value=env.t('create'))
span.gem-cost= '4 ' + env.t('gems')
p
small
| The Gem cost promotes high quality Guilds, and is transferred into your Guild's bank for use as prizes in Guild Challenges!
small=env.t('gemCost')
.control-group(ng-show='type=="party"')
.controls
input.btn(type='submit', value='Create')
input.btn(type='submit', value=env.t('create'))
+37 -34
View File
@@ -1,8 +1,9 @@
a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank', popover='Gems which your guild leader can use for challenge prizes.', popover-placement='left', popover-html='true')
a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guildBankPop1'), popover=env.t('guildBankPop2'), popover-placement='left', popover-html='true')
// <span class="task-action-btn tile flush bright add-gems-btn"></span>
span.task-action-btn.tile.flush.neutral
.Pet_Currency_Gem2x.Gems
| {{group.balance * 4 | number:0 }} Guild Gems
| {{group.balance * 4 | number:0 }}
=env.t('guildGems')
.row-fluid
.span4
@@ -10,18 +11,18 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
// ------ Bosses -------
.modal.inline-modal(bindonce='group', ng-if='group.type==="party" && group.quest.key')
.modal-header
h3(ng-if='group.quest.active==false') Quest Invitation: {{Content.quests[group.quest.key].text}}
h3(ng-if='group.quest.active==false')=env.t('questInv') + '{{Content.quests[group.quest.key].text}}'
h3(ng-if='group.quest.active==true') {{Content.quests[group.quest.key].text}}
.modal-body
div(ng-if='group.quest.active==false')
table.table.table-striped
tr(ng-repeat='member in group.members')
td {{member.profile.name}}
td {{group.quest.members[member._id] === true ? 'Accepted' : group.quest.members[member._id] === false ? 'Rejected' : 'Pending'}}
td {{group.quest.members[member._id] === true ? env.t('accepted') : group.quest.members[member._id] === false ? env.t('rejected') : env.t('pending')}}
hr
.npc_ian.pull-left
p Once all members have either accepted or rejected, the quest begins. Only those that clicked "accept" will be able to participate in the quest and recieve the drops. If members are pending too long (inactive?), you can start without them by clicking "Begin".
button.btn.btn-small.btn-warning(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='party.$questAccept({"force":true})') Begin
p=env.t('questStart')
button.btn.btn-small.btn-warning(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='party.$questAccept({"force":true})')=env.t('begin')
//-TODO Cancel button
//-TODO Both force-start & cancel should only be available to quest-initiator
@@ -35,14 +36,14 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
i.icon-heart
| {{group.quest.hp | number:0}} / {{Content.quests[group.quest.key].hp}}
.hero-stats
.meter.health(title='Boss Health')
.meter.health(title=env.t('bossHP'))
.bar(style='width: {{Shared.percent(group.quest.progress.hp, Content.quests[group.quest.key].boss.hp)}}%;')
span.meter-text
i.icon-heart
| {{group.quest.progress.hp | number:0}} / {{Content.quests[group.quest.key].boss.hp}}
div(ng-if='Content.quests[group.quest.key].collect')
h4 Collected:
h4=env.t('collected') + ':'
table.table.table-striped
tr(ng-repeat='(k,v) in group.quest.progress.collect')
td
@@ -52,7 +53,7 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
p {{Content.quests[group.quest.key].notes}}
hr
h5 Participants
h5=env.t('participants')
table.table.table-striped
tr(ng-repeat='(k,v) in group.members', ng-show='group.quest.members[v._id]')
td {{v.profile.name}}
@@ -60,39 +61,39 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
div(ng-if='Content.quests[group.quest.key].boss')
.npc_ian.pull-left
p To hurt a boss, complete your Dailies and To-Dos. Higher task damage means higher boss damage (completing reds, Wizard spells, Warrior attacks, etc). The boss will deal damage to the party for every Daily you've missed (multiplied by the boss's Strength), so help your friends by completing your dailies! <strong>All damage to and from a boss is tallied on cron (your day roll-over).</strong>
p=env.t('bossDmg1') + ' <strong>' + env.t('bossDmg2') + '</strong>'
br
p Only participants will fight the boss and share in the quest loot. If you die during a boss-battle, you get booted from the battle. If everyone dies once, the quest fails.
p=env.t('bossDmg3')
div(ng-if='Content.quests[group.quest.key].collect')
.npc_ian.pull-left
p To collect items, do your positive tasks. Quest items drop just like normal items; however, you won't see the drops until the next day, then everything you've found will be tallied up and contributed to the pile.
p=env.t('bossColl1')
br
p Only participants can collect items and share in the quest loot. If you die during a quest, you get booted from the quest. If everyone dies once, the quest fails.
p=env.t('bossColl2')
button.btn.btn-mini.btn-danger(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='questAbort()') Abort
button.btn.btn-mini.btn-danger(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='questAbort()')=env.t('abort')
// ------ Information -------
.modal.inline-modal
.modal-header(bindonce='group')
span(ng-if='group.leader == user.id')
button.btn.btn-primary.pull-right(ng-click='save(group)', ng-show='group._editing') Save
button.btn.btn-default.pull-right(ng-click='group._editing = true', ng-hide='group._editing') Edit Group
button.btn.btn-primary.pull-right(ng-click='save(group)', ng-show='group._editing')=env.t('save')
button.btn.btn-default.pull-right(ng-click='group._editing = true', ng-hide='group._editing')=env.t('editGroup')
h3 {{group.name}}
.modal-body
div.whatever-options(ng-show='group._editing')
.control-group.option-large
label.control-label Group Name
input.option-content(type='text', ng-model='group.name', placeholder='Group Name')
label.control-labe=env.t('groupName')
input.option-content(type='text', ng-model='group.name', placeholder=env.t('groupName'))
.control-group.option-large
label.control-label Description
textarea.option-content(style='height:15em;', placeholder='Description shown in public Guilds list (Markdown OK)', ng-model='group.description')
label.control-label=env.t('description')
textarea.option-content(style='height:15em;', placeholder=env.t('groupdescr'), ng-model='group.description')
.control-group.option-large
label.control-label Logo URL
input.option-content(type='url', placeholder='Logo URL', ng-model='group.logo')
label.control-label=env.t('logoUrl')
input.option-content(type='url', placeholder=env.t('logoUrl'), ng-model='group.logo')
h4 Assign Group Leader
h4=env.t('assignLeader')
select#group-leader-selection(ng-model='group._newLeader', ng-options='member.profile.name for member in group.members')
div(ng-show='!group._editing')
@@ -106,10 +107,10 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
// ------ Members -------
.modal.inline-modal
.modal-header
h3 Members
h3=env.t('members')
.modal-body
span
| Party Members list ordering
=env.t('partyList')
select#partyOrder(
style='width:140px',
ng-model='user.party.order',
@@ -123,22 +124,24 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
// allow leaders to ban members
div(ng-show='group.leader == user.id && user.id!=member._id')
a(ng-click='removeMember(group, member, true)')
i.icon-ban-circle(tooltip='Boot Member')
i.icon-ban-circle(tooltip=env.t('banTip'))
a
span(ng-class='{"badge badge-info": group.leader==member._id}', ng-click='clickMember(member._id, true)')
| {{member.profile.name}}
tr(ng-if='group.memberCount > group.members.length')
td.
<span class='badge'>{{group.memberCount - group.members.length}} more members</span>
td
|<span class='badge'>{{group.memberCount - group.members.length}}
= ' ' + env.t('moremembers')
|</span>
h4(ng-show='group.invites.length > 0') Invited
h4(ng-show='group.invites.length > 0')=env.t('invited')
table.table.table-striped
tr(ng-repeat='invite in group.invites')
td
// allow leaders to ban members
div(ng-show='group.leader == user.id')
a(ng-click='removeMember(group, invite, false)')
i.icon-ban-circle(tooltip='Boot Member')
i.icon-ban-circle(tooltip=env.t('banTip'))
a
span(ng-click='clickMember(invite._id, true)')
| {{invite.profile.name}}
@@ -146,16 +149,16 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
form.form-inline(ng-submit='invite(group)')
//.alert.alert-danger(ng-show='_groupError') {{_groupError}}
.control-group.option-large
input.option-content(type='text', placeholder='User Id', ng-model='group.invitee')
input.btn(type='submit', value='Invite')
input.option-content(type='text', placeholder=env.t('userId'), ng-model='group.invitee')
input.btn(type='submit', value=env.t('invite'))
a.btn.btn-danger(data-id='{{group.id}}', ng-click='clickLeave(group, $event)') Leave
a.btn.btn-danger(data-id='{{group.id}}', ng-click='clickLeave(group, $event)')=env.t('leave')
.span8
div.blah-options(ng-show='group._editing')
.option-large
textarea.option-content(style='height:15em;', placeholder='Message from group leader (Markdown OK)', ng-model='group.leaderMessage')
textarea.option-content(style='height:15em;', placeholder=env.t('leaderMsg'), ng-model='group.leaderMessage')
table(ng-show='group.leaderMessage')
tr
td
+24 -24
View File
@@ -2,10 +2,10 @@ script(type='text/ng-template', id='partials/options.social.hall.html')
ul.nav.nav-tabs
li(ng-class="{ active: $state.includes('options.social.hall.heroes') }")
a(ui-sref='options.social.hall.heroes')
| Hall of Heroes
=env.t('hallHeroes')
li(ng-class="{ active: $state.includes('options.social.hall.patrons') }")
a(ui-sref='options.social.hall.patrons')
| Hall of Patrons
=env.t('hallPatrons')
.tab-content
.tab-pane.active
@@ -13,30 +13,30 @@ script(type='text/ng-template', id='partials/options.social.hall.html')
script(type='text/ng-template', id='partials/options.social.hall.heroes.html')
div.well(ng-if='user.contributor.admin')
h2 Reward User
h2=env.t('rewardUser')
form.form-horizontal(ng-submit='loadHero(_heroID)')
.-options
.option-group.option-large
input.option-content(type='text', ng-model='_heroID', placeholder='UUID')
button.btn(type='submit') Load User
input.option-content(type='text', ng-model='_heroID', placeholder=env.t('UUID'))
button.btn(type='submit')=env.t('loadUser')
form.form-horizontal(ng-show='hero', ng-submit='saveHero(hero)')
h3 {{hero.profile.name}}
.-options
.control-group.option-large
input.option-content(type='text', ng-model='hero.contributor.text', placeholder='Contributor Title (eg, "Blacksmith")')
input.option-content(type='text', ng-model='hero.contributor.text', placeholder=env.t('conTitle'))
.control-group.option-medium
input.option-content(type='number', step="any", ng-model='hero.contributor.level')
span.input-suffix Contrib Level
span.input-suffix=env.t('conLevel')
br
small [1-7] this determines which items, pets, and mounts are available. Also determines name-tag coloring.&nbsp;
a(target='_blank', href='https://trello.com/c/wkFzONhE/277-contributor-gear') More details.
small=env.t('conText')
a(target='_blank', href='https://trello.com/c/wkFzONhE/277-contributor-gear')=env.t('moreDetails')
.control-group.option-large
textarea.option-content(style='height:15em;', placeholder='Contributions', ng-model='hero.contributor.contributions')
textarea.option-content(style='height:15em;', placeholder=env.t('contributions'), ng-model='hero.contributor.contributions')
//-include ../../shared/formatting-help
.control-group.option-medium
label.checkbox
input(type='checkbox', ng-model='hero.contributor.admin')
| Admin
=env.t('admin')
hr
@@ -44,30 +44,30 @@ script(type='text/ng-template', id='partials/options.social.hall.heroes.html')
input.option-content(type='number', step="any", ng-model='hero.balance')
span.input-suffix Balance
p
small `user.balance` is in USD, <em>not</em> in Gems. Aka, if this number is 1, it means 4 gems. Only use this option when manually granting gems to players, don't use it when granting contributor levels. Contrib levels will automatically add 2G/lvl.
small= '`user.balance`' + env.t('USD1') + ' <em>' + env.t('not') + '</em> ' + env.t('USD2')
.control-group.option-medium
label.checkbox
input(type='checkbox', ng-model='hero.purchased.ads')
| Hide Ads
=env.t('hideAds')
// h4 Backer Status
// Add backer stuff like tier, disable adds, etcs
button.btn-primary(type='submit') Save
button.btn-primary(type='submit')=env.t('save')
table.table.table-striped
tr
thead
tr
th Name
th(ng-if='user.contributor.admin') UUID
th Contrib Level
th Title
th Contributions
th=env.t('name')
th(ng-if='user.contributor.admin')=env.t('UUID')
th=env.t('conLevel')
th=env.t('title')
th=env.t('contributions')
tr(ng-repeat='hero in heroes')
td
span(ng-if='hero.contributor.admin',popover='Game Master',popover-trigger='mouseenter',popover-placement='right')
span(ng-if='hero.contributor.admin',popover=env.t('gamemaster'),popover-trigger='mouseenter',popover-placement='right')
a.label(class='label-contributor-{{hero.contributor.level}}', ng-class='{"label-npc": hero.backer.npc}', ng-click='clickMember(hero._id, true)')
| {{hero.profile.name}}&nbsp;
i.icon-star.icon-white
@@ -84,11 +84,11 @@ script(type='text/ng-template', id='partials/options.social.hall.patrons.html')
tr
thead
tr
th Name
th(ng-if='user.contributor.admin') UUID
th Backer Tier
th=env.t('name')
th(ng-if='user.contributor.admin')=env.t('UUID')
th=env.t('backerTier')
tr(ng-repeat='patron in patrons')
td
a.label(class='label-contributor-{{patron.contributor.level}}', ng-class='{"label-npc": patron.backer.npc}', ng-click='clickMember(patron._id, true)') {{patron.profile.name}}
td(ng-if='user.contributor.admin') {{patron._id}}
td {{patron.backer.tier}}
td {{patron.backer.tier}}
+20 -20
View File
@@ -13,38 +13,38 @@ script(type='text/ng-template', id='partials/options.social.party.html')
include ./group
div(ng-hide='group._id')
div(ng-show='user.invitations.party.id')
h2 You're Invited To {{user.invitations.party.name}}
a.btn.btn-success(data-type='party', ng-click='join(user.invitations.party)') Accept
a.btn.btn-danger(ng-click='reject()') Reject
h2=env.t('invitedTo') + '{{user.invitations.party.name}}'
a.btn.btn-success(data-type='party', ng-click='join(user.invitations.party)')=env.t('accept')
a.btn.btn-danger(ng-click='reject()')=env.t('reject')
div(ng-hide='user.invitations.party.id')
h2 Create A Party
h2=env.t('createAParty')
p
| You are not in a party. You can either create one and invite friends, or if you want to join an existing party, have them enter:
=env.t('noPartyText')
pre.prettyprint.
{{user.id}}
include ./create-group
script(type='text/ng-template', id='partials/options.social.guilds.public.html')
div(ng-repeat='invitation in user.invitations.guilds')
h3 You're Invited To {{invitation.name}}
a.btn.btn-success(data-type='guild', ng-click='join(invitation)') Accept
a.btn.btn-danger(ng-click='reject(invitation)') Reject
h3=env.t('invitedTo') + '{{invitation.name}}'
a.btn.btn-success(data-type='guild', ng-click='join(invitation)')=env.t('accept')
a.btn.btn-danger(ng-click='reject(invitation)')=env.t('reject')
// Public Groups
.options-group.option-large.whatever-options
input.option-content(type='text',ng-model='guildSearch', placeholder='Search')
input.option-content(type='text',ng-model='guildSearch', placeholder=env.t('search'))
table.table.table-striped
tr(ng-repeat='group in groups.public | filter:guildSearch')
td
ul.pull-right.challenge-accordion-header-specs
li {{group.memberCount}} member(s)
li='{{group.memberCount}} ' + env.t('members')
li
// join / leave
a.btn.btn-small.btn-danger(ng-show='group._isMember', ng-click='clickLeave(group, $event)')
i.icon-ban-circle
| Leave
=env.t('leave')
a.btn.btn-small.btn-success(ng-hide='group._isMember', ng-click='join(group)')
i.icon-ok
| Join
=env.t('join')
h4 {{group.name}}
p {{group.description}}
@@ -58,13 +58,13 @@ script(type='text/ng-template', id='partials/options.social.guilds.html')
ul.nav.nav-tabs
li(ng-class="{ active: $state.includes('options.social.guilds.public') }")
a(ui-sref='options.social.guilds.public')
| Public Guilds
=env.t('publicGuilds')
li(ng-class="{ active: $stateParams.gid == group._id }", ng-repeat='group in groups.guilds')
a(ui-sref="options.social.guilds.detail({gid:group._id})")
| {{group.name}}
li(ng-class="{ active: $state.includes('options.social.guilds.create') }")
a(ui-sref='options.social.guilds.create')
| Create Guild
=env.t('createGuild')
.tab-content
.tab-pane.active
@@ -75,22 +75,22 @@ script(type='text/ng-template', id='partials/options.social.html')
li(ng-class="{ active: $state.includes('options.social.tavern') }")
a(ui-sref='options.social.tavern')
i.icon-eye-close
| Tavern
=env.t('tavern')
li(ng-class="{ active: $state.includes('options.social.party') }")
a(ui-sref='options.social.party')
| Party
=env.t('party')
li(ng-class="{ active: $state.includes('options.social.guilds') }")
a(ui-sref='options.social.guilds')
| Guilds
=env.t('guilds')
li(ng-class="{ active: $state.includes('options.social.challenges') }")
a(ui-sref='options.social.challenges')
i.icon-bullhorn
| Challenges
=env.t('challenges')
li(ng-class="{ active: $state.includes('options.social.hall') }")
a(ui-sref='options.social.hall')
i.icon-flag
| Hall
=env.t('hall')
.tab-content
.tab-pane.active
div(ui-view)
div(ui-view)
+50 -44
View File
@@ -9,108 +9,114 @@
.popover.static-popover.fade.right.in
.arrow
h3.popover-title
a(target='_blank', href='http://www.kickstarter.com/profile/2014640723') Daniel
a(target='_blank', href='http://www.kickstarter.com/profile/2014640723')=env.t('daniel')
.popover-content
| Welcome to the Tavern! Stay a while and meet the locals. If you need to rest (going on vacation? sudden illness?), I'll set you up at the inn - Dailies won't hurt you while you're resting.
=env.t('danielText')
div
button.btn.btn-large.btn-success(ng-class='{active: user.preferences.sleep}', ng-click='User.user.ops.sleep({})')
span(ng-show='user.preferences.sleep') Check Out of Inn
span(ng-hide='user.preferences.sleep') Rest in the Inn
span(ng-show='user.preferences.sleep')=env.t('innCheckOut')
span(ng-hide='user.preferences.sleep')=env.t('innCheckIn')
.alert.alert-info(ng-show='user.preferences.sleep')
| Whilst resting, your dailies are saved and aren't affected by day turn-over. Whether you check out tomorrow or in a week's time, you'll continue in the same state as when you checked in. Beware, though: if you are in a Quest, Bosses will still punish you for your fellow party members' mistakes!
=env.t('innText')
// Resources
.modal(style='position: relative;top: auto;left: auto;right: auto;margin: 0 auto 20px;z-index: 1;max-width: 100%;')
.modal-header
h3 Resources
h3=env.t('resources')
.modal-body
table.table.table-striped
tr
td
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Board:Looking_for_a_Group_(LFG)') Looking for Group (Party Wanted) Posts
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Board:Looking_for_a_Group_(LFG)')=env.t('lfgPosts')
tr
td
a(target='_blank', href='https://vimeo.com/57654086') Tutorial
a(target='_blank', href='https://vimeo.com/57654086')=env.t('tutorial')
tr
td
a(target='_blank', href='http://habitrpg.wikia.com/wiki/FAQ') FAQ
a(target='_blank', href='http://habitrpg.wikia.com/wiki/FAQ')=env.t('FAQ')
tr
td
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Glossary') Glossary
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Glossary')=env.t('glossary')
tr
td
a(target='_blank', href='https://github.com/HabitRPG/habitrpg/issues') Report a Problem
a(target='_blank', href='https://github.com/HabitRPG/habitrpg/issues')=env.t('reportAP')
tr
td
a(target='_blank', href='https://trello.com/c/8gzGlle8') Request a Feature
a(target='_blank', href='https://trello.com/c/8gzGlle8')=env.t('requestAF')
tr
td
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Special:Forum') Community Forum
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Special:Forum')=env.t('community')
// Player Tiers
.modal(style='position: relative;top: auto;left: auto;right: auto;margin: 0 auto 20px;z-index: 1;max-width: 100%;', popover="Click tier labels for details.", popover-trigger="mouseenter", popover-placement="right")
.modal(style='position: relative;top: auto;left: auto;right: auto;margin: 0 auto 20px;z-index: 1;max-width: 100%;', popover=env.t('tierPop'), popover-trigger="mouseenter", popover-placement="right")
.modal-header
h3 Player Tiers
h3=env.t('playerTiers')
.modal-body
small.
<a href='/#/options/groups/hall'>Visit the Hall of Heroes (contributors and backers)</a> <br />
<a href='http://habitrpg.wikia.com/wiki/Contributor_Rewards' target='_blank'>Learn more about contributor rewards</a> <br />
<a href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG' target='_blank'>Learn how to contribute to HabitRPG</a>
small
|<a href='/#/options/groups/hall'>
=env.t('visitHeroes')
|</a> <br />
|<a href='http://habitrpg.wikia.com/wiki/Contributor_Rewards' target='_blank'>
=env.t('conLearn')
|</a> <br />
|<a href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG' target='_blank'>
=env.t('conLearnHow')
|</a>
table.table.table-striped
tr
td
a.label.label-contributor-1(ng-click='toggleUserTier($event)') Friend (1-2)
a.label.label-contributor-1(ng-click='toggleUserTier($event)')=env.t('friendBadge')
div(style='display:none;')
p.
<span class='achievement achievement-firefox'></span> When your <strong>first</strong> submission is deployed, you will receive the HabitRPG Contributor's badge. Your name in Tavern chat will proudly display that you are a contributor. As a bounty for your work, you will also receive <strong>2 Gems</strong>.
p
!= '<span class="achievement achievement-firefox"></span> ' + env.t('friendText') + '<strong> ' + env.t('first') + '</strong> ' + env.t('friend1Text') + '<strong> ' + env.t('2gems') + '</strong>.'
hr
p.
<span class='shop_armor_special_1 shop-sprite item-img'></span> When your <strong>second</strong> submission is deployed, the <strong>Crystal Armor</strong> will be available for purchase in the Rewards shop. As a bounty for your continued work, you will also receive <strong>2 Gems</strong>.
p
!= '<span class="shop_armor_special_1 shop-sprite item-img"></span> ' + env.t('friendText') + '<strong> ' + env.t('second') + '</strong> ' + env.t('friendText2') + '<strong> ' + env.t('crystalArmor') + '</strong> ' + env.t('friendText3') + '<strong>' + env.t('2gems') + '</strong>.'
tr
td
a.label.label-contributor-3(ng-click='toggleUserTier($event)') Elite (3-4)
a.label.label-contributor-3(ng-click='toggleUserTier($event)')=env.t('eliteBadge')
div(style='display:none;')
p.
<span class='shop_head_special_1 shop-sprite item-img'></span> When your <strong>third</strong> submission is deployed, the <strong>Crystal Helmet</strong> will be available for purchase in the Rewards shop. As a bounty for your great work, you will also receive <strong>2 Gems</strong>.
p
!= '<span class="shop_head_special_1 shop-sprite item-img"></span> ' + env.t('friendText') + ' <strong>' + env.t('third') + '</strong> ' + env.t('friendText2') + ' <strong>' + env.t('crystalHelmet') + '</strong> ' + env.t('friendText3') + ' <strong>' + env.t('2gems') + '</strong>.'
hr
p.
<span class='shop_weapon_special_1 shop-sprite item-img'></span> When your <strong>fourth</strong> submission is deployed, the <strong>Crystal Sword</strong> will be available for purchase in the Rewards shop. You will once again receive a bounty of <strong>2 Gems</strong>.
p
!= '<span class="shop_weapon_special_1 shop-sprite item-img"></span> ' + env.t('friendText') + ' <strong>' + env.t('fourth') + '</strong> ' + env.t('friendText2') + ' <strong>' + env.t('crystalSword') + '</strong> ' + env.t('friendText3') + ' <strong>' + env.t('2gems') + '</strong>.'
tr
td
a.label.label-contributor-5(ng-click='toggleUserTier($event)') Champion (5-6)
a.label.label-contributor-5(ng-click='toggleUserTier($event)')=env.t('championBadge')
div(style='display:none;')
p.
<span class='shop_shield_special_1 shop-sprite item-img'></span> When your <em>fifth</em> submission is deployed, the <strong>Crystal Shield</strong> will be available for purchase in the Rewards shop. You will also receive <strong>2 Gems</strong>.
p
!= '<span class="shop_head_special_1 shop-sprite item-img"></span> ' + env.t('friendText') + ' <em>' + env.t('fifth') + '</em> ' + env.t('friendText2') + ' <strong>' + env.t('crystalShield') + '</strong> ' + env.t('friendText3') + ' <strong>' + env.t('2gems') + '</strong>.'
hr
p.
<div class='Pet-Dragon-Hydra pull-left'></div> When your <em>sixth</em> submission is deployed, you will receive a <strong>Hydra Pet</strong>. You will also receive <strong>2 Gems</strong>.
p
!= '<div class="Pet-Dragon-Hydra pull-left"></div>' + env.t('friendText') + ' <em>' + env.t('sixth') + '</em> ' + env.t('friendText2b') + ' <strong>' + env.t('hydraPet') + '</strong> ' + env.t('friendText3b') + ' <strong>' + env.t('2gems') + '</strong>.'
tr
td
a.label.label-contributor-7(ng-click='toggleUserTier($event)') Legendary (7)
a.label.label-contributor-7(ng-click='toggleUserTier($event)')=env.t('legendaryBadge')
div(style='display:none;')
p.
When your <em>seventh</em> submission is deployed, you will receive <strong>2 Gems</strong> and become a member of the honored Contributor's Guild and be privy to the behind-the-scenes details of HabitRPG! Further contributions do not increase your level, but you may continue to earn Gem bounties and titles.
p
!= env.t('friendText') + ' <em>' + env.t('seventh') + '</em> ' + env.t('friendText2c') + ' <strong>' + env.t('2gems') + ' </strong>' + env.t('friendText3c')
tr
td
a.label.label-contributor-8(ng-click='toggleUserTier($event)') Heroic
a.label.label-contributor-8(ng-click='toggleUserTier($event)')=env.t('heroicBadge')
div(style='display:none;')
p The Heroic level contains HabitRPG staff and staff-level contributors. If you have this title, you were appointed to it (or hired!).
p=env.t('heroicText')
tr
td
a.label.label-npc(ng-click='toggleUserTier($event)') NPC
a.label.label-npc(ng-click='toggleUserTier($event)')=env.t('npcBadge')
div(style='display:none;')
p NPCs backed HabitRPG's Kickstarter at the highest tier. You can find their avatars watching over site features!
p=env.t('npcText')
include ./challenge-box
.span8(ng-controller='ChatCtrl')
h3 Tavern Talk
h3=env.t('taverntalk')
include ./chat-box
small(style='position: relative; top: -20px; left: 25px;')
include ../../shared/formatting-help
small(style='position: relative; top: 18px; left: 0px')
alert.alert-info.
Note: if you're reporting a bug, the developers won't see it here. Please <a href='https://github.com/HabitRPG/habitrpg/issues' target='_blank'>use Github instead</a>.
alert.alert-info
!=env.t('tavernalert1') + ' <a href="https://github.com/HabitRPG/habitrpg/issues" target="_blank">' + env.t('tavernalert2') + '</a>.'
ul.unstyled.tavern-chat
include ./chat-message
+4 -3
View File
@@ -44,6 +44,7 @@ figure.herobox(ng-click='spell ? castEnd(profile, "user", $event) : clickMember(
// FIXME handle @minimal, this might have to be a directive
span.current-pet(class='Pet-{{profile.items.currentPet}}', ng-show='profile.items.currentPet && !minimal')
.avatar-level(ng-class='userLevelStyle(profile,"label")')
i.icon-circle-arrow-up.icon-white(ng-show='profile.stats.buffs.str || profile.stats.buffs.per || profile.stats.buffs.con || profile.stats.buffs.int || profile.stats.buffs.stealth', tooltip='Buffed', style='margin-right:5px;')
| Lvl {{profile.stats.lvl}}
i.icon-plus-sign.icon-white(ng-show='profile.achievements.rebirths', tooltip='Reborn, max level {{profile.achievements.rebirthLevel}}', style='margin-left:5px')
i.icon-circle-arrow-up.icon-white(ng-show='profile.stats.buffs.str || profile.stats.buffs.per || profile.stats.buffs.con || profile.stats.buffs.int || profile.stats.buffs.stealth', tooltip=env.t('buffed'), style='margin-right:5px;')
=env.t('lvl')
| {{profile.stats.lvl}}
i.icon-plus-sign.icon-white(ng-show='profile.achievements.rebirths', tooltip=env.t('reborn') + '{{profile.achievements.rebirthLevel}}', style='margin-left:5px')