Files
agc_2-X/extras/Vtiger504_vicidial.patch
T
mattf 11402503c8 Fixed auto-generated conf file bug for globals varaibles
Added welcome to VICIDIAL sound and set it to first testing extension
trunk - more Vtiger enhancements, fax and email log entries

git-svn-id: svn://192.168.202.10@1086 3d104415-ff17-0410-8863-d5cf3c621b8a
2009-03-27 18:26:18 +00:00

278 lines
16 KiB
Diff

--- ./Smarty/templates/DetailViewFields.tpl 2009-01-26 11:01:37.000000000 -0500
+++ ./Smarty/templates/DetailViewFields.tpl 2009-01-26 15:03:13.000000000 -0500
@@ -13,28 +13,34 @@
-->*}
<!-- This file is used to display the fields based on the ui type in detailview -->
- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} <!--TextBox-->
- <td width=25% class="dvtCellInfo" align="left">&nbsp;
- {if $keyid eq '55' || $keyid eq '255'}<!--SalutationSymbol-->
- {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE}
- <font color='red'>{$APP.LBL_NOT_ACCESSIBLE}</font>
- {else}
- {$keysalut}
- {/if}
- {*elseif $keyid eq '71' || $keyid eq '72'} <!--CurrencySymbol-->
+ {if $keyid eq '1' || $keyid eq 2 || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} <!--TextBox-->
+ <td width=25% class="dvtCellInfo" align="left">&nbsp;
+ {if $keyid eq '55' || $keyid eq '255'}<!--SalutationSymbol-->
+ {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE}
+ <font color='red'>{$APP.LBL_NOT_ACCESSIBLE}</font>
+ {else}
+ {$keysalut}
+ {/if}
+ {*elseif $keyid eq '71' || $keyid eq '72'} <!--CurrencySymbol-->
{$keycursymb*}
{/if}
<span id ="dtlview_{$label}">{$keyval}</span>
</td>
{elseif $keyid eq '13'} <!--Email-->
<td width=25% class="dvtCellInfo" align="left">
- {if $smarty.session.internal_mailer eq 1}
+ {if $smarty.session.internal_mailer eq 1}
<a href="javascript:InternalMailer({$ID},{$keyfldid},'{$keyfldname}','{$MODULE}','record_id');">{$keyval}</a>
{else}
<a href="mailto:{$keyval}" target="_blank" >{$keyval}</a>
{/if}
</span>
- </td>
+ </td>
+ {elseif $keyid eq '11'} <!--VICIDIALcall-->
+ <td width=25% class="dvtCellInfo" align="left">
+ <span id ="dtlview_{$label}">
+ VCcall: <a href="javascript:VICIDIALcall({$ID},'{$keyfldname}','{$keyval}');">{$keyval}</a>
+ </span>
+ </td>
{elseif $keyid eq '15' || $keyid eq '16' || $keyid eq '111'} <!--ComboBox-->
<td width=25% class="dvtCellInfo" align="left">&nbsp;
{foreach item=arr from=$keyoptions}
--- ./Smarty/templates/DetailViewUI.tpl 2009-01-26 11:03:34.000000000 -0500
+++ ./Smarty/templates/DetailViewUI.tpl 2009-01-26 15:03:44.000000000 -0500
@@ -13,7 +13,7 @@
-->*}
<!-- This file is used to display the fields based on the ui type in detailview -->
- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} <!--TextBox-->
+ {if $keyid eq '1' || $keyid eq 2 || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} <!--TextBox-->
<td width=25% class="dvtCellInfo" align="left" id="mouseArea_{$label}" onmouseover="hndMouseOver({$keyid},'{$label}');" onmouseout="fnhide('crmspanid');">
{if $keyid eq '55' || $keyid eq '255'}<!--SalutationSymbol-->
{if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE}
@@ -46,6 +46,17 @@
</div>
<div id="internal_mailer_{$keyfldname}" style="display: none;">{$keyfldid}####{$smarty.session.internal_mailer}</div>
</td>
+ {elseif $keyid eq '11'} <!--VICIDIALcall-->
+ <td width=25% class="dvtCellInfo" align="left" id="mouseArea_{$label}" onmouseover="hndMouseOver({$keyid},'{$label}');" onmouseout="fnhide('crmspanid');">
+ VCcall: <span id="dtlview_{$label}">
+ <a href="javascript:VICIDIALcall({$ID},'{$keyfldname}','{$keyval}');">{$keyval}</a>
+ </span>
+ <div id="editarea_{$label}" style="display:none;">
+ <input class="detailedViewTextBox" onFocus="this.className='detailedViewTextBoxOn'" onBlur="this.className='detailedViewTextBox'" type="text" id="txtbox_{$label}" name="{$keyfldname}" maxlength='100' value="{$keyval}"></input>
+ <br><input name="button_{$label}" type="button" class="crmbutton small save" value="{$APP.LBL_SAVE_LABEL}" onclick="dtlViewAjaxSave('{$label}','{$MODULE}',{$keyid},'{$keytblname}','{$keyfldname}','{$ID}');fnhide('crmspanid');"/> {$APP.LBL_OR}
+ <a href="javascript:;" onclick="hndCancel('dtlview_{$label}','editarea_{$label}','{$label}')" class="link">{$APP.LBL_CANCEL_BUTTON_LABEL}</a>
+ </div>
+ </td>
<!-- uitype 111 added for noneditable existing picklist values - ahmed -->
{elseif $keyid eq '15' || $keyid eq '16' || $keyid eq '111'} <!--ComboBox-->
{foreach item=arr from=$keyoptions}
--- ./vtigerservice.php 2009-01-26 20:13:22.000000000 -0500
+++ ./vtigerservice.php 2009-01-26 22:16:02.000000000 -0500
@@ -42,6 +42,58 @@
}
else
{
+ if(isset($_REQUEST['VCcall']))
+ {
+ $CL=':';
+ $server_name = getenv("SERVER_NAME");
+ $server_port = getenv("SERVER_PORT");
+ if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';}
+ else {$HTTPprotocol = 'http://';}
+ if (($server_port == '80') or ($server_port == '443') ) {$server_port='';}
+ else {$server_port = "$CL$server_port";}
+ $URLbase = "$HTTPprotocol$server_name$server_port";
+
+ global $entityDel;
+ global $display;
+ global $category;
+ header('Content-Type: text/html; charset='. $charset);
+ session_start();
+ require_once('include/utils/utils.php');
+ require_once('config.inc.php');
+ $default_config_values = Array( "allow_exports"=>"all","upload_maxsize"=>"3000000", "listview_max_textlength" => "40" );
+ set_default_config($default_config_values);
+ require_once('include/logging.php');
+ require_once('modules/Users/Users.php');
+ global $currentModule;
+ $current_user = new Users();
+
+ $log =& LoggerManager::getLogger('index');
+ global $seclog;
+ $seclog =& LoggerManager::getLogger('SECURITY');
+ $log->debug($_REQUEST);
+
+ // Check to see if there is an authenticated user in the session.
+ if(isset($_SESSION["authenticated_user_id"]) && (isset($_SESSION["app_unique_key"]) && $_SESSION["app_unique_key"] == $application_unique_key))
+ {
+ $log->debug("We have an authenticated user id: ".$_SESSION["authenticated_user_id"]);
+ $result = $current_user->retrieveCurrentUserInfoFromFile($_SESSION['authenticated_user_id']);
+ $log->debug('Current user is: '.$current_user->user_name);
+ }
+
+ $phone = $_REQUEST['phone']; $vendor_id = $_REQUEST['vendor_id'];
+ $user = $current_user->user_name;
+
+ $VCapiURL = "/agc/api.php";
+ $VCpauseQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_pause&value=PAUSE";
+ $VCcallQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_dial&value=$phone&phone_code=1&search=YES&preview=NO&focus=YES&vendor_id=$vendor_id";
+ $replyP = file("$URLbase$VCapiURL$VCpauseQuery");
+// sleep(1);
+ $replyC = file("$URLbase$VCapiURL$VCcallQuery");
+ echo "$replyP[0]|$replyC[0]\n";
+// echo "$URLbase$VCapiURL$VCcallQuery\n";
+ }
+ else
+ {
echo "<h1>vtigerCRM Soap Services</h1>";
echo "<li>vtigerCRM Outlook Plugin EndPoint URL -- Click <a href='vtigerservice.php?service=outlook'>here</a></li>";
echo "<li>vtigerCRM Word Plugin EndPoint URL -- Click <a href='vtigerservice.php?service=wordplugin'>here</a></li>";
@@ -49,6 +101,7 @@
echo "<li>vtigerCRM Customer Portal EndPoint URL -- Click <a href='vtigerservice.php?service=customerportal'>here</a></li>";
echo "<li>vtigerCRM WebForm EndPoint URL -- Click <a href='vtigerservice.php?service=webforms'>here</a></li>";
echo "<li>vtigerCRM FireFox Extension EndPoint URL -- Click <a href='vtigerservice.php?service=firefox'>here</a></li>";
+ }
}
--- ./include/js/dtlviewajax.js 2009-01-26 13:59:25.000000000 -0500
+++ ./include/js/dtlviewajax.js 2009-01-26 15:02:33.000000000 -0500
@@ -293,6 +293,9 @@
if(secEmail)
secEmail.value = tagValue;
}
+ }else if(uitype == '11')
+ {
+ getObj(dtlView).innerHTML = "<a href=\"javascript:VICIDIALcall("+crmId+",'"+fieldName+"','"+tagValue+"');\">"+tagValue+"&nbsp;</a>";
}else if(uitype == '17')
{
getObj(dtlView).innerHTML = "<a href=\"http://"+ tagValue+"\" target=\"_blank\">"+tagValue+"&nbsp;</a>";
--- ./include/utils/ListViewUtils.php 2009-01-26 10:42:14.000000000 -0500
+++ ./include/utils/ListViewUtils.php 2009-01-26 18:54:39.000000000 -0500
@@ -1291,6 +1291,11 @@
$value = '<a href="mailto:'.$field_val.'">'.$temp_val.'</a>';
}
+ // VICIDIAL agent screen phone number click to dial
+ elseif($uitype == 11)
+ {
+ $value = "VCcall: <a href=\"javascript:VICIDIALcall($entity_id,'$fieldname','$temp_val','$current_user->user_name');\">$temp_val</a>";
+ }
elseif($uitype == 56)
{
if($temp_val == 1)
--- ./include/utils/UserInfoUtil.php 2008-12-31 21:39:39.000000000 -0500
+++ ./include/utils/UserInfoUtil.php 2009-01-01 01:20:17.000000000 -0500
@@ -1175,6 +1175,18 @@
global $adb;
global $current_user;
global $seclog;
+ if (!file_exists('user_privileges/user_privileges_'.$current_user->id.'.php'))
+ {
+ $up = fopen('user_privileges/user_privileges_'.$current_user->id.'.php',"a");
+ fwrite($up, '<? $placeholder=0; ?>');
+ fclose($up);
+ }
+ if (!file_exists('user_privileges/sharing_privileges_'.$current_user->id.'.php'))
+ {
+ $sp = fopen('user_privileges/sharing_privileges_'.$current_user->id.'.php',"a");
+ fwrite($sp, '<? $placeholder=0; ?>');
+ fclose($sp);
+ }
require('user_privileges/user_privileges_'.$current_user->id.'.php');
require('user_privileges/sharing_privileges_'.$current_user->id.'.php');
$permission = "no";
--- ./Smarty/templates/DetailView.tpl 2008-03-10 08:54:31.000000000 -0400
+++ ./Smarty/templates/DetailView.tpl 2009-03-26 19:52:24.000000000 -0400
@@ -175,6 +175,10 @@
<input title="{$APP.LBL_SENDMAIL_BUTTON_TITLE}" accessKey="{$APP.LBL_SENDMAIL_BUTTON_KEY}" class="crmbutton small edit" onclick="if(LTrim(document.DetailView.pri_email.value) !='' || LTrim(document.DetailView.sec_email.value) !=''){ldelim}fnvshobj(this,'sendmail_cont');sendmail('{$MODULE}',{$ID}){rdelim}else{ldelim}OpenCompose('','create'){rdelim}" type="button" name="SendMail" value="{$APP.LBL_SENDMAIL_BUTTON_LABEL}">&nbsp;
{/if}
{/if}
+ {if $MODULE eq 'Accounts'}
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="javascript:VICIDIALcall({$ID},'fax','');">VC fax log</a> &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="javascript:VICIDIALcall({$ID},'email','');">VC email log</a> &nbsp;
+ {/if}
{if $MODULE eq 'Quotes' || $MODULE eq 'PurchaseOrder' || $MODULE eq 'SalesOrder' || $MODULE eq 'Invoice'}
{if $CREATEPDF eq 'permitted'}
<input title="Export To PDF" accessKey="Alt+e" class="crmbutton small create" onclick="this.form.return_module.value='{$MODULE}'; this.form.return_action.value='DetailView'; this.form.return_id.value='{$ID}'; this.form.module.value='{$MODULE}'; {if $MODULE eq 'SalesOrder'} this.form.action.value='CreateSOPDF'" {else} this.form.action.value='CreatePDF'" {/if} type="submit" name="Export To PDF" value="{$APP.LBL_EXPORT_TO_PDF}">&nbsp;
--- ./include/js/general.js 2008-03-10 08:54:31.000000000 -0400
+++ ./include/js/general.js 2009-03-26 20:07:23.000000000 -0400
@@ -1768,6 +1768,68 @@
openPopUp('xComposeEmail',this,url,'createemailWin',830,662,opts);
}
+function VICIDIALcall(record_id,field_name,phone,user_name) {
+//alert(record_id + "|" + field_name + "|" + phone + "|" user_name);
+var xmlhttp=false;
+/*@cc_on @*/
+/*@if (@_jscript_version >= 5)
+// JScript gives us Conditional compilation, we can cope with old IE versions.
+// and security blocked creation of the objects.
+ try {
+ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (E) {
+ xmlhttp = false;
+ }
+ }
+@end @*/
+if (!xmlhttp && typeof XMLHttpRequest!='undefined')
+ {
+ xmlhttp = new XMLHttpRequest();
+ }
+if (xmlhttp)
+ {
+ if (field_name=='fax')
+ {
+ var log_call = record_id + '';
+ while (log_call.length < 8)
+ {log_call = "0" + log_call;}
+ phone = "18" + log_call;
+ }
+ if (field_name=='email')
+ {
+ var log_call = record_id + '';
+ while (log_call.length < 8)
+ {log_call = "0" + log_call;}
+ phone = "19" + log_call;
+ }
+ var VCcallQuery = "VCcall=1&phone=" + phone + "&vendor_id=" + record_id;
+ xmlhttp.open('POST', 'vtigerservice.php');
+ xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
+ xmlhttp.send(VCcallQuery);
+ xmlhttp.onreadystatechange = function()
+ {
+ if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
+ {
+ // alert(xmlhttp.responseText);
+ var Xoutput = null;
+ Xoutput = xmlhttp.responseText;
+ var regXFerr = new RegExp("ERROR","g");
+ if (Xoutput.match(regXFerr))
+ {
+ alert(xmlhttp.responseText);
+ }
+ else
+ {
+ self.close();
+ }
+ }
+ }
+ delete xmlhttp;
+ }
+}
function fnHide_Event(obj){
document.getElementById(obj).style.visibility = 'hidden';
}