diff options
author | Lauri Ojansivu <x@xet7.org> | 2018-09-06 12:48:03 +0300 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2018-09-06 12:48:03 +0300 |
commit | 55072c529a6ead6ec55c25392a4a85f413ea836c (patch) | |
tree | 850162c829683d38b709e9698707b9ea4b733f2f | |
parent | 9492daf9bcaade700eb00b11f0d7a969fb66a4bf (diff) | |
parent | 66e22a2c8745ca32c49861bb24230413f5a79d76 (diff) | |
download | wekan-55072c529a6ead6ec55c25392a4a85f413ea836c.tar.gz wekan-55072c529a6ead6ec55c25392a4a85f413ea836c.tar.bz2 wekan-55072c529a6ead6ec55c25392a4a85f413ea836c.zip |
Merge branch 'devel'
-rw-r--r-- | CHANGELOG.md | 12 | ||||
-rw-r--r-- | i18n/fr.i18n.json | 4 | ||||
-rw-r--r-- | models/activities.js | 3 | ||||
-rw-r--r-- | models/boards.js | 17 | ||||
-rw-r--r-- | models/cards.js | 11 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | sandstorm-pkgdef.capnp | 4 | ||||
-rw-r--r-- | server/notifications/outgoing.js | 2 |
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) { |