Template.boardChangeTitlePopup.events({ submit(evt, tpl) { const newTitle = tpl.$('.js-board-name').val().trim(); const newDesc = tpl.$('.js-board-desc').val().trim(); if (newTitle) { this.rename(newTitle); this.setDescription(newDesc); Popup.close(); } evt.preventDefault(); }, }); BlazeComponent.extendComponent({ watchLevel() { const currentBoard = Boards.findOne(Session.get('currentBoard')); return currentBoard && currentBoard.getWatchLevel(Meteor.userId()); }, isStarred() { const boardId = Session.get('currentBoard'); const user = Meteor.user(); return user && user.hasStarred(boardId); }, // Only show the star counter if the number of star is greater than 2 showStarCounter() { const currentBoard = Boards.findOne(Session.get('currentBoard')); return currentBoard && currentBoard.stars >= 2; }, events() { return [{ 'click .js-edit-board-title': Popup.open('boardChangeTitle'), 'click .js-star-board'() { Meteor.user().toggleBoardStar(Session.get('currentBoard')); }, 'click .js-change-visibility': Popup.open('boardChangeVisibility'), 'click .js-watch-board': Popup.open('boardChangeWatch'), 'click .js-toggle-board-view'() { const currentUser = Meteor.user(); if (currentUser.profile.boardView === 'board-view-swimlanes') { currentUser.setBoardView('board-view-cal'); } else if (currentUser.profile.boardView === 'board-view-lists') { currentUser.setBoardView('board-view-swimlanes'); } else if (currentUser.profile.boardView === 'board-view-cal') { currentUser.setBoardView('board-view-lists'); } }, 'click .js-toggle-sidebar'() { Sidebar.toggle(); }, 'click .js-open-filter-view'() { Sidebar.setView('filter'); }, 'click .js-filter-reset'(evt) { evt.stopPropagation(); Sidebar.setView(); Filter.reset(); }, 'click .js-open-search-view'() { Sidebar.setView('search'); }, 'click .js-open-rules-view'() { Modal.openWide('rulesMain'); }, 'click .js-multiselection-activate'() { const currentCard = Session.get('currentCard'); MultiSelection.activate(); if (currentCard) { MultiSelection.add(currentCard); } }, 'click .js-multiselection-reset'(evt) { evt.stopPropagation(); MultiSelection.disable(); }, 'click .js-log-in'() { FlowRouter.go('atSignIn'); }, }]; }, }).register('boardHeaderBar'); Template.boardHeaderBar.helpers({ canModifyBoard() { return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); }, }); const CreateBoard = BlazeComponent.extendComponent({ template() { return 'createBoard'; }, onCreated() { this.visibilityMenuIsOpen = new ReactiveVar(false); this.visibility = new ReactiveVar('private'); this.boardId = new ReactiveVar(''); }, visibilityCheck() { return this.currentData() === this.visibility.get(); }, setVisibility(visibility) { this.visibility.set(visibility); this.visibilityMenuIsOpen.set(false); }, toggleVisibilityMenu() { this.visibilityMenuIsOpen.set(!this.visibilityMenuIsOpen.get()); }, onSubmit(evt) { evt.preventDefault(); const title = this.find('.js-new-board-title').value; const visibility = this.visibility.get(); this.boardId.set(Boards.insert({ title, permission: visibility, })); Swimlanes.insert({ title: 'Default', boardId: this.boardId.get(), }); Utils.goBoardId(this.boardId.get()); }, events() { return [{ 'click .js-select-visibility'() { this.setVisibility(this.currentData()); }, 'click .js-change-visibility': this.toggleVisibilityMenu, 'click .js-board-template': Popup.open('searchElement'), }]; }, }).register('createBoardPopup'); (class HeaderBarCreateBoard extends CreateBoard { onSubmit(evt) { super.onSubmit(evt); // Immediately star boards crated with the headerbar popup. Meteor.user().toggleBoardStar(this.boardId.get()); } }).register('headerBarCreateBoardPopup'); BlazeComponent.extendComponent({ visibilityCheck() { const currentBoard = Boards.findOne(Session.get('currentBoard')); return this.currentData() === currentBoard.permission; }, selectBoardVisibility() { const currentBoard = Boards.findOne(Session.get('currentBoard')); const visibility = this.currentData(); currentBoard.setVisibility(visibility); Popup.close(); }, events() { return [{ 'click .js-select-visibility': this.selectBoardVisibility, }]; }, }).register('boardChangeVisibilityPopup'); BlazeComponent.extendComponent({ watchLevel() { const currentBoard = Boards.findOne(Session.get('currentBoard')); return currentBoard.getWatchLevel(Meteor.userId()); }, watchCheck() { return this.currentData() === this.watchLevel(); }, events() { return [{ 'click .js-select-watch'() { const level = this.currentData(); Meteor.call('watch', 'board', Session.get('currentBoard'), level, (err, ret) => { if (!err && ret) Popup.close(); }); }, }]; }, }).register('boardChangeWatchPopup');