fixes for CRM-13476
[civicrm-core.git] / js / rest.js
index 8cec7c81671275fe64030a2dbd44588acc65e6bb..118b4c7f0e7837c073099118332086aeec9ffe86 100644 (file)
@@ -86,7 +86,9 @@ var CRM = CRM || {};
    */
   CRM.api = function(entity, action, params, options) {
     // Default settings
-    var settings = {
+    var json = false,
+    settings = {
+      context: null,
       success: function(result, settings) {
         return true;
       },
@@ -100,7 +102,7 @@ var CRM = CRM || {};
         }
         return settings.success.call(this, result, settings);
       },
-      ajaxURL: 'civicrm/ajax/rest',
+      ajaxURL: 'civicrm/ajax/rest'
     };
     action = action.toLowerCase();
     // Default success handler
@@ -120,8 +122,6 @@ var CRM = CRM || {};
           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;
@@ -141,17 +141,17 @@ var CRM = CRM || {};
       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
@@ -163,11 +163,11 @@ var CRM = CRM || {};
   $.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);