*/
CRM.api = function(entity, action, params, options) {
// Default settings
- var settings = {
+ var json = false,
+ settings = {
+ context: null,
success: function(result, settings) {
return true;
},
return true;
};
}
- $.extend(settings, options);
- var json = false;
for (var i in params) {
if (i.slice(0, 4) == 'api.' || typeof(params[i]) == 'Object') {
json = true;
params.json = 1;
}
// Pass copy of settings into closure to preserve its value during multiple requests
- (function(stg, that) {
+ (function(stg) {
$.ajax({
url: stg.ajaxURL.indexOf('http') === 0 ? stg.ajaxURL : CRM.url(stg.ajaxURL),
dataType: 'json',
data: params,
type: action.indexOf('get') < 0 ? 'POST' : 'GET',
success: function(result) {
- stg.callBack.call(that, result, stg);
+ stg.callBack.call(stg.context, result, stg);
}
});
- })($.extend({}, settings), this);
+ })($.extend({}, settings, options));
};
// Backwards compatible with jQuery fn
$.fn.crmAutocomplete = function (params, options) {
if (typeof params == 'undefined') params = {};
if (typeof options == 'undefined') options = {};
- params = $().extend( {
+ params = $().extend({
rowCount:35,
json:1,
entity:'Contact',
- action:'getquick',
+ action:'getquick',
sequential:1
}, params);