|
@@ -2652,7 +2652,7 @@ define('select2/data/ajax',[
|
|
|
'jquery'
|
|
|
], function (ArrayAdapter, Utils, $) {
|
|
|
function AjaxAdapter ($element, options) {
|
|
|
- this.ajaxOptions = options.get('ajax');
|
|
|
+ this.ajaxOptions = this._applyDefaults(options.get('ajax'));
|
|
|
|
|
|
if (this.ajaxOptions.processResults != null) {
|
|
|
this.processResults = this.ajaxOptions.processResults;
|
|
@@ -2663,6 +2663,26 @@ define('select2/data/ajax',[
|
|
|
|
|
|
Utils.Extend(AjaxAdapter, ArrayAdapter);
|
|
|
|
|
|
+ AjaxAdapter.prototype._applyDefaults = function (options) {
|
|
|
+ var defaults = {
|
|
|
+ data: function (params) {
|
|
|
+ return {
|
|
|
+ q: params.term
|
|
|
+ };
|
|
|
+ },
|
|
|
+ transport: function (params, success, failure) {
|
|
|
+ var $request = $.ajax(params);
|
|
|
+
|
|
|
+ $request.then(success);
|
|
|
+ $request.fail(failure);
|
|
|
+
|
|
|
+ return $request;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ return $.extend({}, defaults, options, true);
|
|
|
+ };
|
|
|
+
|
|
|
AjaxAdapter.prototype.processResults = function (results) {
|
|
|
return results;
|
|
|
};
|
|
@@ -2689,9 +2709,7 @@ define('select2/data/ajax',[
|
|
|
}
|
|
|
|
|
|
function request () {
|
|
|
- var $request = $.ajax(options);
|
|
|
-
|
|
|
- $request.success(function (data) {
|
|
|
+ var $request = options.transport(options, function (data) {
|
|
|
var results = self.processResults(data, params);
|
|
|
|
|
|
if (console && console.error) {
|
|
@@ -2705,6 +2723,8 @@ define('select2/data/ajax',[
|
|
|
}
|
|
|
|
|
|
callback(results);
|
|
|
+ }, function () {
|
|
|
+ // TODO: Handle AJAX errors
|
|
|
});
|
|
|
|
|
|
self._request = $request;
|