diff options
-rw-r--r-- | client/components/boards/boardsList.jade | 5 | ||||
-rw-r--r-- | client/components/boards/boardsList.js | 5 | ||||
-rw-r--r-- | client/components/boards/boardsList.styl | 14 | ||||
-rw-r--r-- | models/boards.js | 16 |
4 files changed, 38 insertions, 2 deletions
diff --git a/client/components/boards/boardsList.jade b/client/components/boards/boardsList.jade index 70b29c49..0739def6 100644 --- a/client/components/boards/boardsList.jade +++ b/client/components/boards/boardsList.jade @@ -30,8 +30,9 @@ template(name="boardList") i.fa.js-clone-board( class="fa-clone" title="{{_ 'duplicate-board'}}") - - + i.fa.js-archive-board( + class="fa-archive" + title="{{_ 'archive-board'}}") template(name="boardListHeaderBar") h1 {{_ 'my-boards'}} diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js index 8c45fbe2..e97070ee 100644 --- a/client/components/boards/boardsList.js +++ b/client/components/boards/boardsList.js @@ -70,6 +70,11 @@ BlazeComponent.extendComponent({ ); evt.preventDefault(); }, + 'click .js-archive-board'(evt) { + const boardId = this.currentData()._id; + Meteor.call('archiveBoard', boardId); + evt.preventDefault(); + }, 'click .js-accept-invite'() { const boardId = this.currentData()._id; Meteor.user().removeInvite(boardId); diff --git a/client/components/boards/boardsList.styl b/client/components/boards/boardsList.styl index 7e834411..42cb354d 100644 --- a/client/components/boards/boardsList.styl +++ b/client/components/boards/boardsList.styl @@ -106,15 +106,29 @@ $spaceBetweenTiles = 16px transition-duration: .15s transition-property: color, font-size, background + .fa-archive + position: absolute; + bottom: 0 + font-size: 14px + height: 18px + line-height: 18px + opacity: 0 + left: 0 + padding: 9px 9px + transition-duration: .15s + transition-property: color, font-size, background + li:hover a &:hover .fa-star, .fa-clone, + .fa-archive, .fa-star-o color: white .fa-star, .fa-clone, + .fa-archive, .fa-star-o color: white opacity: .75 diff --git a/models/boards.js b/models/boards.js index b07d9e27..396d90fb 100644 --- a/models/boards.js +++ b/models/boards.js @@ -867,6 +867,22 @@ if (Meteor.isServer) { } else throw new Meteor.Error('error-board-doesNotExist'); }, }); + + Meteor.methods({ + archiveBoard(boardId) { + check(boardId, String); + const board = Boards.findOne(boardId); + if (board) { + const userId = Meteor.userId(); + const index = board.memberIndex(userId); + if (index >= 0) { + board.archive(); + return true; + } else throw new Meteor.Error('error-board-notAMember'); + } else throw new Meteor.Error('error-board-doesNotExist'); + }, + }); + } if (Meteor.isServer) { |