summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Sumaran <alfredo@gitlab.com>2016-12-13 16:38:21 -0500
committerAlfredo Sumaran <alfredo@gitlab.com>2016-12-14 10:05:00 -0500
commit51b2ffaf7ecbfbc7604a38b66576af008aa8599f (patch)
tree4d04919d5a05c21a239a3090dbde32d8583a05b8
parent518dc9900c5e659f81378cec8b6f6a27702cfa38 (diff)
downloadgitlab-ce-24877-bulk-edit-only-keeps-common-labels-when-searching.tar.gz
-rw-r--r--app/assets/javascripts/dispatcher.js.es66
-rw-r--r--app/assets/javascripts/gl_dropdown.js2
-rw-r--r--app/assets/javascripts/issues_bulk_assignment.js.es614
-rw-r--r--app/assets/javascripts/labels_select.js18
4 files changed, 23 insertions, 17 deletions
diff --git a/app/assets/javascripts/dispatcher.js.es6 b/app/assets/javascripts/dispatcher.js.es6
index b2ad3d763f6..359c869cb9a 100644
--- a/app/assets/javascripts/dispatcher.js.es6
+++ b/app/assets/javascripts/dispatcher.js.es6
@@ -37,7 +37,7 @@
case 'projects:issues:index':
Issuable.init();
new gl.IssuableBulkActions({
- page
+ prefixId: page === 'projects:merge_requests:index' ? 'merge_request_' : 'issue_'
});
shortcut_handler = new ShortcutsNavigation();
break;
@@ -108,10 +108,6 @@
new ZenMode();
new MergedButtons();
break;
- case 'projects:merge_requests:index':
- shortcut_handler = new ShortcutsNavigation();
- Issuable.init();
- break;
case 'dashboard:activity':
new gl.Activities();
break;
diff --git a/app/assets/javascripts/gl_dropdown.js b/app/assets/javascripts/gl_dropdown.js
index c35e8e93d72..ef5bfb709c0 100644
--- a/app/assets/javascripts/gl_dropdown.js
+++ b/app/assets/javascripts/gl_dropdown.js
@@ -605,7 +605,7 @@
};
GitLabDropdown.prototype.rowClicked = function(el) {
- var field, fieldName, groupName, isInput, selectedIndex, selectedObject, value, markedIds, unmarkedIds, i, isMarking;
+ var field, fieldName, groupName, isInput, selectedIndex, selectedObject, value, isMarking;
fieldName = this.options.fieldName;
isInput = $(this.el).is('input');
diff --git a/app/assets/javascripts/issues_bulk_assignment.js.es6 b/app/assets/javascripts/issues_bulk_assignment.js.es6
index 8c0eaac8924..b95c0ffb5f4 100644
--- a/app/assets/javascripts/issues_bulk_assignment.js.es6
+++ b/app/assets/javascripts/issues_bulk_assignment.js.es6
@@ -2,8 +2,8 @@
((global) => {
class IssuableBulkActions {
- constructor({ container, form, issues, page } = {}) {
- this.prefixId = page === 'projects:merge_requests:index' ? 'merge_request_' : 'issue_';
+ constructor({ container, form, issues, prefixId } = {}) {
+ this.prefixId = prefixId || 'issue_';
this.form = form || this.getElement('.bulk-update');
this.$labelDropdown = this.form.find('.js-label-select');
this.issues = issues || this.getElement('.issues-list .issue');
@@ -104,9 +104,10 @@
}
setOriginalDropdownData() {
- $('.bulk-update .js-label-select').data('common', this.getOriginalCommonIds());
- $('.bulk-update .js-label-select').data('marked', this.getOriginalMarkedIds());
- $('.bulk-update .js-label-select').data('indeterminate', this.getOriginalIndeterminateIds());
+ let $labelSelect = $('.bulk-update .js-label-select');
+ $labelSelect.data('common', this.getOriginalCommonIds());
+ $labelSelect.data('marked', this.getOriginalMarkedIds());
+ $labelSelect.data('indeterminate', this.getOriginalIndeterminateIds());
}
// From issuable's initial bulk selection
@@ -153,7 +154,8 @@
}
getElement(selector) {
- return $('.content').find(selector);
+ this.scopeEl = this.scopeEl || $('.content');
+ return this.scopeEl.find(selector);
}
}
diff --git a/app/assets/javascripts/labels_select.js b/app/assets/javascripts/labels_select.js
index 1d79807785f..2022a2f286f 100644
--- a/app/assets/javascripts/labels_select.js
+++ b/app/assets/javascripts/labels_select.js
@@ -7,7 +7,7 @@
$('.js-label-select').each(function(i, dropdown) {
var $block, $colorPreview, $dropdown, $form, $loading, $selectbox, $sidebarCollapsedValue, $value, abilityName, defaultLabel, enableLabelCreateButton, issueURLSplit, issueUpdateURL, labelHTMLTemplate, labelNoneHTMLTemplate, labelUrl, namespacePath, projectPath, saveLabelData, selectedLabel, showAny, showNo, $sidebarLabelTooltip, initialSelected, $toggleText, fieldName, useId, propertyName, showMenuAbove, $container;
$dropdown = $(dropdown);
- $dropdownContainer = $dropdown.closest('.labels-filter')
+ $dropdownContainer = $dropdown.closest('.labels-filter');
$toggleText = $dropdown.find('.dropdown-toggle-text');
namespacePath = $dropdown.data('namespace-path');
projectPath = $dropdown.data('project-path');
@@ -170,7 +170,7 @@
});
},
renderRow: function(label, instance) {
- var $a, $li, color, colorEl, indeterminate, removesAll, selectedClass, spacing, i, marked;
+ var $a, $li, color, colorEl, indeterminate, removesAll, selectedClass, spacing, i, marked, dropdownName, dropdownValue;
$li = $('<li>');
$a = $('<a href="#">');
selectedClass = [];
@@ -192,8 +192,13 @@
selectedClass.push('is-active');
}
} else {
- if (this.id(label) && $form.find("input[type='hidden'][name='" + ($dropdown.data('fieldName')) + "'][value='" + this.id(label).toString().replace(/'/g, '\\\'') + "']").length) {
- selectedClass.push('is-active');
+ if (this.id(label)) {
+ dropdownName = $dropdown.data('fieldName');
+ dropdownValue = this.id(label).toString().replace(/'/g, '\\\'');
+
+ if ($form.find("input[type='hidden'][name='" + dropdownName + "'][value='" + dropdownValue + "']").length) {
+ selectedClass.push('is-active');
+ }
}
if ($dropdown.hasClass('js-multiselect') && removesAll) {
@@ -423,6 +428,7 @@
};
LabelsSelect.prototype.setDropdownData = function($dropdown, isMarking, value) {
+ var i, markedIds, unmarkedIds, indeterminateIds;
var issuableBulkActions = $('.bulk-update').data('bulkActions');
markedIds = $dropdown.data('marked') || [];
@@ -467,7 +473,9 @@
LabelsSelect.prototype.setOriginalDropdownData = function($container, $dropdown) {
var labels = [];
- $container.find('[name="label_name[]"]').map(function() { return labels.push(this.value); });
+ $container.find('[name="label_name[]"]').map(function() {
+ return labels.push(this.value);
+ });
$dropdown.data('marked', labels);
};