From e5995477b80a3c8e9fd423d14fd818a5b3ad5aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Manelli?= Date: Mon, 16 Apr 2018 14:33:53 -0300 Subject: Fix #1567 --- client/components/boards/boardBody.js | 10 ++++------ client/components/boards/boardHeader.jade | 2 +- client/components/boards/boardHeader.js | 18 +++++------------- client/components/lists/listBody.js | 10 +++++----- client/components/swimlanes/swimlanes.js | 7 +++---- models/boards.js | 8 -------- models/users.js | 16 +++++++++++++++- server/migrations.js | 11 +++++++++++ 8 files changed, 44 insertions(+), 38 deletions(-) diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index aa7b6a75..456bf9b3 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -87,15 +87,13 @@ BlazeComponent.extendComponent({ }, isViewSwimlanes() { - const currentBoardId = Session.get('currentBoard'); - const board = Boards.findOne(currentBoardId); - return (board.view === 'board-view-swimlanes'); + const currentUser = Meteor.user(); + return (currentUser.profile.boardView === 'board-view-swimlanes'); }, isViewLists() { - const currentBoardId = Session.get('currentBoard'); - const board = Boards.findOne(currentBoardId); - return (board.view === 'board-view-lists'); + const currentUser = Meteor.user(); + return (currentUser.profile.boardView === 'board-view-lists'); }, openNewListForm() { diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index ce444c27..fe0771cb 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -95,7 +95,7 @@ template(name="boardHeaderBar") a.board-header-btn.js-toggle-board-view( title="{{_ 'board-view'}}") i.fa.fa-th-large - span {{_ currentBoard.view}} + span {{_ currentUser.profile.boardView}} if canModifyBoard a.board-header-btn.js-multiselection-activate( diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index 64cb0a54..2b587831 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -77,19 +77,11 @@ BlazeComponent.extendComponent({ Modal.open('archivedBoards'); }, 'click .js-toggle-board-view'() { - const currentBoard = Boards.findOne(Session.get('currentBoard')); - if (currentBoard.view === 'board-view-swimlanes') { - Boards.update(currentBoard._id, { - $set: { - view: 'board-view-lists', - }, - }); - } else if (currentBoard.view === 'board-view-lists') { - Boards.update(currentBoard._id, { - $set: { - view: 'board-view-swimlanes', - }, - }); + const currentUser = Meteor.user(); + if (currentUser.profile.boardView === 'board-view-swimlanes') { + currentUser.setBoardView('board-view-lists'); + } else if (currentUser.profile.boardView === 'board-view-lists') { + currentUser.setBoardView('board-view-swimlanes'); } }, 'click .js-open-filter-view'() { diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 6cc94371..52f34fab 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -37,11 +37,11 @@ BlazeComponent.extendComponent({ const labelIds = formComponent.labels.get(); const boardId = this.data().board()._id; - const board = Boards.findOne(boardId); let swimlaneId = ''; - if (board.view === 'board-view-swimlanes') + const boardView = Meteor.user().profile.boardView; + if (boardView === 'board-view-swimlanes') swimlaneId = this.parentComponent().parentComponent().data()._id; - else + else if (boardView === 'board-view-lists') swimlaneId = Swimlanes.findOne({boardId})._id; if (title) { @@ -106,8 +106,8 @@ BlazeComponent.extendComponent({ }, idOrNull(swimlaneId) { - const board = Boards.findOne(Session.get('currentBoard')); - if (board.view === 'board-view-swimlanes') + const currentUser = Meteor.user(); + if (currentUser.profile.boardView === 'board-view-swimlanes') return swimlaneId; return undefined; }, diff --git a/client/components/swimlanes/swimlanes.js b/client/components/swimlanes/swimlanes.js index f37e1e9c..7965c2bc 100644 --- a/client/components/swimlanes/swimlanes.js +++ b/client/components/swimlanes/swimlanes.js @@ -2,11 +2,10 @@ const { calculateIndex } = Utils; function currentCardIsInThisList(listId, swimlaneId) { const currentCard = Cards.findOne(Session.get('currentCard')); - const currentBoardId = Session.get('currentBoard'); - const board = Boards.findOne(currentBoardId); - if (board.view === 'board-view-lists') + const currentUser = Meteor.user(); + if (currentUser.profile.boardView === 'board-view-lists') return currentCard && currentCard.listId === listId; - else if (board.view === 'board-view-swimlanes') + else if (currentUser.profile.boardView === 'board-view-swimlanes') return currentCard && currentCard.listId === listId && currentCard.swimlaneId === swimlaneId; else return false; diff --git a/models/boards.js b/models/boards.js index 436a99f5..3e05b499 100644 --- a/models/boards.js +++ b/models/boards.js @@ -31,14 +31,6 @@ Boards.attachSchema(new SimpleSchema({ } }, }, - view: { - type: String, - autoValue() { // eslint-disable-line consistent-return - if (this.isInsert) { - return 'board-view-lists'; - } - }, - }, createdAt: { type: Date, autoValue() { // eslint-disable-line consistent-return diff --git a/models/users.js b/models/users.js index da8ca77c..41179875 100644 --- a/models/users.js +++ b/models/users.js @@ -43,7 +43,9 @@ Users.attachSchema(new SimpleSchema({ optional: true, autoValue() { // eslint-disable-line consistent-return if (this.isInsert && !this.isSet) { - return {}; + return { + boardView: 'board-view-lists', + }; } }, }, @@ -95,6 +97,10 @@ Users.attachSchema(new SimpleSchema({ type: String, optional: true, }, + 'profile.boardView': { + type: String, + optional: true, + }, services: { type: Object, optional: true, @@ -329,6 +335,14 @@ Users.mutations({ setShowCardsCountAt(limit) { return {$set: {'profile.showCardsCountAt': limit}}; }, + + setBoardView(view) { + return { + $set : { + 'profile.boardView': view, + }, + }; + }, }); Meteor.methods({ diff --git a/server/migrations.js b/server/migrations.js index a1bdd487..ea13f6b4 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -208,3 +208,14 @@ Migrations.add('add-checklist-items', () => { ); }); }); + +Migrations.add('add-profile-view', () => { + Users.find().forEach((user) => { + // Set default view + Users.direct.update( + { _id: user._id }, + { $set: { 'profile.boardView': 'board-view-lists' } }, + noValidate + ); + }); +}); -- cgit v1.2.3-1-g7c22