groups: group-leave bug fixes (most things have to be static-bound, when somethign is deleted it causes errors on dom listeners). also make second-most-recent-member the new leader if the leaver is leader

This commit is contained in:
Tyler Renelle 2013-06-02 13:27:00 -04:00
parent f9a978d043
commit 770af3c4d4
2 changed files with 15 additions and 9 deletions

View file

@ -84,12 +84,18 @@ module.exports.app = (appExports, model, app) ->
else e.at().remove clear
appExports.groupLeave = (e,el) ->
uid = user.get('id')
group = model.at "groups.#{$(el).attr('data-id')}"
index = group.get('members').indexOf(user.get('id'))
index = group.get('members').indexOf(uid)
if index != -1
group.remove 'members', index, 1, ->
if _.isEmpty group.get('members') # last member out, delete the party
updated = group.get()
# last member out, delete the party
if _.isEmpty(updated.members)
group.del ->location.reload()
# assign new leader, so the party is editable #TODO allow old leader to assign new leader, this is just random
else if (updated.leader is uid)
group.set "leader", updated.members[0], ->location.reload()
else location.reload()
###

View file

@ -27,9 +27,9 @@
<div class='tab-pane' id="groups-guilds">
<ul class="nav nav-pills">
<li class=active><a data-toggle='tab' data-target="#groups-guilds-public">Public Guilds</a></li>
{#each _guilds as :guild}
<li><a data-toggle='tab' data-target="#groups-guild-{:guild.id}">{:guild.name}</a></li>
{/}
{{#each _guilds as :guild}}
<li><a data-toggle='tab' data-target="#groups-guild-{:guild.id}">{{:guild.name}}</a></li>
{{/}}
<li><a data-toggle='tab' data-target="#groups-guild-create">Create Guild</a></li>
</ul>
<div class="tab-content">
@ -47,11 +47,11 @@
<app:groups:public-groups />
</div>
{#each _guilds as :guild}
<div class="tab-pane" id="groups-guild-{:guild.id}">
<app:groups:group group={:guild} />
{{#each _guilds as :guild}}
<div class="tab-pane" id="groups-guild-{{:guild.id}}" >
<app:groups:group group={{:guild}} />
</div>
{/}
{{/}}
<div class='tab-pane' id='groups-guild-create'>
<app:groups:create-group type='guild' />