From dcc64f44f9f81d32c8071c6bdac86546eaeb57a0 Mon Sep 17 00:00:00 2001 From: Maxime Quandalle Date: Wed, 27 May 2015 17:17:00 +0200 Subject: UI improvements * Implement visibility choice on board creation; * Rework the board header bar. Remove links to un-implemented features; * Implement a board star counter (visible if the board have >2 stars); * Define a new icon (a thin cross) to close elements; * Remove $(document).on('mouseover') event handlers that were basically fired hundreds of times for nothing, we now define a proper Tracker dependency to execute jquery-ui plugin initialization only when something has changed; * Bug fixes related to list scrolling. --- client/components/sidebar/sidebar.js | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) (limited to 'client/components/sidebar') diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index ce7925ea..b737e9de 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -68,23 +68,39 @@ BlazeComponent.extendComponent({ return this.getView() + 'Sidebar'; }, + // Board members can assign people or labels by drag-dropping elements from + // the sidebar to the cards on the board. In order to re-initialize the + // jquery-ui plugin any time a draggable member or label is modified or + // removed we use a autorun function and register a dependency on the both + // members and labels fields of the current board document. onRendered: function() { var self = this; if (! Meteor.userId() || ! Meteor.user().isBoardMember()) return; - $(document).on('mouseover', function() { - self.$('.js-member,.js-label').draggable({ - appendTo: 'body', - helper: 'clone', - revert: 'invalid', - revertDuration: 150, - snap: false, - snapMode: 'both', - start: function() { - Popup.close(); + self.autorun(function() { + var currentBoardId = Tracker.nonreactive(function() { + return Session.get('currentBoard'); + }); + Boards.findOne(currentBoardId, { + fields: { + members: 1, + labels: 1 } }); + Tracker.afterFlush(function() { + self.$('.js-member,.js-label').draggable({ + appendTo: 'body', + helper: 'clone', + revert: 'invalid', + revertDuration: 150, + snap: false, + snapMode: 'both', + start: function() { + EscapeActions.executeLowerThan('popup'); + } + }); + }); }); }, -- cgit v1.2.3-1-g7c22