diff options
| -rw-r--r-- | js/lib/ajax.js | 72 | 
1 files changed, 23 insertions, 49 deletions
| diff --git a/js/lib/ajax.js b/js/lib/ajax.js index 184fd0da3..95ec7948e 100644 --- a/js/lib/ajax.js +++ b/js/lib/ajax.js @@ -1,3 +1,4 @@ +/*globals elgg, $*/
  elgg.provide('elgg.ajax');
  /**
 @@ -15,7 +16,7 @@ elgg.provide('elgg.ajax');   * @param {Object} options Optional. {@see jQuery#ajax}
   * @return {XmlHttpRequest}
   */
 -elgg.ajax = function(url, options) {
 +elgg.ajax = function (url, options) {
  	options = elgg.ajax.handleOptions(url, options);
  	options.url = elgg.normalize_url(options.url);
 @@ -39,9 +40,13 @@ elgg.ajax.ERROR = -1;   * @return {Object}
   * @private
   */
 -elgg.ajax.handleOptions = function(url, options) {
 +elgg.ajax.handleOptions = function (url, options) {
 +	var data_only = true,
 +		data,
 +		member;
 +	
  	//elgg.ajax('example/file.php', {...});
 -	if(typeof url == 'string') {
 +	if (typeof url === 'string') {
  		options = options || {};
  	//elgg.ajax({...});
 @@ -50,21 +55,19 @@ elgg.ajax.handleOptions = function(url, options) {  		url = options.url;
  	}
 -	var data_only = true;
 -
  	//elgg.ajax('example/file.php', function() {...});
 -	if (typeof options == 'function') {
 +	if (typeof options === 'function') {
  		data_only = false;
  		options = {success: options};
  	}
  	//elgg.ajax('example/file.php', {data:{...}});
 -	if(options.data) {
 +	if (options.data) {
  		data_only = false;
  	} else {
 -		for (var member in options) {
 +		for (member in options) {
  			//elgg.ajax('example/file.php', {callback:function(){...}});
 -			if(typeof options[member] == 'function') {
 +			if (typeof options[member] === 'function') {
  				data_only = false;
  			}
  		}
 @@ -72,7 +75,7 @@ elgg.ajax.handleOptions = function(url, options) {  	//elgg.ajax('example/file.php', {notdata:notfunc});
  	if (data_only) {
 -		var data = options;
 +		data = options;
  		options = {data: data};
  	}
 @@ -90,7 +93,7 @@ elgg.ajax.handleOptions = function(url, options) {   * @param {Object} options {@see jQuery#ajax}
   * @return {XmlHttpRequest}
   */
 -elgg.get = function(url, options) {
 +elgg.get = function (url, options) {
  	options = elgg.ajax.handleOptions(url, options);
  	options.type = 'get';
 @@ -104,7 +107,7 @@ elgg.get = function(url, options) {   * @param {Object} options {@see jQuery#ajax}
   * @return {XmlHttpRequest}
   */
 -elgg.getJSON = function(url, options) {
 +elgg.getJSON = function (url, options) {
  	options = elgg.ajax.handleOptions(url, options);
  	options.dataType = 'json';
 @@ -118,7 +121,7 @@ elgg.getJSON = function(url, options) {   * @param {Object} options {@see jQuery#ajax}
   * @return {XmlHttpRequest}
   */
 -elgg.post = function(url, options) {
 +elgg.post = function (url, options) {
  	options = elgg.ajax.handleOptions(url, options);
  	options.type = 'post';
 @@ -167,12 +170,8 @@ elgg.post = function(url, options) {   * @param {Object} options {@see jQuery#ajax}
   * @return {XMLHttpRequest}
   */
 -elgg.action = function(action, options) {
 -	if(!action) {
 -		throw new TypeError("action must be specified");
 -	} else if (typeof action != 'string') {
 -		throw new TypeError("action must be a string");
 -	}
 +elgg.action = function (action, options) {
 +	elgg.assertTypeOf('string', action);
  	options = elgg.ajax.handleOptions('action/' + action, options);
 @@ -180,12 +179,13 @@ elgg.action = function(action, options) {  	options.dataType = 'json';
  	//Always display system messages after actions
 -	var custom_success = options.success || function(){};
 -	options.success = function(json, two, three, four) {
 +	var custom_success = options.success || function () {};
 +	options.success = function (json, two, three, four) {
  		if (json.system_messages) {
  			elgg.register_error(json.system_messages.errors);
  			elgg.system_message(json.system_messages.messages);
  		}
 +		
  		custom_success(json, two, three, four);
  	};
 @@ -208,12 +208,8 @@ elgg.action = function(action, options) {   * @param {Object} options {@see jQuery#ajax}
   * @return {XmlHttpRequest}
   */
 -elgg.api = function(method, options) {
 -	if (!method) {
 -		throw new TypeError("method must be specified");
 -	} else if (typeof method != 'string') {
 -		throw new TypeError("method must be a string");
 -	}
 +elgg.api = function (method, options) {
 +	elgg.assertTypeOf('string', method);
  	var defaults = {
  		dataType: 'json',
 @@ -227,26 +223,4 @@ elgg.api = function(method, options) {  	options.data.method = method;
  	return elgg.ajax(options);
 -};
 -
 -/**
 - * @param {string} selector a jQuery selector
 - * @param {Function} complete A function to execute when the refresh is done
 - * @return {XMLHttpRequest}
 - */
 -elgg.refresh = function(selector, complete) {
 -	$(selector).html('<div align="center" class="ajax_loader"></div>');
 -	return $(selector).load(location.href + ' ' + selector + ' > *', complete);
 -};
 -
 -/**
 - * @param {string} selector a jQuery selector (usually an #id)
 - * @param {number} interval The refresh interval in seconds
 - * @param {Function} complete A function to execute when the refresh is done
 - * @return {number} The interval identifier
 - */
 -elgg.feed = function(selector, interval, complete) {
 -	return setInterval(function() {
 -		elgg.refresh(selector, complete);
 -	}, interval);
  };
\ No newline at end of file | 
