groups: accordion information on left side, more edit options for

group information
This commit is contained in:
Tyler Renelle
2013-05-29 22:47:07 +01:00
parent 88ff245aec
commit a213d6e997
4 changed files with 120 additions and 27 deletions
+9
View File
@@ -19,6 +19,15 @@ module.exports.app = (appExports, model, app) ->
type: $(el).attr('data-type')
, ->location.reload())
appExports.toggleGroupEdit = (e, el) ->
path = "_editing.groups.#{$(el).attr('data-gid')}"
model.set path, !model.get(path)
appExports.groupAddWebsite = (e, el) ->
test = e.get()
e.at().unshift 'websites', model.get('_newGroupWebsite')
model.del '_newGroupWebsite'
appExports.groupInvite = (e,el) ->
uid = model.get('_groupInvitee').replace(/[\s"]/g, '')
model.set '_groupInvitee', ''
+2
View File
@@ -133,6 +133,8 @@ ready (model) ->
user = model.at('_user')
browser = require './browser'
exports.removeAt = (e) -> e.at().remove() # used for things like remove website, chat, etc
require('./tasks').app(exports, model)
require('./items').app(exports, model)
require('./groups').app(exports, model, app)
+4 -6
View File
@@ -119,17 +119,15 @@ module.exports.viewHelpers = (view) ->
#TODO put this in habitrpg-shared
taskInChallenge = (task) ->
return false unless task?.challenge
[gid, cid, gType] = [task.group.id, task.challenge, task.group.type]
[tid, gid, cid, gType] = [task.id, task.group.id, task.challenge, task.group.type]
getTask = (challenges) ->
challenge = _.find(challenges,{id:cid})
challenge and _.find(challenge["#{task.type}s"],{id:task.id})
challenge and _.find(challenge["#{task.type}s"],{id:tid})
switch gType
when 'party'
party = @model.get('_party')
return party?.challenges and getTask(party.challenges)
(party = @model.get '_party') and party and (getTask party.challenges)
when 'guild'
guilds = @model.get("_guilds")
return guilds and getTask(_.find(guilds,{id:gid}).challenges)
(guilds = @model.get "_guilds") and (guild = _.find guilds,{id:gid}) and guild and (getTask guild.challenges)
#Challenges
view.fn 'taskInChallenge', taskInChallenge
+105 -21
View File
@@ -62,9 +62,10 @@
</div>
</form>
<group:>
<div class='row-fluid'>
<div class='span4 border-right'>
<div class='span4'>
{{#if equal(@group.id,'habitrpg')}}
<div class='tavern-pane'>
<table><tr>
@@ -95,28 +96,111 @@
</ul>
</div>
{{else}}
<h3>{{@group.name}}</h3>
<table class="table table-striped">
{{#each @group.members as :memberId}}
<tr><td>
<a data-toggle='modal' data-target="#avatar-modal-{{:memberId}}">
{{username(_members[:memberId].auth, _members[:memberId].profile.name)}}</td><td>({{:memberId}})
</a>
</td></tr>
{{/}}
</table>
{#with @group as :group}
<form class="form-inline" x-bind="submit:groupInvite" data-type="{@group.type}" >
{#if _groupError}
<div class='alert alert-danger'>{_groupError}</div>
{/}
<div class='control-group'>
<input type="text" class="input-medium" placeholder="User Id" value="{_groupInvitee}">
<input type="submit" class="btn" value="Invite" />
<div class="accordion" id="accordion-{{@group.id}}-parent">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion-{{@group.id}}-parent" href="#accordion-{{@group.id}}-information">Information</a>
</div>
<div id="accordion-{{@group.id}}-information" class="accordion-body collapse in">
<div class="accordion-inner blah-options">
{#if _editing.groups[@group.id]}
<div>
<input class=btn x-bind="click:toggleGroupEdit" data-gid={{@group.id}} value="Done" />
</div>
<div class='whatever-options'>
<input type=text value={@group.name} class='option-content' placeholder='Group Name' />
</div>
<textarea cols=3 placeholder='Description'>{@group.description}</textarea>
<input type=url class=option-content placeholder="Logo Url" value={@group.logo} />
{#with @group}
<form class='form-inline' x-bind="submit:groupAddWebsite" >
<input type=url placeholder='Website' class='option-content' value={_newGroupWebsite} />
<input type=submit value="Add" />
</form>
{#if @group.websites}
<h4>Resources</h4>
<ul class=unstyled>
{#each @group.websites as :website}
<li><a x-bind='click:removeAt'><i class='icon-trash'></i></a> <a target="_blank" href="{:website}">{:website}</a></li>
{/}
</ul>
{/}
{/}
{else}
{#if @group.logo}<img class=pull-right style='max-width:150px' src={@group.logo} />{/}
{{#if equal(@group.leader,_user.id)}}
<input class=btn x-bind="click:toggleGroupEdit" data-gid={{@group.id}} value='Edit' />
{{/}}
<h3>{@group.name}</h3>
<div>{@group.description}</div>
{/}
{#if @group.websites}
<h4>Resources</h4>
<ul class=unstyled>
{#each @group.websites as :website}
<li><a target="_blank" href="{:website}">{:website}</a></li>
{/}
</ul>
{/}
</div>
</div>
</div>
</form>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion-{{@group.id}}-parent" href="#accordion-{{@group.id}}-members">Members</a>
</div>
<div id="accordion-{{@group.id}}-members" class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped">
{{#each @group.members as :memberId}}
<tr><td>
<a data-toggle='modal' data-target="#avatar-modal-{{:memberId}}">
{{username(_members[:memberId].auth, _members[:memberId].profile.name)}}
</a>
</td>
<td>
({{:memberId}})
</td>
</tr>
{{/}}
</table>
{#with @group as :group}
<form class="form-inline" x-bind="submit:groupInvite" data-type="{@group.type}" >
{#if _groupError}
<div class='alert alert-danger'>{_groupError}</div>
{/}
<div class='control-group'>
<input type="text" class="input-medium" placeholder="User Id" value="{_groupInvitee}">
<input type="submit" class="btn" value="Invite" />
</div>
</form>
{/}
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion-{{@group.id}}-parent" href="#accordion-{{@group.id}}-challenges">Challenges</a>
</div>
<div id="accordion-{{@group.id}}-challenges" class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped">
{{#each @group.challenges as :challenge}}
<tr><td>
<a x-bind='click:goToChallenge'>{{:challenge.name}}</a>
</td></tr>
{{/}}
</table>
</div>
<input type='button' class=btn value='Create Challenge' />
</div>
</div>
</div>
<a class='btn btn-danger' x-bind="click:groupLeave">Leave</a>
{/}
{{/}}
</div>