From 6dedf673d5bde58c8d6ca439825cbf84303a3b4e Mon Sep 17 00:00:00 2001 From: Maxime Quandalle Date: Fri, 16 Oct 2015 17:49:25 +0200 Subject: Prevent duplicate board labels 43de3b8 did prevent empty labels with the same color, but we also want to prevent label with the same non-empty name and same color because the rationale is identical. --- models/boards.js | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'models/boards.js') diff --git a/models/boards.js b/models/boards.js index fd0212c5..d7d40251 100644 --- a/models/boards.js +++ b/models/boards.js @@ -135,29 +135,26 @@ 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 {}; + // If label with the same name and color already exists we don't want to + // create another one because they would be indistinguishable in the UI + // (they would still have different `_id` but that is not exposed to the + // user). + if (!this.getLabel(name, color)) { + const _id = Random.id(6); + return { $push: {labels: { _id, name, color }}}; } - return { $push: {labels: { _id, name, color }}}; }, editLabel(labelId, name, color) { - const labelIndex = this.labelIndex(labelId); - - if (name === '' && this.getLabel(name, color)) { - return {}; + if (!this.getLabel(name, color)) { + const labelIndex = this.labelIndex(labelId); + return { + $set: { + [`labels.${labelIndex}.name`]: name, + [`labels.${labelIndex}.color`]: color, + }, + }; } - return { - $set: { - [`labels.${labelIndex}.name`]: name, - [`labels.${labelIndex}.color`]: color, - }, - }; }, removeLabel(labelId) { -- cgit v1.2.3-1-g7c22