summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/labels_select.js
diff options
context:
space:
mode:
authorConstance Okoghenun <cokoghenun@gitlab.com>2018-08-07 19:29:53 +0000
committerMike Greiling <mike@pixelcog.com>2018-08-07 19:29:53 +0000
commit0b3ff7267c147bb490acaef9c6054c19ced4c637 (patch)
treef32b9c9e031e914765b02640a60235d387eedfe2 /app/assets/javascripts/labels_select.js
parent821f1a6496db422d339bb413874a5dac6fa112cd (diff)
downloadgitlab-ce-0b3ff7267c147bb490acaef9c6054c19ced4c637.tar.gz
Resolve "Board label edit drop down is showing incorrect selected labels summary"
Diffstat (limited to 'app/assets/javascripts/labels_select.js')
-rw-r--r--app/assets/javascripts/labels_select.js16
1 files changed, 12 insertions, 4 deletions
diff --git a/app/assets/javascripts/labels_select.js b/app/assets/javascripts/labels_select.js
index 37a45d1d1a2..cb851ff6745 100644
--- a/app/assets/javascripts/labels_select.js
+++ b/app/assets/javascripts/labels_select.js
@@ -39,7 +39,7 @@ export default class LabelsSelect {
showNo = $dropdown.data('showNo');
showAny = $dropdown.data('showAny');
showMenuAbove = $dropdown.data('showMenuAbove');
- defaultLabel = $dropdown.data('defaultLabel');
+ defaultLabel = $dropdown.data('defaultLabel') || 'Label';
abilityName = $dropdown.data('abilityName');
$selectbox = $dropdown.closest('.selectbox');
$block = $selectbox.closest('.block');
@@ -244,21 +244,21 @@ export default class LabelsSelect {
var $dropdownInputField = $dropdownParent.find('.dropdown-input-field');
var isSelected = el !== null ? el.hasClass('is-active') : false;
- var { title } = selected;
+ var title = selected ? selected.title : null;
var selectedLabels = this.selected;
if ($dropdownInputField.length && $dropdownInputField.val().length) {
$dropdownParent.find('.dropdown-input-clear').trigger('click');
}
- if (selected.id === 0) {
+ if (selected && selected.id === 0) {
this.selected = [];
return 'No Label';
}
else if (isSelected) {
this.selected.push(title);
}
- else {
+ else if (!isSelected && title) {
var index = this.selected.indexOf(title);
this.selected.splice(index, 1);
}
@@ -409,6 +409,14 @@ export default class LabelsSelect {
}
}
},
+ opened: function(e) {
+ if ($dropdown.hasClass('js-issue-board-sidebar')) {
+ const previousSelection = $dropdown.attr('data-selected');
+ this.selected = previousSelection ? previousSelection.split(',') : [];
+ $dropdown.data('glDropdown').updateLabel();
+ }
+ },
+ preserveContext: true,
});
// Set dropdown data