summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2018-09-06 12:48:03 +0300
committerLauri Ojansivu <x@xet7.org>2018-09-06 12:48:03 +0300
commit55072c529a6ead6ec55c25392a4a85f413ea836c (patch)
tree850162c829683d38b709e9698707b9ea4b733f2f
parent9492daf9bcaade700eb00b11f0d7a969fb66a4bf (diff)
parent66e22a2c8745ca32c49861bb24230413f5a79d76 (diff)
downloadwekan-55072c529a6ead6ec55c25392a4a85f413ea836c.tar.gz
wekan-55072c529a6ead6ec55c25392a4a85f413ea836c.tar.bz2
wekan-55072c529a6ead6ec55c25392a4a85f413ea836c.zip
Merge branch 'devel'
-rw-r--r--CHANGELOG.md12
-rw-r--r--i18n/fr.i18n.json4
-rw-r--r--models/activities.js3
-rw-r--r--models/boards.js17
-rw-r--r--models/cards.js11
-rw-r--r--package.json2
-rw-r--r--sandstorm-pkgdef.capnp4
-rw-r--r--server/notifications/outgoing.js2
8 files changed, 40 insertions, 15 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d9cdced9..8cf8fdd1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,15 @@
+# v1.42 2018-09-06 Wekan release
+
+This release adds the following new features:
+
+- REST API: [Create board options to be modifiable](https://github.com/wekan/wekan/commit/9cea76e4efaacaebcb2e9f0690dfeb4ef6d62527),
+ like permissions, public/private board - now private by default,
+ and board background color.
+ Docs at https://github.com/wekan/wekan/wiki/REST-API-Boards
+- [Add swimlaneId in activity. Create default swimlaneId in API](https://github.com/wekan/wekan/pull/1876).
+
+Thanks to GitHub users andresmanelli and xet7 for their contributions.
+
# v1.41 2018-09-05 Wekan release
This release tries to fix the following bugs:
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index 986fe230..19d0c2d6 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -171,8 +171,8 @@
"comment-placeholder": "Écrire un commentaire",
"comment-only": "Commentaire uniquement",
"comment-only-desc": "Ne peut que commenter des cartes.",
- "no-comments": "No comments",
- "no-comments-desc": "Can not see comments and activities.",
+ "no-comments": "Aucun commentaire",
+ "no-comments-desc": "Ne peut pas voir les commentaires et les activités.",
"computer": "Ordinateur",
"confirm-subtask-delete-dialog": "Êtes-vous sûr de vouloir supprimer la sous-tâche ?",
"confirm-checklist-delete-dialog": "Êtes-vous sûr de vouloir supprimer la checklist ?",
diff --git a/models/activities.js b/models/activities.js
index 5b54759c..2228f66e 100644
--- a/models/activities.js
+++ b/models/activities.js
@@ -117,6 +117,9 @@ if (Meteor.isServer) {
params.url = card.absoluteUrl();
params.cardId = activity.cardId;
}
+ if (activity.swimlaneId) {
+ params.swimlaneId = activity.swimlaneId;
+ }
if (activity.commentId) {
const comment = activity.comment();
params.comment = comment.text;
diff --git a/models/boards.js b/models/boards.js
index 71049bd9..2a21d6da 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -846,19 +846,24 @@ if (Meteor.isServer) {
members: [
{
userId: req.body.owner,
- isAdmin: true,
- isActive: true,
- isNoComments: false,
- isCommentOnly: false,
+ isAdmin: req.body.isAdmin || true,
+ isActive: req.body.isActive || true,
+ isNoComments: req.body.isNoComments || false,
+ isCommentOnly: req.body.isCommentOnly || false,
},
],
- permission: 'public',
- color: 'belize',
+ permission: req.body.permission || 'private',
+ color: req.body.color || 'belize',
+ });
+ const swimlaneId = Swimlanes.insert({
+ title: TAPi18n.__('default'),
+ boardId: id,
});
JsonRoutes.sendResult(res, {
code: 200,
data: {
_id: id,
+ defaultSwimlaneId: swimlaneId,
},
});
}
diff --git a/models/cards.js b/models/cards.js
index 11f08283..927ca9ce 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -914,8 +914,9 @@ Cards.mutations({
//FUNCTIONS FOR creation of Activities
-function cardMove(userId, doc, fieldNames, oldListId) {
- if (_.contains(fieldNames, 'listId') && doc.listId !== oldListId) {
+function cardMove(userId, doc, fieldNames, oldListId, oldSwimlaneId) {
+ if ((_.contains(fieldNames, 'listId') && doc.listId !== oldListId) ||
+ (_.contains(fieldNames, 'swimlaneId') && doc.swimlaneId !== oldSwimlaneId)){
Activities.insert({
userId,
oldListId,
@@ -923,6 +924,8 @@ function cardMove(userId, doc, fieldNames, oldListId) {
listId: doc.listId,
boardId: doc.boardId,
cardId: doc._id,
+ swimlaneId: doc.swimlaneId,
+ oldSwimlaneId,
});
}
}
@@ -990,6 +993,7 @@ function cardCreation(userId, doc) {
boardId: doc.boardId,
listId: doc.listId,
cardId: doc._id,
+ swimlaneId: doc.swimlaneId,
});
}
@@ -1037,7 +1041,8 @@ if (Meteor.isServer) {
//New activity for card moves
Cards.after.update(function (userId, doc, fieldNames) {
const oldListId = this.previous.listId;
- cardMove(userId, doc, fieldNames, oldListId);
+ const oldSwimlaneId = this.previous.swimlaneId;
+ cardMove(userId, doc, fieldNames, oldListId, oldSwimlaneId);
});
// Add a new activity if we add or remove a member to the card
diff --git a/package.json b/package.json
index 0ea2c6f7..1f2acae2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wekan",
- "version": "1.41.0",
+ "version": "1.42.0",
"description": "The open-source kanban",
"private": true,
"scripts": {
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index f7c92a82..4173cbb8 100644
--- a/sandstorm-pkgdef.capnp
+++ b/sandstorm-pkgdef.capnp
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
- appVersion = 126,
+ appVersion = 127,
# Increment this for every release.
- appMarketingVersion = (defaultText = "1.41.0~2018-09-05"),
+ appMarketingVersion = (defaultText = "1.42.0~2018-09-06"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
diff --git a/server/notifications/outgoing.js b/server/notifications/outgoing.js
index b35b3b2e..aac8749e 100644
--- a/server/notifications/outgoing.js
+++ b/server/notifications/outgoing.js
@@ -8,7 +8,7 @@ const postCatchError = Meteor.wrapAsync((url, options, resolve) => {
});
});
-const webhooksAtbts = ( (process.env.WEBHOOKS_ATTRIBUTES && process.env.WEBHOOKS_ATTRIBUTES.split(',') ) || ['cardId', 'listId', 'oldListId', 'boardId', 'comment', 'user', 'card', 'commentId']);
+const webhooksAtbts = ( (process.env.WEBHOOKS_ATTRIBUTES && process.env.WEBHOOKS_ATTRIBUTES.split(',') ) || ['cardId', 'listId', 'oldListId', 'boardId', 'comment', 'user', 'card', 'commentId', 'swimlaneId']);
Meteor.methods({
outgoingWebhooks(integrations, description, params) {