Blame view

frontend/web/js/validation/src/ajax.js 977 Bytes
18b850c7   Administrator   Importers CRUD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  // ajax mode: abort
  // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
  // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()
  
  var pendingRequests = {},
  	ajax;
  // Use a prefilter if available (1.5+)
  if ( $.ajaxPrefilter ) {
  	$.ajaxPrefilter(function( settings, _, xhr ) {
  		var port = settings.port;
  		if ( settings.mode === "abort" ) {
  			if ( pendingRequests[port] ) {
  				pendingRequests[port].abort();
  			}
  			pendingRequests[port] = xhr;
  		}
  	});
  } else {
  	// Proxy ajax
  	ajax = $.ajax;
  	$.ajax = function( settings ) {
  		var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode,
  			port = ( "port" in settings ? settings : $.ajaxSettings ).port;
  		if ( mode === "abort" ) {
  			if ( pendingRequests[port] ) {
  				pendingRequests[port].abort();
  			}
  			pendingRequests[port] = ajax.apply(this, arguments);
  			return pendingRequests[port];
  		}
  		return ajax.apply(this, arguments);
  	};
  }