37 lines
1.1 KiB
JavaScript
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);
|