Expanded required custom fields types
git-svn-id: svn://192.168.202.10@2694 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -109,7 +109,8 @@ OTHER CHANGES:
|
|||||||
18. Added option for custom list fields to be required for all calls or only
|
18. Added option for custom list fields to be required for all calls or only
|
||||||
inbound calls. Will prevent agent hanging up call if field is not filled
|
inbound calls. Will prevent agent hanging up call if field is not filled
|
||||||
in. Must also have campaign option enabled for it to work. Will work for
|
in. Must also have campaign option enabled for it to work. Will work for
|
||||||
the following custom field types: TEXT, AREA, DATE
|
the following custom field types:
|
||||||
|
TEXT, AREA, DATE, SELECT, MULTI, RADIO, CHECKBOX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
# 160913-0827 - Fixed issues with multiple selected values in custom fields
|
# 160913-0827 - Fixed issues with multiple selected values in custom fields
|
||||||
# 170228-2258 - Changes to allow URLs in SCRIPT field types
|
# 170228-2258 - Changes to allow URLs in SCRIPT field types
|
||||||
# 170301-0837 - Added functionality for required custom fields
|
# 170301-0837 - Added functionality for required custom fields
|
||||||
|
# 170303-1207 - Expanded required custom fields types
|
||||||
#
|
#
|
||||||
|
|
||||||
# $mysql_queries = 20
|
# $mysql_queries = 20
|
||||||
@@ -238,6 +239,10 @@ function custom_list_fields_values($lead_id,$list_id,$uniqueid,$user,$DB,$call_i
|
|||||||
|
|
||||||
$vicidial_list_fields = '|lead_id|vendor_lead_code|source_id|list_id|gmt_offset_now|called_since_last_reset|phone_code|phone_number|title|first_name|middle_initial|last_name|address1|address2|address3|city|state|province|postal_code|country_code|gender|date_of_birth|alt_phone|email|security_phrase|comments|called_count|last_local_call_time|rank|owner|';
|
$vicidial_list_fields = '|lead_id|vendor_lead_code|source_id|list_id|gmt_offset_now|called_since_last_reset|phone_code|phone_number|title|first_name|middle_initial|last_name|address1|address2|address3|city|state|province|postal_code|country_code|gender|date_of_birth|alt_phone|email|security_phrase|comments|called_count|last_local_call_time|rank|owner|';
|
||||||
$custom_required_fields='|';
|
$custom_required_fields='|';
|
||||||
|
$custom_required_fields_check='|';
|
||||||
|
$custom_required_fields_radio='|';
|
||||||
|
$custom_required_fields_select='|';
|
||||||
|
$custom_required_fields_multi='|';
|
||||||
|
|
||||||
require("dbconnect_mysqli.php");
|
require("dbconnect_mysqli.php");
|
||||||
|
|
||||||
@@ -394,7 +399,7 @@ function custom_list_fields_values($lead_id,$list_id,$uniqueid,$user,$DB,$call_i
|
|||||||
{
|
{
|
||||||
$field_options_array = explode("\n",$A_field_options[$o]);
|
$field_options_array = explode("\n",$A_field_options[$o]);
|
||||||
$field_options_count = count($field_options_array);
|
$field_options_count = count($field_options_array);
|
||||||
$te=0;
|
$te=0; $te_printed=0;
|
||||||
if ($DB > 0) {echo "DEBUG: |$A_field_id[$o]|$A_field_label[$o]|$A_field_name[$o]|$A_field_type[$o]|$A_field_options[$o]|$field_options_count|\n";}
|
if ($DB > 0) {echo "DEBUG: |$A_field_id[$o]|$A_field_label[$o]|$A_field_name[$o]|$A_field_type[$o]|$A_field_options[$o]|$field_options_count|\n";}
|
||||||
while ($te < $field_options_count)
|
while ($te < $field_options_count)
|
||||||
{
|
{
|
||||||
@@ -416,6 +421,7 @@ function custom_list_fields_values($lead_id,$list_id,$uniqueid,$user,$DB,$call_i
|
|||||||
if ($A_field_default[$o] == "$field_options_value_array[0]") {$field_selected = 'SELECTED';}
|
if ($A_field_default[$o] == "$field_options_value_array[0]") {$field_selected = 'SELECTED';}
|
||||||
}
|
}
|
||||||
$field_HTML .= "<option value=\"$field_options_value_array[0]\" $field_selected>"._QXZ("$field_options_value_array[1]")."</option>\n";
|
$field_HTML .= "<option value=\"$field_options_value_array[0]\" $field_selected>"._QXZ("$field_options_value_array[1]")."</option>\n";
|
||||||
|
$te_printed++;
|
||||||
}
|
}
|
||||||
if ( ($A_field_type[$o]=='RADIO') or ($A_field_type[$o]=='CHECKBOX') )
|
if ( ($A_field_type[$o]=='RADIO') or ($A_field_type[$o]=='CHECKBOX') )
|
||||||
{
|
{
|
||||||
@@ -435,6 +441,7 @@ function custom_list_fields_values($lead_id,$list_id,$uniqueid,$user,$DB,$call_i
|
|||||||
$field_HTML .= "<input type=$A_field_type[$o] name=$A_field_label[$o][] id=$A_field_label[$o][] value=\"$field_options_value_array[0]\" $field_selected> "._QXZ("$field_options_value_array[1]")."\n";
|
$field_HTML .= "<input type=$A_field_type[$o] name=$A_field_label[$o][] id=$A_field_label[$o][] value=\"$field_options_value_array[0]\" $field_selected> "._QXZ("$field_options_value_array[1]")."\n";
|
||||||
if ($A_multi_position[$o]=='VERTICAL')
|
if ($A_multi_position[$o]=='VERTICAL')
|
||||||
{$field_HTML .= "<BR>\n";}
|
{$field_HTML .= "<BR>\n";}
|
||||||
|
$te_printed++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$te++;
|
$te++;
|
||||||
@@ -444,6 +451,32 @@ function custom_list_fields_values($lead_id,$list_id,$uniqueid,$user,$DB,$call_i
|
|||||||
{
|
{
|
||||||
$field_HTML .= "</select>\n";
|
$field_HTML .= "</select>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# If options were printed for SELECT, MULTI, RADIO or CHECKBOX and required is set, mark as a required field
|
||||||
|
if ($te_printed > 0)
|
||||||
|
{
|
||||||
|
if ($A_field_type[$o]=='SELECT')
|
||||||
|
{
|
||||||
|
if ( ($A_field_required[$o] == 'Y') or ( ($A_field_required[$o] == 'INBOUND_ONLY') and (preg_match("/^Y\d\d\d\d\d\d\d/",$call_id)) ) )
|
||||||
|
{$custom_required_fields_select .= "$A_field_label[$o]|";}
|
||||||
|
}
|
||||||
|
if ($A_field_type[$o]=='MULTI')
|
||||||
|
{
|
||||||
|
if ( ($A_field_required[$o] == 'Y') or ( ($A_field_required[$o] == 'INBOUND_ONLY') and (preg_match("/^Y\d\d\d\d\d\d\d/",$call_id)) ) )
|
||||||
|
{$custom_required_fields_multi .= "$A_field_label[$o]|";}
|
||||||
|
}
|
||||||
|
if ($A_field_type[$o]=='RADIO')
|
||||||
|
{
|
||||||
|
if ( ($A_field_required[$o] == 'Y') or ( ($A_field_required[$o] == 'INBOUND_ONLY') and (preg_match("/^Y\d\d\d\d\d\d\d/",$call_id)) ) )
|
||||||
|
{$custom_required_fields_radio .= "$A_field_label[$o]|";}
|
||||||
|
}
|
||||||
|
if ($A_field_type[$o]=='CHECKBOX')
|
||||||
|
{
|
||||||
|
if ( ($A_field_required[$o] == 'Y') or ( ($A_field_required[$o] == 'INBOUND_ONLY') and (preg_match("/^Y\d\d\d\d\d\d\d/",$call_id)) ) )
|
||||||
|
{$custom_required_fields_check .= "$A_field_label[$o]|";}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($A_field_type[$o]=='TEXT')
|
if ($A_field_type[$o]=='TEXT')
|
||||||
{
|
{
|
||||||
if ($A_field_default[$o]=='NULL') {$A_field_default[$o]='';}
|
if ($A_field_default[$o]=='NULL') {$A_field_default[$o]='';}
|
||||||
@@ -979,7 +1012,10 @@ function custom_list_fields_values($lead_id,$list_id,$uniqueid,$user,$DB,$call_i
|
|||||||
}
|
}
|
||||||
##### END parsing for vicidial variables #####
|
##### END parsing for vicidial variables #####
|
||||||
echo "<input type=hidden name=custom_required id=custom_required value=\"$custom_required_fields\">\n";
|
echo "<input type=hidden name=custom_required id=custom_required value=\"$custom_required_fields\">\n";
|
||||||
|
echo "<input type=hidden name=custom_required_check id=custom_required_check value=\"$custom_required_fields_check\">\n";
|
||||||
|
echo "<input type=hidden name=custom_required_radio id=custom_required_radio value=\"$custom_required_fields_radio\">\n";
|
||||||
|
echo "<input type=hidden name=custom_required_select id=custom_required_select value=\"$custom_required_fields_select\">\n";
|
||||||
|
echo "<input type=hidden name=custom_required_multi id=custom_required_multi value=\"$custom_required_fields_multi\">\n";
|
||||||
|
|
||||||
return $CFoutput;
|
return $CFoutput;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -542,10 +542,11 @@
|
|||||||
# 170220-1306 - Added external_lead_id trigger for switch_lead API function
|
# 170220-1306 - Added external_lead_id trigger for switch_lead API function
|
||||||
# 170223-2122 - Fixed rare recording issue
|
# 170223-2122 - Fixed rare recording issue
|
||||||
# 170301-0839 - Added functionality for required custom fields
|
# 170301-0839 - Added functionality for required custom fields
|
||||||
|
# 170303-1206 - Expanded required custom fields types
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-512c';
|
$version = '2.14-513c';
|
||||||
$build = '170301-0839';
|
$build = '170303-1206';
|
||||||
$mel=1; # Mysql Error Log enabled = 1
|
$mel=1; # Mysql Error Log enabled = 1
|
||||||
$mysql_log_count=87;
|
$mysql_log_count=87;
|
||||||
$one_mysql_log=0;
|
$one_mysql_log=0;
|
||||||
@@ -11705,8 +11706,13 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
|
|||||||
if (custom_fields_enabled > 0)
|
if (custom_fields_enabled > 0)
|
||||||
{
|
{
|
||||||
var temp_custom_required = vcFormIFrame.document.form_custom_fields.custom_required.value;
|
var temp_custom_required = vcFormIFrame.document.form_custom_fields.custom_required.value;
|
||||||
// alert_box("checking for required custom fields: " + temp_custom_required);
|
var temp_custom_required_check = vcFormIFrame.document.form_custom_fields.custom_required_check.value;
|
||||||
|
var temp_custom_required_radio = vcFormIFrame.document.form_custom_fields.custom_required_radio.value;
|
||||||
|
var temp_custom_required_select = vcFormIFrame.document.form_custom_fields.custom_required_select.value;
|
||||||
|
var temp_custom_required_multi = vcFormIFrame.document.form_custom_fields.custom_required_multi.value;
|
||||||
|
// alert_box("checking for required custom fields: " + temp_custom_required + "-" + temp_custom_required_check + "-" + temp_custom_required_radio + "-" + temp_custom_required_select + "-" + temp_custom_required_multi + "-");
|
||||||
|
|
||||||
|
// check TEXT, AREA and DATE required custom fields
|
||||||
if (temp_custom_required.length > 2)
|
if (temp_custom_required.length > 2)
|
||||||
{
|
{
|
||||||
var CFR_array=temp_custom_required.split('|');
|
var CFR_array=temp_custom_required.split('|');
|
||||||
@@ -11723,6 +11729,99 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
|
|||||||
CFR_tick++;
|
CFR_tick++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// check CHECKBOX required custom fields
|
||||||
|
if (temp_custom_required_check.length > 2)
|
||||||
|
{
|
||||||
|
var CFR_arrayC = temp_custom_required_check.split('|');
|
||||||
|
var CFR_countC = CFR_arrayC.length;
|
||||||
|
var CFR_tick=0;
|
||||||
|
while (CFR_tick < CFR_countC)
|
||||||
|
{
|
||||||
|
var CFR_field = CFR_arrayC[CFR_tick] + '[]';
|
||||||
|
if (CFR_field.length > 2)
|
||||||
|
{
|
||||||
|
var CFR_field_boxes = vcFormIFrame.document.getElementsByName(CFR_field);
|
||||||
|
if (CFR_field_boxes.length > 0)
|
||||||
|
{
|
||||||
|
var CFR_len = CFR_field_boxes.length;
|
||||||
|
var CFR_checked=0;
|
||||||
|
for (var i=0; i < CFR_len; i++)
|
||||||
|
{
|
||||||
|
if (CFR_field_boxes[i].checked) {CFR_checked++;};
|
||||||
|
}
|
||||||
|
if (CFR_checked < 1){required_fail++; error_field_list = error_field_list + " CHECKBOX: " + CFR_arrayC[CFR_tick];}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CFR_tick++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// check RADIO required custom fields
|
||||||
|
if (temp_custom_required_radio.length > 2)
|
||||||
|
{
|
||||||
|
var CFR_arrayR = temp_custom_required_radio.split('|');
|
||||||
|
var CFR_countR = CFR_arrayR.length;
|
||||||
|
var CFR_tick=0;
|
||||||
|
while (CFR_tick < CFR_countR)
|
||||||
|
{
|
||||||
|
var CFR_field = CFR_arrayR[CFR_tick] + '[]';
|
||||||
|
if (CFR_field.length > 2)
|
||||||
|
{
|
||||||
|
var CFR_field_boxes = vcFormIFrame.document.getElementsByName(CFR_field);
|
||||||
|
if (CFR_field_boxes.length > 0)
|
||||||
|
{
|
||||||
|
var CFR_len = CFR_field_boxes.length;
|
||||||
|
var CFR_checked=0;
|
||||||
|
for (var i=0; i < CFR_len; i++)
|
||||||
|
{
|
||||||
|
if (CFR_field_boxes[i].checked) {CFR_checked++;};
|
||||||
|
}
|
||||||
|
if (CFR_checked < 1){required_fail++; error_field_list = error_field_list + " RADIO: " + CFR_arrayR[CFR_tick];}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CFR_tick++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// check SELECT required custom fields
|
||||||
|
if (temp_custom_required_select.length > 2)
|
||||||
|
{
|
||||||
|
var CFR_arrayS = temp_custom_required_select.split('|');
|
||||||
|
var CFR_countS = CFR_arrayS.length;
|
||||||
|
var CFR_tick=0;
|
||||||
|
while (CFR_tick < CFR_countS)
|
||||||
|
{
|
||||||
|
var CFR_field = CFR_arrayS[CFR_tick];
|
||||||
|
if (CFR_field.length > 0)
|
||||||
|
{
|
||||||
|
var temp_field_check = vcFormIFrame.document.getElementById(CFR_field);
|
||||||
|
var temp_field_check_value = temp_field_check.options[temp_field_check.selectedIndex].value;
|
||||||
|
if (temp_field_check_value.length < 1){required_fail++; error_field_list = error_field_list + " SELECT: " + CFR_field;}
|
||||||
|
}
|
||||||
|
CFR_tick++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// check MULTI required custom fields
|
||||||
|
if (temp_custom_required_multi.length > 2)
|
||||||
|
{
|
||||||
|
var CFR_arrayM = temp_custom_required_multi.split('|');
|
||||||
|
var CFR_countM = CFR_arrayM.length;
|
||||||
|
var CFR_tick=0;
|
||||||
|
while (CFR_tick < CFR_countM)
|
||||||
|
{
|
||||||
|
var CFR_field = CFR_arrayM[CFR_tick] + '[]';
|
||||||
|
if (CFR_field.length > 2)
|
||||||
|
{
|
||||||
|
var CFR_field_box = vcFormIFrame.document.getElementById(CFR_field);
|
||||||
|
var CFR_len = CFR_field_box.options.length;
|
||||||
|
var CFR_selected=0;
|
||||||
|
for (var i=0; i < CFR_len; i++)
|
||||||
|
{
|
||||||
|
if (CFR_field_box.options[i].selected ==true) {CFR_selected++;};
|
||||||
|
}
|
||||||
|
if (CFR_selected < 1){required_fail++; error_field_list = error_field_list + " MULTI: " + CFR_arrayM[CFR_tick];}
|
||||||
|
}
|
||||||
|
CFR_tick++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (required_fail > 0)
|
if (required_fail > 0)
|
||||||
|
|||||||
@@ -2238,7 +2238,7 @@ if ($SSqc_features_active > 0)
|
|||||||
<BR>
|
<BR>
|
||||||
<A NAME="lists_fields-field_required">
|
<A NAME="lists_fields-field_required">
|
||||||
<BR>
|
<BR>
|
||||||
<B><?php echo _QXZ("Field Required"); ?> -</B><?php echo _QXZ("If the campaign option allowing required fields is also enabled, this field allows you to force an agent to fill in this field before they can hang up the call. Y will affect all calls, INBOUND_ONLY will only affect calls received by the agent through an In-Group. This option will only work for the following custom field types: TEXT, AREA, DATE. Default is N."); ?>
|
<B><?php echo _QXZ("Field Required"); ?> -</B><?php echo _QXZ("If the campaign option allowing required fields is also enabled, this field allows you to force an agent to fill in this field before they can hang up the call. Y will affect all calls, INBOUND_ONLY will only affect calls received by the agent through an In-Group. This option will only work for the following custom field types: TEXT, AREA, DATE, SELECT, MULTI, RADIO, CHECKBOX. Default is N."); ?>
|
||||||
|
|
||||||
<BR>
|
<BR>
|
||||||
<A NAME="lists_fields-name_position">
|
<A NAME="lists_fields-name_position">
|
||||||
|
|||||||
Reference in New Issue
Block a user