summaryrefslogtreecommitdiffstats
path: root/client/components/boards/body.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/components/boards/body.js')
-rw-r--r--client/components/boards/body.js70
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');