From 2d38d35b0d367dd6e7ef493005afc87d3c4be416 Mon Sep 17 00:00:00 2001
From: Phil Hughes <me@iamphill.com>
Date: Tue, 30 Aug 2016 12:10:05 +0100
Subject: [PATCH] Fixed label toggle text

---
 app/assets/javascripts/labels_select.js | 31 ++++++++++++++-----------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/app/assets/javascripts/labels_select.js b/app/assets/javascripts/labels_select.js
index 4c3514e3f23..a81aae2cee3 100644
--- a/app/assets/javascripts/labels_select.js
+++ b/app/assets/javascripts/labels_select.js
@@ -212,21 +212,24 @@
           },
           selectable: true,
           filterable: true,
+          selected: $dropdown.data('selected') || [],
           toggleLabel: function(selected, el) {
-            var selected_labels;
-            selected_labels = $('.js-label-select').siblings('.dropdown-menu-labels').find('.is-active');
-            if (selected && (selected.title != null)) {
-              if (selected_labels.length > 1) {
-                return selected.title + " +" + (selected_labels.length - 1) + " more";
-              } else {
-                return selected.title;
-              }
-            } else if (!selected && selected_labels.length !== 0) {
-              if (selected_labels.length > 1) {
-                return ($(selected_labels[0]).text()) + " +" + (selected_labels.length - 1) + " more";
-              } else if (selected_labels.length === 1) {
-                return $(selected_labels).text();
-              }
+            var isSelected = el !== null ? el.hasClass('is-active') : false,
+                title = selected.title;
+
+            if (isSelected) {
+              this.selected.push(title);
+            } else {
+              var index = this.selected.indexOf(title);
+              this.selected.splice(index, 1);
+            }
+
+            var selectedLabels = this.selected;
+
+            if (selectedLabels.length === 1) {
+              return selectedLabels;
+            } else if (selectedLabels.length > 1) {
+              return selectedLabels[0] + " +" + (selectedLabels.length - 1) + " more";
             } else {
               return defaultLabel;
             }
-- 
GitLab