summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/boards/boardBody.js10
-rw-r--r--client/components/boards/boardHeader.jade2
-rw-r--r--client/components/boards/boardHeader.js18
-rw-r--r--client/components/lists/listBody.js10
-rw-r--r--client/components/swimlanes/swimlanes.js7
-rw-r--r--models/boards.js8
-rw-r--r--models/users.js16
-rw-r--r--server/migrations.js11
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
+ );
+ });
+});