From c8945679872a0708eb67a477a99a65d508c84cb0 Mon Sep 17 00:00:00 2001 From: Maxime Quandalle Date: Fri, 12 Jun 2015 13:59:39 +0200 Subject: Work on the card activities and comments This commit also introduces a new CSSEvents object that is used to abstract vendor specifics events related to CSS transitions and animations. Fixes #183. Fixes #179. --- client/components/users/userAvatar.jade | 22 ++++++++++++++++---- client/components/users/userAvatar.js | 37 +++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 4 deletions(-) (limited to 'client/components/users') diff --git a/client/components/users/userAvatar.jade b/client/components/users/userAvatar.jade index 4c0e5c63..2ea3aa20 100644 --- a/client/components/users/userAvatar.jade +++ b/client/components/users/userAvatar.jade @@ -19,14 +19,17 @@ template(name="userPopup") +userAvatar(userId=user._id) .info h3.bottom - a.js-profile(href="{{pathFor route='Profile' username=user.username}}")= user.profile.name + = user.profile.fullname p.quiet.bottom @{{ user.username }} template(name="memberName") - a.js-show-mem-menu(href="{{pathFor route='Profile' username=user.username}}") + if showBoth = user.profile.fullname - if username - | ({{ user.username }}) + | ({{ user.username }}) + else if user.profile.fullname + = user.profile.fullname + else + = user.username template(name="changeAvatarPopup") ul.pop-over-list @@ -54,3 +57,14 @@ template(name="changeAvatarPopup") button.full.js-upload-avatar i.fa.fa-upload | Upload an avatar + +template(name="cardMemberPopup") + .board-member-menu + .mini-profile-info + +userAvatar(userId=user._id) + .info + h3.bottom= user.profile.fullname + p.quiet.bottom @{{ user.username }} + if currentUser.isBoardMember + ul.pop-over-list + li: a.js-remove-member {{_ 'remove-member-from-card'}} diff --git a/client/components/users/userAvatar.js b/client/components/users/userAvatar.js index a02646c1..64975141 100644 --- a/client/components/users/userAvatar.js +++ b/client/components/users/userAvatar.js @@ -111,3 +111,40 @@ BlazeComponent.extendComponent({ }]; } }).register('changeAvatarPopup'); + +Template.cardMembersPopup.helpers({ + isCardMember: function() { + var cardId = Template.parentData()._id; + var cardMembers = Cards.findOne(cardId).members || []; + return _.contains(cardMembers, this.userId); + }, + user: function() { + return Users.findOne(this.userId); + } +}); + +Template.cardMembersPopup.events({ + 'click .js-select-member': function(evt) { + var cardId = Template.parentData(2).data._id; + var memberId = this.userId; + var operation; + if (Cards.find({ _id: cardId, members: memberId}).count() === 0) + operation = '$addToSet'; + else + operation = '$pull'; + + var query = {}; + query[operation] = { + members: memberId + }; + Cards.update(cardId, query); + evt.preventDefault(); + } +}); + +Template.cardMemberPopup.events({ + 'click .js-remove-member': function() { + Cards.update(this.cardId, {$pull: {members: this.userId}}); + Popup.close(); + } +}); -- cgit v1.2.3-1-g7c22