groups: accordion information on left side, more edit options for
group information
This commit is contained in:
@@ -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', ''
|
||||
|
||||
@@ -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
@@ -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
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user