Override check

by Johan Vandeplas

JavaScript

list = {};

window.Ext = {define: function(name, obj){
	if(obj.override) {
  	fnNames = _.without(_.keys(obj), 'override', 'requires');
  	list[obj.override] = (list[obj.override] || []).concat(fnNames)
  }
}};

Ext.define('Portal.overrides.data.request.Ajax', {
  override: 'Ext.data.request.Ajax',
  requires: ['Portal.overrides.Ajax'],
  onComplete: function(xdrResult) {
    var e, failure, isOffline, me, options, owner, response, result, success, xhr;
    me = this;
    owner = me.owner;
    options = me.options;
    xhr = me.xhr;
    failure = {
      success: false,
      isException: false
    };
    result = void 0;
    success = void 0;
    response = void 0;
    if (!xhr || me.destroyed) {
      return me.result = failure;
    }
    isOffline = xhr.status === 0 && !me.url.toLowerCase().startsWith('file://');
    try {
      result = Ext.data.request.Ajax.parseStatus((isOffline ? -1 : xhr.status), xhr);
      if (result.success) {
        result.success = xhr.readyState === 4;
      }
    } catch (error) {
      e = error;
      result = failure;
    }
    success = me.success = me.isXdr ? xdrResult : result.success;
    if (success) {
      response = me.createResponse(xhr);
      if (owner.hasListeners.requestcomplete) {
        owner.fireEvent('requestcomplete', owner, response, options);
      }
      if (options.success) {
        Ext.callback(options.success, options.scope, [response, options]);
      }
    } else {
      if (result.isException || me.aborted || me.timedout) {
        response = me.createException(xhr);
      } else {
        response = me.createResponse(xhr);
      }
      if (owner.hasListeners.requestexception) {
        owner.fireEvent('requestexception', owner, response, options);
      }
      if (options.failure) {
        Ext.callback(options.failure, options.scope, [response, options]);
      }
      if (!options.preventDefaultFailure) {
        Ext.Ajax.defaultFailure(response);
      }
    }
    me.result = response;
    if...