feat(quests): allow html in quest notes

This commit is contained in:
Tyler Renelle 2014-01-31 13:45:18 -07:00
parent 89443bb970
commit 800231cf64
5 changed files with 16 additions and 8 deletions

View file

@ -8,4 +8,9 @@ angular.module('habitrpg')
return function (gp) {
return Math.floor((gp - Math.floor(gp))*100);
}
})
.filter('htmlDecode',function(){
return function(html){
return $('<div/>').html(html).text();
}
})

View file

@ -539,7 +539,9 @@ api.questAccept = function(req, res) {
// If ?key=xxx is provided, we're starting a new quest and inviting the party. Otherwise, we're a party member accepting the invitation
if (key) {
if (!shared.content.quests[key]) return res.json(404,{err:'Quest ' + key + ' not found'});
var quest = shared.content.quests[key];
if (!quest) return res.json(404,{err:'Quest ' + key + ' not found'});
if (quest.lvl && user.stats.lvl < quest.lvl) return res.json(400, {err: "You must be level "+quest.lvl+" to being this quest."});
if (group.quest.key) return res.json(400, {err: 'Party already on a quest (and only have one quest at a time)'});
if (!user.items.quests[key]) return res.json(401, {err: "You don't own that quest scroll"});
group.quest.key = key;

View file

@ -47,7 +47,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
p.muted(ng-show='questCount < 1')=env.t('noScrolls')
p.muted!=env.t('scrollsText1') + ' <a href="/#/options/groups/party">' + env.t('scrollsText2') + '</a>'
div(ng-repeat='(quest_key,points) in ownedItems(user.items.quests)', ng-init='quest = Content.quests[quest_key]')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes}}", popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='showQuest(quest_key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes | 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
@ -110,7 +110,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
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')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes}}", popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='buyQuest(quest.key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes | 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

View file

@ -47,11 +47,12 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
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(class='quest_{{group.quest.key}}_{{k}}') {{Content.quests[group.quest.key].collect[k].text}}
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}}
p {{Content.quests[group.quest.key].notes}}
div(ng-bind-html='Content.quests[group.quest.key].notes')
hr
h5=env.t('participants')
table.table.table-striped

View file

@ -26,7 +26,7 @@ div(modal='modals.showQuest', ng-controller='InventoryCtrl')
h3 {{selectedQuest.text}}
.modal-body
.pull-right(class='quest_{{selectedQuest.key}}')
p {{selectedQuest.notes}}
div(ng-bind-html='selectedQuest.notes')
quest-rewards(key='{{selectedQuest.key}}')
hr
div(style='clear:left;clear:right')
@ -41,7 +41,7 @@ div(modal='modals.buyQuest', ng-controller='InventoryCtrl')
h3 {{selectedQuest.text}}
.modal-body
.pull-right(class='quest_{{selectedQuest.key}}')
p {{selectedQuest.notes}}
div(ng-bind-html='selectedQuest.notes')
quest-rewards(key='{{selectedQuest.key}}')
.modal-footer
button.btn.btn-large.cancel(ng-click='closeQuest()')=env.t('neverMind')
@ -52,7 +52,7 @@ div(modal='party.quest.key && !party.quest.active && !questHold && party.quest.m
h3=env.t('questInvitation')
| {{Content.quests[party.quest.key].text}}
.modal-body
p {{Content.quests[party.quest.key].notes}}
div(ng-bind-html='Content.quests[party.quest.key].notes')
quest-rewards(key='{{party.quest.key}}')
.modal-footer
button.btn.btn-default.btn-small.btn-cancel(ng-click='questHold = true')=env.t('askLater')