From 04d5c5d131a44bdd1737a3a4cb84a61dcfb19809 Mon Sep 17 00:00:00 2001
From: prasad <prasad@vtiger.com>
Date: Thu, 1 Mar 2018 16:55:38 +0530
Subject: [PATCH] Fixes #621: Ajax call response decoding

---
 .../Vtiger/uitypes/PhoneDetailView.tpl        |  15 +++++++++++-
 packages/vtiger/mandatory/PBXManager.zip      | Bin 82523 -> 82557 bytes
 .../PBXManager/resources/PBXManagerJS.js      |  23 +++++++++---------
 3 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/layouts/v7/modules/Vtiger/uitypes/PhoneDetailView.tpl b/layouts/v7/modules/Vtiger/uitypes/PhoneDetailView.tpl
index 55437ec13..14b2b5136 100644
--- a/layouts/v7/modules/Vtiger/uitypes/PhoneDetailView.tpl
+++ b/layouts/v7/modules/Vtiger/uitypes/PhoneDetailView.tpl
@@ -7,5 +7,18 @@
  * All Rights Reserved.
  ************************************************************************************}
 
+{assign var=MODULE value='PBXManager'}
+{assign var=MODULEMODEL value=Vtiger_Module_Model::getInstance($MODULE)}
 {assign var=FIELD_VALUE value=$FIELD_MODEL->get('fieldvalue')}
-{$FIELD_MODEL->getDisplayValue($FIELD_MODEL->get('fieldvalue'), $RECORD->getId(), $RECORD)}
+{if $MODULEMODEL and $MODULEMODEL->isActive() and $FIELD_VALUE}
+    {assign var=PERMISSION value=PBXManager_Server_Model::checkPermissionForOutgoingCall()}
+    {if $PERMISSION}
+        {assign var=PHONE_FIELD_VALUE value=$FIELD_VALUE}
+        {assign var=PHONE_NUMBER value=$PHONE_FIELD_VALUE|regex_replace:"/[-()\s]/":""}
+        <a class="phoneField" data-value="{$PHONE_NUMBER}" record="{$RECORD->getId()}" onclick="Vtiger_PBXManager_Js.registerPBXOutboundCall('{$PHONE_NUMBER}',{$RECORD->getId()})">{$FIELD_MODEL->get('fieldvalue')}</a>
+    {else}
+        {$FIELD_MODEL->getDisplayValue($FIELD_MODEL->get('fieldvalue'), $RECORD->getId(), $RECORD)}
+    {/if}
+{else}
+    {$FIELD_MODEL->getDisplayValue($FIELD_MODEL->get('fieldvalue'), $RECORD->getId(), $RECORD)}
+{/if}
diff --git a/packages/vtiger/mandatory/PBXManager.zip b/packages/vtiger/mandatory/PBXManager.zip
index 9abbeec05099b55d9cd76bebf328db8677271715..79b3782b7ecf6f3465664e260eec7be2da4ed7bc 100644
GIT binary patch
delta 4246
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
C<C|>&

delta 4208
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

diff --git a/pkg/vtiger/modules/PBXManager/modules/PBXManager/resources/PBXManagerJS.js b/pkg/vtiger/modules/PBXManager/modules/PBXManager/resources/PBXManagerJS.js
index 68a3b6b39..d7de2d9a0 100644
--- a/pkg/vtiger/modules/PBXManager/modules/PBXManager/resources/PBXManagerJS.js
+++ b/pkg/vtiger/modules/PBXManager/modules/PBXManager/resources/PBXManagerJS.js
@@ -26,8 +26,8 @@ var Vtiger_PBXManager_Js = {
 	 */
 	requestPBXgetCalls : function() {
 		var url = 'index.php?module=PBXManager&action=IncomingCallPoll&mode=searchIncomingCalls';
-		app.request.get(url).then(function(data){
-			if(data.success && data.result) {
+		app.request.get(url).then(function(e, data){
+			if(data && data.success && data.result) {
 				for(i=0; i< data.result.length; i++) {
 					var record = data.result[i];
 					if(jQuery('#pbxcall_'+record.pbxmanagerid+'').size()== 0 )
@@ -103,8 +103,8 @@ var Vtiger_PBXManager_Js = {
 
 		var number = jQuery('#caller','#pbxcall_'+pbxmanagerid+'').attr("value");
 		var url = 'index.php?module=PBXManager&action=IncomingCallPoll&mode=createRecord&number='+encodeURIComponent(number)+'&email='+encodeURIComponent(email)+'&callid='+record.sourceuuid+'&modulename='+moduleName;
-		 app.request.get(url).then(function(data){
-			if(data.success && data.result) {
+		 app.request.get(url).then(function(e, data){
+			if(data && data.success && data.result) {
 				jQuery('#contactsave_'+pbxmanagerid+'').hide();
 			}
 		 });
@@ -113,8 +113,9 @@ var Vtiger_PBXManager_Js = {
 	checkIfRelatedModuleRecordExist: function(record) {
 		switch(record.callername){
 			case null:	var url = 'index.php?module=PBXManager&action=IncomingCallPoll&mode=checkModuleViewPermission&view=EditView';
-						app.request.get(url).then(function(data){
-						   var responsedata = JSON.parse(data);
+						app.request.get(url).then(function(e, data){
+						    if (e) return;
+						    var responsedata = (typeof data == 'object') ? data : JSON.parse(data);
 							var showSaveOption = false;
 							var moduleList = responsedata.result.modules;
 							var contents = jQuery('#module_'+record.pbxmanagerid+'');
@@ -166,8 +167,8 @@ var Vtiger_PBXManager_Js = {
 		for(var i=0; i<pbxcall.length;i++){
 			callid = pbxcall[i].getAttribute('callid');
 			var url = 'index.php?module=PBXManager&action=IncomingCallPoll&mode=getCallStatus&callid='+encodeURIComponent(callid)+'';
-			app.request.get(url).then(function(data){
-				if(data.result){
+			app.request.get(url).then(function(e, data){
+				if(data && data.result){
 					if(data.result!='in-progress' && data.result!='ringing'){
 						Vtiger_PBXManager_Js.removeCallPopup(callid);
 					}
@@ -203,8 +204,8 @@ var Vtiger_PBXManager_Js = {
 			'module' : 'PBXManager',
 			'action' : 'OutgoingCall'
 		}
-		app.request.get(params).then(function(data){
-			if(data.result){
+		app.request.get(params).then(function(e, data){
+			if(data && data.result){
 				params = {
 					'text' : app.vtranslate('JS_PBX_OUTGOING_SUCCESS'),
 					'type' : 'info'
@@ -226,7 +227,7 @@ var Vtiger_PBXManager_Js = {
 		var thisInstance = this;
 		//for polling
 		var url = 'index.php?module=PBXManager&action=IncomingCallPoll&mode=checkPermissionForPolling';
-		app.request.get(url).then(function(data){
+		app.request.get(url).then(function(e, data){
 			if(data && data.result) {
 				Vtiger_PBXManager_Js.registerPBXCall();
 				setInterval("Vtiger_PBXManager_Js.registerPBXCall()", 3000);
-- 
GitLab