mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-22 03:34:14 +00:00
refactor(bs3): port options (profile, inventory, social (groups and hall)) and misc
This commit is contained in:
parent
ce5edbee58
commit
5d4d82ad51
17 changed files with 865 additions and 874 deletions
|
|
@ -8,21 +8,22 @@
|
|||
color #fff
|
||||
background-color #51a351
|
||||
|
||||
.tavern-pane
|
||||
position relative
|
||||
height 250px
|
||||
|
||||
.chat-form
|
||||
position: relative
|
||||
z-index: 10
|
||||
margin-bottom: 10px
|
||||
|
||||
textarea
|
||||
margin-bottom: 5px
|
||||
|
||||
.chat-message .chat-plus-one
|
||||
opacity: 0
|
||||
background-color: #eee
|
||||
padding: 3px 3px 0px 3px
|
||||
.chat-message:hover .chat-plus-one
|
||||
opacity: 1
|
||||
color: #999
|
||||
|
||||
.tavern-chat, .party-chat
|
||||
|
||||
|
||||
li
|
||||
padding-top:15px
|
||||
padding-bottom:15px
|
||||
|
|
|
|||
|
|
@ -67,10 +67,6 @@ hr
|
|||
display: inline
|
||||
margin-right: 10px
|
||||
|
||||
/* Bootstrap overrides */
|
||||
div.tooltip-inner
|
||||
max-width: 300px
|
||||
|
||||
/* Customizations to make footer sticky */
|
||||
/*html, body {height: 100%;}*/
|
||||
#wrap
|
||||
|
|
@ -151,6 +147,9 @@ a
|
|||
a span.glyphicon
|
||||
color: #333 // Takes base color from bootstrap
|
||||
|
||||
a.label
|
||||
color: #fff
|
||||
|
||||
.muted
|
||||
color: #999
|
||||
|
||||
|
|
@ -165,15 +164,6 @@ a span.glyphicon
|
|||
margin-left: 10px;
|
||||
padding-left: 10px;
|
||||
|
||||
.inline-modal
|
||||
position: relative
|
||||
top: auto;
|
||||
left: auto
|
||||
right: auto
|
||||
margin: 0 auto 20px
|
||||
z-index: 1
|
||||
max-width: 100%
|
||||
|
||||
.buy-gems
|
||||
.nav-tabs
|
||||
margin-top: 0.5em
|
||||
|
|
|
|||
|
|
@ -33,8 +33,6 @@ for $stage in $stages
|
|||
.reward
|
||||
background-color: white
|
||||
|
||||
|
||||
|
||||
// 2. Columns & Tasks
|
||||
// ===================
|
||||
|
||||
|
|
@ -145,10 +143,6 @@ for $stage in $stages
|
|||
height:1.5em
|
||||
background-size:1.5em
|
||||
|
||||
// task due date (for to-dos)
|
||||
.task-date
|
||||
font-size: 70%
|
||||
|
||||
.habit-wide .task-text
|
||||
padding-left: 7em
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ angular.module("notificationServices", [])
|
|||
function growl(html, type) {
|
||||
$.bootstrapGrowl(html, {
|
||||
ele: '#notification-area',
|
||||
type: type || 'warning', //('info', 'text', 'error', 'success', 'gp', 'xp', 'hp', 'lvl', 'death', 'mp', 'crit')
|
||||
type: type || 'warning', //('info', 'text', 'warning', 'success', 'gp', 'xp', 'hp', 'lvl', 'death', 'mp', 'crit')
|
||||
top_offset: 20,
|
||||
align: 'right', //('left', 'right', or 'center')
|
||||
width: 250, //(integer, or 'auto')
|
||||
|
|
@ -64,7 +64,7 @@ angular.module("notificationServices", [])
|
|||
growl("<span class='glyphicon glyphicon-death'></span> Respawn!", "death");
|
||||
},
|
||||
error: function(error){
|
||||
growl("<span class='glyphicon glyphicon-exclamation-sign'></span> " + error, "error");
|
||||
growl("<span class='glyphicon glyphicon-exclamation-sign'></span> " + error, "danger");
|
||||
},
|
||||
mp: function(val) {
|
||||
growl("<span class='glyphicon glyphicon-fire'></span> " + sign(val) + " " + round(val) + " MP", 'mp');
|
||||
|
|
|
|||
|
|
@ -4,33 +4,34 @@ include ./inventory/index
|
|||
include ./settings
|
||||
|
||||
script(id='partials/options.html', type="text/ng-template")
|
||||
.grid
|
||||
.module.full-width
|
||||
span.option-box.pull-right.wallet
|
||||
include ../shared/gems
|
||||
.container-fluid
|
||||
.row
|
||||
.col-md-12
|
||||
span.option-box.pull-right.wallet
|
||||
include ../shared/gems
|
||||
|
||||
ul.nav.nav-tabs
|
||||
li(ng-class="{ active: $state.includes('options.profile') }")
|
||||
a(ui-sref='options.profile')
|
||||
span.glyphicon.glyphicon-user
|
||||
|
|
||||
=env.t('profile')
|
||||
li(ng-class="{ active: $state.includes('options.social') }")
|
||||
a(ui-sref='options.social')
|
||||
span.glyphicon.glyphicon-heart
|
||||
|
|
||||
=env.t('social')
|
||||
li(ng-class="{ active: $state.includes('options.inventory') }", ng-if='user.flags.dropsEnabled')
|
||||
a(ui-sref='options.inventory')
|
||||
span.glyphicon.glyphicon-gift
|
||||
|
|
||||
=env.t('inventory')
|
||||
li(ng-class="{ active: $state.includes('options.settings') }")
|
||||
a(ui-sref='options.settings')
|
||||
span.glyphicon.glyphicon-wrench
|
||||
|
|
||||
=env.t('settings')
|
||||
ul.nav.nav-tabs
|
||||
li(ng-class="{ active: $state.includes('options.profile') }")
|
||||
a(ui-sref='options.profile')
|
||||
span.glyphicon.glyphicon-user
|
||||
|
|
||||
=env.t('profile')
|
||||
li(ng-class="{ active: $state.includes('options.social') }")
|
||||
a(ui-sref='options.social')
|
||||
span.glyphicon.glyphicon-heart
|
||||
|
|
||||
=env.t('social')
|
||||
li(ng-class="{ active: $state.includes('options.inventory') }", ng-if='user.flags.dropsEnabled')
|
||||
a(ui-sref='options.inventory')
|
||||
span.glyphicon.glyphicon-gift
|
||||
|
|
||||
=env.t('inventory')
|
||||
li(ng-class="{ active: $state.includes('options.settings') }")
|
||||
a(ui-sref='options.settings')
|
||||
span.glyphicon.glyphicon-wrench
|
||||
|
|
||||
=env.t('settings')
|
||||
|
||||
.tab-content
|
||||
.tab-pane.active
|
||||
div(ui-view)
|
||||
.tab-content
|
||||
.tab-pane.active
|
||||
div(ui-view)
|
||||
|
|
|
|||
|
|
@ -1,146 +1,148 @@
|
|||
script(type='text/ng-template', id='partials/options.inventory.equipment.html')
|
||||
.row-fluid
|
||||
.span6.border-right
|
||||
h3.equipment-title=env.t('battleGear')
|
||||
|
||||
.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('battleGearText'))
|
||||
li.customize-menu.inventory-gear
|
||||
menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Mage", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]')
|
||||
div(ng-repeat='item in gear[klass]')
|
||||
button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.equip({params:{key:item.key}})', class='shop_{{item.key}}', ng-class='{selectableInventory: user.items.gear.equipped[item.type] == item.key}')
|
||||
.span6
|
||||
h3.equipment-title=env.t('costume')
|
||||
|
||||
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('costumeText'))
|
||||
label.checkbox.inline(style="margin-left: 20px;")
|
||||
input(type="checkbox", ng-model="user.preferences.costume", ng-click='set({"preferences.costume":!user.preferences.costume})')
|
||||
=env.t('useCostume')
|
||||
li.customize-menu(ng-if='user.preferences.costume')
|
||||
menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Mage", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]')
|
||||
div(ng-repeat='item in gear[klass]')
|
||||
button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.equip({params:{type:"costume", key:item.key}})', class='shop_{{item.key}}', ng-class='{selectableInventory: user.items.gear.costume[item.type] == item.key}')
|
||||
.container-fluid
|
||||
.row
|
||||
.col-md-6.border-right
|
||||
h3.equipment-title=env.t('battleGear')
|
||||
|
||||
.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('battleGearText'))
|
||||
li.customize-menu.inventory-gear
|
||||
menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Mage", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]')
|
||||
div(ng-repeat='item in gear[klass]')
|
||||
button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.equip({params:{key:item.key}})', class='shop_{{item.key}}', ng-class='{selectableInventory: user.items.gear.equipped[item.type] == item.key}')
|
||||
.col-md-6
|
||||
h3.equipment-title=env.t('costume')
|
||||
|
||||
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('costumeText'))
|
||||
label.checkbox.inline(style="margin-left: 20px;")
|
||||
input(type="checkbox", ng-model="user.preferences.costume", ng-click='set({"preferences.costume":!user.preferences.costume})')
|
||||
=env.t('useCostume')
|
||||
li.customize-menu(ng-if='user.preferences.costume')
|
||||
menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Mage", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]')
|
||||
div(ng-repeat='item in gear[klass]')
|
||||
button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.equip({params:{type:"costume", key:item.key}})', class='shop_{{item.key}}', ng-class='{selectableInventory: user.items.gear.costume[item.type] == item.key}')
|
||||
|
||||
script(type='text/ng-template', id='partials/options.inventory.drops.html')
|
||||
.row-fluid
|
||||
.span6.border-right
|
||||
h2=env.t('inventory')
|
||||
p.well=env.t('inventoryText')
|
||||
menu.inventory-list(type='list')
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=(env.t('eggs') + ' ({{eggCount}})'))
|
||||
p.muted(ng-show='eggCount < 1')=env.t('noEggs')
|
||||
div(ng-repeat='(egg,points) in ownedItems(user.items.eggs)')
|
||||
//TODO move positioning this styling to css
|
||||
button.customize-option(popover='{{Content.eggs[egg].notes}}', popover-title='{{Content.eggs[egg].text}} Egg', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseEgg(egg)', class='Pet_Egg_{{egg}}', ng-class='{selectableInventory: selectedPotion && !(user.items.pets[egg+"-"+selectedPotion.key]>0)}')
|
||||
.badge.badge-info.stack-count {{points}}
|
||||
//-p {{Content.eggs[egg].text}}
|
||||
|
||||
li.customize-menu
|
||||
menu.hatchingPotion-menu(label=(env.t('hatchingPotions') + ' ({{potCount}})'))
|
||||
p.muted(ng-show='potCount < 1')=env.t('noHatchingPotions')
|
||||
div(ng-repeat='(pot,points) in ownedItems(user.items.hatchingPotions)')
|
||||
button.customize-option(popover='{{Content.hatchingPotions[pot].notes}}', popover-title='{{Content.hatchingPotions[pot].text}} Potion', popover-trigger='mouseenter', popover-placement='right', ng-click='choosePotion(pot)', class='Pet_HatchingPotion_{{pot}}', ng-class='{selectableInventory: selectedEgg && !(user.items.pets[selectedEgg.key+"-"+pot]>0)}')
|
||||
.badge.badge-info.stack-count {{points}}
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=(env.t('scrolls') + ' ({{questCount}})'))
|
||||
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 | htmlDecode}}", 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
|
||||
menu.pets-menu(label=env.t('food') + ' ({{foodCount}})')
|
||||
p(ng-show='foodCount < 1')=env.t('noFood')
|
||||
div(ng-repeat='(food,points) in ownedItems(user.items.food)')
|
||||
button.customize-option(popover='{{Content.food[food].notes}}', popover-title='{{Content.food[food].text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
|
||||
.badge.badge-info.stack-count {{points}}
|
||||
|
||||
li.customize-menu(ng-if='user.items.special.snowball')
|
||||
menu.pets-menu(label=env.t('special'))
|
||||
div
|
||||
button.customize-option(popover='{{Content.special.snowball.notes}}', popover-title='{{Content.special.snowball.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='castStart(Content.special.snowball)', class='inventory_special_snowball')
|
||||
.badge.badge-info.stack-count {{user.items.special.snowball}}
|
||||
|
||||
.span6
|
||||
h2=env.t('market')
|
||||
.row-fluid
|
||||
table.npc_alex_container
|
||||
tr
|
||||
td
|
||||
.npc_alex.pull-left
|
||||
td
|
||||
.popover.static-popover.fade.right.in
|
||||
.arrow
|
||||
h3.popover-title
|
||||
a(target='_blank', href='http://www.kickstarter.com/profile/523661924')=env.t('alexander')
|
||||
.popover-content
|
||||
p=env.t('welcomeMarket')
|
||||
p
|
||||
button.btn.btn-primary(ng-show='selectedEgg', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedEgg.text}}", gold: "{{selectedEgg.value}}"})
|
||||
button.btn.btn-primary(ng-show='selectedPotion', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedPotion.text}}", gold: "{{selectedPotion.value}}"})
|
||||
button.btn.btn-primary(ng-show='selectedFood', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedFood.text}}", gold: "{{selectedFood.value}}"})
|
||||
.container-fluid
|
||||
.row
|
||||
.col-md-6.border-right
|
||||
h2=env.t('inventory')
|
||||
p.well=env.t('inventoryText')
|
||||
menu.inventory-list(type='list')
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('eggs'))
|
||||
div(ng-repeat='egg in Content.eggs', ng-if='egg.canBuy')
|
||||
button.customize-option(popover='{{egg.notes}}', popover-title='{{egg.text}} Egg', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("eggs", egg)', class='Pet_Egg_{{egg.key}}')
|
||||
p
|
||||
| {{egg.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('hatchingPotions'))
|
||||
div(ng-repeat='pot in Content.hatchingPotions')
|
||||
button.customize-option(popover='{{pot.notes}}', popover-title='{{pot.text}} Potion', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("hatchingPotions", pot)', class='Pet_HatchingPotion_{{pot.key}}')
|
||||
p
|
||||
| {{pot.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
menu.pets-menu(label=(env.t('eggs') + ' ({{eggCount}})'))
|
||||
p.muted(ng-show='eggCount < 1')=env.t('noEggs')
|
||||
div(ng-repeat='(egg,points) in ownedItems(user.items.eggs)')
|
||||
//TODO move positioning this styling to css
|
||||
button.customize-option(popover='{{Content.eggs[egg].notes}}', popover-title='{{Content.eggs[egg].text}} Egg', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseEgg(egg)', class='Pet_Egg_{{egg}}', ng-class='{selectableInventory: selectedPotion && !(user.items.pets[egg+"-"+selectedPotion.key]>0)}')
|
||||
.badge.badge-info.stack-count {{points}}
|
||||
//-p {{Content.eggs[egg].text}}
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('food'))
|
||||
div(ng-repeat='food in Content.food', ng-if='food.key !== "Saddle" && food.canBuy')
|
||||
button.customize-option(popover='{{food.notes}}', popover-title='{{food.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("food", food)', class='Pet_Food_{{food.key}}')
|
||||
p
|
||||
| {{food.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
menu.hatchingPotion-menu(label=(env.t('hatchingPotions') + ' ({{potCount}})'))
|
||||
p.muted(ng-show='potCount < 1')=env.t('noHatchingPotions')
|
||||
div(ng-repeat='(pot,points) in ownedItems(user.items.hatchingPotions)')
|
||||
button.customize-option(popover='{{Content.hatchingPotions[pot].notes}}', popover-title='{{Content.hatchingPotions[pot].text}} Potion', popover-trigger='mouseenter', popover-placement='right', ng-click='choosePotion(pot)', class='Pet_HatchingPotion_{{pot}}', ng-class='{selectableInventory: selectedEgg && !(user.items.pets[selectedEgg.key+"-"+pot]>0)}')
|
||||
.badge.badge-info.stack-count {{points}}
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('quests'))
|
||||
menu.pets-menu(label=(env.t('scrolls') + ' ({{questCount}})'))
|
||||
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 in Content.quests', ng-if='quest.canBuy')
|
||||
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes | htmlDecode}}", popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='buyQuest(quest.key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
|
||||
p
|
||||
| {{quest.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
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 | htmlDecode}}", 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
|
||||
menu.pets-menu(label=env.t('food') + ' ({{foodCount}})')
|
||||
p(ng-show='foodCount < 1')=env.t('noFood')
|
||||
div(ng-repeat='(food,points) in ownedItems(user.items.food)')
|
||||
button.customize-option(popover='{{Content.food[food].notes}}', popover-title='{{Content.food[food].text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
|
||||
.badge.badge-info.stack-count {{points}}
|
||||
|
||||
li.customize-menu(ng-if='user.items.special.snowball')
|
||||
menu.pets-menu(label=env.t('special'))
|
||||
div
|
||||
button.customize-option(popover='{{Content.food.Saddle.notes}}', popover-title='{{Content.food.Saddle.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("food", Content.food.Saddle)', class='Pet_Food_{{Content.food.Saddle.key}}')
|
||||
p
|
||||
| {{Content.food.Saddle.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
div
|
||||
button.customize-option(popover=env.t('fortifyPop'), popover-title=env.t('fortifyName'), popover-trigger='mouseenter', popover-placement='left', ng-click='openModal("reroll")', class='inventory_special_fortify')
|
||||
p
|
||||
| 4
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
//-div
|
||||
button.customize-option(popover='{{Content.spells.special.snowball.notes}}', popover-title='{{Content.spells.special.snowball.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("special", Content.spells.special.snowball)', class='inventory_special_snowball')
|
||||
p
|
||||
| {{Content.spells.special.snowball.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
div(ng-show='user.flags.rebirthEnabled')
|
||||
button.customize-option(popover=env.t('rebirthPop'), popover-title=env.t('rebirthName'), popover-trigger='mouseenter', popover-placement='left', ng-click='openModal("rebirth")', class='rebirth_orb')
|
||||
p
|
||||
| 8
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
div(ng-if='user.purchased.plan.planId')
|
||||
button.customize-option(ng-click='user.ops.purchase({params:{type:"gems",key:"gem"}})')
|
||||
span.Pet_Currency_Gem.inline-gems
|
||||
p
|
||||
| 20
|
||||
span.shop_gold
|
||||
button.customize-option(popover='{{Content.special.snowball.notes}}', popover-title='{{Content.special.snowball.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='castStart(Content.special.snowball)', class='inventory_special_snowball')
|
||||
.badge.badge-info.stack-count {{user.items.special.snowball}}
|
||||
|
||||
.col-md-6
|
||||
h2=env.t('market')
|
||||
.row-fluid
|
||||
table.npc_alex_container
|
||||
tr
|
||||
td
|
||||
.npc_alex.pull-left
|
||||
td
|
||||
.popover.static-popover.fade.right.in
|
||||
.arrow
|
||||
h3.popover-title
|
||||
a(target='_blank', href='http://www.kickstarter.com/profile/523661924')=env.t('alexander')
|
||||
.popover-content
|
||||
p=env.t('welcomeMarket')
|
||||
p
|
||||
button.btn.btn-primary(ng-show='selectedEgg', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedEgg.text}}", gold: "{{selectedEgg.value}}"})
|
||||
button.btn.btn-primary(ng-show='selectedPotion', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedPotion.text}}", gold: "{{selectedPotion.value}}"})
|
||||
button.btn.btn-primary(ng-show='selectedFood', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedFood.text}}", gold: "{{selectedFood.value}}"})
|
||||
menu.inventory-list(type='list')
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('eggs'))
|
||||
div(ng-repeat='egg in Content.eggs', ng-if='egg.canBuy')
|
||||
button.customize-option(popover='{{egg.notes}}', popover-title='{{egg.text}} Egg', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("eggs", egg)', class='Pet_Egg_{{egg.key}}')
|
||||
p
|
||||
| {{egg.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('hatchingPotions'))
|
||||
div(ng-repeat='pot in Content.hatchingPotions')
|
||||
button.customize-option(popover='{{pot.notes}}', popover-title='{{pot.text}} Potion', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("hatchingPotions", pot)', class='Pet_HatchingPotion_{{pot.key}}')
|
||||
p
|
||||
| {{pot.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('food'))
|
||||
div(ng-repeat='food in Content.food', ng-if='food.key !== "Saddle" && food.canBuy')
|
||||
button.customize-option(popover='{{food.notes}}', popover-title='{{food.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("food", food)', class='Pet_Food_{{food.key}}')
|
||||
p
|
||||
| {{food.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('quests'))
|
||||
p.muted!=env.t('scrollsText1') + ' <a href="/#/options/groups/party">' + env.t('scrollsText2') + '</a>'
|
||||
div(ng-repeat='quest in Content.quests', ng-if='quest.canBuy')
|
||||
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes | htmlDecode}}", popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='buyQuest(quest.key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
|
||||
p
|
||||
| {{quest.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('special'))
|
||||
div
|
||||
button.customize-option(popover='{{Content.food.Saddle.notes}}', popover-title='{{Content.food.Saddle.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("food", Content.food.Saddle)', class='Pet_Food_{{Content.food.Saddle.key}}')
|
||||
p
|
||||
| {{Content.food.Saddle.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
div
|
||||
button.customize-option(popover=env.t('fortifyPop'), popover-title=env.t('fortifyName'), popover-trigger='mouseenter', popover-placement='left', ng-click='openModal("reroll")', class='inventory_special_fortify')
|
||||
p
|
||||
| 4
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
//-div
|
||||
button.customize-option(popover='{{Content.spells.special.snowball.notes}}', popover-title='{{Content.spells.special.snowball.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("special", Content.spells.special.snowball)', class='inventory_special_snowball')
|
||||
p
|
||||
| {{Content.spells.special.snowball.value}}
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
div(ng-show='user.flags.rebirthEnabled')
|
||||
button.customize-option(popover=env.t('rebirthPop'), popover-title=env.t('rebirthName'), popover-trigger='mouseenter', popover-placement='left', ng-click='openModal("rebirth")', class='rebirth_orb')
|
||||
p
|
||||
| 8
|
||||
span.Pet_Currency_Gem1x.inline-gems
|
||||
div(ng-if='user.purchased.plan.planId')
|
||||
button.customize-option(ng-click='user.ops.purchase({params:{type:"gems",key:"gem"}})')
|
||||
span.Pet_Currency_Gem.inline-gems
|
||||
p
|
||||
| 20
|
||||
span.shop_gold
|
||||
|
|
|
|||
|
|
@ -1,85 +1,87 @@
|
|||
script(type='text/ng-template', id='partials/options.inventory.mounts.html')
|
||||
.stable
|
||||
table(style='width:100%')
|
||||
tr
|
||||
td(style='width:144px')
|
||||
.npc_matt
|
||||
td
|
||||
.popover.static-popover.fade.right.in(style='max-width: 550px; margin-left: 10px;')
|
||||
.arrow
|
||||
h3.popover-title
|
||||
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch')
|
||||
.popover-content
|
||||
p=env.t('mattShall', {name: "{{user.profile.name}}"})
|
||||
h4= '{{mountCount}} / {{totalPets}} ' + env.t('mountsTamed')
|
||||
menu.pets(type='list')
|
||||
li.customize-menu(ng-repeat='egg in Content.eggs')
|
||||
menu
|
||||
div(ng-repeat='potion in Content.hatchingPotions', popover-trigger='mouseenter', popover='{{potion.text}} {{egg.mountText}}', popover-placement='bottom', ng-init='mount = egg.key+"-"+potion.key')
|
||||
button(class="pet-button Mount_Head_{{mount}}", ng-show='user.items.mounts[mount]', ng-class='{active: user.items.currentMount == mount}', ng-click='chooseMount(egg.key, potion.key)')
|
||||
//div(class='Mount_Head_{{mount}}')
|
||||
button(class="pet-button pet-not-owned", ng-hide='user.items.mounts[mount]')
|
||||
.PixelPaw
|
||||
.container-fluid
|
||||
.stable.row
|
||||
table
|
||||
tr
|
||||
td(style='width:144px')
|
||||
.npc_matt
|
||||
td
|
||||
.popover.static-popover.fade.right.in(style='max-width: 550px; margin-left: 10px;')
|
||||
.arrow
|
||||
h3.popover-title
|
||||
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch')
|
||||
.popover-content
|
||||
p=env.t('mattShall', {name: "{{user.profile.name}}"})
|
||||
h4= '{{mountCount}} / {{totalPets}} ' + env.t('mountsTamed')
|
||||
menu.pets(type='list')
|
||||
li.customize-menu(ng-repeat='egg in Content.eggs')
|
||||
menu
|
||||
div(ng-repeat='potion in Content.hatchingPotions', popover-trigger='mouseenter', popover='{{potion.text}} {{egg.mountText}}', popover-placement='bottom', ng-init='mount = egg.key+"-"+potion.key')
|
||||
button(class="pet-button Mount_Head_{{mount}}", ng-show='user.items.mounts[mount]', ng-class='{active: user.items.currentMount == mount}', ng-click='chooseMount(egg.key, potion.key)')
|
||||
//div(class='Mount_Head_{{mount}}')
|
||||
button(class="pet-button pet-not-owned", ng-hide='user.items.mounts[mount]')
|
||||
.PixelPaw
|
||||
|
||||
h4=env.t('rareMounts')
|
||||
menu
|
||||
div
|
||||
button(ng-if='user.items.mounts["BearCub-Polar"]', class="pet-button Mount_Head_BearCub-Polar", ng-class='{active: user.items.currentMount == "BearCub-Polar"}', ng-click='chooseMount("BearCub", "Polar")', popover=env.t('polarBear'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
//.Mount_Head_BearCub-Polar
|
||||
button(ng-if='user.items.mounts["LionCub-Ethereal"]', class="pet-button Mount_Head_LionCub-Ethereal", ng-class='{active: user.items.currentMount == "LionCub-Ethereal"}', ng-click='chooseMount("LionCub", "Ethereal")', popover=env.t('etherealLion'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
//.Mount_Head_LionCub-Ethereal
|
||||
h4=env.t('rareMounts')
|
||||
menu
|
||||
div
|
||||
button(ng-if='user.items.mounts["BearCub-Polar"]', class="pet-button Mount_Head_BearCub-Polar", ng-class='{active: user.items.currentMount == "BearCub-Polar"}', ng-click='chooseMount("BearCub", "Polar")', popover=env.t('polarBear'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
//.Mount_Head_BearCub-Polar
|
||||
button(ng-if='user.items.mounts["LionCub-Ethereal"]', class="pet-button Mount_Head_LionCub-Ethereal", ng-class='{active: user.items.currentMount == "LionCub-Ethereal"}', ng-click='chooseMount("LionCub", "Ethereal")', popover=env.t('etherealLion'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
//.Mount_Head_LionCub-Ethereal
|
||||
|
||||
script(type='text/ng-template', id='partials/options.inventory.pets.html')
|
||||
.stable
|
||||
table(style='width:100%')
|
||||
tr
|
||||
td(style='width:144px')
|
||||
.npc_matt
|
||||
td
|
||||
.popover.static-popover.fade.right.in(style='max-width: 550px; margin-left: 10px;')
|
||||
.arrow
|
||||
h3.popover-title
|
||||
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch')
|
||||
.popover-content
|
||||
p
|
||||
=env.t('mattBochText1') + ' '
|
||||
| <a target='_blank' href='https://f.cloud.github.com/assets/2374703/164631/3ed5fa6c-78cd-11e2-8743-f65ac477b55e.png'>
|
||||
=env.t('mattBochText2')
|
||||
| </a>
|
||||
= ' ' + env.t('mattBochText3')
|
||||
h4= '{{petCount}} / {{totalPets}} ' + env.t('petsFound')
|
||||
.container-fluid
|
||||
.stable.row
|
||||
table
|
||||
tr
|
||||
td(style='width:144px')
|
||||
.npc_matt
|
||||
td
|
||||
.popover.static-popover.fade.right.in(style='max-width: 550px; margin-left: 10px;')
|
||||
.arrow
|
||||
h3.popover-title
|
||||
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch')
|
||||
.popover-content
|
||||
p
|
||||
=env.t('mattBochText1') + ' '
|
||||
| <a target='_blank' href='https://f.cloud.github.com/assets/2374703/164631/3ed5fa6c-78cd-11e2-8743-f65ac477b55e.png'>
|
||||
=env.t('mattBochText2')
|
||||
| </a>
|
||||
= ' ' + env.t('mattBochText3')
|
||||
h4= '{{petCount}} / {{totalPets}} ' + env.t('petsFound')
|
||||
|
||||
menu.pets(type='list')
|
||||
li.customize-menu(ng-repeat='egg in Content.eggs')
|
||||
menu
|
||||
div(ng-repeat='potion in Content.hatchingPotions', popover-trigger='mouseenter', popover='{{potion.text}} {{egg.text}}', popover-placement='bottom', ng-init='pet = egg.key+"-"+potion.key')
|
||||
button(class="pet-button Pet-{{pet}}", ng-if='user.items.pets[pet]>0', ng-class='{active: user.items.currentPet == pet, selectableInventory: selectedFood}', ng-click='choosePet(egg.key, potion.key)')
|
||||
.progress(ng-show='!user.items.mounts[pet]', ng-class='{"progress-success": user.items.pets[pet]<50}')
|
||||
.bar(style="width: {{user.items.pets[pet]/.5}}%;")
|
||||
button(class="pet-button pet-not-owned", ng-if='!user.items.pets[pet]')
|
||||
.PixelPaw
|
||||
button(class="pet-button Pet-{{pet}}" ng-if='user.items.pets[pet]<0',style='opacity:0.1;filter:alpha(opacity=10)')
|
||||
//if this could be changed to the opacity talked about? can't figure it out
|
||||
menu.pets(type='list')
|
||||
li.customize-menu(ng-repeat='egg in Content.eggs')
|
||||
menu
|
||||
div(ng-repeat='potion in Content.hatchingPotions', popover-trigger='mouseenter', popover='{{potion.text}} {{egg.text}}', popover-placement='bottom', ng-init='pet = egg.key+"-"+potion.key')
|
||||
button(class="pet-button Pet-{{pet}}", ng-if='user.items.pets[pet]>0', ng-class='{active: user.items.currentPet == pet, selectableInventory: selectedFood}', ng-click='choosePet(egg.key, potion.key)')
|
||||
.progress(ng-show='!user.items.mounts[pet]', ng-class='{"progress-success": user.items.pets[pet]<50}')
|
||||
.bar(style="width: {{user.items.pets[pet]/.5}}%;")
|
||||
button(class="pet-button pet-not-owned", ng-if='!user.items.pets[pet]')
|
||||
.PixelPaw
|
||||
button(class="pet-button Pet-{{pet}}" ng-if='user.items.pets[pet]<0',style='opacity:0.1;filter:alpha(opacity=10)')
|
||||
//if this could be changed to the opacity talked about? can't figure it out
|
||||
|
||||
h4=env.t('rarePets')
|
||||
menu
|
||||
div
|
||||
button(ng-if='user.items.pets["Wolf-Veteran"]', class="pet-button Pet-Wolf-Veteran", ng-class='{active: user.items.currentPet == "Wolf-Veteran"}', ng-click='choosePet("Wolf", "Veteran")', popover=env.t('veteranWolf'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
button(ng-if='user.items.pets["Wolf-Cerberus"]', class="pet-button Pet-Wolf-Cerberus", ng-class='{active: user.items.currentPet == "Wolf-Cerberus"}', ng-click='choosePet("Wolf", "Cerberus")', popover=env.t('cerberusPup'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
button(ng-if='user.items.pets["Turkey-Base"]', class="pet-button Pet-Turkey-Base", ng-class='{active: user.items.currentPet == "Turkey-Base"}', ng-click='choosePet("Turkey", "Base")', popover=env.t('turkey'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
button(ng-if='user.items.pets["BearCub-Polar"]', class="pet-button Pet-BearCub-Polar", ng-class='{active: user.items.currentPet == "BearCub-Polar"}', ng-click='choosePet("BearCub", "Polar")', popover=env.t('polarBearPup'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
button(ng-if='user.items.pets["Dragon-Hydra"]', class="pet-button Pet-Dragon-Hydra", ng-class='{active: user.items.currentPet == "Dragon-Hydra"}', ng-click='choosePet("Dragon", "Hydra")', popover=env.t('hydra'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')
|
||||
button(ng-if='!user.items.pets["Dragon-Hydra"]', class="pet-button pet-not-owned", popover-trigger='mouseenter', popover-placement='right', popover=env.t('rarePetPop1'), popover-title=env.t('rarePetPop2'))
|
||||
.PixelPaw-Gold
|
||||
h4=env.t('rarePets')
|
||||
menu
|
||||
div
|
||||
button(ng-if='user.items.pets["Wolf-Veteran"]', class="pet-button Pet-Wolf-Veteran", ng-class='{active: user.items.currentPet == "Wolf-Veteran"}', ng-click='choosePet("Wolf", "Veteran")', popover=env.t('veteranWolf'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
button(ng-if='user.items.pets["Wolf-Cerberus"]', class="pet-button Pet-Wolf-Cerberus", ng-class='{active: user.items.currentPet == "Wolf-Cerberus"}', ng-click='choosePet("Wolf", "Cerberus")', popover=env.t('cerberusPup'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
button(ng-if='user.items.pets["Turkey-Base"]', class="pet-button Pet-Turkey-Base", ng-class='{active: user.items.currentPet == "Turkey-Base"}', ng-click='choosePet("Turkey", "Base")', popover=env.t('turkey'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
button(ng-if='user.items.pets["BearCub-Polar"]', class="pet-button Pet-BearCub-Polar", ng-class='{active: user.items.currentPet == "BearCub-Polar"}', ng-click='choosePet("BearCub", "Polar")', popover=env.t('polarBearPup'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
button(ng-if='user.items.pets["Dragon-Hydra"]', class="pet-button Pet-Dragon-Hydra", ng-class='{active: user.items.currentPet == "Dragon-Hydra"}', ng-click='choosePet("Dragon", "Hydra")', popover=env.t('hydra'), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')
|
||||
button(ng-if='!user.items.pets["Dragon-Hydra"]', class="pet-button pet-not-owned", popover-trigger='mouseenter', popover-placement='right', popover=env.t('rarePetPop1'), popover-title=env.t('rarePetPop2'))
|
||||
.PixelPaw-Gold
|
||||
|
||||
.well.food-tray
|
||||
p(ng-show='foodCount < 1')=env.t('noFood')
|
||||
menu.inventory-list(type='list', ng-if='foodCount > 0')
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('food'))
|
||||
div(ng-repeat='(food,points) in ownedItems(user.items.food)')
|
||||
button.customize-option(popover-append-to-body='true', popover='{{Content.food[food].notes}}', popover-title='{{Content.food[food].text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
|
||||
.badge.badge-info.stack-count {{points}}
|
||||
// Remove this once we have images in
|
||||
p {{Content.food[food].text}}
|
||||
.well.food-tray
|
||||
p(ng-show='foodCount < 1')=env.t('noFood')
|
||||
menu.inventory-list(type='list', ng-if='foodCount > 0')
|
||||
li.customize-menu
|
||||
menu.pets-menu(label=env.t('food'))
|
||||
div(ng-repeat='(food,points) in ownedItems(user.items.food)')
|
||||
button.customize-option(popover-append-to-body='true', popover='{{Content.food[food].notes}}', popover-title='{{Content.food[food].text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
|
||||
.badge.badge-info.stack-count {{points}}
|
||||
// Remove this once we have images in
|
||||
p {{Content.food[food].text}}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
script(id='partials/options.profile.avatar.html', type='text/ng-template')
|
||||
.row-fluid
|
||||
.span4
|
||||
.row
|
||||
.col-md-4
|
||||
h3=env.t('bodyBody')
|
||||
small
|
||||
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
|
||||
|
|
@ -24,7 +24,7 @@ script(id='partials/options.profile.avatar.html', type='text/ng-template')
|
|||
button.btn.btn-small.btn-primary(ng-hide="user.purchased.shirt.convict && user.purchased.shirt.cross && user.purchased.shirt.fire && user.purchased.shirt.horizon && user.purchased.shirt.ocean && user.purchased.shirt.purple && user.purchased.shirt.rainbow && user.purchased.shirt.redblue && user.purchased.shirt.thunder && user.purchased.shirt.tropical && user.purchased.shirt.zombie", ng-click='unlock("shirt.convict,shirt.cross,shirt.fire,shirt.horizon,shirt.ocean,shirt.purple,shirt.rainbow,shirt.redblue,shirt.thunder,shirt.tropical,shirt.zombie")')!= env.t('unlockSet5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
|
||||
|
||||
|
||||
.span4
|
||||
.col-md-4
|
||||
h3=env.t('bodyHead')
|
||||
small
|
||||
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
|
||||
|
|
@ -77,7 +77,7 @@ script(id='partials/options.profile.avatar.html', type='text/ng-template')
|
|||
|
||||
button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.mustache.1 && user.purchased.hair.mustache.2 && user.purchased.hair.beard.1 && user.purchased.hair.beard.2 && user.purchased.hair.beard.3', ng-click='unlock("hair.mustache.1,hair.mustache.2,hair.beard.1,hair.beard.2,hair.beard.3")')!= env.t('unlockSet5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
|
||||
|
||||
.span4
|
||||
.col-md-4
|
||||
h3=env.t('bodySkin')
|
||||
small
|
||||
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
|
||||
|
|
@ -105,109 +105,113 @@ script(id='partials/options.profile.avatar.html', type='text/ng-template')
|
|||
button.customize-option(type='button', class='skin_#{color}', ng-if='user.purchased.skin.#{color}', ng-click='unlock("skin.#{color}")')
|
||||
|
||||
script(id='partials/options.profile.stats.html', type='text/ng-template')
|
||||
.row-fluid
|
||||
.border-right(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "span4" : "span6"')
|
||||
include ../shared/profiles/stats
|
||||
.span4.border-right.allocate-stats(ng-if='user.flags.classSelected && !user.preferences.disableClasses')
|
||||
h3=env.t('characterBuild')
|
||||
h4
|
||||
=env.t('class') + ': '
|
||||
span {{ {warrior:'Warrior',wizard:'Mage',healer:'Healer',rogue:'Rogue'}[user.stats.class] }}
|
||||
a.btn.btn-danger.btn-mini(ng-click='changeClass(null)')=env.t('changeClass')
|
||||
small 3 <span class="Pet_Currency_Gem1x inline-gems"/>
|
||||
table.table.table-striped
|
||||
tr
|
||||
td
|
||||
strong
|
||||
{{user.stats.points}}
|
||||
=env.t('unallocated')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('levelPopover'))
|
||||
td
|
||||
tr
|
||||
td(colspan=2)
|
||||
fieldset.auto-allocate
|
||||
label.checkbox
|
||||
input(type='checkbox', ng-model='user.preferences.automaticAllocation', ng-change='set({"preferences.automaticAllocation": user.preferences.automaticAllocation?true: false})', ng-click='set({"preferences.allocationMode":"taskbased"})')
|
||||
=env.t('autoAllocation')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('autoAllocationPop'))
|
||||
form(ng-show='user.preferences.automaticAllocation',style='margin-left:1em')
|
||||
label.radio
|
||||
input(type='radio', name='allocationMode', value='flat', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "flat"})')
|
||||
=env.t('evenAllocation')
|
||||
.container-fluid
|
||||
.row
|
||||
.border-right(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "col-md-4" : "col-md-6"')
|
||||
include ../shared/profiles/stats
|
||||
.col-md-4.border-right.allocate-stats(ng-if='user.flags.classSelected && !user.preferences.disableClasses')
|
||||
h3=env.t('characterBuild')
|
||||
h4
|
||||
=env.t('class') + ': '
|
||||
span {{ {warrior:'Warrior',wizard:'Mage',healer:'Healer',rogue:'Rogue'}[user.stats.class] }}
|
||||
a.btn.btn-danger.btn-mini(ng-click='changeClass(null)')=env.t('changeClass')
|
||||
small 3 <span class="Pet_Currency_Gem1x inline-gems"/>
|
||||
table.table.table-striped
|
||||
tr
|
||||
td
|
||||
strong
|
||||
{{user.stats.points}}
|
||||
=env.t('unallocated')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('levelPopover'))
|
||||
td
|
||||
tr
|
||||
td(colspan=2)
|
||||
fieldset.auto-allocate
|
||||
label.checkbox
|
||||
input(type='checkbox', ng-model='user.preferences.automaticAllocation', ng-change='set({"preferences.automaticAllocation": user.preferences.automaticAllocation?true: false})', ng-click='set({"preferences.allocationMode":"taskbased"})')
|
||||
=env.t('autoAllocation')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenAllocationPop'))
|
||||
label.radio
|
||||
input(type='radio', name='allocationMode', value='classbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "classbased"})')
|
||||
=env.t('classAllocation')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classAllocationPop'))
|
||||
label.radio
|
||||
input(type='radio', name='allocationMode', value='taskbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "taskbased"})')
|
||||
=env.t('taskAllocation')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskAllocationPop'))
|
||||
div(ng-show='user.preferences.automaticAllocation && !(user.preferences.allocationMode === "taskbased") && (user.stats.points > 0)')
|
||||
a.btn.btn-primary.btn-mini(ng-click='user.ops.allocateNow({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('distributePointsPop'))
|
||||
span.glyphicon.glyphicon-download
|
||||
|
||||
=env.t('distributePoints')
|
||||
tr
|
||||
td= env.t('allocateCon') + ' {{user.stats.con}}'
|
||||
td
|
||||
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("con")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateConPop')) +
|
||||
tr
|
||||
td= env.t('allocateInt') + ' {{user.stats.int}}'
|
||||
td
|
||||
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("int")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateIntPop')) +
|
||||
tr
|
||||
td= env.t('allocatePer') + ' {{user.stats.per}}'
|
||||
td
|
||||
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("per")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocatePerPop')) +
|
||||
tr
|
||||
td= env.t('allocateStr') + ' {{user.stats.str}}'
|
||||
td
|
||||
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("str")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateStrPop')) +
|
||||
|
||||
div(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "span4" : "span6"')
|
||||
include ../shared/profiles/achievements
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('autoAllocationPop'))
|
||||
form(ng-show='user.preferences.automaticAllocation',style='margin-left:1em')
|
||||
label.radio
|
||||
input(type='radio', name='allocationMode', value='flat', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "flat"})')
|
||||
=env.t('evenAllocation')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenAllocationPop'))
|
||||
label.radio
|
||||
input(type='radio', name='allocationMode', value='classbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "classbased"})')
|
||||
=env.t('classAllocation')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classAllocationPop'))
|
||||
label.radio
|
||||
input(type='radio', name='allocationMode', value='taskbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "taskbased"})')
|
||||
=env.t('taskAllocation')
|
||||
|
||||
span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskAllocationPop'))
|
||||
div(ng-show='user.preferences.automaticAllocation && !(user.preferences.allocationMode === "taskbased") && (user.stats.points > 0)')
|
||||
a.btn.btn-primary.btn-mini(ng-click='user.ops.allocateNow({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('distributePointsPop'))
|
||||
span.glyphicon.glyphicon-download
|
||||
|
||||
=env.t('distributePoints')
|
||||
tr
|
||||
td= env.t('allocateCon') + ' {{user.stats.con}}'
|
||||
td
|
||||
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("con")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateConPop')) +
|
||||
tr
|
||||
td= env.t('allocateInt') + ' {{user.stats.int}}'
|
||||
td
|
||||
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("int")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateIntPop')) +
|
||||
tr
|
||||
td= env.t('allocatePer') + ' {{user.stats.per}}'
|
||||
td
|
||||
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("per")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocatePerPop')) +
|
||||
tr
|
||||
td= env.t('allocateStr') + ' {{user.stats.str}}'
|
||||
td
|
||||
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("str")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateStrPop')) +
|
||||
|
||||
div(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "col-md-4" : "col-md-6"')
|
||||
include ../shared/profiles/achievements
|
||||
|
||||
script(id='partials/options.profile.profile.html', type='text/ng-template')
|
||||
button.btn.btn-default(ng-click='_editing.profile = true', ng-show='!_editing.profile')= env.t('edit')
|
||||
button.btn.btn-primary(ng-click='save()', ng-show='_editing.profile')= env.t('save')
|
||||
div(ng-show='!_editing.profile')
|
||||
h4=env.t('displayName')
|
||||
span(ng-show='profile.profile.name') {{profile.profile.name}}
|
||||
span.muted(ng-hide='profile.profile.name') -
|
||||
=env.t('none')
|
||||
| -
|
||||
.container-fluid
|
||||
.row
|
||||
.col-md-12(ng-show='!_editing.profile')
|
||||
button.btn.btn-default(ng-click='_editing.profile = true', ng-show='!_editing.profile')= env.t('edit')
|
||||
h4=env.t('displayName')
|
||||
span(ng-show='profile.profile.name') {{profile.profile.name}}
|
||||
span.muted(ng-hide='profile.profile.name') -
|
||||
=env.t('none')
|
||||
| -
|
||||
|
||||
h4=env.t('displayPhoto')
|
||||
img(ng-show='profile.profile.imageUrl', ng-src='{{profile.profile.imageUrl}}')
|
||||
span.muted(ng-hide='profile.profile.imageUrl') -
|
||||
=env.t('none')
|
||||
| -
|
||||
h4=env.t('displayPhoto')
|
||||
img(ng-show='profile.profile.imageUrl', ng-src='{{profile.profile.imageUrl}}')
|
||||
span.muted(ng-hide='profile.profile.imageUrl') -
|
||||
=env.t('none')
|
||||
| -
|
||||
|
||||
h4=env.t('displayBlurb')
|
||||
markdown(ng-show='profile.profile.blurb', ng-model='profile.profile.blurb')
|
||||
span.muted(ng-hide='profile.profile.blurb') -
|
||||
=env.t('none')
|
||||
| -
|
||||
//{{profile.profile.blurb | linky:'_blank'}}
|
||||
h4=env.t('displayBlurb')
|
||||
markdown(ng-show='profile.profile.blurb', ng-model='profile.profile.blurb')
|
||||
span.muted(ng-hide='profile.profile.blurb') -
|
||||
=env.t('none')
|
||||
| -
|
||||
//{{profile.profile.blurb | linky:'_blank'}}
|
||||
|
||||
div.whatever-options(ng-show='_editing.profile')
|
||||
// TODO use photo-upload instead: https://groups.google.com/forum/?fromgroups=#!topic/derbyjs/xMmADvxBOak
|
||||
.control-group.option-large
|
||||
label.control-label=env.t('displayName')
|
||||
input.option-content(type='text', placeholder=env.t('fullName'), ng-model='editingProfile.name')
|
||||
.control-group.option-large
|
||||
label.control-label=env.t('photoUrl')
|
||||
input.option-content(type='url', ng-model='editingProfile.imageUrl', placeholder=env.t('imageUrl'))
|
||||
.control-group.option-large
|
||||
label.control-label=env.t('displayBlurb')
|
||||
textarea.option-content(style='height:15em;', placeholder=env.t('displayBlurb'), ng-model='editingProfile.blurb')
|
||||
include ../shared/formatting-help
|
||||
form.col-md-4(ng-show='_editing.profile', ng-submit='save()')
|
||||
input.btn.btn-primary(type='submit', value=env.t('save'))
|
||||
|
||||
// TODO use photo-upload instead: https://groups.google.com/forum/?fromgroups=#!topic/derbyjs/xMmADvxBOak
|
||||
.form-group
|
||||
label=env.t('displayName')
|
||||
input.form-control(type='text', placeholder=env.t('fullName'), ng-model='editingProfile.name')
|
||||
.form-group
|
||||
label=env.t('photoUrl')
|
||||
input.form-control(type='url', ng-model='editingProfile.imageUrl', placeholder=env.t('imageUrl'))
|
||||
.form-group
|
||||
label=env.t('displayBlurb')
|
||||
textarea.form-control(rows=5, placeholder=env.t('displayBlurb'), ng-model='editingProfile.blurb')
|
||||
include ../shared/formatting-help
|
||||
|
||||
script(id='partials/options.profile.html', type="text/ng-template")
|
||||
ul.nav.nav-tabs
|
||||
|
|
|
|||
|
|
@ -1,16 +1,14 @@
|
|||
form.chat-form(ng-submit='postChat(group,message.content)')
|
||||
.-options
|
||||
//FIXME ng-model makes this painfully slow! using jquery for now, which is really non-angular-like
|
||||
.control-group.option-large(ng-controller='AutocompleteCtrl')
|
||||
textarea.chat-textarea.option-content(style='height:6em;', ui-keypress='{13:"postChat(group,message.content)"}', ng-model='message.content', updateinterval='250', flag='@', at-user, auto-complete)
|
||||
span.user-list(ng-show='!isAtListHidden')
|
||||
ul.list-at-user
|
||||
li(bindonce='response', ng-repeat='user in response | filter:query.text | limitTo: 5', ng-click='autoComplete(user)')
|
||||
span.username.label(class='label-contributor-{{user.contributor.level}}', ng-class='{"label-npc": user.backer.npc}') {{user.user}}
|
||||
table.pull-right
|
||||
tr
|
||||
td
|
||||
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=env.t('toolTipMsg'))
|
||||
span.glyphicon.glyphicon-refresh.pull-right
|
||||
div(ng-controller='AutocompleteCtrl')
|
||||
textarea.form-control(rows=4, ui-keypress='{13:"postChat(group,message.content)"}', ng-model='message.content', updateinterval='250', flag='@', at-user, auto-complete)
|
||||
span.user-list(ng-show='!isAtListHidden')
|
||||
ul.list-at-user
|
||||
li(bindonce='response', ng-repeat='user in response | filter:query.text | limitTo: 5', ng-click='autoComplete(user)')
|
||||
span.username.label(class='label-contributor-{{user.contributor.level}}', ng-class='{"label-npc": user.backer.npc}') {{user.user}}
|
||||
.row
|
||||
.col-md-9
|
||||
include ../../shared/formatting-help
|
||||
.col-md-3
|
||||
input.btn.btn-default.chat-btn(type='submit', value=env.t('sendChat'), ng-class='{disabled: _sending == true}')
|
||||
button.btn.btn-default(type="button", ng-click='sync(group)', tooltip=env.t('toolTipMsg'))
|
||||
span.glyphicon.glyphicon-refresh.pull-right
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
li.chat-message(bindonce='group.chat', ng-repeat='message in group.chat', bo-class='{highlight: isUserMentioned(user,message), "own-message": user._id == message.uuid}')
|
||||
div(class='scrollable-message')
|
||||
a.label.chat-message(class='hidden-label')
|
||||
a.label.label-default.chat-message(class='hidden-label')
|
||||
span {{message.user}}
|
||||
markdown(ng-model='message.text', style='padding:0px 3px')
|
||||
| -
|
||||
span.muted.time(from-now='message.timestamp',style='padding:0px 3px')
|
||||
span(style='padding:0px 3px')
|
||||
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.chat-plus-one.muted(ng-show='!countExists(message.likes)',ng-click='likeChatMessage(group,message)') +1
|
||||
a(bo-show='user.contributor.admin || message.uuid == user.id', ng-click='deleteChatMessage(group, message)',style='padding: 0px 3px')
|
||||
span.glyphicon.glyphicon-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)')
|
||||
a.label.label-default.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}}
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
form.form-horizontal(ng-submit='create(newGroup)')
|
||||
.control-group.whatever-options
|
||||
.control-group
|
||||
label.control-label(for='new-group-name')
|
||||
| {{text}}
|
||||
=env.t('name')
|
||||
.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')=env.t('description')
|
||||
.controls
|
||||
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')
|
||||
=env.t('public')
|
||||
label.radio
|
||||
input(type='radio', name='new-group-privacy', value='private', ng-model='newGroup.privacy')
|
||||
=env.t('inviteOnly')
|
||||
input.btn(type='submit', ng-disabled='!newGroup.privacy && !newGroup.name', value=env.t('create'))
|
||||
.container-fluid
|
||||
.row
|
||||
form.col-md-12.form-horizontal(ng-submit='create(newGroup)')
|
||||
.form-group
|
||||
label.control-label(for='new-group-name')
|
||||
| {{text}}
|
||||
=env.t('name')
|
||||
input.form-control#new-group-name.input-medium.option-content(required, type='text', placeholder='{{text}} Name', ng-model='newGroup.name')
|
||||
.form-group
|
||||
label(for='new-group-description')=env.t('description')
|
||||
textarea.form-control#new-group-description.option-content(cols='3', placeholder=env.t('description'), ng-model='newGroup.description')
|
||||
.form-group(ng-show='type=="guild"')
|
||||
.radio
|
||||
label
|
||||
input(type='radio', name='new-group-privacy', value='public', ng-model='newGroup.privacy')
|
||||
=env.t('public')
|
||||
.radio
|
||||
label
|
||||
input(type='radio', name='new-group-privacy', value='private', ng-model='newGroup.privacy')
|
||||
=env.t('inviteOnly')
|
||||
br
|
||||
input.btn.btn-default(type='submit', ng-disabled='!newGroup.privacy && !newGroup.name', value=env.t('create'))
|
||||
span.gem-cost= '4 ' + env.t('gems')
|
||||
p
|
||||
small=env.t('gemCost')
|
||||
.control-group(ng-show='type=="party"')
|
||||
.controls
|
||||
input.btn(type='submit', value=env.t('create'))
|
||||
.form-group(ng-show='type=="party"')
|
||||
input.btn.btn-default.form-control(type='submit', value=env.t('create'))
|
||||
|
|
|
|||
|
|
@ -4,174 +4,177 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
|
|||
.Pet_Currency_Gem2x.Gems
|
||||
| {{group.balance * 4 | number:0 }}
|
||||
=env.t('guildGems')
|
||||
.row-fluid
|
||||
.span4
|
||||
|
||||
.container-fluid
|
||||
.row
|
||||
.col-md-4
|
||||
|
||||
// ------ Bosses -------
|
||||
.modal.inline-modal(bindonce='group', ng-if='group.type==="party" && group.quest.key')
|
||||
.modal-header
|
||||
h3(ng-if='group.quest.active==false')=env.t('questInvitation') + '{{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 ? env.t('accepted') : group.quest.members[member._id] === false ? env.t('rejected') : env.t('pending')}}
|
||||
hr
|
||||
.npc_ian.pull-left
|
||||
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
|
||||
// ------ Bosses -------
|
||||
.panle.panel-default(bindonce='group', ng-if='group.type==="party" && group.quest.key')
|
||||
.panel-heading
|
||||
h3.panel-title(ng-if='group.quest.active==false')=env.t('questInvitation') + '{{Content.quests[group.quest.key].text}}'
|
||||
h3.panel-title(ng-if='group.quest.active==true') {{Content.quests[group.quest.key].text}}
|
||||
.panel-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 ? env.t('accepted') : group.quest.members[member._id] === false ? env.t('rejected') : env.t('pending')}}
|
||||
hr
|
||||
.npc_ian.pull-left
|
||||
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
|
||||
|
||||
div(ng-if='group.quest.active==true')
|
||||
div(ng-if='Content.quests[group.quest.key].boss')
|
||||
div(class="quest_{{group.quest.key}}")
|
||||
//-
|
||||
.progress(style="height:10px")
|
||||
.bar(style='width: {{Shared.percent(group.quest.hp, Content.quests[group.quest.key].hp)}}%;')
|
||||
span.meter-text
|
||||
span.glyphicon.glyphicon-heart
|
||||
| {{group.quest.hp | number:0}} / {{Content.quests[group.quest.key].hp}}
|
||||
.hero-stats
|
||||
.meter.health(title=env.t('bossHP'))
|
||||
.bar(style='width: {{Shared.percent(group.quest.progress.hp, Content.quests[group.quest.key].boss.hp)}}%;')
|
||||
div(ng-if='group.quest.active==true')
|
||||
div(ng-if='Content.quests[group.quest.key].boss')
|
||||
div(class="quest_{{group.quest.key}}")
|
||||
//-
|
||||
.progress(style="height:10px")
|
||||
.bar(style='width: {{Shared.percent(group.quest.hp, Content.quests[group.quest.key].hp)}}%;')
|
||||
span.meter-text
|
||||
span.glyphicon.glyphicon-heart
|
||||
| {{group.quest.progress.hp | number:0}} / {{Content.quests[group.quest.key].boss.hp}}
|
||||
| {{group.quest.hp | number:0}} / {{Content.quests[group.quest.key].hp}}
|
||||
.hero-stats
|
||||
.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
|
||||
span.glyphicon.glyphicon-heart
|
||||
| {{group.quest.progress.hp | number:0}} / {{Content.quests[group.quest.key].boss.hp}}
|
||||
|
||||
div(ng-if='Content.quests[group.quest.key].collect')
|
||||
h4=env.t('collected') + ':'
|
||||
div(ng-if='Content.quests[group.quest.key].collect')
|
||||
h4=env.t('collected') + ':'
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in group.quest.progress.collect', class='quest_collected_{{v >= Content.quests[group.quest.key].collect[k].count}}')
|
||||
td
|
||||
div.pull-left(class='quest_{{group.quest.key}}_{{k}}')
|
||||
| {{Content.quests[group.quest.key].collect[k].text}}
|
||||
td
|
||||
{{v}} / {{Content.quests[group.quest.key].collect[k].count}}
|
||||
|
||||
div(ng-bind-html='Content.quests[group.quest.key].notes')
|
||||
hr
|
||||
h5=env.t('participants')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in group.quest.progress.collect', class='quest_collected_{{v >= Content.quests[group.quest.key].collect[k].count}}')
|
||||
td
|
||||
div.pull-left(class='quest_{{group.quest.key}}_{{k}}')
|
||||
| {{Content.quests[group.quest.key].collect[k].text}}
|
||||
td
|
||||
{{v}} / {{Content.quests[group.quest.key].collect[k].count}}
|
||||
tr(ng-repeat='(k,v) in group.members', ng-show='group.quest.members[v._id]')
|
||||
td {{v.profile.name}}
|
||||
quest-rewards(key='{{group.quest.key}}')
|
||||
|
||||
div(ng-bind-html='Content.quests[group.quest.key].notes')
|
||||
div(ng-if='Content.quests[group.quest.key].boss')
|
||||
.npc_ian.pull-left
|
||||
p!=env.t('bossDmg1')
|
||||
br
|
||||
p=env.t('bossDmg2')
|
||||
|
||||
div(ng-if='Content.quests[group.quest.key].collect')
|
||||
.npc_ian.pull-left
|
||||
p=env.t('bossColl1')
|
||||
br
|
||||
p=env.t('bossColl2')
|
||||
|
||||
|
||||
button.btn.btn-mini.btn-danger(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='questAbort()')=env.t('abort')
|
||||
|
||||
// ------ Information -------
|
||||
.panel.panel-default
|
||||
.panel-heading(bindonce='group')
|
||||
h3.panel-title
|
||||
| {{group.name}}
|
||||
span(ng-if='group.leader == user.id')
|
||||
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')
|
||||
|
||||
.panel-body
|
||||
form(ng-show='group._editing')
|
||||
.form-group
|
||||
label=env.t('groupName')
|
||||
input.form-control(type='text', ng-model='group.name', placeholder=env.t('groupName'))
|
||||
.form-group
|
||||
label=env.t('description')
|
||||
textarea.form-control(rows=6, ng-model='group.description')
|
||||
include ../../shared/formatting-help
|
||||
.form-group
|
||||
label=env.t('logoUrl')
|
||||
input.form-control(type='url', placeholder=env.t('logoUrl'), ng-model='group.logo')
|
||||
|
||||
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')
|
||||
img.pull-right(ng-show='group.logo', style='max-width:150px', ng-src='{{group.logo}}')
|
||||
markdown(ng-model='group.description')
|
||||
hr
|
||||
h5=env.t('participants')
|
||||
small.muted Group ID: {{group._id}}
|
||||
|
||||
include ./challenge-box
|
||||
|
||||
// ------ Members -------
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h3.panel-title=env.t('members')
|
||||
.panel-body
|
||||
span
|
||||
=env.t('partyList')
|
||||
select#partyOrder(
|
||||
style='width:140px',
|
||||
ng-model='user.party.order',
|
||||
ng-controller='ChatCtrl',
|
||||
ng-options='k as v for (k , v) in partyOrderChoices',
|
||||
ng-change='set({"party.order": user.party.order})'
|
||||
)
|
||||
table.table.table-striped(bindonce='group')
|
||||
tr(ng-repeat='member in group.members')
|
||||
td
|
||||
// allow leaders to ban members
|
||||
div(ng-show='group.leader == user.id && user.id!=member._id')
|
||||
a(ng-click='removeMember(group, member, true)')
|
||||
span.glyphicon.glyphicon-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}}
|
||||
= ' ' + env.t('moreMembers')
|
||||
|</span>
|
||||
|
||||
h4(ng-show='group.invites.length > 0')=env.t('invited')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in group.members', ng-show='group.quest.members[v._id]')
|
||||
td {{v.profile.name}}
|
||||
quest-rewards(key='{{group.quest.key}}')
|
||||
|
||||
div(ng-if='Content.quests[group.quest.key].boss')
|
||||
.npc_ian.pull-left
|
||||
p!=env.t('bossDmg1')
|
||||
br
|
||||
p=env.t('bossDmg2')
|
||||
|
||||
div(ng-if='Content.quests[group.quest.key].collect')
|
||||
.npc_ian.pull-left
|
||||
p=env.t('bossColl1')
|
||||
br
|
||||
p=env.t('bossColl2')
|
||||
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)')
|
||||
span.glyphicon.glyphicon-ban-circle(tooltip=env.t('banTip'))
|
||||
a
|
||||
span(ng-click='clickMember(invite._id, true)')
|
||||
| {{invite.profile.name}}
|
||||
.panel-footer
|
||||
form.form-inline(ng-submit='invite(group)')
|
||||
//.alert.alert-danger(ng-show='_groupError') {{_groupError}}
|
||||
.form-group
|
||||
input.form-control(type='text', placeholder=env.t('userId'), ng-model='group.invitee')
|
||||
|
||||
input.btn.btn-default(type='submit', value=env.t('invite'))
|
||||
|
||||
|
||||
button.btn.btn-mini.btn-danger(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='questAbort()')=env.t('abort')
|
||||
a.btn.btn-danger(data-id='{{group.id}}', ng-click='clickLeave(group, $event)')=env.t('leave')
|
||||
|
||||
// ------ 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')=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-labe=env.t('groupName')
|
||||
input.option-content(type='text', ng-model='group.name', placeholder=env.t('groupName'))
|
||||
.control-group.option-large
|
||||
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=env.t('logoUrl')
|
||||
input.option-content(type='url', placeholder=env.t('logoUrl'), ng-model='group.logo')
|
||||
.col-md-8
|
||||
div()
|
||||
textarea.form-control(ng-show='group._editing', rows=6, placeholder=env.t('leaderMsg'), ng-model='group.leaderMessage')
|
||||
table(ng-show='group.leaderMessage')
|
||||
tr
|
||||
td
|
||||
.popover.static-popover.fade.right.in.wide-popover
|
||||
.arrow
|
||||
h3.popover-title {{Members.members[group.leader].profile.name}}
|
||||
.popover-content
|
||||
markdown(ng-model='group.leaderMessage')
|
||||
div(ng-controller='ChatCtrl')
|
||||
h3=env.t('chat')
|
||||
include ./chat-box
|
||||
|
||||
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')
|
||||
img.pull-right(ng-show='group.logo', style='max-width:150px', ng-src='{{group.logo}}')
|
||||
markdown(ng-model='group.description')
|
||||
hr
|
||||
small.muted Group ID: {{group._id}}
|
||||
|
||||
include ./challenge-box
|
||||
|
||||
// ------ Members -------
|
||||
.modal.inline-modal
|
||||
.modal-header
|
||||
h3=env.t('members')
|
||||
.modal-body
|
||||
span
|
||||
=env.t('partyList')
|
||||
select#partyOrder(
|
||||
style='width:140px',
|
||||
ng-model='user.party.order',
|
||||
ng-controller='ChatCtrl',
|
||||
ng-options='k as v for (k , v) in partyOrderChoices',
|
||||
ng-change='set({"party.order": user.party.order})'
|
||||
)
|
||||
table.table.table-striped(bindonce='group')
|
||||
tr(ng-repeat='member in group.members')
|
||||
td
|
||||
// allow leaders to ban members
|
||||
div(ng-show='group.leader == user.id && user.id!=member._id')
|
||||
a(ng-click='removeMember(group, member, true)')
|
||||
span.glyphicon.glyphicon-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}}
|
||||
= ' ' + env.t('moreMembers')
|
||||
|</span>
|
||||
|
||||
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)')
|
||||
span.glyphicon.glyphicon-ban-circle(tooltip=env.t('banTip'))
|
||||
a
|
||||
span(ng-click='clickMember(invite._id, true)')
|
||||
| {{invite.profile.name}}
|
||||
.modal-footer.whatever-options
|
||||
form.form-inline(ng-submit='invite(group)')
|
||||
//.alert.alert-danger(ng-show='_groupError') {{_groupError}}
|
||||
.control-group.option-large
|
||||
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)')=env.t('leave')
|
||||
|
||||
.span8
|
||||
div.blah-options(ng-show='group._editing')
|
||||
.option-large
|
||||
textarea.option-content(style='height:15em;', placeholder=env.t('leaderMsg'), ng-model='group.leaderMessage')
|
||||
table(ng-show='group.leaderMessage')
|
||||
tr
|
||||
td
|
||||
.popover.static-popover.fade.right.in.wide-popover
|
||||
.arrow
|
||||
h3.popover-title {{Members.members[group.leader].profile.name}}
|
||||
.popover-content
|
||||
markdown(ng-model='group.leaderMessage')
|
||||
div(ng-controller='ChatCtrl')
|
||||
h3=env.t('chat')
|
||||
include ./chat-box
|
||||
include ../../shared/formatting-help
|
||||
|
||||
ul.unstyled.tavern-chat
|
||||
include ./chat-message
|
||||
ul.list-unstyled.tavern-chat
|
||||
include ./chat-message
|
||||
|
|
|
|||
|
|
@ -12,83 +12,83 @@ script(type='text/ng-template', id='partials/options.social.hall.html')
|
|||
div(ui-view)
|
||||
|
||||
script(type='text/ng-template', id='partials/options.social.hall.heroes.html')
|
||||
div.well(ng-if='user.contributor.admin')
|
||||
.well(ng-if='user.contributor.admin')
|
||||
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=env.t('UUID'))
|
||||
button.btn(type='submit')=env.t('loadUser')
|
||||
.form-group
|
||||
input.form-control(type='text', ng-model='_heroID', placeholder=env.t('UUID'))
|
||||
input.btn.btn-default(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=env.t('contribTitle'))
|
||||
.control-group.option-medium
|
||||
input.option-content(type='number', step="any", ng-model='hero.contributor.level')
|
||||
span.input-suffix=env.t('contribLevel')
|
||||
br
|
||||
small=env.t('contribHallText')
|
||||
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=env.t('contributions'), ng-model='hero.contributor.contributions')
|
||||
//-include ../../shared/formatting-help
|
||||
.control-group.option-medium
|
||||
label.checkbox
|
||||
.form-group
|
||||
input.form-control(type='text', ng-model='hero.contributor.text', placeholder=env.t('contribTitle'))
|
||||
.form-group
|
||||
input.form-control(type='number', step="any", ng-model='hero.contributor.level')
|
||||
span.input-suffix=env.t('contribLevel')
|
||||
br
|
||||
small=env.t('contribHallText')
|
||||
a(target='_blank', href='https://trello.com/c/wkFzONhE/277-contributor-gear')=env.t('moreDetails')
|
||||
.form-group
|
||||
textarea.form-control(style='height:15em;', placeholder=env.t('contributions'), ng-model='hero.contributor.contributions')
|
||||
//-include ../../shared/formatting-help
|
||||
.form-group
|
||||
.checkbox
|
||||
label
|
||||
input(type='checkbox', ng-model='hero.contributor.admin')
|
||||
=env.t('admin')
|
||||
|
||||
hr
|
||||
|
||||
.control-group.option-medium
|
||||
input.option-content(type='number', step="any", ng-model='hero.balance')
|
||||
.form-group
|
||||
input.form-control(type='number', step="any", ng-model='hero.balance')
|
||||
span.input-suffix=env.t('balance')
|
||||
p
|
||||
small!= '`user.balance`' + env.t('notGems')
|
||||
|
||||
.control-group.option-medium
|
||||
label.checkbox
|
||||
input(type='checkbox', ng-model='hero.purchased.ads')
|
||||
=env.t('hideAds')
|
||||
.form-group
|
||||
.checkbox
|
||||
label
|
||||
input(type='checkbox', ng-model='hero.purchased.ads')
|
||||
=env.t('hideAds')
|
||||
|
||||
// h4 Backer Status
|
||||
// Add backer stuff like tier, disable adds, etcs
|
||||
button.btn-primary(type='submit')=env.t('save')
|
||||
input.btn.btn-primary(type='submit')=env.t('save')
|
||||
|
||||
|
||||
table.table.table-striped
|
||||
tr
|
||||
thead
|
||||
tr
|
||||
th=env.t('name')
|
||||
th(ng-if='user.contributor.admin')=env.t('UUID')
|
||||
th=env.t('contribLevel')
|
||||
th=env.t('title')
|
||||
th=env.t('contributions')
|
||||
tr(ng-repeat='hero in heroes')
|
||||
td
|
||||
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}}
|
||||
span.glyphicon.glyphicon-star
|
||||
span(ng-if='!hero.contributor.admin')
|
||||
a.label(class='label-contributor-{{hero.contributor.level}}', ng-class='{"label-npc": hero.backer.npc}', ng-click='clickMember(hero._id, true)') {{hero.profile.name}}
|
||||
td(ng-if='user.contributor.admin') {{hero._id}}
|
||||
td {{hero.contributor.level}}
|
||||
td {{hero.contributor.text}}
|
||||
td
|
||||
markdown(ng-model='hero.contributor.contributions', target='_blank')
|
||||
thead
|
||||
tr
|
||||
th=env.t('name')
|
||||
th(ng-if='user.contributor.admin')=env.t('UUID')
|
||||
th=env.t('contribLevel')
|
||||
th=env.t('title')
|
||||
th=env.t('contributions')
|
||||
tbody
|
||||
tr(ng-repeat='hero in heroes')
|
||||
td
|
||||
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}}
|
||||
span.glyphicon.glyphicon-star
|
||||
span(ng-if='!hero.contributor.admin')
|
||||
a.label(class='label-contributor-{{hero.contributor.level}}', ng-class='{"label-npc": hero.backer.npc}', ng-click='clickMember(hero._id, true)') {{hero.profile.name}}
|
||||
td(ng-if='user.contributor.admin') {{hero._id}}
|
||||
td {{hero.contributor.level}}
|
||||
td {{hero.contributor.text}}
|
||||
td
|
||||
markdown(ng-model='hero.contributor.contributions', target='_blank')
|
||||
|
||||
script(type='text/ng-template', id='partials/options.social.hall.patrons.html')
|
||||
table.table.table-striped(infinite-scroll="loadMore()")
|
||||
tr
|
||||
thead
|
||||
tr
|
||||
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}}
|
||||
thead
|
||||
tr
|
||||
th=env.t('name')
|
||||
th(ng-if='user.contributor.admin')=env.t('UUID')
|
||||
th=env.t('backerTier')
|
||||
tbody
|
||||
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}}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ include ./hall.jade
|
|||
script(type='text/ng-template', id='partials/options.social.tavern.html')
|
||||
include ./tavern
|
||||
|
||||
|
||||
script(type='text/ng-template', id='partials/options.social.party.html')
|
||||
div(ng-show='group._id')
|
||||
include ./group
|
||||
|
|
@ -30,8 +29,8 @@ script(type='text/ng-template', id='partials/options.social.guilds.public.html')
|
|||
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=env.t('search'))
|
||||
.col-md-3
|
||||
input.form-control(type='text',ng-model='guildSearch', placeholder=env.t('search'))
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='group in groups.public | filter:guildSearch')
|
||||
td
|
||||
|
|
|
|||
|
|
@ -1,127 +1,125 @@
|
|||
.row-fluid
|
||||
.span4
|
||||
.tavern-pane
|
||||
table
|
||||
tr
|
||||
td
|
||||
.npc_daniel
|
||||
td
|
||||
.popover.static-popover.fade.right.in
|
||||
.arrow
|
||||
h3.popover-title
|
||||
a(target='_blank', href='http://www.kickstarter.com/profile/2014640723')=env.t('daniel')
|
||||
.popover-content
|
||||
=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')=env.t('innCheckOut')
|
||||
span(ng-hide='user.preferences.sleep')=env.t('innCheckIn')
|
||||
.alert.alert-info(ng-show='user.preferences.sleep')
|
||||
=env.t('innText')
|
||||
.container-fluid
|
||||
.row
|
||||
.col-md-4
|
||||
.tavern-pane
|
||||
table
|
||||
tr
|
||||
td
|
||||
.npc_daniel
|
||||
td
|
||||
.popover.static-popover.fade.right.in
|
||||
.arrow
|
||||
h3.popover-title
|
||||
a(target='_blank', href='http://www.kickstarter.com/profile/2014640723')=env.t('daniel')
|
||||
.popover-content
|
||||
=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')=env.t('innCheckOut')
|
||||
span(ng-hide='user.preferences.sleep')=env.t('innCheckIn')
|
||||
.alert.alert-info(ng-show='user.preferences.sleep')
|
||||
=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=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)')=env.t('lfgPosts')
|
||||
tr
|
||||
td
|
||||
a(target='_blank', href='https://vimeo.com/57654086')=env.t('tutorial')
|
||||
tr
|
||||
td
|
||||
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')=env.t('glossary')
|
||||
tr
|
||||
td
|
||||
a(target='_blank', href='https://github.com/HabitRPG/habitrpg/issues')=env.t('reportAP')
|
||||
tr
|
||||
td
|
||||
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')=env.t('community')
|
||||
// Resources
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
h3.panel-title=env.t('resources')
|
||||
.panel-body
|
||||
table.table.table-striped
|
||||
tr
|
||||
td
|
||||
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')=env.t('tutorial')
|
||||
tr
|
||||
td
|
||||
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')=env.t('glossary')
|
||||
tr
|
||||
td
|
||||
a(target='_blank', href='https://github.com/HabitRPG/habitrpg/issues')=env.t('reportAP')
|
||||
tr
|
||||
td
|
||||
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')=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=env.t('tierPop'), popover-trigger="mouseenter", popover-placement="right")
|
||||
.modal-header
|
||||
h3=env.t('playerTiers')
|
||||
.modal-body
|
||||
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)')=env.t('friendBadge')
|
||||
div(style='display:none;')
|
||||
p
|
||||
span.achievement.achievement-firefox
|
||||
!=env.t('friendFirst')
|
||||
hr
|
||||
p
|
||||
span.shop-sprite.item-img(class='shop_armor_special_1')
|
||||
!=env.t('friendSecond')
|
||||
tr
|
||||
td
|
||||
a.label.label-contributor-3(ng-click='toggleUserTier($event)')=env.t('eliteBadge')
|
||||
div(style='display:none;')
|
||||
p
|
||||
span.shop-sprite.item-img(class='shop_head_special_1')
|
||||
!=env.t('eliteThird')
|
||||
hr
|
||||
p
|
||||
span.shop-sprite.item-img(class='shop_weapon_special_1')
|
||||
!=env.t('eliteFourth')
|
||||
tr
|
||||
td
|
||||
a.label.label-contributor-5(ng-click='toggleUserTier($event)')=env.t('championBadge')
|
||||
div(style='display:none;')
|
||||
p
|
||||
span.shop-sprite.item-img(class='shop_shield_special_1')
|
||||
!=env.t('championFifth')
|
||||
hr
|
||||
p
|
||||
div(class='Pet-Dragon-Hydra pull-left')
|
||||
!=env.t('championSixth')
|
||||
tr
|
||||
td
|
||||
a.label.label-contributor-7(ng-click='toggleUserTier($event)')=env.t('legendaryBadge')
|
||||
div(style='display:none;')
|
||||
p
|
||||
!=env.t('legSeventh')
|
||||
tr
|
||||
td
|
||||
a.label.label-contributor-8(ng-click='toggleUserTier($event)')=env.t('heroicBadge')
|
||||
div(style='display:none;')
|
||||
p=env.t('heroicText')
|
||||
tr
|
||||
td
|
||||
a.label.label-npc(ng-click='toggleUserTier($event)')=env.t('npc')
|
||||
div(style='display:none;')
|
||||
p=env.t('npcText')
|
||||
// Player Tiers
|
||||
.panel.panel-default(popover=env.t('tierPop'), popover-trigger="mouseenter", popover-placement="right")
|
||||
.panel-heading
|
||||
h3.panel-title=env.t('playerTiers')
|
||||
.panel-body
|
||||
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)')=env.t('friendBadge')
|
||||
div(style='display:none;')
|
||||
p
|
||||
span.achievement.achievement-firefox
|
||||
!=env.t('friendFirst')
|
||||
hr
|
||||
p
|
||||
span.shop-sprite.item-img(class='shop_armor_special_1')
|
||||
!=env.t('friendSecond')
|
||||
tr
|
||||
td
|
||||
a.label.label-contributor-3(ng-click='toggleUserTier($event)')=env.t('eliteBadge')
|
||||
div(style='display:none;')
|
||||
p
|
||||
span.shop-sprite.item-img(class='shop_head_special_1')
|
||||
!=env.t('eliteThird')
|
||||
hr
|
||||
p
|
||||
span.shop-sprite.item-img(class='shop_weapon_special_1')
|
||||
!=env.t('eliteFourth')
|
||||
tr
|
||||
td
|
||||
a.label.label-contributor-5(ng-click='toggleUserTier($event)')=env.t('championBadge')
|
||||
div(style='display:none;')
|
||||
p
|
||||
span.shop-sprite.item-img(class='shop_shield_special_1')
|
||||
!=env.t('championFifth')
|
||||
hr
|
||||
p
|
||||
div(class='Pet-Dragon-Hydra pull-left')
|
||||
!=env.t('championSixth')
|
||||
tr
|
||||
td
|
||||
a.label.label-contributor-7(ng-click='toggleUserTier($event)')=env.t('legendaryBadge')
|
||||
div(style='display:none;')
|
||||
p
|
||||
!=env.t('legSeventh')
|
||||
tr
|
||||
td
|
||||
a.label.label-contributor-8(ng-click='toggleUserTier($event)')=env.t('heroicBadge')
|
||||
div(style='display:none;')
|
||||
p=env.t('heroicText')
|
||||
tr
|
||||
td
|
||||
a.label.label-npc(ng-click='toggleUserTier($event)')=env.t('npc')
|
||||
div(style='display:none;')
|
||||
p=env.t('npcText')
|
||||
|
||||
include ./challenge-box
|
||||
include ./challenge-box
|
||||
|
||||
.span8(ng-controller='ChatCtrl')
|
||||
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
|
||||
!=env.t('tavernAlert1') + ' <a href="https://github.com/HabitRPG/habitrpg/issues" target="_blank">' + env.t('tavernAlert2') + '</a>.'
|
||||
ul.unstyled.tavern-chat
|
||||
include ./chat-message
|
||||
.col-md-8.tavern(ng-controller='ChatCtrl')
|
||||
h3=env.t('tavernTalk')
|
||||
include ./chat-box
|
||||
.alert.alert-info
|
||||
!=env.t('tavernAlert1') + ' <a href="https://github.com/HabitRPG/habitrpg/issues" target="_blank">' + env.t('tavernAlert2') + '</a>.'
|
||||
ul.list-unstyled.tavern-chat
|
||||
include ./chat-message
|
||||
|
|
|
|||
|
|
@ -1,133 +1,132 @@
|
|||
.achievements-container
|
||||
// <div class='achievement achievement-sword'></div>
|
||||
// <div class='achievement achievement-tree'></div>
|
||||
// <div class='achievement achievement-comment'></div>
|
||||
// <div class='achievement achievement-cave'></div>
|
||||
// <div class='achievement achievement-boot'></div>
|
||||
// <div class='achievement achievement-coffin'></div>
|
||||
// <div class='achievement achievement-alien'></div>
|
||||
// <div class='achievement achievement-ninja'></div>
|
||||
// <div class='achievement achievement-cactus'></div>
|
||||
// <div class='achievement achievement-bow'></div>
|
||||
// <div class='achievement achievement-shield'></div>
|
||||
// <div class='achievement achievement-karaoke'></div>
|
||||
// <div class='achievement achievement-sword'></div>
|
||||
// <div class='achievement achievement-tree'></div>
|
||||
// <div class='achievement achievement-comment'></div>
|
||||
// <div class='achievement achievement-cave'></div>
|
||||
// <div class='achievement achievement-boot'></div>
|
||||
// <div class='achievement achievement-coffin'></div>
|
||||
// <div class='achievement achievement-alien'></div>
|
||||
// <div class='achievement achievement-ninja'></div>
|
||||
// <div class='achievement achievement-cactus'></div>
|
||||
// <div class='achievement achievement-bow'></div>
|
||||
// <div class='achievement achievement-shield'></div>
|
||||
// <div class='achievement achievement-karaoke'></div>
|
||||
|
||||
div(ng-if='profile.backer.npc')
|
||||
.achievement.achievement-helm
|
||||
div(ng-if='profile.backer.npc')
|
||||
.achievement.achievement-helm
|
||||
h5
|
||||
span.label.label-npc
|
||||
| {{profile.backer.npc}}
|
||||
=env.t('npc')
|
||||
small=env.t('npcText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.contributor.level || user._id == profile._id')
|
||||
.achievement.achievement-firefox(ng-if='profile.contributor.level')
|
||||
div(ng-class='{muted: !profile.contributor.level}')
|
||||
h5
|
||||
span.label.label-npc
|
||||
| {{profile.backer.npc}}
|
||||
=env.t('npc')
|
||||
small=env.t('npcText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.contributor.level || user._id == profile._id')
|
||||
.achievement.achievement-firefox(ng-if='profile.contributor.level')
|
||||
div(ng-class='{muted: !profile.contributor.level}')
|
||||
h5
|
||||
span.label(ng-if='profile.contributor.level', class='label-contributor-{{profile.contributor.level}}') {{contribText(profile.contributor, profile.backer)}}
|
||||
span.label(ng-if='!profile.contributor.level')=env.t('contribName')
|
||||
small
|
||||
=env.t('contribText')
|
||||
a(href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG', target='_blank')=env.t('readMore')
|
||||
| .
|
||||
hr
|
||||
|
||||
div(ng-if='profile.backer.tier')
|
||||
.achievement.achievement-heart
|
||||
h5=env.t('kickstartName', {tier: "{{profile.backer.tier}}"})
|
||||
small=env.t('kickstartText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.streak || user._id == profile._id')
|
||||
.achievement.achievement-thermometer(ng-show='profile.achievements.streak')
|
||||
div(ng-class='{muted: !profile.achievements.streak}')
|
||||
h5 {{profile.achievements.streak || 0 }}
|
||||
=env.t('streakName')
|
||||
small=env.t('streakText', {streaks: "{{profile.achievements.streak || 0 }}"})
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.perfect || user._id == profile._id')
|
||||
.achievement.achievement-perfect(ng-show='profile.achievements.perfect')
|
||||
div(ng-class='{muted: !profile.achievements.perfect}')
|
||||
h5 {{profile.achievements.perfect || 0 }}
|
||||
=env.t('perfectName')
|
||||
small=env.t('perfectText', {perfects: "{{profile.achievements.perfect || 0 }}"})
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.ultimateGear || user._id == profile._id')
|
||||
.achievement.achievement-armor(ng-show='profile.achievements.ultimateGear')
|
||||
div(ng-class='{muted: !profile.achievements.ultimateGear}')
|
||||
h5=env.t('ultimGearName')
|
||||
small=env.t('ultimGearText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.beastMaster || user._id == profile._id')
|
||||
.achievement.achievement-rat(ng-show='profile.achievements.beastMaster')
|
||||
div(ng-class='{muted: !profile.achievements.beastMaster}')
|
||||
h5=env.t('beastMastName')
|
||||
small=env.t('beastMastText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.rebirths')
|
||||
.achievement.achievement-sun
|
||||
h5(ng-if='profile.achievements.rebirths == 1')=env.t('rebirthBegan')
|
||||
h5(ng-if='profile.achievements.rebirths > 1')
|
||||
=env.t('rebirthText', {rebirths: "{{profile.achievements.rebirths}}"})
|
||||
span.label(ng-if='profile.contributor.level', class='label-contributor-{{profile.contributor.level}}') {{contribText(profile.contributor, profile.backer)}}
|
||||
span.label(ng-if='!profile.contributor.level')=env.t('contribName')
|
||||
small
|
||||
=env.t('rebirthOrb')
|
||||
| {{profile.achievements.rebirthLevel}}.
|
||||
hr
|
||||
=env.t('contribText')
|
||||
a(href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG', target='_blank')=env.t('readMore')
|
||||
| .
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.helpedHabit')
|
||||
.achievement.achievement-tree
|
||||
h5=env.t('helped')
|
||||
small
|
||||
=env.t('helpedText1')
|
||||
a(href='http://community.habitrpg.com/node/290', target='_blank')=env.t('helpedText2')
|
||||
hr
|
||||
div(ng-if='profile.backer.tier')
|
||||
.achievement.achievement-heart
|
||||
h5=env.t('kickstartName', {tier: "{{profile.backer.tier}}"})
|
||||
small=env.t('kickstartText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.originalUser || profile.achievements.veteran')
|
||||
.achievement.achievement-cake
|
||||
div(ng-if='profile.achievements.veteran')
|
||||
h5=env.t('veteran')
|
||||
small=env.t('veteranText')
|
||||
div(ng-if='profile.achievements.originalUser')
|
||||
h5=env.t('originalUser')
|
||||
small!=env.t('originalUserText')
|
||||
hr
|
||||
div(ng-if='profile.achievements.streak || user._id == profile._id')
|
||||
.achievement.achievement-thermometer(ng-show='profile.achievements.streak')
|
||||
div(ng-class='{muted: !profile.achievements.streak}')
|
||||
h5 {{profile.achievements.streak || 0 }}
|
||||
=env.t('streakName')
|
||||
small=env.t('streakText', {streaks: "{{profile.achievements.streak || 0 }}"})
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.challenges || user._id == profile._id')
|
||||
// This is a very strange icon to use. revisit
|
||||
.achievement.achievement-karaoke(ng-show='profile.achievements.challenges')
|
||||
div(ng-class='{muted: !profile.achievements.challenges}')
|
||||
h5=env.t('challengeWinner')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='chal in profile.achievements.challenges')
|
||||
td {{chal}}
|
||||
hr
|
||||
div(ng-if='profile.achievements.perfect || user._id == profile._id')
|
||||
.achievement.achievement-perfect(ng-show='profile.achievements.perfect')
|
||||
div(ng-class='{muted: !profile.achievements.perfect}')
|
||||
h5 {{profile.achievements.perfect || 0 }}
|
||||
=env.t('perfectName')
|
||||
small=env.t('perfectText', {perfects: "{{profile.achievements.perfect || 0 }}"})
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.quests || user._id == profile._id')
|
||||
.achievement.achievement-alien(ng-show='profile.achievements.quests')
|
||||
div(ng-class='{muted: !profile.achievements.quests}')
|
||||
h5=env.t('completedQuests')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in profile.achievements.quests')
|
||||
td {{Content.quests[k].text}}
|
||||
td x{{v}}
|
||||
hr
|
||||
div(ng-if='profile.achievements.ultimateGear || user._id == profile._id')
|
||||
.achievement.achievement-armor(ng-show='profile.achievements.ultimateGear')
|
||||
div(ng-class='{muted: !profile.achievements.ultimateGear}')
|
||||
h5=env.t('ultimGearName')
|
||||
small=env.t('ultimGearText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.snowball')
|
||||
.achievement.achievement-snowball
|
||||
h5=env.t('annoyingFriends')
|
||||
small
|
||||
=env.t('annoyingFriendsText', {snowballs: "{{profile.achievements.snowball}}"})
|
||||
hr
|
||||
div(ng-if='profile.achievements.beastMaster || user._id == profile._id')
|
||||
.achievement.achievement-rat(ng-show='profile.achievements.beastMaster')
|
||||
div(ng-class='{muted: !profile.achievements.beastMaster}')
|
||||
h5=env.t('beastMastName')
|
||||
small=env.t('beastMastText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.habitBirthday')
|
||||
.achievement.achievement-habitBirthday
|
||||
h5=env.t('habitBirthday')
|
||||
small
|
||||
=env.t('habitBirthdayText')
|
||||
hr
|
||||
div(ng-if='profile.achievements.rebirths')
|
||||
.achievement.achievement-sun
|
||||
h5(ng-if='profile.achievements.rebirths == 1')=env.t('rebirthBegan')
|
||||
h5(ng-if='profile.achievements.rebirths > 1')
|
||||
=env.t('rebirthText', {rebirths: "{{profile.achievements.rebirths}}"})
|
||||
small
|
||||
=env.t('rebirthOrb')
|
||||
| {{profile.achievements.rebirthLevel}}.
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.helpedHabit')
|
||||
.achievement.achievement-tree
|
||||
h5=env.t('helped')
|
||||
small
|
||||
=env.t('helpedText1')
|
||||
a(href='http://community.habitrpg.com/node/290', target='_blank')=env.t('helpedText2')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.originalUser || profile.achievements.veteran')
|
||||
.achievement.achievement-cake
|
||||
div(ng-if='profile.achievements.veteran')
|
||||
h5=env.t('veteran')
|
||||
small=env.t('veteranText')
|
||||
div(ng-if='profile.achievements.originalUser')
|
||||
h5=env.t('originalUser')
|
||||
small!=env.t('originalUserText')
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.challenges || user._id == profile._id')
|
||||
// This is a very strange icon to use. revisit
|
||||
.achievement.achievement-karaoke(ng-show='profile.achievements.challenges')
|
||||
div(ng-class='{muted: !profile.achievements.challenges}')
|
||||
h5=env.t('challengeWinner')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='chal in profile.achievements.challenges')
|
||||
td {{chal}}
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.quests || user._id == profile._id')
|
||||
.achievement.achievement-alien(ng-show='profile.achievements.quests')
|
||||
div(ng-class='{muted: !profile.achievements.quests}')
|
||||
h5=env.t('completedQuests')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in profile.achievements.quests')
|
||||
td {{Content.quests[k].text}}
|
||||
td x{{v}}
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.snowball')
|
||||
.achievement.achievement-snowball
|
||||
h5=env.t('annoyingFriends')
|
||||
small
|
||||
=env.t('annoyingFriendsText', {snowballs: "{{profile.achievements.snowball}}"})
|
||||
hr
|
||||
|
||||
div(ng-if='profile.achievements.habitBirthday')
|
||||
.achievement.achievement-habitBirthday
|
||||
h5=env.t('habitBirthday')
|
||||
small
|
||||
=env.t('habitBirthdayText')
|
||||
hr
|
||||
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s
|
|||
.task-meta-controls
|
||||
|
||||
// Due Date
|
||||
span.task-date(ng-if='task.type=="todo" && task.date', style='margin:1px')
|
||||
span(ng-if='task.type=="todo" && task.date')
|
||||
span(ng-class='{"label label-danger":moment(task.date).isBefore(_today, "days")}') {{moment(task.date).format('MM/DD')}}
|
||||
// Streak
|
||||
|
|
||||
span(ng-show='task.streak') {{task.streak}}
|
||||
span(tooltip=env.t('streakCounter'))
|
||||
|
|
||||
span.glyphicon.glyphicon-forward
|
||||
|
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue