diff options
Diffstat (limited to 'client/components')
-rw-r--r-- | client/components/boards/boardBody.jade | 44 | ||||
-rw-r--r-- | client/components/boards/boardBody.js | 15 | ||||
-rw-r--r-- | client/components/boards/boardHeader.jade | 12 | ||||
-rw-r--r-- | client/components/boards/boardList.jade | 9 | ||||
-rw-r--r-- | client/components/boards/router.js | 58 | ||||
-rw-r--r-- | client/components/lists/main.js | 2 | ||||
-rw-r--r-- | client/components/main/header.jade | 4 | ||||
-rw-r--r-- | client/components/main/layouts.jade | 6 | ||||
-rw-r--r-- | client/components/main/layouts.js | 5 | ||||
-rw-r--r-- | client/components/main/router.js | 5 | ||||
-rw-r--r-- | client/components/sidebar/sidebar.js | 2 | ||||
-rw-r--r-- | client/components/sidebar/sidebarArchives.jade | 2 | ||||
-rw-r--r-- | client/components/users/router.js | 15 |
13 files changed, 51 insertions, 128 deletions
diff --git a/client/components/boards/boardBody.jade b/client/components/boards/boardBody.jade index 12fc0e36..3d6667ae 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -1,29 +1,25 @@ -//- - XXX This template can't be transformed into a component because it is - included by iron-router. That's a bug. - See https://github.com/peerlibrary/meteor-blaze-components/issues/44 template(name="board") - +boardComponent - -template(name="boardComponent") - if this - .board-wrapper(class=colorClass) - .board-canvas( - class=sidebarSize - class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" - class="{{#if draggingActive.get}}is-dragging-active{{/if}}") - if showOverlay.get - .board-overlay - .lists.js-lists - each lists - +list(this) - if currentCardIsInThisList - +cardDetails(currentCard) - if currentUser.isBoardMember - +addListForm - +sidebar + if Template.subscriptionsReady + if currentBoard + .board-wrapper(class=currentBoard.colorClass) + .board-canvas( + class=currentBoard.sidebarSize + class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" + class="{{#if draggingActive.get}}is-dragging-active{{/if}}") + if showOverlay.get + .board-overlay + .lists.js-lists + each currentBoard.lists + +list(this) + if currentCardIsInThisList + +cardDetails(currentCard) + if currentUser.isBoardMember + +addListForm + +sidebar + else + +message(label="board-no-found") else - +message(label="board-no-found") + +spinner template(name="addListForm") .list.js-list.list-composer.js-list-composer diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index 876f2cd0..3757eff9 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -1,11 +1,17 @@ +var boardSubsManager = new SubsManager(); + BlazeComponent.extendComponent({ template: function() { - return 'boardComponent'; + return 'board'; }, onCreated: function() { this.draggingActive = new ReactiveVar(false); this.showOverlay = new ReactiveVar(false); + + // XXX The boardId should be readed from some sort the component "props", + // unfortunatly, Blaze doesn't have this notion. + boardSubsManager.subscribe('board', Session.get('currentBoard')); }, openNewListForm: function() { @@ -67,7 +73,7 @@ BlazeComponent.extendComponent({ } }; - if (! Meteor.userId() || ! Meteor.user().isBoardMember()) + if (! Meteor.user() || ! Meteor.user().isBoardMember()) return; self.$(lists).sortable({ @@ -101,7 +107,8 @@ BlazeComponent.extendComponent({ // 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) { + var currentBoard = Boards.findOne(Session.get('currentBoard')); + if (currentBoard.lists().count() === 0) { this.openNewListForm(); } }, @@ -121,7 +128,7 @@ BlazeComponent.extendComponent({ } }]; } -}).register('boardComponent'); +}).register('board'); BlazeComponent.extendComponent({ template: function() { diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index 3847cd93..9ec79227 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -1,20 +1,20 @@ template(name="headerBoard") h1.header-board-menu a(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}") - = title + = currentBoard.title .board-header-btns.left unless isSandstorm if currentUser a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}" - title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}") - i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}") + title="{{#if currentBoard.isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}") + i.fa(class="fa-star{{#unless currentBoard.isStarred}}-o{{/unless}}") if showStarCounter - span {{_ 'board-nb-stars' stars}} + span {{_ 'board-nb-stars' currentBoard.stars}} a.board-header-btn(class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}") - i.fa(class="{{#if isPublic}}fa-globe{{else}}fa-lock{{/if}}") - span {{_ permission}} + i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}") + span {{_ currentBoard.permission}} .board-header-btns.right a.board-header-btn.js-open-filter-view( diff --git a/client/components/boards/boardList.jade b/client/components/boards/boardList.jade index e92cad2d..f0dc808f 100644 --- a/client/components/boards/boardList.jade +++ b/client/components/boards/boardList.jade @@ -1,16 +1,9 @@ -//- - XXX This template can't be transformed into a component because it is - included by iron-router. That's a bug. - See https://github.com/peerlibrary/meteor-blaze-components/issues/44 -template(name="boards") - +boardList - template(name="boardList") if boards.count ul.board-list.clearfix each boards li(class="{{#if isStarred}}starred{{/if}}" class=colorClass) - a.js-open-board(href="{{ pathFor route='Board' boardId=_id }}") + a.js-open-board(href="{{pathFor 'board' id=_id slug=slug}}") span.details span.board-list-item-name= title i.fa.fa-star-o.js-star-board( diff --git a/client/components/boards/router.js b/client/components/boards/router.js deleted file mode 100644 index 1c485225..00000000 --- a/client/components/boards/router.js +++ /dev/null @@ -1,58 +0,0 @@ -Meteor.subscribe('boards'); - -var boardSubsManager = new SubsManager(); - -Router.route('/boards', { - name: 'Boards', - template: 'boards', - authenticated: true, - onBeforeAction: function() { - Session.set('currentBoard', ''); - Filter.reset(); - this.next(); - } -}); - -Router.route('/boards/:_id/:slug', { - name: 'Board', - template: 'board', - onAfterAction: function() { - // XXX We probably shouldn't rely on Session - Session.set('sidebarIsOpen', true); - Session.set('menuWidgetIsOpen', false); - }, - waitOn: function() { - var params = this.params; - Session.set('currentBoard', params._id); - Session.set('currentCard', null); - - return boardSubsManager.subscribe('board', params._id, params.slug); - }, - data: function() { - return Boards.findOne(this.params._id); - } -}); - -Router.route('/boards/:boardId/:slug/:cardId', { - name: 'Card', - template: 'board', - noEscapeActions: true, - onAfterAction: function() { - Tracker.nonreactive(function() { - if (! Session.get('currentCard') && Sidebar) { - Sidebar.hide(); - } - }); - EscapeActions.executeUpTo('popup'); - var params = this.params; - Session.set('currentBoard', params.boardId); - Session.set('currentCard', params.cardId); - }, - waitOn: function() { - var params = this.params; - return boardSubsManager.subscribe('board', params.boardId, params.slug); - }, - data: function() { - return Boards.findOne(this.params.boardId); - } -}); diff --git a/client/components/lists/main.js b/client/components/lists/main.js index c4e38c46..e6491f0a 100644 --- a/client/components/lists/main.js +++ b/client/components/lists/main.js @@ -21,7 +21,7 @@ BlazeComponent.extendComponent({ // comment below provides further details. onRendered: function() { var self = this; - if (! Meteor.userId() || ! Meteor.user().isBoardMember()) + if (! Meteor.user() || ! Meteor.user().isBoardMember()) return; var boardComponent = self.componentParent(); diff --git a/client/components/main/header.jade b/client/components/main/header.jade index 510ef484..1185da85 100644 --- a/client/components/main/header.jade +++ b/client/components/main/header.jade @@ -10,13 +10,13 @@ template(name="header") #header-quick-access ul li - +linkTo(route="Boards") + a(href="{{pathFor 'home'}}") span.fa.fa-home | All boards each currentUser.starredBoards li.separator - li(class="{{#if $.Session.equals 'currentBoard' _id}}current{{/if}}") - +linkTo(route="Board" data=this) + a(href="{{pathFor 'board' id=_id slug=slug}}") = title else li.current Star a board to add a shortcut in this bar. diff --git a/client/components/main/layouts.jade b/client/components/main/layouts.jade index 8e6ae941..2dd3b2f2 100644 --- a/client/components/main/layouts.jade +++ b/client/components/main/layouts.jade @@ -8,15 +8,15 @@ template(name="userFormsLayout") section.auth-layout h1.at-form-landing-logo img(src="/logo.png" title="LibreBoard") - +yield + +Template.dynamic(template=content) template(name="defaultLayout") #surface +header #content - +yield + +Template.dynamic(template=content) -template(name="notfound") +template(name="notFound") +message(label='page-not-found') template(name="message") diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js new file mode 100644 index 00000000..5dbd8c91 --- /dev/null +++ b/client/components/main/layouts.js @@ -0,0 +1,5 @@ +Meteor.subscribe('boards'); + +Template.userFormsLayout.onRendered(function() { + EscapeActions.executeAll(); +}); diff --git a/client/components/main/router.js b/client/components/main/router.js deleted file mode 100644 index bae832e8..00000000 --- a/client/components/main/router.js +++ /dev/null @@ -1,5 +0,0 @@ -Router.route('/', { - name: 'Home', - redirectLoggedInUsers: true, - authenticated: true -}); diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index e4937bec..701e176b 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -162,7 +162,7 @@ Template.labelsWidget.events({ // fields of the current board document. var draggableMembersLabelsWidgets = function() { var self = this; - if (! Meteor.userId() || ! Meteor.user().isBoardMember()) + if (! Meteor.user() || ! Meteor.user().isBoardMember()) return; self.autorun(function() { diff --git a/client/components/sidebar/sidebarArchives.jade b/client/components/sidebar/sidebarArchives.jade index d2bd5d7b..2e42de6a 100644 --- a/client/components/sidebar/sidebarArchives.jade +++ b/client/components/sidebar/sidebarArchives.jade @@ -10,7 +10,7 @@ template(name="archivesSidebar") | - a.js-delete-card Delete if cardIsInArchivedList - p.quiet.small (warning: this card is in an archived list) <br> + p.quiet.small (warning: this card is in an archived list) else p.no-items-message No archived cards. diff --git a/client/components/users/router.js b/client/components/users/router.js deleted file mode 100644 index 955f0494..00000000 --- a/client/components/users/router.js +++ /dev/null @@ -1,15 +0,0 @@ -Router.route('/profile/:username', { - name: 'Profile', - template: 'profile', - waitOn: function() { - return Meteor.subscribe('profile', this.params.username); - }, - data: function() { - var params = this.params; - return { - profile: function() { - return Users.findOne({ username: params.username }); - } - }; - } -}); |