diff options
author | Fatih Acet <acetfatih@gmail.com> | 2017-01-25 19:27:42 +0000 |
---|---|---|
committer | Fatih Acet <acetfatih@gmail.com> | 2017-01-25 19:27:42 +0000 |
commit | 767262ac82721b9ac4d80f1cff87188307170ee6 (patch) | |
tree | 691a9d8311e7bee381822d69e9e11af5f78cd000 | |
parent | 637894de8868b05499a275e1685621473addef58 (diff) | |
parent | 8010de308eb3fc8da8a1e36c7084d68e7cbf3654 (diff) | |
download | gitlab-ce-767262ac82721b9ac4d80f1cff87188307170ee6.tar.gz |
Merge branch '25312-search-input-cmd-click-issue' into 'master'
Prevent removal of input that is the parent dropdown element
Closes #25312
See merge request !8397
-rw-r--r-- | app/assets/javascripts/gl_dropdown.js | 14 | ||||
-rw-r--r-- | app/assets/javascripts/search_autocomplete.js.es6 | 7 | ||||
-rw-r--r-- | changelogs/unreleased/25312-search-input-cmd-click-issue.yml | 4 |
3 files changed, 17 insertions, 8 deletions
diff --git a/app/assets/javascripts/gl_dropdown.js b/app/assets/javascripts/gl_dropdown.js index 7746535d9ed..cc1c0877cdf 100644 --- a/app/assets/javascripts/gl_dropdown.js +++ b/app/assets/javascripts/gl_dropdown.js @@ -651,18 +651,14 @@ isMarking = false; el.removeClass(ACTIVE_CLASS); if (field && field.length) { - if (isInput) { - field.val(''); - } else { - field.remove(); - } + this.clearField(field, isInput); } } else if (el.hasClass(INDETERMINATE_CLASS)) { isMarking = true; el.addClass(ACTIVE_CLASS); el.removeClass(INDETERMINATE_CLASS); if (field && field.length && value == null) { - field.remove(); + this.clearField(field, isInput); } if ((!field || !field.length) && fieldName) { this.addInput(fieldName, value, selectedObject); @@ -676,7 +672,7 @@ } } if (field && field.length && value == null) { - field.remove(); + this.clearField(field, isInput); } // Toggle active class for the tick mark el.addClass(ACTIVE_CLASS); @@ -826,6 +822,10 @@ return $(this.el).find(".dropdown-toggle-text").text(this.options.toggleLabel(selected, el, instance)); }; + GitLabDropdown.prototype.clearField = function(field, isInput) { + return isInput ? field.val('') : field.remove(); + }; + return GitLabDropdown; })(); diff --git a/app/assets/javascripts/search_autocomplete.js.es6 b/app/assets/javascripts/search_autocomplete.js.es6 index 480755899fb..6250e75d407 100644 --- a/app/assets/javascripts/search_autocomplete.js.es6 +++ b/app/assets/javascripts/search_autocomplete.js.es6 @@ -69,12 +69,17 @@ search: { fields: ['text'] }, + id: this.getSearchText, data: this.getData.bind(this), selectable: true, clicked: this.onClick.bind(this) }); } + getSearchText(selectedObject, el) { + return selectedObject.id ? selectedObject.text : ''; + } + getData(term, callback) { var _this, contents, jqXHR; _this = this; @@ -364,7 +369,7 @@ onClick(item, $el, e) { if (location.pathname.indexOf(item.url) !== -1) { - e.preventDefault(); + if (!e.metaKey) e.preventDefault(); if (!this.badgePresent) { if (item.category === 'Projects') { this.projectInputEl.val(item.id); diff --git a/changelogs/unreleased/25312-search-input-cmd-click-issue.yml b/changelogs/unreleased/25312-search-input-cmd-click-issue.yml new file mode 100644 index 00000000000..56e03a48692 --- /dev/null +++ b/changelogs/unreleased/25312-search-input-cmd-click-issue.yml @@ -0,0 +1,4 @@ +--- +title: Prevent removal of input fields if it is the parent dropdown element +merge_request: 8397 +author: |