[#1489] WIP start adding group edit. remove angular-ui-bootstrap accordion as it

was causing problems.
This commit is contained in:
Tyler Renelle
2013-09-09 16:15:57 -04:00
parent 774fa4f645
commit 09963ee30a
3 changed files with 79 additions and 61 deletions

View File

@@ -35,8 +35,6 @@
"marked": "~0.2.9" "marked": "~0.2.9"
}, },
"resolutions": { "resolutions": {
"jquery": "~2.0.3", "jquery": "~2.0.3"
"angular": "1.2.0-rc.1",
"bootstrap": "v2.3.2"
} }
} }

View File

@@ -7,6 +7,9 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
return ~(group.members.indexOf(user._id)); return ~(group.members.indexOf(user._id));
} }
$scope.Members = Members;
$scope._editing = {group:false};
// ------ Loading ------ // ------ Loading ------
$scope.groups = Groups.groups; $scope.groups = Groups.groups;

View File

@@ -6,61 +6,76 @@ a.pull-right.gem-wallet(rel='popover', data-trigger='hover', data-title='Guild B
.row-fluid .row-fluid
.span4 .span4
h3 {{group.name}} h3 {{group.name}}
accordion // FIXME remove angular-ui-bootstrap here and use standard bootstrap accordion. Eventually, remove ui-bootstrap altogether (too buggy)
accordion-group(heading='Information') .accordion(id='accordion-groups-{{group._id}}')
.blah-options
div(ng-show='_editing.groups[group.id]') // ------ Information -------
div(style='height:10px') .accordion-group
a.pull-right(x-bind='click:toggleGroupEdit', data-gid='{{group.id}}') .accordion-heading
i.icon-ok a.accordion-toggle(data-toggle='accordion', data-target='#accordion-groups-{{group._id}}-information', data-parent='#accordion-groups-{{group._id}}') Information
input.option-content(type='text', value='{{group.name}}', placeholder='Group Name') .accordion-body.collapse.in(id='accordion-groups-{{group._id}}-information')
textarea(cols='3', placeholder='Description') {{group.description}} .accordion-inner
input.option-content(type='url', placeholder='Logo Url', value='{{group.logo}}') div.whatever-options(ng-show='_editing.group')
form.form-inline(x-bind='submit:groupAddWebsite') .control-group.option-large
input.option-content(type='url', placeholder='Website', value='{{_newGroupWebsite}}') label.control-label Group Name
input(type='submit', value='Add') input.option-content(type='text', ng-model='group.name', placeholder='Group Name')
h4 Assign Group Leader .control-group.option-large
select#group-leader-selection label.control-label Description
option(ng-repeat='memberId in group.members', selected='memberId == _new.groupLeader') {{username(_members[memberId].auth,_members[memberId].profile.name)}} textarea.option-content(style='height:15em;', placeholder='Description', ng-model='group.description')
button(x-bind='click:assignGroupLeader') Assign .control-group.option-large
div(ng-show='group.websites') label.control-label Logo URL
h4 Resources input.option-content(type='url', placeholder='Logo URL', ng-model='group.logo')
ul.unstyled .control-group.option-large
li form.form-inline(x-bind='submit:groupAddWebsite', ng-submit='notPorted()')
a(ng-repeat='website in group.websites', x-bind='click:removeAt') input.option-content(type='url', placeholder='Website', value='{{_newGroupWebsite}}')
i.icon-trash input.btn(type='submit', value='Add')
a(target='_blank', href='{{website}}') {{website}}
div(ng-show='!_editing.groups[group.id]') h4 Assign Group Leader
select#group-leader-selection
option(ng-repeat='member in group.members', selected='member._id == _new.groupLeader') {{username(member.auth,member.profile.name)}}
button(x-bind='click:assignGroupLeader', ng-click='notPorted()') Assign
div(ng-show='group.websites')
h4 Resources
ul.unstyled
li
a(ng-repeat='website in group.websites', x-bind='click:removeAt', ng-click='notPorted()')
i.icon-trash
a(target='_blank', href='{{website}}') {{website}}
div(ng-show='!_editing.group')
img.pull-right(ng-show='group.logo', style='max-width:150px', ng-src='{{group.logo}}') img.pull-right(ng-show='group.logo', style='max-width:150px', ng-src='{{group.logo}}')
a.pull-right(ng-if='group.leader==user.id', x-bind='click:toggleGroupEdit', data-gid='{{group.id}}') markdown(ng-model='group.description')
i.icon-pencil
div {{group.description}}
div(ng-show='group.websites') div(ng-show='group.websites')
h4 Resources h4 Websites
ul.unstyled ul.unstyled
li(ng-repeat='website in group.websites') li(ng-repeat='website in group.websites')
a(target='_blank', ng-href='{{website}}') {{website}} a(target='_blank', ng-href='{{website}}') {{website}}
accordion-group(heading='Members') .accordion-group
form.form-inline(ng-submit='invite(group, invitee)') .accordion-heading
.alert.alert-danger(ng-show='_groupError') {{_groupError}} a.accordion-toggle(data-toggle='accordion', data-target='#accordion-groups-{{group._id}}-members', data-parent='#accordion-groups-{{group._id}}') Members
.control-group .accordion-body.collapse(id='accordion-groups-{{group._id}}-members')
input.input-medium(type='text', placeholder='User Id', ng-model='invitee') .accordion-inner
input.btn(type='submit', value='Invite') form.form-inline(ng-submit='invite(group, invitee)')
table.table.table-striped .alert.alert-danger(ng-show='_groupError') {{_groupError}}
tr(ng-repeat='member in group.members') .control-group
td input.input-medium(type='text', placeholder='User Id', ng-model='invitee')
// allow leaders to ban members input.btn(type='submit', value='Invite')
div(ng-show='group.leader == user.id && user.id!=member._id') table.table.table-striped
// {{#with group.members[$index]}} tr(ng-repeat='member in group.members')
a(x-bind='click:removeAt', data-refresh='true', data-confirm='Boot this member?') td
i.icon-ban-circle(tooltip='Boot Member') // allow leaders to ban members
// {{/}} div(ng-show='group.leader == user.id && user.id!=member._id')
a(data-toggle='modal', data-target='#avatar-modal-{{member._id}}') // {{#with group.members[$index]}}
span(ng-class='{"badge badge-info": group.leader==member._id}') a(x-bind='click:removeAt', data-refresh='true', data-confirm='Boot this member?')
| {{username(member.auth, member.profile.name)}} i.icon-ban-circle(tooltip='Boot Member')
td // {{/}}
| ({{member._id}}) a(data-toggle='modal', data-target='#avatar-modal-{{member._id}}')
span(ng-class='{"badge badge-info": group.leader==member._id}')
| {{username(member.auth, member.profile.name)}}
td
| ({{member._id}})
//-accordion-group(heading='Challenges') //-accordion-group(heading='Challenges')
span.label span.label
@@ -83,22 +98,24 @@ a.pull-right.gem-wallet(rel='popover', data-trigger='hover', data-title='Guild B
a.btn.btn-danger(data-id='{{group.id}}', ng-click='leave(group)') Leave a.btn.btn-danger(data-id='{{group.id}}', ng-click='leave(group)') Leave
.span8 .span8
div(ng-if='group.leader==user.id') div(ng-if='group.leader == user.id')
div(ng-show='_editing.leaderMessage[group.id]') div.blah-options(ng-show='_editing.group')
a.pull-right(x-bind='click:toggleLeaderMessageEdit', data-gid='{{group.id}}') button.btn.btn-primary.pull-right(ng-click='_editing.group = false') Save
i.icon-ok i.icon-ok
textarea(cols='3', placeholder='Message from group leader') {{group.leaderMessage}} .option-large
div(ng-hide='_editing.leaderMessage[group.id]') textarea.option-content(style='height:15em;', placeholder='Message from group leader', ng-model='group.leaderMessage')
a.btn.pull-right(x-bind='click:toggleLeaderMessageEdit', data-gid='{{group.id}}') Edit leader message div(ng-hide='_editing.group')
button.btn.btn-default.pull-right(ng-click='_editing.group = true') Edit Group
table(ng-show='group.leaderMessage') table(ng-show='group.leaderMessage')
tr tr
td td
app:avatar:avatar(profile='{{_members[group.leader]}}') app:avatar:avatar(profile='{{Members.members[group.leader]}}')
td td
.popover.static-popover.fade.right.in .popover.static-popover.fade.right.in
.arrow .arrow
h3.popover-title {{username(_members[group.leader].auth,_members[group.leader].profile.name)}} h3.popover-title {{username(Members.members[group.leader].auth, Members.members[group.leader].profile.name)}}
.popover-content {{group.leaderMessage}} .popover-content
markdown(ng-model='group.leaderMessage')
div(ng-controller='ChatCtrl') div(ng-controller='ChatCtrl')
h3 Chat h3 Chat
include ./chat-box include ./chat-box