events.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. var getMemberIndex = function(board, searchId) {
  2. for (var i = 0; i < board.members.length; i++) {
  3. if (board.members[i].userId === searchId)
  4. return i;
  5. }
  6. throw new Meteor.Error('Member not found');
  7. };
  8. Template.memberPopup.events({
  9. 'click .js-filter-member': function() {
  10. Filter.members.toogle(this.userId);
  11. Popup.close();
  12. },
  13. 'click .js-change-role': Popup.open('changePermissions'),
  14. 'click .js-remove-member': Popup.afterConfirm('removeMember', function() {
  15. var currentBoard = Boards.findOne(Session.get('currentBoard'));
  16. var memberIndex = getMemberIndex(currentBoard, this.userId);
  17. var setQuery = {};
  18. setQuery[['members', memberIndex, 'isActive'].join('.')] = false;
  19. Boards.update(currentBoard._id, { $set: setQuery });
  20. Popup.close();
  21. }),
  22. 'click .js-leave-member': function() {
  23. // @TODO
  24. Popup.close();
  25. }
  26. });
  27. Template.membersWidget.events({
  28. 'click .js-open-manage-board-members': Popup.open('addMember'),
  29. 'click .member': Popup.open('member')
  30. });
  31. Template.labelsWidget.events({
  32. 'click .js-label': Popup.open('editLabel'),
  33. 'click .js-add-label': Popup.open('createLabel')
  34. });
  35. // Template.addMemberPopup.events({
  36. // 'click .pop-over-member-list li:not(.disabled)': function(event, t) {
  37. // var userId = this._id;
  38. // var boardId = t.data.board._id;
  39. // var currentMembersIds = _.pluck(t.data.board.members, 'userId');
  40. // if (currentMembersIds.indexOf(userId) === -1) {
  41. // Boards.update(boardId, {
  42. // $push: {
  43. // members: {
  44. // userId: userId,
  45. // isAdmin: false,
  46. // isActive: true
  47. // }
  48. // }
  49. // });
  50. // } else {
  51. // var memberIndex = getMemberIndex(t.data.board, userId);
  52. // var setQuery = {};
  53. // setQuery[['members', memberIndex, 'isActive'].join('.')] = true;
  54. // Boards.update(boardId, { $set: setQuery });
  55. // }
  56. // Popup.close();
  57. // }
  58. // });
  59. // Template.changePermissionsPopup.events({
  60. // 'click .js-set-admin, click .js-set-normal': function(event) {
  61. // var currentBoard = Boards.findOne(Session.get('currentBoard'));
  62. // var memberIndex = getMemberIndex(currentBoard, this.user._id);
  63. // var isAdmin = $(event.currentTarget).hasClass('js-set-admin');
  64. // var setQuery = {};
  65. // setQuery[['members', memberIndex, 'isAdmin'].join('.')] = isAdmin;
  66. // Boards.update(currentBoard._id, {
  67. // $set: setQuery
  68. // });
  69. // Popup.back(1);
  70. // }
  71. // });