diff options
Diffstat (limited to 'client/components/boards/body.js')
-rw-r--r-- | client/components/boards/body.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/client/components/boards/body.js b/client/components/boards/body.js new file mode 100644 index 00000000..2b4baf53 --- /dev/null +++ b/client/components/boards/body.js @@ -0,0 +1,70 @@ +BlazeComponent.extendComponent({ + template: function() { + return 'boardComponent'; + }, + + openNewListForm: function() { + this.componentChildren('addlistForm')[0].open(); + }, + + scrollLeft: function() { + // TODO + }, + + onRendered: function() { + var self = this; + + self.scrollLeft(); + + if (Meteor.user().isBoardMember()) { + self.$('.js-lists').sortable({ + tolerance: 'pointer', + appendTo: '.js-lists', + helper: 'clone', + items: '.js-list:not(.add-list)', + placeholder: 'list placeholder', + start: function(event, ui) { + $('.list.placeholder').height(ui.item.height()); + Popup.close(); + }, + stop: function() { + self.$('.js-lists').find('.js-list:not(.add-list)').each( + function(i, list) { + var data = Blaze.getData(list); + Lists.update(data._id, { + $set: { + sort: i + } + }); + } + ); + } + }); + + // If there is no data in the board (ie, no lists) we autofocus the list + // creation form by clicking on the corresponding element. + if (self.data().lists().count() === 0) { + this.openNewListForm(); + } + } + }, + + sidebarSize: function() { + var sidebar = this.componentChildren('boardSidebar')[0]; + if (Session.get('currentCard') !== null) + return 'next-large-sidebar'; + else if (sidebar && sidebar.isOpen()) + return 'next-small-sidebar'; + } +}).register('boardComponent'); + +BlazeComponent.extendComponent({ + template: function() { + return 'addlistForm'; + }, + + // Proxy + open: function() { + this.componentChildren('inlinedForm')[0].open(); + } +}).register('addlistForm'); |