summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrés Manelli <andresmanelli@gmail.com>2019-02-22 23:48:23 +0100
committerAndrés Manelli <andresmanelli@gmail.com>2019-02-24 00:05:00 +0100
commit64bf455b296a10369e8318183c2c6cd61a122869 (patch)
tree54b9612c3700cf711ef697217fd295fba7e4a9c1
parent0a53ee87b94232608b5131f47dd77d2fa4bbc5ba (diff)
downloadwekan-64bf455b296a10369e8318183c2c6cd61a122869.tar.gz
wekan-64bf455b296a10369e8318183c2c6cd61a122869.tar.bz2
wekan-64bf455b296a10369e8318183c2c6cd61a122869.zip
Save template swimlanes in profile. Fix swimlane view for templates board. Avoid deleting template containers
-rw-r--r--client/components/boards/boardBody.jade9
-rw-r--r--client/components/boards/boardHeader.jade12
-rw-r--r--client/components/boards/boardsList.js4
-rw-r--r--client/components/swimlanes/swimlaneHeader.jade7
-rw-r--r--client/components/users/userHeader.js4
-rw-r--r--i18n/en.i18n.json6
-rw-r--r--models/boards.js4
-rw-r--r--models/swimlanes.js4
-rw-r--r--models/users.js50
9 files changed, 74 insertions, 26 deletions
diff --git a/client/components/boards/boardBody.jade b/client/components/boards/boardBody.jade
index 3a40921d..e36058f6 100644
--- a/client/components/boards/boardBody.jade
+++ b/client/components/boards/boardBody.jade
@@ -20,12 +20,15 @@ template(name="boardBody")
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
if showOverlay.get
.board-overlay
- if isViewSwimlanes
+ if currentBoard.isTemplatesBoard
each currentBoard.swimlanes
+swimlane(this)
- if isViewLists
+ else if isViewSwimlanes
+ each currentBoard.swimlanes
+ +swimlane(this)
+ else if isViewLists
+listsGroup
- if isViewCalendar
+ else if isViewCalendar
+calendarView
template(name="calendarView")
diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade
index 75b2f02b..4c9d6e43 100644
--- a/client/components/boards/boardHeader.jade
+++ b/client/components/boards/boardHeader.jade
@@ -96,10 +96,11 @@ template(name="boardHeaderBar")
i.fa.fa-search
span {{_ 'search'}}
- a.board-header-btn.js-toggle-board-view(
- title="{{_ 'board-view'}}")
- i.fa.fa-th-large
- span {{_ currentUser.profile.boardView}}
+ unless currentBoard.isTemplatesBoard
+ a.board-header-btn.js-toggle-board-view(
+ title="{{_ 'board-view'}}")
+ i.fa.fa-th-large
+ span {{_ currentUser.profile.boardView}}
if canModifyBoard
a.board-header-btn.js-multiselection-activate(
@@ -132,7 +133,8 @@ template(name="boardMenuPopup")
hr
ul.pop-over-list
li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}}
- li: a.js-archive-board {{_ 'archive-board'}}
+ unless currentBoard.isTemplatesBoard
+ li: a.js-archive-board {{_ 'archive-board'}}
li: a.js-outgoing-webhooks {{_ 'outgoing-webhooks'}}
hr
ul.pop-over-list
diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js
index 70dd1143..3fd2d889 100644
--- a/client/components/boards/boardsList.js
+++ b/client/components/boards/boardsList.js
@@ -8,10 +8,10 @@ Template.boardListHeaderBar.events({
Template.boardListHeaderBar.helpers({
templatesBoardId() {
- return Meteor.user().getTemplatesBoard().id;
+ return Meteor.user().getTemplatesBoardId();
},
templatesBoardSlug() {
- return Meteor.user().getTemplatesBoard().slug;
+ return Meteor.user().getTemplatesBoardSlug();
},
});
diff --git a/client/components/swimlanes/swimlaneHeader.jade b/client/components/swimlanes/swimlaneHeader.jade
index 33eb5731..ac4a0327 100644
--- a/client/components/swimlanes/swimlaneHeader.jade
+++ b/client/components/swimlanes/swimlaneHeader.jade
@@ -22,9 +22,10 @@ template(name="swimlaneActionPopup")
unless currentUser.isCommentOnly
ul.pop-over-list
li: a.js-set-swimlane-color {{_ 'select-color'}}
- hr
- ul.pop-over-list
- li: a.js-close-swimlane {{_ 'archive-swimlane'}}
+ unless this.isTemplateContainer
+ hr
+ ul.pop-over-list
+ li: a.js-close-swimlane {{_ 'archive-swimlane'}}
template(name="swimlaneAddPopup")
unless currentUser.isCommentOnly
diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js
index 0978ec75..29b29534 100644
--- a/client/components/users/userHeader.js
+++ b/client/components/users/userHeader.js
@@ -5,10 +5,10 @@ Template.headerUserBar.events({
Template.memberMenuPopup.helpers({
templatesBoardId() {
- return Meteor.user().getTemplatesBoard().id;
+ return Meteor.user().getTemplatesBoardId();
},
templatesBoardSlug() {
- return Meteor.user().getTemplatesBoard().slug;
+ return Meteor.user().getTemplatesBoardSlug();
},
});
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 4c3f5943..5fbbebf5 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -456,9 +456,9 @@
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"templates-board": "Templates Board",
- "card-templates-swimlane": "Card Templates Swimlane",
- "list-templates-swimlane": "List Templates Swimlane",
- "board-templates-swimlane": "Board Templates Swimlane",
+ "card-templates-swimlane": "Card Templates",
+ "list-templates-swimlane": "List Templates",
+ "board-templates-swimlane": "Board Templates",
"what-to-do": "What do you want to do?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
diff --git a/models/boards.js b/models/boards.js
index a2f4c0a8..7328899e 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -569,6 +569,10 @@ Boards.helpers({
isTemplateBoard() {
return this.type === 'template-board';
},
+
+ isTemplatesBoard() {
+ return this.type === 'template-container';
+ },
});
diff --git a/models/swimlanes.js b/models/swimlanes.js
index bdc9a691..185422ce 100644
--- a/models/swimlanes.js
+++ b/models/swimlanes.js
@@ -125,6 +125,10 @@ Swimlanes.helpers({
isTemplateSwimlane() {
return this.type === 'template-swimlane';
},
+
+ isTemplateContainer() {
+ return this.type === 'template-container';
+ },
});
Swimlanes.mutations({
diff --git a/models/users.js b/models/users.js
index 7bc9e5bf..1493aa0d 100644
--- a/models/users.js
+++ b/models/users.js
@@ -166,6 +166,27 @@ Users.attachSchema(new SimpleSchema({
type: String,
defaultValue: '',
},
+ 'profile.cardTemplatesSwimlaneId': {
+ /**
+ * Reference to the card templates swimlane Id
+ */
+ type: String,
+ defaultValue: '',
+ },
+ 'profile.listTemplatesSwimlaneId': {
+ /**
+ * Reference to the list templates swimlane Id
+ */
+ type: String,
+ defaultValue: '',
+ },
+ 'profile.boardTemplatesSwimlaneId': {
+ /**
+ * Reference to the board templates swimlane Id
+ */
+ type: String,
+ defaultValue: '',
+ },
services: {
/**
* services field of the user
@@ -336,11 +357,12 @@ Users.helpers({
return profile.language || 'en';
},
- getTemplatesBoard() {
- return {
- id: this.profile.templatesBoardId,
- slug: Boards.findOne(this.profile.templatesBoardId).slug,
- };
+ getTemplatesBoardId() {
+ return this.profile.templatesBoardId;
+ },
+
+ getTemplatesBoardSlug() {
+ return Boards.findOne(this.profile.templatesBoardId).slug;
},
});
@@ -731,7 +753,11 @@ if (Meteor.isServer) {
boardId,
sort: 1,
type: 'template-container',
- }, fakeUser);
+ }, fakeUser, (err, swimlaneId) => {
+
+ // Insert the reference to out card templates swimlane
+ Users.update(fakeUserId.get(), {$set: {'profile.cardTemplatesSwimlaneId': swimlaneId}});
+ });
// Insert the list templates swimlane
Swimlanes.insert({
@@ -739,7 +765,11 @@ if (Meteor.isServer) {
boardId,
sort: 2,
type: 'template-container',
- }, fakeUser);
+ }, fakeUser, (err, swimlaneId) => {
+
+ // Insert the reference to out list templates swimlane
+ Users.update(fakeUserId.get(), {$set: {'profile.listTemplatesSwimlaneId': swimlaneId}});
+ });
// Insert the board templates swimlane
Swimlanes.insert({
@@ -747,7 +777,11 @@ if (Meteor.isServer) {
boardId,
sort: 3,
type: 'template-container',
- }, fakeUser);
+ }, fakeUser, (err, swimlaneId) => {
+
+ // Insert the reference to out board templates swimlane
+ Users.update(fakeUserId.get(), {$set: {'profile.boardTemplatesSwimlaneId': swimlaneId}});
+ });
});
});
});