/*+*********************************************************************************** * The contents of this file are subject to the vtiger CRM Public License Version 1.0 * ("License"); You may not use this file except in compliance with the License * The Original Code is: vtiger CRM Open Source * The Initial Developer of the Original Code is vtiger. * Portions created by vtiger are Copyright (C) vtiger. * All Rights Reserved. *************************************************************************************/ var AppConnector = { /** * Sends a pjax request (push state +ajax) * The function is deferred. it will be resolved on success and error on failure * Success - if request is success it will send you data that it recieved * error - it will send two parameters first gives string regarding error * Second gives you error object if exists * * @return - deferred promise */ requestPjax : function(params) { return AppConnector._request(params, true); }, /** * Sends ajax request to the specified url. * The function is deferred. it will be resolved on success and error on failure * Success - if request is success it will send you data that it recieved * error - it will send two parameters first gives string regarding error * Second gives you error object if exists * * @return - deferred promise */ request : function(params) { return AppConnector._request(params, false); }, _request : function(params, pjaxMode) { var aDeferred = jQuery.Deferred(); if(typeof pjaxMode == 'undefined') { pjaxMode = false; } if(typeof params == 'undefined') params = {}; //caller has send only data if(typeof params.data == 'undefined') { if(typeof params == 'string') { var callerParams = params; if(callerParams.indexOf('?')!== -1) { var callerParamsParts = callerParams.split('?') callerParams = callerParamsParts[1]; } }else{ callerParams = jQuery.extend({}, params); } params = {}; params.data = callerParams; } //Make the request as post by default if(typeof params.type == 'undefined') params.type = 'POST'; //By default we expect json from the server if(typeof params.dataType == 'undefined'){ var data = params.data; //view will return html params.dataType='json'; if(data.hasOwnProperty('view')){ params.dataType='html'; } else if (typeof data == 'string' && data.indexOf('&view=') !== -1) { params.dataType='html'; } if(typeof params.url != 'undefined' && params.url.indexOf('&view=')!== -1) { params.dataType='html'; } } //If url contains params then seperate them and make them as data if(typeof params.url != 'undefined' && params.url.indexOf('?')!== -1) { var urlSplit = params.url.split('?'); var queryString = urlSplit[1]; params.url = urlSplit[0]; var queryParameters = queryString.split('&'); for(var index=0; index