mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
WIP(party-page): UI draft
This commit is contained in:
@@ -46,7 +46,7 @@
|
|||||||
"logoUrl": "Logo URL",
|
"logoUrl": "Logo URL",
|
||||||
"assignLeader": "Assign Group Leader",
|
"assignLeader": "Assign Group Leader",
|
||||||
"members": "Members",
|
"members": "Members",
|
||||||
"partyList": "Order for party members in header (reload browser after changing order)",
|
"partyList": "Order for party members in header",
|
||||||
"banTip": "Boot Member",
|
"banTip": "Boot Member",
|
||||||
"moreMembers": "more members",
|
"moreMembers": "more members",
|
||||||
"invited": "Invited",
|
"invited": "Invited",
|
||||||
@@ -136,5 +136,6 @@
|
|||||||
"exclusiveQuestScroll": "Inviting a friend to your party will grant you an exclusive Quest Scroll to battle the Basi-List together!",
|
"exclusiveQuestScroll": "Inviting a friend to your party will grant you an exclusive Quest Scroll to battle the Basi-List together!",
|
||||||
"nameYourParty": "Name your new party!",
|
"nameYourParty": "Name your new party!",
|
||||||
"partyEmpty": "You're the only one in your party. Invite your friends!",
|
"partyEmpty": "You're the only one in your party. Invite your friends!",
|
||||||
|
"partyChatEmpty": "Your Party Chat is empty! Type a message in the box above to start chatting.",
|
||||||
"possessiveParty": "<%= name %>'s Party"
|
"possessiveParty": "<%= name %>'s Party"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,5 +60,7 @@
|
|||||||
"questWarning": "If new players join the party before the quest starts, they will also receive an invitation. However once the quest has started, no new party members can join the quest.",
|
"questWarning": "If new players join the party before the quest starts, they will also receive an invitation. However once the quest has started, no new party members can join the quest.",
|
||||||
"bossRageTitle": "Rage",
|
"bossRageTitle": "Rage",
|
||||||
"bossRageDescription": "When this bar fills, the boss will unleash a special attack!",
|
"bossRageDescription": "When this bar fills, the boss will unleash a special attack!",
|
||||||
"startQuest": "START A QUEST"
|
"startQuest": "START A QUEST",
|
||||||
|
"whichQuestStart": "Which quest do you want to start?",
|
||||||
|
"getMoreQuests": "Get more quests"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1119,6 +1119,11 @@ api.food =
|
|||||||
_.each api.food, (food,key) ->
|
_.each api.food, (food,key) ->
|
||||||
_.defaults food, {value: 1, key, notes: t('foodNotes')}
|
_.defaults food, {value: 1, key, notes: t('foodNotes')}
|
||||||
|
|
||||||
|
api.questCategories =
|
||||||
|
ableUnlock: 'unlockableQuests'
|
||||||
|
gold: 'goldQuests'
|
||||||
|
pet: 'petQuests'
|
||||||
|
|
||||||
api.quests =
|
api.quests =
|
||||||
|
|
||||||
dilatory:
|
dilatory:
|
||||||
@@ -1309,7 +1314,7 @@ api.quests =
|
|||||||
notes: t('questVice1Notes')
|
notes: t('questVice1Notes')
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 30
|
lvl: 30
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
boss:
|
boss:
|
||||||
name: t('questVice1Boss')
|
name: t('questVice1Boss')
|
||||||
hp: 750
|
hp: 750
|
||||||
@@ -1326,7 +1331,7 @@ api.quests =
|
|||||||
notes: t('questVice2Notes')
|
notes: t('questVice2Notes')
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 30
|
lvl: 30
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
previous: 'vice1'
|
previous: 'vice1'
|
||||||
collect:
|
collect:
|
||||||
lightCrystal: text: t('questVice2CollectLightCrystal'), count: 45
|
lightCrystal: text: t('questVice2CollectLightCrystal'), count: 45
|
||||||
@@ -1344,7 +1349,7 @@ api.quests =
|
|||||||
previous: 'vice2'
|
previous: 'vice2'
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 30
|
lvl: 30
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
boss:
|
boss:
|
||||||
name: t('questVice3Boss')
|
name: t('questVice3Boss')
|
||||||
hp: 1500
|
hp: 1500
|
||||||
@@ -1450,7 +1455,7 @@ api.quests =
|
|||||||
notes: t('questAtom1Notes')
|
notes: t('questAtom1Notes')
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 15
|
lvl: 15
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
collect:
|
collect:
|
||||||
soapBars: text: t('questAtom1CollectSoapBars'), count: 20
|
soapBars: text: t('questAtom1CollectSoapBars'), count: 20
|
||||||
drop:
|
drop:
|
||||||
@@ -1465,7 +1470,7 @@ api.quests =
|
|||||||
previous: 'atom1'
|
previous: 'atom1'
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 15
|
lvl: 15
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
boss:
|
boss:
|
||||||
name: t('questAtom2Boss')
|
name: t('questAtom2Boss')
|
||||||
hp: 300
|
hp: 300
|
||||||
@@ -1483,7 +1488,7 @@ api.quests =
|
|||||||
completion: t('questAtom3Completion')
|
completion: t('questAtom3Completion')
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 15
|
lvl: 15
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
boss:
|
boss:
|
||||||
name: t('questAtom3Boss')
|
name: t('questAtom3Boss')
|
||||||
hp: 800
|
hp: 800
|
||||||
@@ -1562,7 +1567,7 @@ api.quests =
|
|||||||
notes: t('questMoonstone1Notes')
|
notes: t('questMoonstone1Notes')
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 60
|
lvl: 60
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
collect:
|
collect:
|
||||||
moonstone: text: t('questMoonstone1CollectMoonstone'), count: 500
|
moonstone: text: t('questMoonstone1CollectMoonstone'), count: 500
|
||||||
drop:
|
drop:
|
||||||
@@ -1577,7 +1582,7 @@ api.quests =
|
|||||||
value: 4
|
value: 4
|
||||||
lvl: 60
|
lvl: 60
|
||||||
previous: 'moonstone1'
|
previous: 'moonstone1'
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
boss:
|
boss:
|
||||||
name: t('questMoonstone2Boss')
|
name: t('questMoonstone2Boss')
|
||||||
hp: 1500
|
hp: 1500
|
||||||
@@ -1595,7 +1600,7 @@ api.quests =
|
|||||||
previous: 'moonstone2'
|
previous: 'moonstone2'
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 60
|
lvl: 60
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
boss:
|
boss:
|
||||||
name: t('questMoonstone3Boss')
|
name: t('questMoonstone3Boss')
|
||||||
hp: 2000
|
hp: 2000
|
||||||
@@ -1620,7 +1625,7 @@ api.quests =
|
|||||||
notes: t('questGoldenknight1Notes')
|
notes: t('questGoldenknight1Notes')
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 40
|
lvl: 40
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
collect:
|
collect:
|
||||||
testimony: text: t('questGoldenknight1CollectTestimony'), count: 300
|
testimony: text: t('questGoldenknight1CollectTestimony'), count: 300
|
||||||
drop:
|
drop:
|
||||||
@@ -1635,7 +1640,7 @@ api.quests =
|
|||||||
value: 4
|
value: 4
|
||||||
previous: 'goldenknight1'
|
previous: 'goldenknight1'
|
||||||
lvl: 40
|
lvl: 40
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
boss:
|
boss:
|
||||||
name: t('questGoldenknight2Boss')
|
name: t('questGoldenknight2Boss')
|
||||||
hp: 1000
|
hp: 1000
|
||||||
@@ -1653,7 +1658,7 @@ api.quests =
|
|||||||
previous: 'goldenknight2'
|
previous: 'goldenknight2'
|
||||||
value: 4
|
value: 4
|
||||||
lvl: 40
|
lvl: 40
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
boss:
|
boss:
|
||||||
name: t('questGoldenknight3Boss')
|
name: t('questGoldenknight3Boss')
|
||||||
hp: 1700
|
hp: 1700
|
||||||
@@ -1675,7 +1680,7 @@ api.quests =
|
|||||||
notes: t('questBasilistNotes')
|
notes: t('questBasilistNotes')
|
||||||
completion: t('questBasilistCompletion')
|
completion: t('questBasilistCompletion')
|
||||||
value: 4
|
value: 4
|
||||||
category: 'unlockable'
|
category: 'ableUnlock'
|
||||||
unlockCondition:
|
unlockCondition:
|
||||||
condition: 'party invite'
|
condition: 'party invite'
|
||||||
text: t('inviteFriends')
|
text: t('inviteFriends')
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ function dropPetsCurrentlyOwned(pets) {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function mountMasterProgress(mounts) {
|
function mountMasterProgress(mounts) {
|
||||||
var count = 0;
|
var count = 0;
|
||||||
_(DROP_ANIMALS).each(function(animal) {
|
_(DROP_ANIMALS).each(function(animal) {
|
||||||
@@ -51,9 +50,23 @@ function remainingGearInSet(userGear, set) {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function questsOfCategory(userQuests, category) {
|
||||||
|
var quests = _.filter(content.quests, function(quest) {
|
||||||
|
var categoryMatches = quest.category === category;
|
||||||
|
var hasQuest = userQuests[quest.key];
|
||||||
|
|
||||||
|
return categoryMatches && hasQuest;
|
||||||
|
});
|
||||||
|
|
||||||
|
var count = _.size(quests);
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
beastMasterProgress: beastMasterProgress,
|
beastMasterProgress: beastMasterProgress,
|
||||||
dropPetsCurrentlyOwned: dropPetsCurrentlyOwned,
|
dropPetsCurrentlyOwned: dropPetsCurrentlyOwned,
|
||||||
mountMasterProgress: mountMasterProgress,
|
mountMasterProgress: mountMasterProgress,
|
||||||
remainingGearInSet: remainingGearInSet
|
remainingGearInSet: remainingGearInSet,
|
||||||
|
questsOfCategory: questsOfCategory
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -535,7 +535,15 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', '
|
|||||||
content: html
|
content: html
|
||||||
}).popover('show');
|
}).popover('show');
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
|
$scope.clickStartQuest = function(){
|
||||||
|
if (_.reduce(User.user.items.quests, function(a,v){a += v; return a}) > 0){
|
||||||
|
$rootScope.openModal("ownedQuests", {controller:"InventoryCtrl"});
|
||||||
|
} else {
|
||||||
|
$rootScope.$state.go('options.inventory.quests');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
$scope.reject = function(){
|
$scope.reject = function(){
|
||||||
//User.user.invitations.party = undefined;
|
//User.user.invitations.party = undefined;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
//- If this variable gets any bigger, please move it out of this jade template and into common/script/content
|
include ../../shared/mixins
|
||||||
- var questCategories = {'unlockable':'unlockableQuests','gold':'goldQuests','pet':'petQuests'}
|
|
||||||
|
|
||||||
.container-fluid
|
.container-fluid
|
||||||
.row: .col-xs-12
|
.row: .col-xs-12
|
||||||
@@ -13,25 +12,14 @@
|
|||||||
.row
|
.row
|
||||||
.col-md-6
|
.col-md-6
|
||||||
h3.equipment-title=env.t('yourQuests')
|
h3.equipment-title=env.t('yourQuests')
|
||||||
menu.inventory-list
|
+ownedQuests(true,'right')
|
||||||
li.customize-menu
|
|
||||||
p.muted(ng-show='questCount < 1')=env.t('noScrolls')
|
|
||||||
each caption,type in questCategories
|
|
||||||
menu.pets-menu(label=env.t(caption))
|
|
||||||
div(ng-repeat='(quest_key,points) in ownedItems(user.items.quests)', ng-init='quest = Content.quests[quest_key]', ng-if='Content.quests[quest_key].category === "#{type}"')
|
|
||||||
button.customize-option(ng-class='lockQuest(quest) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"',
|
|
||||||
ng-click='showQuest(quest_key)',
|
|
||||||
data-popover-html="{{::lockQuest(quest) ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
|
|
||||||
popover-title='{{::quest.text()}}', popover-trigger='mouseenter',
|
|
||||||
popover-placement='right', popover-append-to-body='true')
|
|
||||||
.badge.badge-info.stack-count {{points}}
|
|
||||||
|
|
||||||
.col-md-6.border-left
|
.col-md-6.border-left
|
||||||
li.customize-menu
|
li.customize-menu
|
||||||
h3.equipment-title=env.t('questsForSale')
|
h3.equipment-title=env.t('questsForSale')
|
||||||
each caption,type in questCategories
|
div(ng-repeat='(type,caption) in Content.questCategories')
|
||||||
menu.pets-menu(label=env.t(caption))
|
menu.pets-menu(label='{{env.t(caption)}}')
|
||||||
div(ng-repeat='quest in Content.questsByLevel', ng-if='quest.canBuy && quest.category === "#{type}"')
|
div(ng-repeat='quest in Content.questsByLevel', ng-if='quest.canBuy && quest.category === type')
|
||||||
button.customize-option(ng-class='lockQuest(quest) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"',
|
button.customize-option(ng-class='lockQuest(quest) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"',
|
||||||
data-popover-html="{{::lockQuest(quest,true) ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
|
data-popover-html="{{::lockQuest(quest,true) ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
|
||||||
popover-title='{{::quest.text()}}', popover-append-to-body="true",
|
popover-title='{{::quest.text()}}', popover-append-to-body="true",
|
||||||
|
|||||||
@@ -56,6 +56,9 @@ a.pull-right.gem-wallet(ng-if='group.type!="party"', popover-trigger='mouseenter
|
|||||||
a(class='badge badge-info', ng-click='clickMember(group.leader._id, true)')
|
a(class='badge badge-info', ng-click='clickMember(group.leader._id, true)')
|
||||||
| {{group.leader.profile.name}}
|
| {{group.leader.profile.name}}
|
||||||
|
|
||||||
|
div.text-center(ng-if='group.type === "party"')
|
||||||
|
button.btn.btn-success.margin-auto.width-50(ng-click='clickStartQuest();')=env.t('startQuest')
|
||||||
|
|
||||||
// ------ Members -------
|
// ------ Members -------
|
||||||
.panel.panel-default
|
.panel.panel-default
|
||||||
.panel-heading
|
.panel-heading
|
||||||
@@ -63,21 +66,6 @@ a.pull-right.gem-wallet(ng-if='group.type!="party"', popover-trigger='mouseenter
|
|||||||
=env.t('members')
|
=env.t('members')
|
||||||
button.pull-right.btn.btn-primary(ng-click="openInviteModal(group)")=env.t("inviteFriends")
|
button.pull-right.btn.btn-primary(ng-click="openInviteModal(group)")=env.t("inviteFriends")
|
||||||
.panel-body.modal-fixed-height
|
.panel-body.modal-fixed-height
|
||||||
div.form-group(ng-if='::group.type=="party" && group.memberCount > 1')
|
|
||||||
p=env.t('partyList')
|
|
||||||
select.form-control#partyOrder(
|
|
||||||
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})'
|
|
||||||
)
|
|
||||||
|
|
|
||||||
select.form-control#partyOrderAscending(
|
|
||||||
ng-model='user.party.orderAscending',
|
|
||||||
ng-controller='ChatCtrl',
|
|
||||||
ng-options='k as v for (k , v) in partyOrderAscendingChoices',
|
|
||||||
ng-change='set({"party.orderAscending": user.party.orderAscending})'
|
|
||||||
)
|
|
||||||
h4(ng-show='group.memberCount === 1 && group.type === "party"')=env.t('partyEmpty')
|
h4(ng-show='group.memberCount === 1 && group.type === "party"')=env.t('partyEmpty')
|
||||||
table.table.table-striped(ng-show='group.memberCount > 1 || group.type !== "party"' bindonce='group')
|
table.table.table-striped(ng-show='group.memberCount > 1 || group.type !== "party"' bindonce='group')
|
||||||
tr(ng-repeat='member in group.members track by member._id')
|
tr(ng-repeat='member in group.members track by member._id')
|
||||||
@@ -94,7 +82,6 @@ a.pull-right.gem-wallet(ng-if='group.type!="party"', popover-trigger='mouseenter
|
|||||||
|<span class='badge'>{{group.memberCount - group.members.length}}
|
|<span class='badge'>{{group.memberCount - group.members.length}}
|
||||||
= ' ' + env.t('moreMembers')
|
= ' ' + env.t('moreMembers')
|
||||||
|</span>
|
|</span>
|
||||||
|
|
||||||
h4(ng-show='group.invites.length > 0')=env.t('invited')
|
h4(ng-show='group.invites.length > 0')=env.t('invited')
|
||||||
table.table.table-striped
|
table.table.table-striped
|
||||||
tr(ng-repeat='invite in group.invites')
|
tr(ng-repeat='invite in group.invites')
|
||||||
@@ -107,8 +94,24 @@ a.pull-right.gem-wallet(ng-if='group.type!="party"', popover-trigger='mouseenter
|
|||||||
span(ng-click='clickMember(invite._id, true)')
|
span(ng-click='clickMember(invite._id, true)')
|
||||||
| {{invite.profile.name}}
|
| {{invite.profile.name}}
|
||||||
|
|
||||||
div.text-center(ng-if='group.type === "party"')
|
.panel.panel-default
|
||||||
button.btn.btn-success.margin-auto.width-100=env.t('startQuest')
|
.panel-heading
|
||||||
|
h3.panel-title=env.t('partyList')
|
||||||
|
.panel-body
|
||||||
|
div.form-group(ng-if='::group.type=="party" && group.memberCount > 1')
|
||||||
|
select.form-control#partyOrder(
|
||||||
|
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})'
|
||||||
|
)
|
||||||
|
|
|
||||||
|
select.form-control#partyOrderAscending(
|
||||||
|
ng-model='user.party.orderAscending',
|
||||||
|
ng-controller='ChatCtrl',
|
||||||
|
ng-options='k as v for (k , v) in partyOrderAscendingChoices',
|
||||||
|
ng-change='set({"party.orderAscending": user.party.orderAscending})'
|
||||||
|
)
|
||||||
|
|
||||||
include ./challenge-box
|
include ./challenge-box
|
||||||
|
|
||||||
@@ -135,3 +138,4 @@ a.pull-right.gem-wallet(ng-if='group.type!="party"', popover-trigger='mouseenter
|
|||||||
include ./chat-box
|
include ./chat-box
|
||||||
|
|
||||||
+chatMessages()
|
+chatMessages()
|
||||||
|
h4(ng-if='group.chat.length < 1 && group.type === "party"')=env.t('partyChatEmpty')
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ script(type='text/ng-template', id='partials/options.social.party.html')
|
|||||||
.row.margin-auto.text-center
|
.row.margin-auto.text-center
|
||||||
a.btn.btn-primary.btn-lg.width-50(ng-click="inviteOrStartParty(group)")=env.t("startPartyWithFriends")
|
a.btn.btn-primary.btn-lg.width-50(ng-click="inviteOrStartParty(group)")=env.t("startPartyWithFriends")
|
||||||
.row.text-center.margin-auto(ng-controller='UserCtrl')
|
.row.text-center.margin-auto(ng-controller='UserCtrl')
|
||||||
span.inline-block.party_preview(style='margin-left:-100px')
|
span.inline-block.party_preview
|
||||||
span.figure.herobox.inline-block.width-0
|
span.figure.herobox.inline-block
|
||||||
.character-sprites(style='width:0')
|
.character-sprites(style='margin:0 0 0 4.2em')
|
||||||
+generatedAvatar
|
+generatedAvatar
|
||||||
.row.margin-auto.text-center
|
.row.margin-auto.text-center
|
||||||
ul
|
ul
|
||||||
li=env.t('partyExplanation1')
|
li=env.t('partyExplanation1')
|
||||||
|
|||||||
@@ -16,4 +16,20 @@ mixin previewMarkdown(text)
|
|||||||
.panel.panel-warning
|
.panel.panel-warning
|
||||||
.panel-heading=env.t('msgPreviewHeading')
|
.panel-heading=env.t('msgPreviewHeading')
|
||||||
.panel-body.markdown-preview
|
.panel-body.markdown-preview
|
||||||
markdown(text='#{text}')
|
markdown(text='#{text}')
|
||||||
|
|
||||||
|
mixin ownedQuests(popoverAppend,popoverPlacement)
|
||||||
|
menu.inventory-list
|
||||||
|
li.customize-menu
|
||||||
|
p.muted(ng-show='questCount < 1')=env.t('noScrolls')
|
||||||
|
div(ng-repeat='(type,caption) in Content.questCategories')
|
||||||
|
menu.pets-menu(ng-if='Shared.count.questsOfCategory(user.items.quests,type) > 0', label='{{env.t(caption)}}')
|
||||||
|
div(ng-repeat='(quest_key,points) in ownedItems(user.items.quests)', ng-init='quest = Content.quests[quest_key]', ng-if='Content.quests[quest_key].category === type')
|
||||||
|
button.customize-option(ng-class='lockQuest(quest) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"',
|
||||||
|
ng-click='$close(); showQuest(quest_key)',
|
||||||
|
data-popover-html="{{::lockQuest(quest) ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
|
||||||
|
popover-title='{{::quest.text()}}',
|
||||||
|
popover-trigger='mouseenter',
|
||||||
|
popover-append-to-body='#{popoverAppend}',
|
||||||
|
popover-placement='#{popoverPlacement}')
|
||||||
|
.badge.badge-info.stack-count {{points}}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ script(type='text/ng-template', id='modals/invite-friends.html')
|
|||||||
.quest_basilist.pull-left
|
.quest_basilist.pull-left
|
||||||
p(style='margin:2em')=env.t('exclusiveQuestScroll')
|
p(style='margin:2em')=env.t('exclusiveQuestScroll')
|
||||||
button.btn.btn-default.pull-right(style='margin:auto 1em', ng-click='$close()')=env.t('close')
|
button.btn.btn-default.pull-right(style='margin:auto 1em', ng-click='$close()')=env.t('close')
|
||||||
.modal-footer(style='padding-bottom:0')
|
.modal-footer(style='padding-bottom:0',ng-if='!group || group.memberCount === 1')
|
||||||
p!=env.t('wantExistingParty', {linkStart: "<a href='/#/options/groups/guilds/f2db2a7f-13c5-454d-b3ee-ea1f5089e601'>", linkEnd: "</a>"})
|
p!=env.t('wantExistingParty', {linkStart: "<a href='/#/options/groups/guilds/f2db2a7f-13c5-454d-b3ee-ea1f5089e601'>", linkEnd: "</a>"})
|
||||||
pre(style='margin:1em 0 0 0').
|
pre(style='margin:1em 0 0 0').
|
||||||
{{user.id}}
|
{{user.id}}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
include ./quest-rewards
|
include ./quest-rewards
|
||||||
|
include ../mixins
|
||||||
|
|
||||||
mixin questInfo
|
mixin questInfo
|
||||||
.pull-right-sm.text-center
|
.pull-right-sm.text-center
|
||||||
@@ -92,3 +93,13 @@ script(type='text/ng-template', id='modals/questDrop.html')
|
|||||||
button.btn.btn-default(ng-click='closeQuest(); $close()')=env.t('questLater')
|
button.btn.btn-default(ng-click='closeQuest(); $close()')=env.t('questLater')
|
||||||
button.btn.btn-primary(ng-click='inviteOrStartParty(group); $close()', ng-if='!party.members')=env.t('startAParty')
|
button.btn.btn-primary(ng-click='inviteOrStartParty(group); $close()', ng-if='!party.members')=env.t('startAParty')
|
||||||
button.btn.btn-primary(ng-click='questInit(); $close()', ng-if='party.members')=env.t('inviteParty')
|
button.btn.btn-primary(ng-click='questInit(); $close()', ng-if='party.members')=env.t('inviteParty')
|
||||||
|
|
||||||
|
script(type='text/ng-template', id='modals/ownedQuests.html')
|
||||||
|
.modal-header
|
||||||
|
h4=env.t('whichQuestStart')
|
||||||
|
.modal-body
|
||||||
|
+ownedQuests(false,'top')
|
||||||
|
.modal-footer
|
||||||
|
h4.pull-left
|
||||||
|
a(ui-sref='options.inventory.quests', ng-click='$close()')=env.t('getMoreQuests')
|
||||||
|
button.btn.btn-default.pull-right(ng-click='$close()')=env.t('neverMind')
|
||||||
|
|||||||
Reference in New Issue
Block a user