summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorMaxime Quandalle <maxime@quandalle.com>2015-10-14 23:40:00 +0200
committerMaxime Quandalle <maxime@quandalle.com>2015-10-14 23:40:27 +0200
commit43de3b8a01b001ec665294fa8bd75f5d01df7df0 (patch)
treeac9fe20b4442076ee594a6b809b3f6857a86d783 /models
parentab761f11868ce5af80d2d54e173827dc043fef02 (diff)
downloadwekan-43de3b8a01b001ec665294fa8bd75f5d01df7df0.tar.gz
wekan-43de3b8a01b001ec665294fa8bd75f5d01df7df0.tar.bz2
wekan-43de3b8a01b001ec665294fa8bd75f5d01df7df0.zip
Prevent dublicated empty labels of the same color
Diffstat (limited to 'models')
-rw-r--r--models/boards.js19
1 files changed, 14 insertions, 5 deletions
diff --git a/models/boards.js b/models/boards.js
index 8d2b63e4..fd0212c5 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -93,9 +93,7 @@ Boards.helpers({
},
getLabel(name, color) {
- return this.labels.find((current) => {
- return ((current.name === name) && (current.color === color));
- });
+ return _.findWhere(this.labels, { name, color });
},
labelIndex(labelId) {
@@ -138,11 +136,22 @@ Boards.mutations({
addLabel(name, color) {
const _id = Random.id(6);
+
+ // If an empty label of a given color already exists we don't want to create
+ // an other one because they would be indistinguishable in the UI (they
+ // would still have different `_id` but that is not exposed to the user).
+ if (name === '' && this.getLabel(name, color)) {
+ return {};
+ }
return { $push: {labels: { _id, name, color }}};
},
editLabel(labelId, name, color) {
const labelIndex = this.labelIndex(labelId);
+
+ if (name === '' && this.getLabel(name, color)) {
+ return {};
+ }
return {
$set: {
[`labels.${labelIndex}.name`]: name,
@@ -299,8 +308,8 @@ if (Meteor.isServer) {
});
});
- // If the user removes a label from a board, we have to remove references to
- // this label in all cards of the board.
+ // If the user remove one label from a board, we cant to remove reference of
+ // this label in any card of this board.
Boards.after.update((userId, doc, fieldNames, modifier) => {
if (!_.contains(fieldNames, 'labels') ||
!modifier.$pull ||