Files
DrupalTutorial/themes/bootstrap/js/misc/autocomplete.js
2024-07-15 12:33:27 +02:00

37 lines
1.1 KiB
JavaScript

/**
* @file
* Extends autocomplete based on jQuery UI.
*
* @todo Remove once jQuery UI is no longer used?
*/
(function ($, Drupal) {
'use strict';
// Ensure the input element has a "change" event triggered. This is important
// so that summaries in vertical tabs can be updated properly.
// @see Drupal.behaviors.formUpdated
$(document).on('autocompleteselect', '.form-autocomplete', function (e) {
$(e.target).trigger('change.formUpdated');
});
// Extend ui.autocomplete widget so it triggers the glyphicon throbber.
$.widget('ui.autocomplete', $.ui.autocomplete, {
_search: function (value) {
this.pending++;
Drupal.Ajax.prototype.glyphiconStart(this.element);
this.cancelSearch = false;
this.source({term: value}, this._response());
},
_response: function () {
var index = ++this.requestIndex;
return $.proxy(function (content) {
if (index === this.requestIndex) this.__response(content);
this.pending--;
if (!this.pending) Drupal.Ajax.prototype.glyphiconStop(this.element);
}, this);
}
});
})(jQuery, Drupal);