habitica-self-host/views/options/social/group.jade

176 lines
8.5 KiB
Text
Raw Normal View History

2013-11-04 02:30:50 +00:00
a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank', popover='Gems which your guild leader can use for challenge prizes.', popover-placement='left', popover-html='true')
// <span class="task-action-btn tile flush bright add-gems-btn"></span>
span.task-action-btn.tile.flush.neutral
.Pet_Currency_Gem2x.Gems
2013-09-06 03:28:30 +00:00
| {{group.balance * 4 | number:0 }} Guild Gems
.row-fluid
.span4
// ------ Bosses -------
.modal.inline-modal(bindonce='group', ng-if='group.type==="party" && group.quest.key')
.modal-header
h3(ng-if='group.quest.active==false') Quest Invitation: {{Content.quests[group.quest.key].text}}
h3(ng-if='group.quest.active==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}}
2013-12-25 06:56:11 +00:00
td {{group.quest.members[member._id] === true ? 'Accepted' : group.quest.members[member._id] === false ? 'Rejected' : 'Pending'}}
hr
.npc_ian.pull-left
p Once all members have either accepted or rejected, the quest begins. Only those that clicked "accept" will be able to participate in the quest and recieve the drops. If members are pending too long (inactive?), you can start without them by clicking "Begin".
button.btn.btn-small.btn-warning(ng-click='party.$questAccept({"force":true})') 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
i.icon-heart
| {{group.quest.hp | number:0}} / {{Content.quests[group.quest.key].hp}}
.hero-stats
.meter.health(title='Boss Health')
.bar(style='width: {{Shared.percent(group.quest.progress.hp, Content.quests[group.quest.key].boss.hp)}}%;')
span.meter-text
i.icon-heart
| {{group.quest.progress.hp | number:0}} / {{Content.quests[group.quest.key].boss.hp}}
div(ng-if='Content.quests[group.quest.key].collect')
h4 Collected:
table.table.table-striped
tr(ng-repeat='(k,v) in group.quest.progress.collect')
td
div(class='{{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}}
hr
h5 Participants
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 To hurt a boss, complete your Dailies and To-Dos. Higher task-damage (completing reds, Wizard spells, Warrior attacks...) translates to high Boss damage.
br
p At the end of each day, every daily you missed will be tallied up, and the boss will deal that much damage (multiplied by the bosses Strength) to the party. So help your friends by completing your dailies!
br
p Only participants will fight the boss and share in the quest loot. If you die during a boss-battle, you get booted from the battle. If everyone dies once, the quest fails.
div(ng-if='Content.quests[group.quest.key].collect')
.npc_ian.pull-left
p To collect items, do your positive tasks. Quest items drop just like normal items; however, you won't see the drops until the next day, then everything you've found will be tallied up and contributed to the pile.
br
p Only participants can collect items and share in the quest loot. If you die during a quest, you get booted from the quest. If everyone dies once, the quest fails.
button.btn.btn-mini.btn-danger(ng-click='questAbort()') Abort
// ------ Information -------
.modal.inline-modal
.modal-header(bindonce='group')
span(ng-if='group.leader == user.id')
button.btn.btn-primary.pull-right(ng-click='save(group)', ng-show='group._editing') Save
button.btn.btn-default.pull-right(ng-click='group._editing = true', ng-hide='group._editing') Edit Group
h3 {{group.name}}
.modal-body
div.whatever-options(ng-show='group._editing')
.control-group.option-large
label.control-label Group Name
input.option-content(type='text', ng-model='group.name', placeholder='Group Name')
.control-group.option-large
label.control-label Description
textarea.option-content(style='height:15em;', placeholder='Description shown in public Guilds list (Markdown OK)', ng-model='group.description')
.control-group.option-large
label.control-label Logo URL
input.option-content(type='url', placeholder='Logo URL', ng-model='group.logo')
h4 Assign Group Leader
select#group-leader-selection(ng-model='group._newLeader', ng-options='member.profile.name for member in group.members')
2013-11-12 11:25:40 +00:00
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')
2013-12-25 06:56:11 +00:00
hr
small.muted Group ID: {{group._id}}
include ./challenge-box
// ------ Members -------
.modal.inline-modal
.modal-header
h3 Members
.modal-body
span
| Party Members list ordering
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)')
i.icon-ban-circle(tooltip='Boot Member')
a
span(ng-class='{"badge badge-info": group.leader==member._id}', ng-click='clickMember(member._id, true)')
| {{member.profile.name}}
tr(ng-if='group.memberCount > group.members.length')
td.
<span class='badge'>{{group.memberCount - group.members.length}} more members</span>
h4(ng-show='group.invites.length > 0') Invited
table.table.table-striped
tr(ng-repeat='invite in group.invites')
td
// allow leaders to ban members
div(ng-show='group.leader == user.id')
a(ng-click='removeMember(group, invite, false)')
i.icon-ban-circle(tooltip='Boot Member')
a
span(ng-click='clickMember(invite._id, true)')
2013-10-30 14:54:39 +00:00
| {{invite.profile.name}}
.modal-footer.whatever-options
2013-10-29 15:50:28 +00:00
form.form-inline(ng-submit='invite(group)')
//.alert.alert-danger(ng-show='_groupError') {{_groupError}}
.control-group.option-large
2013-10-29 15:50:28 +00:00
input.option-content(type='text', placeholder='User Id', ng-model='group.invitee')
input.btn(type='submit', value='Invite')
2013-09-01 03:41:01 +00:00
a.btn.btn-danger(data-id='{{group.id}}', ng-click='leave(group)') Leave
.span8
div.blah-options(ng-show='group._editing')
.option-large
textarea.option-content(style='height:15em;', placeholder='Message from group leader (Markdown OK)', ng-model='group.leaderMessage')
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 Chat
include ./chat-box
include ../../shared/formatting-help
ul.unstyled.tavern-chat
include ./chat-message