diff --git a/public/css/game-pane.styl b/public/css/game-pane.styl
index 346e86f44c..b345f20a99 100644
--- a/public/css/game-pane.styl
+++ b/public/css/game-pane.styl
@@ -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
diff --git a/public/css/index.styl b/public/css/index.styl
index 4cc2e94b8d..f0ae049a29 100644
--- a/public/css/index.styl
+++ b/public/css/index.styl
@@ -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
diff --git a/public/css/tasks.styl b/public/css/tasks.styl
index 35daa3e10a..5175732a56 100644
--- a/public/css/tasks.styl
+++ b/public/css/tasks.styl
@@ -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
diff --git a/public/js/services/notificationServices.js b/public/js/services/notificationServices.js
index 991145f971..3b6cb82284 100644
--- a/public/js/services/notificationServices.js
+++ b/public/js/services/notificationServices.js
@@ -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(" Respawn!", "death");
},
error: function(error){
- growl(" " + error, "error");
+ growl(" " + error, "danger");
},
mp: function(val) {
growl(" " + sign(val) + " " + round(val) + " MP", 'mp');
diff --git a/views/options/index.jade b/views/options/index.jade
index 9ea9ad4fe2..421f0adfe9 100644
--- a/views/options/index.jade
+++ b/views/options/index.jade
@@ -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)
diff --git a/views/options/inventory/inventory.jade b/views/options/inventory/inventory.jade
index 3c22068dc2..8e2237857f 100644
--- a/views/options/inventory/inventory.jade
+++ b/views/options/inventory/inventory.jade
@@ -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') + ' ' + env.t('scrollsText2') + ''
- 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') + ' ' + env.t('scrollsText2') + ''
- 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') + ' ' + env.t('scrollsText2') + ''
+ 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
diff --git a/views/options/inventory/stable.jade b/views/options/inventory/stable.jade
index d85fc484fc..d9e1ce8130 100644
--- a/views/options/inventory/stable.jade
+++ b/views/options/inventory/stable.jade
@@ -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') + ' '
- |
- =env.t('mattBochText2')
- |
- = ' ' + 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') + ' '
+ |
+ =env.t('mattBochText2')
+ |
+ = ' ' + 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}}
diff --git a/views/options/profile.jade b/views/options/profile.jade
index e72ef230a9..831796b3f5 100644
--- a/views/options/profile.jade
+++ b/views/options/profile.jade
@@ -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 /
@@ -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') + ' '
- .span4
+ .col-md-4
h3=env.t('bodyHead')
small
| 2 /
@@ -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') + ' '
- .span4
+ .col-md-4
h3=env.t('bodySkin')
small
| 2 /
@@ -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
- 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
+ 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
diff --git a/views/options/social/chat-box.jade b/views/options/social/chat-box.jade
index 3a135fc502..77e8f5470d 100644
--- a/views/options/social/chat-box.jade
+++ b/views/options/social/chat-box.jade
@@ -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
\ No newline at end of file
diff --git a/views/options/social/chat-message.jade b/views/options/social/chat-message.jade
index bf8e731a66..5d48818b8c 100644
--- a/views/options/social/chat-message.jade
+++ b/views/options/social/chat-message.jade
@@ -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}}
diff --git a/views/options/social/create-group.jade b/views/options/social/create-group.jade
index edf985d1a4..53c8879a02 100644
--- a/views/options/social/create-group.jade
+++ b/views/options/social/create-group.jade
@@ -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'))
diff --git a/views/options/social/group.jade b/views/options/social/group.jade
index caa9d3469e..44c33c4da9 100644
--- a/views/options/social/group.jade
+++ b/views/options/social/group.jade
@@ -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
+ |{{group.memberCount - group.members.length}}
+ = ' ' + env.t('moreMembers')
+ |
+
+ 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
- |{{group.memberCount - group.members.length}}
- = ' ' + env.t('moreMembers')
- |
-
- 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
diff --git a/views/options/social/hall.jade b/views/options/social/hall.jade
index f494892d2c..2a648ee94c 100644
--- a/views/options/social/hall.jade
+++ b/views/options/social/hall.jade
@@ -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}}
diff --git a/views/options/social/index.jade b/views/options/social/index.jade
index 4fbb2a03b0..3f3303b0d3 100644
--- a/views/options/social/index.jade
+++ b/views/options/social/index.jade
@@ -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
diff --git a/views/options/social/tavern.jade b/views/options/social/tavern.jade
index 349065f739..13d67e04a9 100644
--- a/views/options/social/tavern.jade
+++ b/views/options/social/tavern.jade
@@ -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
- |
- =env.t('visitHeroes')
- |
- |
- =env.t('conLearn')
- |
- |
- =env.t('conLearnHow')
- |
- 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
+ |
+ =env.t('visitHeroes')
+ |
+ |
+ =env.t('conLearn')
+ |
+ |
+ =env.t('conLearnHow')
+ |
+ 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') + ' ' + env.t('tavernAlert2') + '.'
- 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') + ' ' + env.t('tavernAlert2') + '.'
+ ul.list-unstyled.tavern-chat
+ include ./chat-message
diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade
index 2ef6789a86..64cb816b10 100644
--- a/views/shared/profiles/achievements.jade
+++ b/views/shared/profiles/achievements.jade
@@ -1,133 +1,132 @@
-.achievements-container
- //