diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-08-31 21:09:40 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-08-31 21:09:40 +0300 |
commit | e33402e375d7c05441d1ba6ac5030efb8a9c9537 (patch) | |
tree | 7367bd7ddcedea4d2f08294b6e6a80261fe75062 /app/assets/javascripts/deprecated_jquery_dropdown | |
parent | 532c924885ebec865e0c87f484eadaf2828910e2 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/deprecated_jquery_dropdown')
3 files changed, 13 insertions, 2 deletions
diff --git a/app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown.js b/app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown.js index a7dad506e6d..3f14a8a8a26 100644 --- a/app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown.js +++ b/app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown.js @@ -94,6 +94,7 @@ export class GitLabDropdown { dataType: this.options.dataType, beforeSend: this.toggleLoading.bind(this), success: (data) => { + this.dropdown.trigger('done.remote.loading.gl.dropdown'); this.fullData = data; this.parseData(this.fullData); this.focusTextInput(); @@ -220,7 +221,12 @@ export class GitLabDropdown { } toggleLoading() { - return $('.dropdown-menu', this.dropdown).toggleClass(LOADING_CLASS); + const menu = this.dropdown[0].querySelector('.dropdown-menu'); + const isLoading = menu.classList.contains(LOADING_CLASS); + + this.dropdown.trigger(`toggle.${isLoading ? 'off' : 'on'}.loading.gl.dropdown`); + + menu.classList.toggle(LOADING_CLASS); } togglePage() { diff --git a/app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown_filter.js b/app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown_filter.js index 2cb9e9a56a3..271347feebd 100644 --- a/app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown_filter.js +++ b/app/assets/javascripts/deprecated_jquery_dropdown/gl_dropdown_filter.js @@ -17,9 +17,11 @@ export class GitLabDropdownFilter { const $inputContainer = this.input.parent(); const $clearButton = $inputContainer.find('.js-dropdown-input-clear'); const filterRemoteDebounced = debounce(() => { + options.instance.dropdown.trigger('filtering.gl.dropdown'); $inputContainer.parent().addClass('is-loading'); return this.options.query(this.input.val(), (data) => { + options.instance.dropdown.trigger('done.filtering.gl.dropdown'); $inputContainer.parent().removeClass('is-loading'); return this.options.callback(data); }); diff --git a/app/assets/javascripts/deprecated_jquery_dropdown/index.js b/app/assets/javascripts/deprecated_jquery_dropdown/index.js index 6a3d2026192..38236707e06 100644 --- a/app/assets/javascripts/deprecated_jquery_dropdown/index.js +++ b/app/assets/javascripts/deprecated_jquery_dropdown/index.js @@ -5,7 +5,10 @@ export default function initDeprecatedJQueryDropdown($el, opts) { // eslint-disable-next-line func-names return $el.each(function () { if (!$.data(this, 'deprecatedJQueryDropdown')) { - $.data(this, 'deprecatedJQueryDropdown', new GitLabDropdown(this, opts)); + const instance = new GitLabDropdown(this, opts); + + $.data(this, 'deprecatedJQueryDropdown', instance); + this.GitLabDropdownInstance = instance; } }); } |