Commit 5f5249d7 authored by Phil Hughes's avatar Phil Hughes

only search branches

target branch select dropdown doesnt care about tags so we dont need to waste time searching them
parent 4b81b6a1
...@@ -11,6 +11,14 @@ class AutoWidthDropdownSelect { ...@@ -11,6 +11,14 @@ class AutoWidthDropdownSelect {
const dropdownClass = this.dropdownClass; const dropdownClass = this.dropdownClass;
this.$selectElement.select2({ this.$selectElement.select2({
dropdownCssClass: dropdownClass, dropdownCssClass: dropdownClass,
...AutoWidthDropdownSelect.selectOptions(this.dropdownClass),
});
return this;
}
static selectOptions(dropdownClass) {
return {
dropdownCss() { dropdownCss() {
let resultantWidth = 'auto'; let resultantWidth = 'auto';
const $dropdown = $(`.${dropdownClass}`); const $dropdown = $(`.${dropdownClass}`);
...@@ -29,9 +37,7 @@ class AutoWidthDropdownSelect { ...@@ -29,9 +37,7 @@ class AutoWidthDropdownSelect {
maxWidth: offsetParentWidth, maxWidth: offsetParentWidth,
}; };
}, },
}); };
return this;
} }
} }
......
...@@ -6,6 +6,7 @@ import Autosave from './autosave'; ...@@ -6,6 +6,7 @@ import Autosave from './autosave';
import UsersSelect from './users_select'; import UsersSelect from './users_select';
import GfmAutoComplete from './gfm_auto_complete'; import GfmAutoComplete from './gfm_auto_complete';
import ZenMode from './zen_mode'; import ZenMode from './zen_mode';
import AutoWidthDropdownSelect from './issuable/auto_width_dropdown_select';
import { parsePikadayDate, pikadayToString } from './lib/utils/datefix'; import { parsePikadayDate, pikadayToString } from './lib/utils/datefix';
export default class IssuableForm { export default class IssuableForm {
...@@ -113,6 +114,7 @@ export default class IssuableForm { ...@@ -113,6 +114,7 @@ export default class IssuableForm {
initTargetBranchDropdown() { initTargetBranchDropdown() {
this.$targetBranchSelect.select2({ this.$targetBranchSelect.select2({
...AutoWidthDropdownSelect.selectOptions('js-target-branch-select'),
ajax: { ajax: {
url: this.$targetBranchSelect.data('endpoint'), url: this.$targetBranchSelect.data('endpoint'),
dataType: 'JSON', dataType: 'JSON',
...@@ -124,6 +126,7 @@ export default class IssuableForm { ...@@ -124,6 +126,7 @@ export default class IssuableForm {
}, },
results(data) { results(data) {
return { return {
// `data` keys are translated so we can't just access them with a string based key
results: data[Object.keys(data)[0]].map(name => ({ results: data[Object.keys(data)[0]].map(name => ({
id: name, id: name,
text: name, text: name,
...@@ -139,23 +142,6 @@ export default class IssuableForm { ...@@ -139,23 +142,6 @@ export default class IssuableForm {
text: val, text: val,
}); });
}, },
dropdownCss: () => {
let resultantWidth = 'auto';
// We have to look at the parent because
// `offsetParent` on a `display: none;` is `null`
const offsetParentWidth = this.$targetBranchSelect.parent().offsetParent().width();
// Reset any width to let it naturally flow
this.$targetBranchSelect.css('width', 'auto');
if (this.$targetBranchSelect.outerWidth(false) > offsetParentWidth) {
resultantWidth = offsetParentWidth;
}
return {
width: resultantWidth,
maxWidth: offsetParentWidth,
};
},
}); });
} }
} }
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
= form.hidden_field(:target_branch, = form.hidden_field(:target_branch,
{ class: 'target_branch js-target-branch-select ref-name', { class: 'target_branch js-target-branch-select ref-name',
disabled: issuable.new_record?, disabled: issuable.new_record?,
data: { placeholder: "Select branch", endpoint: refs_project_path(@project, sort: 'updated_desc') }}) data: { placeholder: "Select branch", endpoint: refs_project_path(@project, sort: 'updated_desc', find: 'branches') }})
- if issuable.new_record? - if issuable.new_record?
   
= link_to 'Change branches', mr_change_branches_path(issuable) = link_to 'Change branches', mr_change_branches_path(issuable)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment