Added more mobile device-specific reports

Reformatted some scripts for mobile devices

git-svn-id: svn://192.168.202.10@3202 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2020-03-18 15:27:38 +00:00
parent c60169ac1d
commit ecb97dbd8f
9 changed files with 6918 additions and 234 deletions
File diff suppressed because it is too large Load Diff
@@ -1,11 +1,12 @@
<?php
# AST_rt_whiteboard_rpt_mobile.php
#
# Copyright (C) 2019 Matt Florell <vicidial@gmail.com>, Joe Johnson <joej@vicidial.com> LICENSE: AGPLv2
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com>, Joe Johnson <joej@vicidial.com> LICENSE: AGPLv2
#
# Mobile version of real-time report that allows users to create a customized, graphical display of various data sets
#
# 190227-1259 - Initial build
# 200309-1819 - Modifications for display formatting
#
$startMS = microtime();
@@ -585,8 +586,8 @@ $MAIN.="<FORM ACTION=\"$PHP_SELF\" METHOD=GET name=vicidial_report id=vicidial_r
$MAIN.="<span id='report_control_panel' style='display:block'>";
$MAIN.="<TABLE CELLPADDING=3 CELLSPACING=3 border='0' class=\"panel_td\" style='width:95vw'><TR>";
$MAIN.="<TD VALIGN='TOP' class='mobile_whiteboard_td_sm' align='center' colspan='2'><FONT class='embossed android_whiteboard_small'>"._QXZ("Report Type").":</font> $NWB#rt_whiteboard_report-report_type$NWE";
$MAIN.="<SELECT NAME=report_type ID=report_type class='form_field_android sm_shadow round_corners mobile_whiteboard_select' onChange=HighlightRelatedFields(this.value)>\n";
$MAIN.="<TD VALIGN='TOP' class='mobile_whiteboard_td_sm' align='center' colspan='2'><FONT class='android_standard'>"._QXZ("Report Type").":</font> $NWB#rt_whiteboard_report-report_type$NWE";
$MAIN.="<SELECT NAME=report_type ID=report_type class='form_field_whiteboard_android sm_shadow round_corners' onChange=HighlightRelatedFields(this.value)>\n";
$MAIN.="<option value='' selected>-- "._QXZ("Select a report")." --</option>";
$MAIN.="<option value='status_performance_total'>"._QXZ("Disposition Totals")."</option>";
$MAIN.="<option value='agent_performance_total'>"._QXZ("Agent Performance Totals")."</option>";
@@ -603,7 +604,7 @@ $MAIN.="</SELECT>\n";
$MAIN.="</TD>\n";
$MAIN.="</TR>\n";
$MAIN.="<TR><TD VALIGN=TOP class='mobile_whiteboard_td_sm'> <FONT class='embossed android_whiteboard_small'>"._QXZ("Campaigns").":</font> $NWB#rt_whiteboard_report-parameters$NWE<BR>";
$MAIN.="<TR><TD VALIGN=TOP class='mobile_whiteboard_td_sm'> <FONT class='android_standard'>"._QXZ("Campaigns").":</font> $NWB#rt_whiteboard_report-parameters$NWE<BR>";
$MAIN.="<SELECT NAME=campaigns ID=campaigns multiple class='form_field_android sm_shadow round_corners mobile_whiteboard_select'>\n";
#if (preg_match('/\-\-ALL\-\-/',$campaign_string))
# {$MAIN.="<option value=\"--ALL--\" selected>-- "._QXZ("ALL CAMPAIGNS")." --</option>\n";}
@@ -629,7 +630,7 @@ $MAIN.="</SELECT>\n";
$MAIN.="</TD>\n";
$MAIN.="<TD VALIGN=TOP ALIGN='LEFT' class='mobile_whiteboard_td_lg'>";
$MAIN.="<FONT class='embossed android_whiteboard_small'>"._QXZ("Status flags").":</font> $NWB#rt_whiteboard_report-parameters$NWE<BR>";
$MAIN.="<FONT class='android_standard'>"._QXZ("Status flags").":</font> $NWB#rt_whiteboard_report-parameters$NWE<BR>";
$MAIN.="<SELECT NAME='status_flags' ID='status_flags' multiple class='form_field_android sm_shadow round_corners mobile_whiteboard_select'>\n";
$MAIN.="<option value='--ALL--'>"._QXZ("ALL FLAGS")."</option>\n";
$MAIN.="<option value='selectable'>"._QXZ("AGENT SELECTABLE")."</option>\n";
@@ -654,7 +655,7 @@ $MAIN.="</TR>\n";
$MAIN.="<TR>";
$MAIN.="<TD VALIGN=TOP class='mobile_whiteboard_td_sm'><FONT class='embossed android_whiteboard_small'>"._QXZ("In-groups").": $NWB#rt_whiteboard_report-parameters$NWE</font><BR>";
$MAIN.="<TD VALIGN=TOP ALIGN='LEFT' class='mobile_whiteboard_td_lg'><FONT class='android_standard'>"._QXZ("In-groups").":</font> $NWB#rt_whiteboard_report-parameters$NWE<BR>";
$MAIN.="<SELECT NAME=groups ID=groups multiple class='form_field_android sm_shadow round_corners mobile_whiteboard_select'>\n";
if (preg_match('/\-\-ALL\-\-/',$groups_string))
{$MAIN.="<option value=\"--ALL--\" selected>-- "._QXZ("ALL IN-GROUPS")." --</option>\n";}
@@ -670,7 +671,7 @@ while ($groups_to_print > $o)
$MAIN.="</SELECT>\n";
$MAIN.="</TD>\n";
$MAIN.="<TD VALIGN=TOP class='mobile_whiteboard_td_sm'><FONT class='embossed android_whiteboard_small'>"._QXZ("DIDs").": $NWB#rt_whiteboard_report-parameters$NWE</font><BR>";
$MAIN.="<TD VALIGN=TOP class='mobile_whiteboard_td_sm'><FONT class='android_standard'>"._QXZ("DIDs").":</font> $NWB#rt_whiteboard_report-parameters$NWE<BR>";
$MAIN.="<SELECT NAME=dids ID=dids multiple class='form_field_android sm_shadow round_corners mobile_whiteboard_select'>\n";
if (preg_match('/\-\-ALL\-\-/',$dids_string))
{$MAIN.="<option value=\"--ALL--\" selected>-- "._QXZ("ALL DIDS")." --</option>\n";}
@@ -688,7 +689,7 @@ $MAIN.="</TD>\n";
$MAIN.="</TR>";
$MAIN.="<TR>";
$MAIN.="<TD VALIGN=TOP class='mobile_whiteboard_td_sm'><FONT class='embossed android_whiteboard_small'>"._QXZ("User Groups").": $NWB#rt_whiteboard_report-parameters$NWE</font><BR>";
$MAIN.="<TD VALIGN=TOP class='mobile_whiteboard_td_sm'><FONT class='android_standard'>"._QXZ("User Groups").":</font> $NWB#rt_whiteboard_report-parameters$NWE<BR>";
$MAIN.="<SELECT NAME='user_groups' ID='user_groups' multiple class='form_field_android sm_shadow round_corners mobile_whiteboard_select'>\n";
if (preg_match('/\-\-ALL\-\-/',$user_groups_string))
{$MAIN.="<option value=\"--ALL--\" selected>-- "._QXZ("ALL USER GROUPS")." --</option>\n";}
@@ -704,7 +705,7 @@ while ($user_groups_to_print > $o)
$MAIN.="</SELECT>\n";
$MAIN.="</TD>\n";
$MAIN.="<TD VALIGN=TOP class='mobile_whiteboard_td_sm'><FONT class='embossed android_whiteboard_small'>"._QXZ("Users").": $NWB#rt_whiteboard_report-parameters$NWE</font><BR>";
$MAIN.="<TD VALIGN=TOP class='mobile_whiteboard_td_sm'><FONT class='android_standard'>"._QXZ("Users").":</font> $NWB#rt_whiteboard_report-parameters$NWE<BR>";
$MAIN.="<SELECT NAME='users' ID='users' multiple class='form_field_android sm_shadow round_corners mobile_whiteboard_select'>\n";
if (preg_match('/\-\-ALL\-\-/',$users_string))
{$MAIN.="<option value=\"--ALL--\" selected>-- "._QXZ("ALL USERS")." --</option>\n";}
@@ -722,9 +723,9 @@ $MAIN.="</TD>\n";
$MAIN.="</TR>\n";
$MAIN.="<TR>\n";
$MAIN.="<TD VALIGN=MIDDLE ALIGN='LEFT' nowrap class='mobile_whiteboard_td_lg'> <FONT class='embossed android_whiteboard_small'>"._QXZ("Start date/time").":</font> $NWB#rt_whiteboard_report-start_date$NWE";
$MAIN.="<INPUT TYPE=hidden NAME=DB VALUE=\"$DB\"><BR>\n";
$MAIN.="<INPUT TYPE=TEXT NAME=query_date ID=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\" class='form_field_android sm_shadow round_corners'>";
$MAIN.="<TD VALIGN=MIDDLE ALIGN='left' nowrap class='mobile_whiteboard_td_lg' colspan='2'> <FONT class='android_standard'>"._QXZ("Start date/time").":</font> $NWB#rt_whiteboard_report-start_date$NWE";
$MAIN.="<INPUT TYPE=hidden NAME=DB VALUE=\"$DB\">\n";
$MAIN.="<INPUT TYPE=TEXT NAME=query_date ID=query_date SIZE=11 MAXLENGTH=10 VALUE=\"$query_date\" class='form_field_android sm_shadow round_corners'>";
/*
$MAIN.="<script language=\"JavaScript\">\n";
$MAIN.="function openNewWindow(url)\n";
@@ -741,26 +742,19 @@ $MAIN.="o_cal.a_tpl.yearscroll = false;\n";
$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n";
$MAIN.="</script>\n";
*/
$MAIN.="&nbsp;&nbsp;<INPUT TYPE=TEXT NAME=query_time ID=query_time SIZE=8 MAXLENGTH=8 VALUE=\"$query_time\" class='form_field_android sm_shadow round_corners'>";
$MAIN.="&nbsp;&nbsp;<INPUT TYPE=TEXT NAME=query_time ID=query_time SIZE=9 MAXLENGTH=8 VALUE=\"$query_time\" class='form_field_android sm_shadow round_corners'><BR>";
$MAIN.="<BR><BR>";
$MAIN.="<FONT class='embossed android_whiteboard_small'>"._QXZ("OR Past")." <input type='text' class='form_field_android sm_shadow round_corners' size='2' maxlength='2' name='hourly_display' id='hourly_display' value=''> "._QXZ("hours")."</font> $NWB#rt_whiteboard_report-show_results$NWE";
$MAIN.="</TD>\n";
$MAIN.="<TD VALIGN='TOP' ALIGN='left' class='mobile_whiteboard_td_lg'>";
$MAIN.="<table border='0' cellpadding='2' cellspacing='0' class='mobile_whiteboard_td_lg'>";
$MAIN.="<tr>";
$MAIN.="<td align='right' VALIGN='TOP' class='panel_td'><FONT class='embossed android_whiteboard_small'>"._QXZ("Target per unit").": <input type='text' size='2' maxlength='5' name='target_per_agent' id='target_per_agent' value='$target_per_agent' class='form_field_android sm_shadow round_corners'> $NWB#rt_whiteboard_report-target_per_unit$NWE</font></td>";
$MAIN.="<td align='left' VALIGN='TOP' class='panel_td'></td>";
$MAIN.="</tr><tr>";
$MAIN.="<td align='right' VALIGN='TOP' class='panel_td'><FONT class='embossed android_whiteboard_small'>"._QXZ("Target sales").": <input type='text' size='2' maxlength='5' name='target_gross' id='target_gross' value='$target_gross' class='form_field_android sm_shadow round_corners'> $NWB#rt_whiteboard_report-target_gross_sales$NWE</font></td>";
$MAIN.="<td align='left' VALIGN='TOP' class='panel_td'></td>";
$MAIN.="</tr></table>";
$MAIN.="&nbsp;&nbsp;&nbsp;&nbsp;<FONT class='android_standard'>"._QXZ("OR Past")." <input type='text' class='form_field_android sm_shadow round_corners' size='2' maxlength='2' name='hourly_display' id='hourly_display' value=''> "._QXZ("hours")."</font> $NWB#rt_whiteboard_report-show_results$NWE";
$MAIN.="</TD>\n";
$MAIN.="</TR>\n";
$MAIN.="<TR>";
$MAIN.="<TD align='center' colspan='2'><INPUT TYPE=button NAME='run_report' class='green_btn_mobile sm_shadow round_corners mobile_whiteboard_button' VALUE='"._QXZ("RUN REPORT")."' onClick='StartRefresh()'></TD>";
$MAIN.="<td align='right' VALIGN='TOP' class='panel_td'><FONT class='android_standard'>"._QXZ("Target per unit").": <input type='text' size='2' maxlength='5' name='target_per_agent' id='target_per_agent' value='$target_per_agent' class='form_field_android sm_shadow round_corners'> $NWB#rt_whiteboard_report-target_per_unit$NWE</font></td>";
$MAIN.="<td align='left' VALIGN='TOP' class='panel_td'><FONT class='android_standard'>"._QXZ("Target sales").": <input type='text' size='2' maxlength='5' name='target_gross' id='target_gross' value='$target_gross' class='form_field_android sm_shadow round_corners'> $NWB#rt_whiteboard_report-target_gross_sales$NWE</font></td>";
$MAIN.="</TR>\n";
$MAIN.="<TR>";
$MAIN.="<TD align='center' colspan='2'><BR><BR><INPUT TYPE=button NAME='run_report' class='green_btn_anywidth_lg sm_shadow round_corners' style='width: 35vw; max-width:320px;' VALUE='"._QXZ("RUN REPORT")."' onClick='StartRefresh()'></TD>";
# $MAIN.="<TD align='center'><INPUT TYPE=button NAME='goto_reports' ID='goto_reports' class='red_btn_mobile sm_shadow round_corners mobile_whiteboard_button' VALUE='"._QXZ("REPORTS")."'></TD>";
$MAIN.="</TR></TABLE></span>\n";
@@ -769,28 +763,63 @@ $MAIN.="</TR></TABLE></span>\n";
$MAIN.="<span id='report_display_panel' style='display:none'>";
$MAIN.="<TABLE CELLPADDING=0 border='0' CELLSPACING=3 BGCOLOR='#".$SSframe_background."' style='width:95vw' class=\"panel_td\"><TR>";
$MAIN.="<TABLE CELLPADDING=0 border='0' CELLSPACING=3 BGCOLOR='#".$SSframe_background."' style='width:98vw' class=\"panel_td\"><TR>";
$MAIN.="<TD ALIGN=right valign='top' class='embossed android_whiteboard_small'>";
$MAIN.="<input type='button' id='stop_report' name='stop_report' class='red_btn_mobile_lg sm_shadow round_corners' value='<<< "._QXZ("CONTROL PANEL")."' onClick='StopRefresh()'>";
$MAIN.="<TD ALIGN=left class='android_whiteboard_small'>";
$MAIN.="<input type='button' id='stop_report' name='stop_report' class='red_btn_anywidth sm_shadow round_corners' style='width: 20vw; max-width:200px;' value='<< "._QXZ("BACK")."' onClick='StopRefresh()'>";
$MAIN.="</TD>";
$MAIN.="<TD ALIGN=center width='*' class='embossed android_whiteboard_small'>";
$MAIN.="<TD ALIGN=right class='android_whiteboard_small'>";
$MAIN.="<INPUT TYPE=hidden NAME=query_date2 ID=query_date2 VALUE=\"$query_date\">";
$MAIN.="<INPUT TYPE=hidden NAME=query_time2 ID=query_time2 VALUE=\"$query_time\">";
$MAIN.="<INPUT TYPE='hidden' name='hourly_display2' id='hourly_display2' value=''>";
$MAIN.=_QXZ("Refresh rate").":&nbsp;";
$MAIN.="<select name='refresh_rate' id='refresh_rate' class='form_field_android sm_shadow round_corners'>";
$MAIN.="<option value='5'>5 "._QXZ("seconds")."</option>";
$MAIN.="<option value='10'>10 "._QXZ("seconds")."</option>";
$MAIN.="<option value='15'>15 "._QXZ("seconds")."</option>";
$MAIN.="<select name='refresh_rate' id='refresh_rate' class='form_field_android sm_shadow round_corners' style='width:17vw;max-width:170px;'>";
$MAIN.="<option value='5'>5 "._QXZ("sec")."</option>";
$MAIN.="<option value='10'>10 "._QXZ("sec")."</option>";
$MAIN.="<option value='15'>15 "._QXZ("sec")."</option>";
# $MAIN.="<option value='20'>20 "._QXZ("seconds")."</option>";
$MAIN.="<option value='30' selected>30 "._QXZ("seconds")."</option>";
$MAIN.="<option value='45'>45 "._QXZ("seconds")."</option>";
$MAIN.="<option value='60'>60 "._QXZ("seconds")."</option>";
$MAIN.="<option value='120'>2 "._QXZ("minutes")."</option>";
$MAIN.="<option value='300'>5 "._QXZ("minutes")."</option>";
$MAIN.="<option value='30' selected>30 "._QXZ("sec")."</option>";
$MAIN.="<option value='45'>45 "._QXZ("sec")."</option>";
$MAIN.="<option value='60'>60 "._QXZ("sec")."</option>";
$MAIN.="<option value='120'>2 "._QXZ("min")."</option>";
$MAIN.="<option value='300'>5 "._QXZ("min")."</option>";
$MAIN.="</select>";
$MAIN.="<BR>";
$MAIN.=_QXZ("Start date/time").":&nbsp;";
$MAIN.="<INPUT TYPE=TEXT NAME=query_date2 ID=query_date2 SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\" class='form_field_android sm_shadow round_corners'>";
$MAIN.="&nbsp;&nbsp;<input type='button' id='adjust_report' name='adjust_report' class='green_btn_anywidth sm_shadow round_corners' style='width: 20vw; max-width:200px;' value='"._QXZ("ADJUST")."'>";
$MAIN.="</TD>";
$MAIN.="<TD VALIGN=TOP align='left' rowspan=2 class='android_whiteboard_small autosize_12'><BR><BR><BR>"; #
$MAIN.="<div class='autosize_10 border2px round_corners sm_shadow std_row1'>"._QXZ("Total Calls").":<BR><span id='total_calls_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='autosize_10 border2px round_corners sm_shadow std_row2'>"._QXZ("Total Sales").":<BR><span id='total_sales_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='autosize_10 border2px round_corners sm_shadow std_row3'>"._QXZ("Total Conv Rate").":<BR><span id='total_conv_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='autosize_10 border2px round_corners sm_shadow std_row4'>"._QXZ("Total Time").":<BR><span id='total_time_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='autosize_10 border2px round_corners sm_shadow std_row5'>"._QXZ("Total CPH").":<BR><span id='total_cph_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='autosize_10 border2px round_corners sm_shadow std_row1'>"._QXZ("Total SPH").":<BR><span id='total_sph_div'></span>&nbsp;</div>";
$MAIN.="</TD>";
$MAIN.="</TR>";
/*
$MAIN.="<TR>";
$MAIN.="<TD ALIGN=center width='*' class='android_whiteboard_small'>";
$MAIN.=_QXZ("Refresh").":&nbsp;";
$MAIN.="<select name='refresh_rate' id='refresh_rate' class='form_field_android sm_shadow round_corners' style='width:20vw;max-width:200px;'>";
$MAIN.="<option value='5'>5 "._QXZ("sec")."</option>";
$MAIN.="<option value='10'>10 "._QXZ("sec")."</option>";
$MAIN.="<option value='15'>15 "._QXZ("sec")."</option>";
# $MAIN.="<option value='20'>20 "._QXZ("seconds")."</option>";
$MAIN.="<option value='30' selected>30 "._QXZ("sec")."</option>";
$MAIN.="<option value='45'>45 "._QXZ("sec")."</option>";
$MAIN.="<option value='60'>60 "._QXZ("sec")."</option>";
$MAIN.="<option value='120'>2 "._QXZ("min")."</option>";
$MAIN.="<option value='300'>5 "._QXZ("min")."</option>";
$MAIN.="</select>";
$MAIN.="&nbsp;&nbsp;&nbsp;&nbsp;";
$MAIN.=_QXZ("Start date/time").":";
$MAIN.="<INPUT TYPE=TEXT NAME=query_date2 ID=query_date2 SIZE=11 MAXLENGTH=10 VALUE=\"$query_date\" class='form_field_android sm_shadow round_corners'>";
$MAIN.="<script language=\"JavaScript\">\n";
$MAIN.="function openNewWindow(url)\n";
$MAIN.=" {\n";
@@ -805,38 +834,27 @@ $MAIN.="});\n";
$MAIN.="o_cal.a_tpl.yearscroll = false;\n";
$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n";
$MAIN.="</script>\n";
$MAIN.="<INPUT TYPE=TEXT NAME=query_time2 ID=query_time2 SIZE=10 MAXLENGTH=8 VALUE=\"$query_time\" class='form_field_android sm_shadow round_corners'>";
$MAIN.="<INPUT TYPE=TEXT NAME=query_time2 ID=query_time2 SIZE=9 MAXLENGTH=8 VALUE=\"$query_time\" class='form_field_android sm_shadow round_corners'>";
$MAIN.="<BR>"._QXZ("OR")."&nbsp;"._QXZ("Show results for the past")." <input type='text' class='form_field_android sm_shadow round_corners' size='2' maxlength='2' name='hourly_display2' id='hourly_display2' value=''> "._QXZ("hours");
$MAIN.="<BR>&nbsp;"._QXZ("OR Past")." <input type='text' class='form_field_android sm_shadow round_corners' size='2' maxlength='2' name='hourly_display2' id='hourly_display2' value=''> "._QXZ("hours");
$MAIN.="</TD>";
$MAIN.="<TD ALIGN=left valign='top' class='embossed android_whiteboard_small'>";
$MAIN.="<input type='button' id='adjust_report' name='adjust_report' class='green_btn_mobile_lg sm_shadow round_corners' value='"._QXZ("ADJUST RATE/TIME")."'>";
$MAIN.="</TD>";
$MAIN.="<TD VALIGN=TOP align='left' rowspan=3 class='embossed android_whiteboard_small autosize_12'><BR><BR><BR>"; #
$MAIN.="<div class='embossed autosize_10 border2px round_corners sm_shadow std_row1'>"._QXZ("Total Calls").":<BR><span id='total_calls_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='embossed autosize_10 border2px round_corners sm_shadow std_row2'>"._QXZ("Total Sales").":<BR><span id='total_sales_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='embossed autosize_10 border2px round_corners sm_shadow std_row3'>"._QXZ("Total Conv Rate").":<BR><span id='total_conv_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='embossed autosize_10 border2px round_corners sm_shadow std_row4'>"._QXZ("Total Time").":<BR><span id='total_time_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='embossed autosize_10 border2px round_corners sm_shadow std_row5'>"._QXZ("Total CPH").":<BR><span id='total_cph_div'></span>&nbsp;</div><BR>";
$MAIN.="<div class='embossed autosize_10 border2px round_corners sm_shadow std_row1'>"._QXZ("Total SPH").":<BR><span id='total_sph_div'></span>&nbsp;</div>";
$MAIN.="</TD>";
$MAIN.="</TR>";
*/
$MAIN.="<TR>";
$MAIN.="<TD VALIGN=TOP align='center' colspan='3'>";
$MAIN.="<TD VALIGN=TOP align='center' colspan='2'>";
###### DISPLAY SPANS ####
$MAIN.="<span id='top_10_display' style='display:none'>";
$MAIN.="</span>";
$MAIN.="<div align='center' id='loading_display' style='display:none'>";
$MAIN.="<BR><BR><BR><BR><BR><div align='center' class='embossed border2px round_corners sm_shadow' style='background-color:#FFF;width:250px;height:125px'><BR><BR>"._QXZ("LOADING. PLEASE WAIT...")."<BR><BR><img src='/vicidial/images/loader.gif' width='220' height='19'></div>";
$MAIN.="<BR><BR><BR><BR><BR><div align='center' class='border2px round_corners sm_shadow' style='background-color:#FFF;width:250px;height:125px'><BR><BR>"._QXZ("LOADING. PLEASE WAIT...")."<BR><BR><img src='/vicidial/images/loader.gif' width='220' height='19'></div>";
$MAIN.="</div>";
$MAIN.="<div id='graph_display' style='display:block; height: 75vh; width: 80vw'>";
$MAIN.="<canvas id='MainReportCanvas' height='50vh'></canvas>";
$MAIN.="<p align='center'><input type='button' class='green_btn_mobile sm_shadow round_corners' style='width:25vw; max-width:250px' value='"._QXZ("SHOW TOP 10 PERFORMERS")."' onClick=\"ToggleVisibility('top_10_display'); ToggleVisibility('graph_display'); document.getElementById('graph_or_chart').value='chart'\"></p>";
$MAIN.="<p align='center'><input type='button' class='green_btn_anywidth sm_shadow round_corners' style='width:30vw; max-width:300px' value='"._QXZ("SHOW TOP 10")."' onClick=\"ToggleVisibility('top_10_display'); ToggleVisibility('graph_display'); document.getElementById('graph_or_chart').value='chart'\"></p>";
$MAIN.="</div>";
##########################
$MAIN.="</TD>";
@@ -858,7 +876,7 @@ $MAIN.="</FORM>";
$MAIN.="</BODY>";
$MAIN.="<script language=\"JavaScript\" src=\"vicidial_whiteboard_functions.php?mobile=1\"></script>\n";
$MAIN.="<script language=\"JavaScript\" src=\"vicidial_whiteboard_functions_mobile.php\"></script>\n";
$MAIN.="</HTML>";
header("Content-type: text/html; charset=utf-8");
File diff suppressed because it is too large Load Diff
+86 -86
View File
@@ -6,10 +6,11 @@
# CHANGES
# 190205-1702 - First Build
# 200210-1618 - Added links to more mobile-compatible reports
# 200309-1819 - Modifications for display formatting
#
$admin_version = '2.14-2a';
$build = '200210-1618';
$admin_version = '2.14-3a';
$build = '200309-1819';
$startMS = microtime();
@@ -713,7 +714,7 @@ echo "<link rel=\"stylesheet\" href=\"calendar.css\">\n";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"vicidial_stylesheet.php\">\n";
echo "<STYLE type=\"text/css\">\n";
echo "<!--\n";
echo " .admin_stats_table {width: 85vw; max-width: 700px; }\n";
echo " .admin_stats_table {width: 95vw; max-width: 950px; }\n";
echo "-->\n";
echo "</STYLE>\n";
@@ -747,7 +748,7 @@ $android_header=1;
require("admin_header.php");
echo "<TABLE CELLPADDING=0 CELLSPACING=0 BGCOLOR='#$SSframe_background' width='100%' style='height:100vh'><TR><TD>";
echo "<TABLE CELLPADDING=0 CELLSPACING=0 BGCOLOR='#$SSframe_background' width='100%' style='height:100vh' valign='top'><TR><TD>";
######################
# ADD=999990 - new main landing page with system stats
@@ -844,14 +845,14 @@ if ($ADD==999990)
}
}
echo "<BR><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>";
echo "<BR><FONT CLASS=\"android_standard\">";
echo "<center>";
if ($LOGview_reports==1)
{
echo "<TABLE class='admin_stats_table' valign='top'><TR><TD>\n";
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>";
echo "<FONT CLASS=\"android_standard bold\">";
### Report link ###
echo "<B><a href='#' id='ReportLink' onClick='ToggleReports()'>SHOW REPORTS</a></B>";
@@ -860,47 +861,47 @@ if ($ADD==999990)
echo "<div id='ReportStorageDiv' style='display:none'>";
echo "<BR><B>"._QXZ("Real-Time Reports")."</B><BR>\n";
echo "<UL>\n";
echo "<LI><a href=\"#HourlyCampaignCounts\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Hourly Campaign Counts")."</a></FONT></LI>\n";
echo "<LI><a href=\"#SystemSummary\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("System Summary")."</a></FONT></LI>\n";
echo "<LI><a href=\"#HourlyCampaignCounts\"><FONT CLASS=\"android_standard\">"._QXZ("Hourly Campaign Counts")."</a></FONT></LI>\n";
echo "<LI><a href=\"#SystemSummary\"><FONT CLASS=\"android_standard\">"._QXZ("System Summary")."</a></FONT></LI>\n";
if ( (preg_match("/Agent Sales Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{echo "<LI><a href=\"agent_sales_report_mobile.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Agent Sales Report")."</a></FONT></LI>\n";}
{echo "<LI><a href=\"agent_sales_report_mobile.php\"><FONT CLASS=\"android_standard\">"._QXZ("Agent Sales Report")."</a></FONT></LI>\n";}
if ( (preg_match("/Real-Time Main Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{echo "<LI><a href=\"realtime_report_mobile.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Real-Time Main Report")."</a></FONT></LI>\n";}
# echo "<BR> &nbsp; Real-Time SIP: <a href=\"AST_timeonVDADall.php?SIPmonitorLINK=1\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Listen")."</a></FONT> - <a href=\"AST_timeonVDADall.php?SIPmonitorLINK=2\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Barge")."</a></FONT>\n";
# echo "<BR> &nbsp; Real-Time IAX: <a href=\"AST_timeonVDADall.php?IAXmonitorLINK=1\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Listen")."</a></FONT> - <a href=\"AST_timeonVDADall.php?IAXmonitorLINK=2\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Barge")."</a></FONT><BR><BR>\n";
{echo "<LI><a href=\"realtime_report_mobile.php\"><FONT CLASS=\"android_standard\">"._QXZ("Real-Time Main Report")."</a></FONT></LI>\n";}
# echo "<BR> &nbsp; Real-Time SIP: <a href=\"AST_timeonVDADall.php?SIPmonitorLINK=1\"><FONT CLASS=\"android_standard\">"._QXZ("Listen")."</a></FONT> - <a href=\"AST_timeonVDADall.php?SIPmonitorLINK=2\"><FONT CLASS=\"android_standard\">"._QXZ("Barge")."</a></FONT>\n";
# echo "<BR> &nbsp; Real-Time IAX: <a href=\"AST_timeonVDADall.php?IAXmonitorLINK=1\"><FONT CLASS=\"android_standard\">"._QXZ("Listen")."</a></FONT> - <a href=\"AST_timeonVDADall.php?IAXmonitorLINK=2\"><FONT CLASS=\"android_standard\">"._QXZ("Barge")."</a></FONT><BR><BR>\n";
if ( (preg_match("/Real-Time Campaign Summary/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{echo "<LI><a href=\"AST_timeonVDADallSUMMARY_mobile.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Real-Time Campaign Summary")."</a></FONT></LI>\n";}
{echo "<LI><a href=\"AST_timeonVDADallSUMMARY_mobile.php\"><FONT CLASS=\"android_standard\">"._QXZ("Real-Time Campaign Summary")."</a></FONT></LI>\n";}
if ( (preg_match("/Real-Time Whiteboard Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{echo "<LI><a href=\"AST_rt_whiteboard_rpt_mobile.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Real-Time Whiteboard Report")."</a></FONT></LI>\n";}
{echo "<LI><a href=\"AST_rt_whiteboard_rpt_mobile.php\"><FONT CLASS=\"android_standard\">"._QXZ("Real-Time Whiteboard Report")."</a></FONT></LI>\n";}
echo "</UL><BR>\n";
echo "<B>"._QXZ("Agent Reports")."</B><BR>\n";
echo "<UL>\n";
# if ( (preg_match("/Agent Time Detail/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo "<LI><a href=\"AST_agent_time_detail.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Agent Time Detail")."</a></FONT>\n";}
# {echo "<LI><a href=\"AST_agent_time_detail.php\"><FONT CLASS=\"android_standard\">"._QXZ("Agent Time Detail")."</a></FONT>\n";}
# if ( (preg_match("/Agent Status Detail/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo "<LI><a href=\"AST_agent_status_detail.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Agent Status Detail")."</a></FONT>\n";}
# {echo "<LI><a href=\"AST_agent_status_detail.php\"><FONT CLASS=\"android_standard\">"._QXZ("Agent Status Detail")."</a></FONT>\n";}
# if ( (preg_match("/Agent Inbound Status Summary/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo " - <a href=\"AST_agent_inbound_status.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Inbound Summary")."</a></FONT>\n";}
# {echo " - <a href=\"AST_agent_inbound_status.php\"><FONT CLASS=\"android_standard\">"._QXZ("Inbound Summary")."</a></FONT>\n";}
if ( (preg_match("/Agent Performance Detail/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{echo "<LI><a href=\"AST_agent_performance_detail_mobile.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Agent Performance Detail")."</a></FONT></LI>\n";}
{echo "<LI><a href=\"AST_agent_performance_detail_mobile.php\"><FONT CLASS=\"android_standard\">"._QXZ("Agent Performance Detail")."</a></FONT></LI>\n";}
if ( (preg_match("/Team Performance Detail/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
{echo "<LI><a href=\"AST_team_performance_detail_mobile.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Team Performance Detail")."</a></FONT></LI>\n";}
{echo "<LI><a href=\"AST_team_performance_detail_mobile.php\"><FONT CLASS=\"android_standard\">"._QXZ("Team Performance Detail")."</a></FONT></LI>\n";}
# if ( (preg_match("/Performance Comparison Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo "<LI><a href=\"AST_performance_comparison_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Performance Comparison Report")."</a></FONT>\n";}
# {echo "<LI><a href=\"AST_performance_comparison_report.php\"><FONT CLASS=\"android_standard\">"._QXZ("Performance Comparison Report")."</a></FONT>\n";}
# if ( (preg_match("/Single Agent Daily$/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo "<LI><a href=\"AST_agent_days_detail.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Single Agent Daily")."</a></FONT>\n";}
# {echo "<LI><a href=\"AST_agent_days_detail.php\"><FONT CLASS=\"android_standard\">"._QXZ("Single Agent Daily")."</a></FONT>\n";}
# if ( (preg_match("/Single Agent Daily Time/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo " - <a href=\"AST_agent_days_time.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("Time")."</a></FONT>\n";}
# {echo " - <a href=\"AST_agent_days_time.php\"><FONT CLASS=\"android_standard\">"._QXZ("Time")."</a></FONT>\n";}
# if ( (preg_match("/User Group Login Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo "<LI><a href=\"AST_usergroup_login_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("User Group Login Report")."</a></FONT>\n";}
# {echo "<LI><a href=\"AST_usergroup_login_report.php\"><FONT CLASS=\"android_standard\">"._QXZ("User Group Login Report")."</a></FONT>\n";}
# if ( (preg_match("/User Group Hourly Report/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo "<LI><a href=\"AST_user_group_hourly_detail.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("User Group Hourly Report")."</a></FONT> - <a href=\"AST_user_group_hourly_detail_v2.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("v2")."</a></FONT>\n";}
# {echo "<LI><a href=\"AST_user_group_hourly_detail.php\"><FONT CLASS=\"android_standard\">"._QXZ("User Group Hourly Report")."</a></FONT> - <a href=\"AST_user_group_hourly_detail_v2.php\"><FONT CLASS=\"android_standard\">"._QXZ("v2")."</a></FONT>\n";}
# if ( (preg_match("/User Stats/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo "<LI><a href=\"user_stats.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("User Stats")."</a></FONT>\n";}
# {echo "<LI><a href=\"user_stats.php\"><FONT CLASS=\"android_standard\">"._QXZ("User Stats")."</a></FONT>\n";}
# if ( (preg_match("/User Time Sheet/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) )
# {echo "<LI><a href=\"AST_agent_time_sheet.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK size=2>"._QXZ("User Time Sheet")."</a></FONT>\n";}
# {echo "<LI><a href=\"AST_agent_time_sheet.php\"><FONT CLASS=\"android_standard\">"._QXZ("User Time Sheet")."</a></FONT>\n";}
echo "</UL>\n";
echo "</div>";
@@ -911,14 +912,14 @@ if ($ADD==999990)
echo "<TABLE class='admin_stats_table' cellpadding=6 cellspacing=0>\n";
echo "<tr"; if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='realtime_report_mobile.php?report_display_type=HTML';\"";} echo ">";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background' rowspan=2><a href=\"realtime_report_mobile.php?report_display_type=HTML\"><img src=\"images/icon_users.png\" width=42 height=42 border=0></a></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:11;color:white;font-weight:bold;\">"._QXZ("Agents Logged In")."</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_small bold\" color=\"white\">"._QXZ("Agents Logged In")."</font></td>";
echo "<td width=3 rowspan=2> &nbsp; </td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background' rowspan=2><a href=\"realtime_report_mobile.php?report_display_type=HTML\"><img src=\"images/icon_agentsincalls.png\" width=42 height=42 border=0></a></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:11;color:white;font-weight:bold;\">"._QXZ("Agents In Calls")."</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_small bold\" color=\"white\">"._QXZ("Agents In Calls")."</font></td>";
echo "</tr>";
echo "<tr"; if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='realtime_report_mobile.php?report_display_type=HTML';\"";} echo ">";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:18;color:white;font-weight:bold;\">$agent_total</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:18;color:white;font-weight:bold;\">$agent_incall</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_large\" color=\"white\">$agent_total</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_large\" color=\"white\">$agent_incall</font></td>";
echo "</tr>";
echo "<tr"; if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='realtime_report_mobile.php?report_display_type=HTML';\"";} echo ">";
echo "<td height=3 colspan=5> </td>";
@@ -926,14 +927,14 @@ if ($ADD==999990)
echo "<tr"; if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='realtime_report_mobile.php?report_display_type=HTML';\"";} echo ">";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background' rowspan=2><a href=\"realtime_report_mobile.php?report_display_type=HTML\"><img src=\"images/icon_agentspaused.png\" width=42 height=42 border=0></a></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:11;color:white;font-weight:bold;\">"._QXZ("Agents Paused")."</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_small bold\" color=\"white\">"._QXZ("Agents Paused")."</font></td>";
echo "<td width=3 rowspan=2> &nbsp; </td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background' rowspan=2><a href=\"realtime_report_mobile.php?report_display_type=HTML\"><img src=\"images/icon_agentswaiting.png\" width=42 height=42 border=0></a></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:11;color:white;font-weight:bold;\">"._QXZ("Agents Waiting")."</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_small bold\" color=\"white\">"._QXZ("Agents Waiting")."</font></td>";
echo "</tr>";
echo "<tr"; if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='realtime_report_mobile.php?report_display_type=HTML';\"";} echo ">";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:18;color:white;font-weight:bold;\">$agent_paused</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:18;color:white;font-weight:bold;\">$agent_waiting</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_large\" color=\"white\">$agent_paused</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_large\" color=\"white\">$agent_waiting</font></td>";
echo "</tr>";
echo "<tr"; if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='realtime_report_mobile.php?report_display_type=HTML';\"";} echo ">";
echo "<td height=3 colspan=5> </td>";
@@ -941,14 +942,14 @@ if ($ADD==999990)
echo "<tr"; if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='realtime_report_mobile.php?report_display_type=HTML';\"";} echo ">";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background' rowspan=2><a href=\"realtime_report_mobile.php?report_display_type=HTML\"><img src=\"images/icon_calls.png\" width=42 height=42 border=0></a></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:11;color:white;font-weight:bold;\">"._QXZ("Active Calls")."</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_small bold\" color=\"white\">"._QXZ("Active Calls")."</font></td>";
echo "<td width=3 rowspan=2> &nbsp; </td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background' rowspan=2><a href=\"realtime_report_mobile.php?report_display_type=HTML\"><img src=\"images/icon_ringing.png\" width=42 height=42 border=0></a></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:11;color:white;font-weight:bold;\">"._QXZ("Calls Ringing")."</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_small bold\" color=\"white\">"._QXZ("Calls Ringing")."</font></td>";
echo "</tr>";
echo "<tr"; if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='realtime_report_mobile.php?report_display_type=HTML';\"";} echo ">";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:18;color:white;font-weight:bold;\">$agent_incall</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font style=\"font-family:HELVETICA;font-size:18;color:white;font-weight:bold;\">$ringing_calls</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_large\" color=\"white\">$agent_incall</font></td>";
echo "<td align='center' valign='middle' bgcolor='#$SSmenu_background'><font CLASS=\"android_large\" color=\"white\">$ringing_calls</font></td>";
echo "</tr>";
echo "</TABLE>";
echo "<br><br>";
@@ -956,7 +957,7 @@ if ($ADD==999990)
echo "<a name='HourlyCampaignCounts'>";
echo "<TABLE align='center' class='admin_stats_table' cellspacing=2>\n";
echo "<tr><td>";
echo "<canvas id='campaign_hour_chart'></canvas>"; # style='width: 40vw; max-width: 350px;'
echo "<canvas id='campaign_hour_chart' style='height: 40vh; max-height: 500px'></canvas>"; # style='width: 40vw; max-width: 350px;'
echo "</td></tr>";
echo "</table>";
@@ -965,20 +966,20 @@ if ($ADD==999990)
echo "<a name='SystemSummary'>";
echo "<TABLE class='admin_stats_table' cellspacing=2>\n";
echo "<tr>";
echo "<td align='left' colspan='4'><font style=\"font-family:HELVETICA;font-size:16;color:black;font-weight:bold;\">"._QXZ("System Summary").":</font></td>";
echo "<td align='left' colspan='4'><font CLASS=\"android_standard bold\">"._QXZ("System Summary").":</font></td>";
echo "</tr>";
echo "<tr bgcolor=black>";
echo "<td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; "._QXZ("Records")." &nbsp;</font></td>";
echo "<td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; "._QXZ("Active")." &nbsp;</font></td>";
echo "<td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; "._QXZ("Inactive")." &nbsp;</font></td>";
echo "<td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; "._QXZ("Total")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=\"white\">&nbsp; "._QXZ("Records")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=\"white\">&nbsp; "._QXZ("Active")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=\"white\">&nbsp; "._QXZ("Inactive")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=\"white\">&nbsp; "._QXZ("Total")." &nbsp;</font></td>";
echo "</tr>";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><a href='$PHP_SELF?ADD=0A' STYLE=\"text-decoration:none;\"><font color=black>"._QXZ("Users").": </a></td><td align=center><b>".($users["Y"]+0)."</b></td><td align=center><b>".($users["N"]+0)."</b></td><td align=center><b>".($users["Y"]+$users["N"]+0)."</b></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><a href='$PHP_SELF?ADD=10' STYLE=\"text-decoration:none;\"><font color=black>"._QXZ("Campaigns").": </a></td><td align=center><b>".($campaigns["Y"]+0)."</b></td><td align=center><b>".($campaigns["N"]+0)."</b></td><td align=center><b>".($campaigns["Y"]+$campaigns["N"]+0)."</b></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><a href='$PHP_SELF?ADD=100' STYLE=\"text-decoration:none;\"><font color=black>"._QXZ("Lists").": </a></td><td align=center><b>".($lists["Y"]+0)."</b></td><td align=center><b>".($lists["N"]+0)."</b></td><td align=center><b>".($lists["Y"]+$lists["N"]+0)."</b></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><a href='$PHP_SELF?ADD=1000' STYLE=\"text-decoration:none;\"><font color=black>"._QXZ("In-Groups").": </a></td><td align=center><b>".($ingroups["Y"]+0)."</b></td><td align=center><b>".($ingroups["N"]+0)."</b></td><td align=center><b>".($ingroups["Y"]+$ingroups["N"]+0)."</b></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><a href='$PHP_SELF?ADD=1300' STYLE=\"text-decoration:none;\"><font color=black>"._QXZ("DIDs").": </a></td><td align=center><b>".($dids["Y"]+0)."</b></td><td align=center><b>".($dids["N"]+0)."</b></td><td align=center><b>".($dids["Y"]+$dids["N"]+0)."</b></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><font class=\"android_standard\">"._QXZ("Users").": </font></td><td align=center><font class=\"android_standard bold\">".($users["Y"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($users["N"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($users["Y"]+$users["N"]+0)."</font></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><font class=\"android_standard\">"._QXZ("Campaigns").": </font></td><td align=center><font class=\"android_standard bold\">".($campaigns["Y"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($campaigns["N"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($campaigns["Y"]+$campaigns["N"]+0)."</font></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><font class=\"android_standard\">"._QXZ("Lists").": </font></td><td align=center><font class=\"android_standard bold\">".($lists["Y"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($lists["N"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($lists["Y"]+$lists["N"]+0)."</font></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><font class=\"android_standard\">"._QXZ("In-Groups").": </font></td><td align=center><font class=\"android_standard bold\">".($ingroups["Y"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($ingroups["N"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($ingroups["Y"]+$ingroups["N"]+0)."</font></td></tr>\n";
echo "<tr bgcolor=#$SSstd_row4_background><td align=right><font class=\"android_standard\">"._QXZ("DIDs").": </font></td><td align=center><font class=\"android_standard bold\">".($dids["Y"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($dids["N"]+0)."</font></td><td align=center><font class=\"android_standard bold\">".($dids["Y"]+$dids["N"]+0)."</font></td></tr>\n";
// New voicemailbox code
$stmt="(SELECT voicemail_id,count(*),messages,old_messages,'vm','vm' from vicidial_voicemail where on_login_report='Y' $LOGadmin_viewable_groupsSQL group by voicemail_id) UNION (SELECT voicemail_id,count(*),messages,old_messages,extension,server_ip from phones where on_login_report='Y' $LOGadmin_viewable_groupsSQL group by voicemail_id) order by voicemail_id;";
@@ -991,10 +992,10 @@ if ($ADD==999990)
echo "<td align='left' colspan='4'>&nbsp;</td>"; # Padding
echo "</tr>";
echo "<tr bgcolor=black>";
echo "<td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; Voicemail Box &nbsp;</font></td>\n";
echo "<td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; New &nbsp;</font></td>\n";
echo "<td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; Old &nbsp;</font></td>\n";
echo "<td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; Total &nbsp;</font></td>\n";
echo "<td align='center'><font CLASS=\"android_standard\" color=\"white\">&nbsp; Voicemail Box &nbsp;</font></td>\n";
echo "<td align='center'><font CLASS=\"android_standard\" color=\"white\">&nbsp; New &nbsp;</font></td>\n";
echo "<td align='center'><font CLASS=\"android_standard\" color=\"white\">&nbsp; Old &nbsp;</font></td>\n";
echo "<td align='center'><font CLASS=\"android_standard\" color=\"white\">&nbsp; Total &nbsp;</font></td>\n";
echo "</tr>\n";
while($row=mysqli_fetch_array($rslt))
@@ -1002,15 +1003,15 @@ if ($ADD==999990)
echo "<tr bgcolor='#$SSstd_row2_background'>\n";
if ($row[4] == 'vm')
{
echo "<td align='right'><a href='$PHP_SELF?ADD=371111111111&voicemail_id=$row[0]' STYLE=\"text-decoration:none;\"><font color=black>$row[0]:</a></font></td>\n";
echo "<td align='right'><font class=\"android_standard\">$row[0]:</font></font></td>\n";
}
else
{
echo "<td align='right'><a href='$PHP_SELF?ADD=31111111111&extension=$row[4]&server_ip=$row[5]' STYLE=\"text-decoration:none;\"><font color=black>$row[0]:</a></font></td>\n";
echo "<td align='right'><font class=\"android_standard\">$row[0]:</font></td>\n";
}
echo "<td align='center'>$row[2]</font></td>\n";
echo "<td align='center'>$row[3]</font></td>\n";
echo "<td align='center'>".($row[2]+$row[3])."</font></td>\n";
echo "<td align='center'><font class=\"android_standard\">$row[2]</font></td>\n";
echo "<td align='center'><font class=\"android_standard\">$row[3]</font></td>\n";
echo "<td align='center'><font class=\"android_standard\">".($row[2]+$row[3])."</font></td>\n";
echo "</tr>\n";
}
}
@@ -1043,17 +1044,17 @@ if ($ADD==999990)
$stmt="SELECT * from vicidial_daily_max_stats where stats_date='$today' and stats_flag='OPEN' and stats_type='TOTAL' $LOGallowed_campaignsSQL order by stats_date, campaign_id asc";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
echo "<center><TABLE class='admin_stats_table' cellspacing=0 cellpadding=1>\n";
echo "<center><TABLE class='admin_stats_table' cellspacing=2 cellpadding=1>\n";
echo "<tr>";
echo "<td align='left' colspan='4'><font style=\"font-family:HELVETICA;font-size:12;color:black;font-weight:bold;\">"._QXZ("Total Stats for Today").":</font></td>";
echo "<td align='left' colspan='4'><font CLASS=\"android_standard bold\">"._QXZ("Total Stats for Today").":</font></td>";
# echo "<td align='right'><font size=1><a href='$PHP_SELF?query_date=$thirtydays&end_date=$today&max_system_stats_submit=ADJUST+DATE+RANGE&ADD=999992&stage=TOTAL'>["._QXZ("view max stats")."]</a></font></td>";
echo "</tr>";
echo "<tr bgcolor=black>";
# echo "<td><font size=1 color=white align=left><B>CAMPAIGN ID</B></font></td>";
echo "<td><font size=1 color=white><B>&nbsp; "._QXZ("Total Calls")." &nbsp;</B></font></td>";
echo "<td><font size=1 color=white><B>&nbsp; "._QXZ("Total Inbound Calls")." &nbsp;</B></font></td>";
echo "<td><font size=1 color=white><B>&nbsp; "._QXZ("Total Outbound Calls")." &nbsp;</B></font></td>";
echo "<td><font size=1 color=white><B>&nbsp; "._QXZ("Maximum Agents")." &nbsp;</B></font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=white>"._QXZ("Total Calls")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=white>"._QXZ("Total Inbound Calls")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=white>"._QXZ("Total Outbound Calls")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=white>"._QXZ("Maximum Agents")." &nbsp;</font></td>";
if (mysqli_num_rows($rslt)>0)
{
@@ -1061,17 +1062,17 @@ if ($ADD==999990)
{
echo "<tr bgcolor='#$SSstd_row2_background'>";
# echo "<td align='left'><font size=1>".$row["campaign_id"]."</font></td>";
echo "<td align='center'><font size=1>".($total_calls+0)."</font></td>";
echo "<td align='center'><font size=1>".($total_inbound+0)."</font></td>";
echo "<td align='center'><font size=1>".($total_outbound+0)."</font></td>";
echo "<td align='center'><font size=1>".($row["max_agents"]+0)."</font></td>";
echo "<td align='center'><font CLASS=\"android_standard bold\">".($total_calls+0)."</font></td>";
echo "<td align='center'><font CLASS=\"android_standard bold\">".($total_inbound+0)."</font></td>";
echo "<td align='center'><font CLASS=\"android_standard bold\">".($total_outbound+0)."</font></td>";
echo "<td align='center'><font CLASS=\"android_standard bold\">".($row["max_agents"]+0)."</font></td>";
echo "</tr>";
}
}
else
{
echo "<tr bgcolor='#$SSstd_row2_background'>";
echo "<td align='center' colspan='4'><font size=1>*** "._QXZ("NO ACTIVITY FOR")." $today ***</font></td>";
echo "<td align='center' colspan='4'><font CLASS=\"android_standard bold\">*** "._QXZ("NO ACTIVITY FOR")." $today ***</font></td>";
echo "</tr>";
}
echo "</TABLE></center>\n";
@@ -1093,17 +1094,17 @@ if ($ADD==999990)
}
}
echo "<center><TABLE class='admin_stats_table' cellspacing=0 cellpadding=1>\n";
echo "<center><TABLE class='admin_stats_table' cellspacing=2 cellpadding=1>\n";
echo "<tr>";
echo "<td align='left' colspan='4'><font style=\"font-family:HELVETICA;font-size:12;color:black;font-weight:bold;\">"._QXZ("Total Stats for Yesterday").":</font></td>";
echo "<td align='left' colspan='4'><font CLASS=\"android_standard bold\">"._QXZ("Total Stats for Yesterday").":</font></td>";
# echo "<td align='right'><font size=1><a href='$PHP_SELF?query_date=$thirtydays&end_date=$today&max_system_stats_submit=ADJUST+DATE+RANGE&ADD=999992&stage=TOTAL'>["._QXZ("view max stats")."]</a></font></td>";
echo "</tr>";
echo "<tr bgcolor=black>";
# echo "<td><font size=1 color=white align=left><B>CAMPAIGN ID</B></font></td>";
echo "<td><font size=1 color=white><B>&nbsp; "._QXZ("Total Calls")." &nbsp;</B></font></td>";
echo "<td><font size=1 color=white><B>&nbsp; "._QXZ("Total Inbound Calls")." &nbsp;</B></font></td>";
echo "<td><font size=1 color=white><B>&nbsp; "._QXZ("Total Outbound Calls")." &nbsp;</B></font></td>";
echo "<td><font size=1 color=white><B>&nbsp; "._QXZ("Maximum Agents")." &nbsp;</B></font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=white>"._QXZ("Total Calls")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=white>"._QXZ("Total Inbound Calls")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=white>"._QXZ("Total Outbound Calls")." &nbsp;</font></td>";
echo "<td align='center'><font CLASS=\"android_standard\" color=white>"._QXZ("Maximum Agents")." &nbsp;</font></td>";
$stmt="SELECT * from vicidial_daily_max_stats where stats_date='$yesterday' and stats_type='TOTAL' $LOGallowed_campaignsSQL order by stats_date, campaign_id asc";
if ($DB) {echo "|$stmt|\n";}
@@ -1114,17 +1115,17 @@ if ($ADD==999990)
{
echo "<tr bgcolor='#$SSstd_row2_background'>";
#echo "<td align='left'><font size=1>".$row["campaign_id"]."</font></td>";
echo "<td align='center'><font size=1>".($row["total_calls"]+0)." / ".($total_calls+0)."</font></td>";
echo "<td align='center'><font size=1>".($total_inbound+0)."</font></td>";
echo "<td align='center'><font size=1>".($total_outbound+0)."</font></td>";
echo "<td align='center'><font size=1>".($row["max_agents"]+0)."</font></td>";
echo "<td align='center'><font CLASS=\"android_standard bold\">".($row["total_calls"]+0)." / ".($total_calls+0)."</font></td>";
echo "<td align='center'><font CLASS=\"android_standard bold\">".($total_inbound+0)."</font></td>";
echo "<td align='center'><font CLASS=\"android_standard bold\">".($total_outbound+0)."</font></td>";
echo "<td align='center'><font CLASS=\"android_standard bold\">".($row["max_agents"]+0)."</font></td>";
echo "</tr>";
}
}
else
{
echo "<tr bgcolor='#$SSstd_row2_background'>";
echo "<td align='center' colspan='4'><font size=1>*** "._QXZ("NO ACTIVITY FOR")." $today ***</font></td>";
echo "<td align='center' colspan='4'><font CLASS=\"android_standard bold\">*** "._QXZ("NO ACTIVITY FOR")." $today ***</font></td>";
echo "</tr>";
}
@@ -1132,8 +1133,7 @@ if ($ADD==999990)
}
else
{
$section_width=640;
echo "<BR><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>";
echo "<BR><FONT CLASS=\"android_standard\">";
echo "<center><TABLE class='admin_stats_table' cellspacing=2>\n";
echo "<tr>";
echo "<td align='left' colspan='4'>"._QXZ("Welcome")."</td>";
@@ -1373,11 +1373,11 @@ function LoadHourlyCharts() {
else
{
var ctx = document.getElementById('campaign_hour_chart').getContext('2d');
document.getElementById('campaign_hour_chart').height=40;
document.getElementById('campaign_hour_chart').height=400;
ctx.font = "bold 14px Arial";
ctx.textAlign = "center";
ctx.fillText("<?php echo "*** "._QXZ("NO HOURLY CAMPAIGN COUNTS")." ***"; ?>", document.getElementById('campaign_hour_chart').width/2, document.getElementById('campaign_hour_chart').height/2);
// document.getElementById('campaign_hour_chart').innerHTML="<TABLE class='admin_stats_table' cellspacing=2><tr bgcolor=black><td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; &nbsp;</font></td></table>";
ctx.fillText("<?php echo "*** "._QXZ("NO HOURLY CAMPAIGN COUNTS")." ***"; ?>", document.getElementById('campaign_hour_chart').width/2, document.getElementById('campaign_hour_chart').height/4);
// document.getElementById('campaign_hour_chart').innerHTML="<TABLE class='admin_stats_table' cellspacing=2><tr bgcolor=black><td align='center'><font CLASS=\"android_standard\">&nbsp; &nbsp;</font></td></table>";
}
<?php
if ($voodoo)
@@ -1435,7 +1435,7 @@ if ($voodoo)
ctx2.font = "bold 14px Arial";
ctx2.textAlign = "center";
ctx2.fillText("<?php echo "*** "._QXZ("NO HOURLY INGROUP COUNTS")." ***"; ?>", document.getElementById('ingroup_hour_chart').width/2, document.getElementById('ingroup_hour_chart').height/2);
// document.getElementById('ingroup_hour_chart').innerHTML="<TABLE class='admin_stats_table' cellspacing=2><tr bgcolor=black><td align='center'><font style=\"font-family:HELVETICA;font-size:14;color:white;font-weight:bold;\">&nbsp; <?php echo "*** "._QXZ("NO HOURLY INGROUP COUNTS")." ***"; ?> &nbsp;</font></td></table>";
// document.getElementById('ingroup_hour_chart').innerHTML="<TABLE class='admin_stats_table' cellspacing=2><tr bgcolor=black><td align='center'><font CLASS=\"android_standard\">&nbsp; <?php echo "*** "._QXZ("NO HOURLY INGROUP COUNTS")." ***"; ?> &nbsp;</font></td></table>";
}
<?php } ?>
@@ -1,6 +1,13 @@
<?php
# agent_sales_report_mobile.php
#
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com>, Joe Johnson <freewermadmin@gmail.com> LICENSE: AGPLv2
#
# Streamlined report for displaying sale-only statistics in a format easily readable on a mobile device
#
# CHANGELOG:
# 200309-1819 - First Build
#
$startMS = microtime();
@@ -282,7 +289,10 @@ while ($i < $campaigns_to_print)
$row=mysqli_fetch_row($rslt);
$groups[$i] =$row[0];
if (preg_match('/\-ALL/',$group_string) )
{$group[$i] = $groups[$i];}
{
$group[$i] = $groups[$i];
$all_groups=1;
}
$i++;
}
@@ -327,6 +337,7 @@ else
$group_SQL_str=$group_SQL;
$group_SQL = "and campaign_id IN($group_SQL)";
}
if (preg_match('/\-\-ALL\-\-/',$group_string) || $all_groups) {$groupQS="&group[]=--ALL--"; $group_string="--ALL--";}
$i=0;
$user_group_string='|';
@@ -346,6 +357,7 @@ else
$user_group_SQL = preg_replace('/,$/i', '',$user_group_SQL);
$user_group_SQL = "and user_group IN($user_group_SQL)";
}
if ($all_user_groups) {$user_groupQS="&user_group[]=--ALL--"; $user_group_string="--ALL--";}
$rpt_params="SUBMIT=".$SUBMIT."&DB=".$DB."&query_date_D=".$query_date_D."&query_date_T=".$query_date_T."&report_display_type=".$report_display_type."&refresh_rate=".$refresh_rate."&top_agents=".$top_agents."&sort_by=".$sort_by.$user_groupQS.$groupQS;
@@ -1,7 +1,7 @@
<?php
# realtime_report_mobile.php
#
# Copyright (C) 2019 Matt Florell <vicidial@gmail.com>, Joe Johnson <joej@vicidial.com> LICENSE: AGPLv2
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com>, Joe Johnson <joej@vicidial.com> LICENSE: AGPLv2
#
# streamlined mobile version of live real-time stats for the VICIDIAL Auto-Dialer all servers
#
@@ -13,12 +13,13 @@
# CHANGELOG:
# 190206-1616 - First Build
# 190228-1535 - Minor pre-release changes
# 200309-1819 - Modifications for display formatting
#
$startMS = microtime();
$version = '2.14-2';
$build = '190228-1535';
$version = '2.14-3';
$build = '200309-1819';
header ("Content-type: text/html; charset=utf-8");
@@ -124,6 +125,7 @@ $webphone_bufw = '250';
$webphone_bufh = '1';
$webphone_pad = '10';
$webphone_clpos = "<BR> &nbsp; <a href=\"#\" onclick=\"hideDiv('webphone_content');\">"._QXZ("webphone")." -</a>";
$TOTALdisplays=0;
if (file_exists('options.php'))
{
@@ -154,6 +156,7 @@ if (!isset($UGdisplay))
{
if (!isset($RS_UGdisplay)) {$UGdisplay=0;}
else {$UGdisplay = $RS_UGdisplay;}
$TOTALdisplay+=$UGdisplay;
}
if (!isset($UidORname))
{
@@ -169,21 +172,25 @@ if (!isset($SERVdisplay))
{
if (!isset($RS_SERVdisplay)) {$SERVdisplay=0;}
else {$SERVdisplay = $RS_SERVdisplay;}
$TOTALdisplay+=$SERVdisplay;
}
if (!isset($CALLSdisplay))
{
if (!isset($RS_CALLSdisplay)) {$CALLSdisplay=1;}
else {$CALLSdisplay = $RS_CALLSdisplay;}
$TOTALdisplay+=$CALLSdisplay;
}
if (!isset($PHONEdisplay))
{
if (!isset($RS_PHONEdisplay)) {$PHONEdisplay=0;}
else {$PHONEdisplay = $RS_PHONEdisplay;}
$TOTALdisplay+=$PHONEdisplay;
}
if (!isset($CUSTPHONEdisplay))
{
if (!isset($RS_CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;}
else {$CUSTPHONEdisplay = $RS_CUSTPHONEdisplay;}
$TOTALdisplay+=$CUSTPHONEdisplay;
}
if (!isset($PAUSEcodes))
{
@@ -283,6 +290,8 @@ $AGENTtimeSTATS = preg_replace('/[^-_0-9a-zA-Z]/', '', $AGENTtimeSTATS);
$INGROUPcolorOVERRIDE = preg_replace('/[^-_0-9a-zA-Z]/', '', $INGROUPcolorOVERRIDE);
$droppedOFtotal = preg_replace('/[^-_0-9a-zA-Z]/', '', $droppedOFtotal);
$TOTALdisplay+=$ALLINGROUPstats;
$stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
@@ -666,8 +675,10 @@ $NFB = '<b><font size=6 face="courier">';
$NFE = '</font></b>';
$F=''; $FG=''; $B=''; $BG='';
$select_list = "<TABLE class='realtime_settings_table' CELLPADDING=5 BGCOLOR='#D9E6FE'><TR><TD VALIGN=TOP><font class='top_settings_header'>"._QXZ("Select Campaigns").": </font><BR>";
$select_list .= "<SELECT class='top_settings_input' SIZE=8 NAME=groups[] ID=groups[] multiple>";
$select_list = "<TABLE class='realtime_settings_table' CELLPADDING=5 BGCOLOR='#D9E6FE' border='0'><TR><TD VALIGN=TOP>";
$select_list .= "<font class='top_settings_header bold'><a href='#' onclick=\\\"hideDiv('campaign_select_list');\\\">"._QXZ("Close Panel")."</a></font><BR><BR>"; #*
$select_list .= "<font class='top_settings_header'>"._QXZ("Select Campaigns").": </font><BR>";
$select_list .= "<SELECT class='form_field_android_small' NAME=groups[] ID=groups[] multiple>";
$o=0;
while ($groups_to_print > $o)
{
@@ -680,8 +691,8 @@ while ($groups_to_print > $o)
$select_list .= "</SELECT>";
$select_list .= "<BR><font class='top_settings_val'>("._QXZ("To select more than 1 campaign, hold down the Ctrl key and click").")</font>";
$select_list .= "<BR><BR><font class='top_settings_val'>"._QXZ("Select User Groups").": </font><BR>";
$select_list .= "<SELECT class='top_settings_input' SIZE=8 NAME=user_group_filter[] ID=user_group_filter[] multiple>";
$select_list .= "<BR><BR><font class='top_settings_header'>"._QXZ("Select User Groups").": </font><BR>";
$select_list .= "<SELECT class='form_field_android_small' NAME=user_group_filter[] ID=user_group_filter[] multiple>";
$o=0;
while ($o < $usergroups_to_print)
{
@@ -698,12 +709,12 @@ while ($o < $usergroups_to_print)
}
$select_list .= "</SELECT>";
$select_list .= "</TD><TD VALIGN=TOP ALIGN=CENTER><font class='top_settings_header'>";
$select_list .= "<a href='#' onclick=\\\"hideDiv('campaign_select_list');\\\">"._QXZ("Close Panel")."</a></font><BR><BR>";
$select_list .= "<TABLE CELLPADDING=2 CELLSPACING=2 BORDER=0>";
#$select_list .= "</TD><TD VALIGN=TOP ALIGN=CENTER><font class='top_settings_header'>";
#*
$select_list .= "<BR><BR><TABLE CELLPADDING=2 CELLSPACING=2 BORDER=0>";
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Screen Refresh Rate").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=RR ID=RR>";
$select_list .= _QXZ("Screen Refresh Rate").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=RR ID=RR>";
$select_list .= "<option value='4'"; if ($RR < 5) {$select_list .= " selected";} $select_list .= ">4 "._QXZ("seconds")."</option>";
$select_list .= "<option value='10'"; if ( ($RR >= 5) and ($RR <=10) ) {$select_list .= " selected";} $select_list .= ">10 "._QXZ("seconds")."</option>";
$select_list .= "<option value='20'"; if ( ($RR >= 11) and ($RR <=20) ) {$select_list .= " selected";} $select_list .= ">20 "._QXZ("seconds")."</option>";
@@ -722,7 +733,7 @@ $select_list .= "<option value='63072000'"; if ($RR >= 7201) {$select_list .=
$select_list .= "</SELECT></TD></TR>";
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Inbound").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=with_inbound ID=with_inbound>";
$select_list .= _QXZ("Inbound").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=with_inbound ID=with_inbound>";
$select_list .= "<option value='N'";
if ($with_inbound=='N') {$select_list .= " selected";}
$select_list .= ">"._QXZ("No")."</option>";
@@ -735,7 +746,7 @@ $select_list .= ">"._QXZ("Only")."</option>";
$select_list .= "</SELECT></TD></TR>";
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Monitor").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=monitor_active ID=monitor_active>";
$select_list .= _QXZ("Monitor").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=monitor_active ID=monitor_active>";
$select_list .= "<option value=''";
if (strlen($monitor_active) < 2) {$select_list .= " selected";}
$select_list .= ">"._QXZ("NONE")."</option>";
@@ -758,7 +769,7 @@ $select_list .= "</SELECT></TD></TR>";
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Phone").": </font></TD><TD align=left>";
$select_list .= "<INPUT class='top_settings_input' type=text size=10 maxlength=20 NAME=monitor_phone ID=monitor_phone VALUE='$monitor_phone'>";
$select_list .= "<INPUT class='form_field_android_small' type=text size=10 maxlength=20 NAME=monitor_phone ID=monitor_phone VALUE='$monitor_phone'>";
$select_list .= "</TD></TR>";
$select_list .= "<TR><TD align=center COLSPAN=2> &nbsp; </TD></TR>";
@@ -766,7 +777,7 @@ if ($UGdisplay > 0)
{
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Select User Group").": </font></TD><TD align=left>";
$select_list .= "<SELECT class='top_settings_input' SIZE=1 NAME=usergroup ID=usergroup>";
$select_list .= "<SELECT class='form_field_android_small' SIZE=1 NAME=usergroup ID=usergroup>";
$select_list .= "<option value=''>"._QXZ("ALL USER GROUPS")."</option>";
$o=0;
while ($usergroups_to_print > $o)
@@ -779,7 +790,7 @@ if ($UGdisplay > 0)
}
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Dialable Leads Alert").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=NOLEADSalert ID=NOLEADSalert>";
$select_list .= _QXZ("Dialable Leads Alert").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=NOLEADSalert ID=NOLEADSalert>";
$select_list .= "<option value=''";
if (strlen($NOLEADSalert) < 2) {$select_list .= " selected";}
$select_list .= ">"._QXZ("NO")."</option>";
@@ -789,7 +800,7 @@ $select_list .= ">"._QXZ("YES")."</option>";
$select_list .= "</SELECT></TD></TR>";
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Show Drop In-Group Row").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=DROPINGROUPstats ID=DROPINGROUPstats>";
$select_list .= _QXZ("Show Drop In-Group Row").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=DROPINGROUPstats ID=DROPINGROUPstats>";
$select_list .= "<option value='0'";
if ($DROPINGROUPstats < 1) {$select_list .= " selected";}
$select_list .= ">"._QXZ("NO")."</option>";
@@ -799,7 +810,7 @@ $select_list .= ">"._QXZ("YES")."</option>";
$select_list .= "</SELECT></TD></TR>";
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Show Carrier Stats").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=CARRIERstats ID=CARRIERstats>";
$select_list .= _QXZ("Show Carrier Stats").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=CARRIERstats ID=CARRIERstats>";
$select_list .= "<option value='0'";
if ($CARRIERstats < 1) {$select_list .= " selected";}
$select_list .= ">"._QXZ("NO")."</option>";
@@ -822,7 +833,7 @@ if ($presets_enabled_count > 0)
if ($presets_enabled > 0)
{
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Show Presets Stats").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=PRESETstats ID=PRESETstats>";
$select_list .= _QXZ("Show Presets Stats").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=PRESETstats ID=PRESETstats>";
$select_list .= "<option value='0'";
if ($PRESETstats < 1) {$select_list .= " selected";}
$select_list .= ">"._QXZ("NO")."</option>";
@@ -837,7 +848,7 @@ else
}
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("Agent Time Stats").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=AGENTtimeSTATS ID=AGENTtimeSTATS>";
$select_list .= _QXZ("Agent Time Stats").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=AGENTtimeSTATS ID=AGENTtimeSTATS>";
$select_list .= "<option value='0'";
if ($AGENTtimeSTATS < 1) {$select_list .= " selected";}
$select_list .= ">"._QXZ("NO")."</option>";
@@ -847,7 +858,7 @@ $select_list .= ">"._QXZ("YES")."</option>";
$select_list .= "</SELECT></TD></TR>";
$select_list .= "<TR><TD align=right><font class='top_settings_header'>";
$select_list .= _QXZ("In-group color override").": </font></TD><TD align=left><SELECT class='top_settings_input' SIZE=1 NAME=INGROUPcolorOVERRIDE ID=INGROUPcolorOVERRIDE>";
$select_list .= _QXZ("In-group color override").": </font></TD><TD align=left><SELECT class='form_field_android_small' SIZE=1 NAME=INGROUPcolorOVERRIDE ID=INGROUPcolorOVERRIDE>";
$select_list .= "<option value='0'";
if ($INGROUPcolorOVERRIDE < 1) {$select_list .= " selected";}
$select_list .= ">"._QXZ("NO")."</option>";
@@ -856,16 +867,14 @@ $select_list .= "<option value='1'";
$select_list .= ">"._QXZ("YES")."</option>";
$select_list .= "</SELECT></TD></TR>";
$select_list .= "<TR><TD align=right>&nbsp;</TD></TR>";
$select_list .= "<TR><TD align=right colspan='2'>&nbsp;</TD></TR>";
$select_list .= "<TR><TD align=center colspan='2'><INPUT class='red_btn_mobile_sm' type=button VALUE=SUBMIT onclick=\\\"update_variables('form_submit','');\\\"></TD></TR>";
$select_list .= "</TABLE><BR>";
$select_list .= "<INPUT type=hidden name=droppedOFtotal value='$droppedOFtotal'>";
$select_list .= "<INPUT class='top_settings_input' type=button VALUE=SUBMIT onclick=\\\"update_variables('form_submit','');\\\"><FONT FACE='ARIAL,HELVETICA' COLOR=BLACK SIZE=2> &nbsp; &nbsp; &nbsp; &nbsp; ";
$select_list .= "</TD></TR>";
$select_list .= "<TR><TD ALIGN=CENTER>";
$select_list .= "<font class='top_settings_val'> &nbsp; </font>";
$select_list .= "</TD>";
$select_list .= "<TR>";
$select_list .= "<TD NOWRAP align=right>";
$select_list .= "<font class='top_settings_val'>"._QXZ("VERSION").": $version &nbsp; "._QXZ("BUILD").": $build</font>";
$select_list .= "</TD></TR></TABLE>";
@@ -988,7 +997,7 @@ if (strlen($monitor_phone)>1)
##### END code for embedded webphone for monitoring #####
require("screen_colors.php");
?>
<HTML>
@@ -1332,15 +1341,18 @@ function gather_realtime_content()
}
}
@end @*/
var RTdisplay_type=document.getElementById("RTDisplayInfo").value;
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
if (xmlhttp)
{
RTupdate_query = "RTajax=1&mobile_device=1&DB=" + DB + "" + groupQS + usergroupQS + "&adastats=" + adastats + "&SIPmonitorLINK=" + SIPmonitorLINK + "&IAXmonitorLINK=" + IAXmonitorLINK + "&usergroup=" + usergroup + "&UGdisplay=" + UGdisplay + "&UidORname=" + UidORname + "&orderby=" + orderby + "&SERVdisplay=" + SERVdisplay + "&CALLSdisplay=" + CALLSdisplay + "&PHONEdisplay=" + PHONEdisplay + "&CUSTPHONEdisplay=" + CUSTPHONEdisplay + "&with_inbound=" + with_inbound + "&monitor_active=" + monitor_active + "&monitor_phone=" + monitor_phone + "&ALLINGROUPstats=" + ALLINGROUPstats + "&DROPINGROUPstats=" + DROPINGROUPstats + "&NOLEADSalert=" + NOLEADSalert + "&CARRIERstats=" + CARRIERstats + "&PRESETstats=" + PRESETstats + "&AGENTtimeSTATS=" + AGENTtimeSTATS + "&INGROUPcolorOVERRIDE=" + INGROUPcolorOVERRIDE + "&droppedOFtotal=" + droppedOFtotal + "&report_display_type=" + report_display_type + "";
RTupdate_query = "RTajax=1&mobile_device=1&RTdisplay_type=" + RTdisplay_type + "&DB=" + DB + "" + groupQS + usergroupQS + "&adastats=" + adastats + "&SIPmonitorLINK=" + SIPmonitorLINK + "&IAXmonitorLINK=" + IAXmonitorLINK + "&usergroup=" + usergroup + "&UGdisplay=" + UGdisplay + "&UidORname=" + UidORname + "&orderby=" + orderby + "&SERVdisplay=" + SERVdisplay + "&CALLSdisplay=" + CALLSdisplay + "&PHONEdisplay=" + PHONEdisplay + "&CUSTPHONEdisplay=" + CUSTPHONEdisplay + "&with_inbound=" + with_inbound + "&monitor_active=" + monitor_active + "&monitor_phone=" + monitor_phone + "&ALLINGROUPstats=" + ALLINGROUPstats + "&DROPINGROUPstats=" + DROPINGROUPstats + "&NOLEADSalert=" + NOLEADSalert + "&CARRIERstats=" + CARRIERstats + "&PRESETstats=" + PRESETstats + "&AGENTtimeSTATS=" + AGENTtimeSTATS + "&INGROUPcolorOVERRIDE=" + INGROUPcolorOVERRIDE + "&droppedOFtotal=" + droppedOFtotal + "&report_display_type=" + report_display_type + "";
xmlhttp.open('POST', 'AST_timeonVDADall.php');
xmlhttp.open('POST', 'AST_timeonVDADall_mobile.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(RTupdate_query);
xmlhttp.onreadystatechange = function()
@@ -1523,7 +1535,27 @@ function update_variables(task_option,task_choice,force_reload)
gather_realtime_content();
}
function ToggleDisplay()
{
if (document.getElementById("RTDisplayInfo").value=="CALL")
{
document.getElementById("RTDisplayInfo").value="AGENT";
document.getElementById("RTDisplayButton").value="CALL INFO";
// document.getElementById("RTDisplayButton").class="blue_btn";
document.getElementById("RTAgentInfoOptions").style="display:block";
document.getElementById("RTAgentDisplayInfo").style="display:block";
document.getElementById("RTCallDisplayInfo").style="display:none";
}
else
{
document.getElementById("RTDisplayInfo").value="CALL";
document.getElementById("RTDisplayButton").value="AGENT INFO";
// document.getElementById("RTDisplayButton").class="red_btn";
document.getElementById("RTAgentInfoOptions").style="display:none";
document.getElementById("RTAgentDisplayInfo").style="display:none";
document.getElementById("RTCallDisplayInfo").style="display:block";
}
}
</script>
<STYLE type="text/css">
@@ -1606,8 +1638,8 @@ function update_variables(task_option,task_choice,force_reload)
.realtime_img_icon {width: 8vw; max-width: 42px; height: auto; }
.realtime_img_text {font-family:HELVETICA; font-size:calc(6px + (11 - 6) * ((100vw - 300px) / (1600 - 300))); color:white; font-weight:bold;}
.realtime_table {width: 100vw; max-width: 860px;}
.realtime_settings_table {width: 85vw; max-width: 700px; }
.realtime_table {width: 96vw; max-width: 960px;}
.realtime_settings_table {width: 50vw; max-width: 600px; }
.realtime_display_span_def {position: absolute; left:calc(105px + 55 * (100vw / 1600));}
.realtime_display_table {width: 25vw; max-width: 250px; }
@@ -1643,7 +1675,7 @@ $row=mysqli_fetch_row($rslt);
$campaign_allow_inbound = $row[0];
echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
echo "<TITLE>$report_name: $group</TITLE></HEAD><BODY BGCOLOR=WHITE marginheight=0 marginwidth=0 leftmargin=0 topmargin=0>\n";
echo "<TITLE>$report_name: $group</TITLE></HEAD><BODY BGCOLOR='#".$SSframe_background."' marginheight=0 marginwidth=0 leftmargin=0 topmargin=0>\n";
$android_header=1;
@@ -1657,35 +1689,28 @@ echo "<INPUT TYPE=HIDDEN NAME=cursorY ID=cursorY>\n";
echo "<table class='realtime_table'>";
echo "<tr>";
echo "<td align=left class='top_head_key'>"._QXZ("$report_name")."</td>";
echo "<td align=left class='top_head_key'>";
echo "<span style=\"z-index:20;\" id=campaign_select_list_link>\n";
echo "<TABLE class='realtime_display_table' CELLPADDING=0 CELLSPACING=0 BGCOLOR=\"#D9E6FE\"><TR><TD ALIGN=CENTER>\n";
echo "<a href=\"#\" onclick=\"showDiv('campaign_select_list');\"><font class='top_head_key'>"._QXZ("Choose Report Display Options")."</a>";
echo "<TABLE CELLPADDING=0 CELLSPACING=0 BGCOLOR=\"#D9E6FE\"><TR><TD ALIGN=CENTER>\n";
echo "<a href=\"#\" onclick=\"showDiv('campaign_select_list');\"><font class='android_small bold'>"._QXZ("Choose Report Display Options")."</a>";
echo "</TD></TR></TABLE>\n";
echo "</span>\n";
echo "</td>";
echo "<td align=left class='top_head_key'>";
echo "<td align=left class='android_standard bold'>";
echo "<span style=\"position:absolute;left:0px;z-index:21;\" id=campaign_select_list>\n";
echo "<TABLE WIDTH=0 HEIGHT=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=\"#D9E6FE\"><TR><TD ALIGN=CENTER>\n";
echo "";
echo "</TD></TR></TABLE>\n";
echo "</span>\n";
echo "</td>";
echo "<td align=left class='top_settings_val'>";
echo "<a href=\"#\" onclick=\"update_variables('form_submit','','YES')\"><font class='top_settings_val'>"._QXZ("RELOAD NOW")."</font></a>";
echo "<td align=left class='android_small'>";
echo "<a href=\"#\" onclick=\"update_variables('form_submit','','YES')\"><font class='android_small'>"._QXZ("RELOAD NOW")."</font></a>";
echo "</td>";
echo "<td align=right class='top_settings_val'>";
# if (preg_match('/ALL\-ACTIVE/i',$group_string))
# {echo "<a href=\"./admin.php?ADD=10\"><font class='top_settings_val'>"._QXZ("MODIFY")."</font></a> | \n";}
# else
# {echo "<a href=\"./admin.php?ADD=34&campaign_id=$group\"><font class='top_settings_val'>"._QXZ("MODIFY")."</font></a> | \n";}
echo "&nbsp;</td>";
echo "<td align=left class='top_settings_val'>";
echo "<a href=\"./AST_timeonVDADallSUMMARY_mobile.php?RR=$RR&DB=$DB&adastats=$adastats\"><font class='top_settings_val'>"._QXZ("SUMMARY")."</font></a> </FONT>\n";
echo "<td align=left class='android_small'>";
echo "<a href=\"./AST_timeonVDADallSUMMARY_mobile.php?RR=$RR&DB=$DB&adastats=$adastats\"><font class='android_small'>"._QXZ("SUMMARY")."</font></a> </FONT>\n";
echo "</td>";
echo "<td align=left class='top_settings_val'>";
echo "<font class='top_settings_val'>"._QXZ("refresh").": <span id=refresh_countdown name=refresh_countdown></span></font>\n\n";
echo "<td align=left class='android_small'>";
echo "<font class='android_small'>"._QXZ("refresh").": <span id=refresh_countdown name=refresh_countdown></span></font>\n\n";
echo "</td>";
echo "</tr>";
echo "</table>";
@@ -1734,39 +1759,67 @@ echo " &nbsp; &nbsp; &nbsp; <font class='top_settings_val'>"._QXZ("refresh").":
if (!preg_match("/WALL/",$report_display_type))
{
if ($is_webphone == 'Y')
{echo " &nbsp; &nbsp; <span id=webphone_visibility name=webphone_visibility><a href=\"#\" onclick=\"ShowWebphone('show');\"><font class='top_settings_val'>"._QXZ("webphone")." +</font></a></span>\n\n";}
{echo " &nbsp; &nbsp; <span id=webphone_visibility name=webphone_visibility><a href=\"#\" onclick=\"ShowWebphone('show');\"><font class='android_small'>"._QXZ("webphone")." +</font></a></span>\n\n";}
else
{echo " &nbsp; &nbsp; <span id=webphone_visibility name=webphone_visibility></span>\n\n";}
if ($webphone_bufh > 10)
{echo "<BR><img src=\"images/pixel.gif\" width=1 height=$webphone_bufh>\n";}
echo "<BR>\n\n";
# echo "<BR>\n\n";
echo "<table class='realtime_table'><tr><th><input type='button' id='RTDisplayButton' class='red_btn_mobile' value='AGENT INFO' onClick='ToggleDisplay()'><input type=hidden id='RTDisplayInfo' value='CALL'></th></tr></table>";
echo "<span id='RTAgentInfoOptions' style='display:none'>";
echo "<table class='realtime_table'>";
echo "<tr>";
echo "<th style='width: 32vw'>";
if ($UGdisplay>0)
{echo " <a href=\"#\" onclick=\"update_variables('UGdisplay','');\"><font class=\"top_settings_val\"><span id=UGdisplayTXT>"._QXZ("HIDE USER GROUP")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('UGdisplay','');\"><font class=\"android_small\"><span id=UGdisplayTXT>"._QXZ("HIDE USER GROUP")."</span></font></a>";}
else
{echo " <a href=\"#\" onclick=\"update_variables('UGdisplay','');\"><font class=\"top_settings_val\"><span id=UGdisplayTXT>"._QXZ("VIEW USER GROUP")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('UGdisplay','');\"><font class=\"android_small\"><span id=UGdisplayTXT>"._QXZ("VIEW USER GROUP")."</span></font></a>";}
echo "</th>";
echo "<th style='width: 32vw'>";
if ($SERVdisplay>0)
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('SERVdisplay','');\"><font class=\"top_settings_val\"><span id=SERVdisplayTXT>"._QXZ("HIDE SERVER INFO")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('SERVdisplay','');\"><font class=\"android_small\"><span id=SERVdisplayTXT>"._QXZ("HIDE SERVER INFO")."</span></font></a>";}
else
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('SERVdisplay','');\"><font class=\"top_settings_val\"><span id=SERVdisplayTXT>"._QXZ("SHOW SERVER INFO")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('SERVdisplay','');\"><font class=\"android_small\"><span id=SERVdisplayTXT>"._QXZ("SHOW SERVER INFO")."</span></font></a>";}
echo "</th>";
echo "<th style='width: 32vw'>";
if ($CALLSdisplay>0)
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('CALLSdisplay','');\"><font class=\"top_settings_val\"><span id=CALLSdisplayTXT>"._QXZ("HIDE WAITING CALLS")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('CALLSdisplay','');\"><font class=\"android_small\"><span id=CALLSdisplayTXT>"._QXZ("HIDE WAITING CALLS")."</span></font></a>";}
else
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('CALLSdisplay','');\"><font class=\"top_settings_val\"><span id=CALLSdisplayTXT>"._QXZ("SHOW WAITING CALLS")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('CALLSdisplay','');\"><font class=\"android_small\"><span id=CALLSdisplayTXT>"._QXZ("SHOW WAITING CALLS")."</span></font></a>";}
echo "</th>";
echo "</tr>";
echo "<tr>";
echo "<th style='width: 32vw'>";
if ($ALLINGROUPstats>0)
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('ALLINGROUPstats','');\"><font class=\"top_settings_val\"><span id=ALLINGROUPstatsTXT>"._QXZ("HIDE IN-GROUP STATS")."</span></font></a>";}
{echo "<a href=\"#\" onclick=\"update_variables('ALLINGROUPstats','');\"><font class=\"android_small\"><span id=ALLINGROUPstatsTXT>"._QXZ("HIDE IN-GROUP STATS")."</span></font></a>";}
else
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('ALLINGROUPstats','');\"><font class=\"top_settings_val\"><span id=ALLINGROUPstatsTXT>"._QXZ("SHOW IN-GROUP STATS")."</span></font></a>";}
{echo "<a href=\"#\" onclick=\"update_variables('ALLINGROUPstats','');\"><font class=\"android_small\"><span id=ALLINGROUPstatsTXT>"._QXZ("SHOW IN-GROUP STATS")."</span></font></a>";}
echo "</th>";
echo "<th style='width: 32vw'>";
if ($PHONEdisplay>0)
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('PHONEdisplay','');\"><font class=\"top_settings_val\"><span id=PHONEdisplayTXT>"._QXZ("HIDE PHONES")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('PHONEdisplay','');\"><font class=\"android_small\"><span id=PHONEdisplayTXT>"._QXZ("HIDE PHONES")."</span></font></a>";}
else
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('PHONEdisplay','');\"><font class=\"top_settings_val\"><span id=PHONEdisplayTXT>"._QXZ("SHOW PHONES")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('PHONEdisplay','');\"><font class=\"android_small\"><span id=PHONEdisplayTXT>"._QXZ("SHOW PHONES")."</span></font></a>";}
echo "</th>";
echo "<th style='width: 32vw'>";
if ($CUSTPHONEdisplay>0)
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('CUSTPHONEdisplay','');\"><font class=\"top_settings_val\"><span id=CUSTPHONEdisplayTXT>"._QXZ("HIDE CUSTPHONES")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('CUSTPHONEdisplay','');\"><font class=\"android_small\"><span id=CUSTPHONEdisplayTXT>"._QXZ("HIDE CUSTPHONES")."</span></font></a>";}
else
{echo " &nbsp; &nbsp; <a href=\"#\" onclick=\"update_variables('CUSTPHONEdisplay','');\"><font class=\"top_settings_val\"><span id=CUSTPHONEdisplayTXT>"._QXZ("SHOW CUSTPHONES")."</span></font></a>";}
{echo " <a href=\"#\" onclick=\"update_variables('CUSTPHONEdisplay','');\"><font class=\"android_small\"><span id=CUSTPHONEdisplayTXT>"._QXZ("SHOW CUSTPHONES")."</span></font></a>";}
echo "</th>";
echo "</tr>";
echo "</table>";
echo "</span>";
}
#echo "</TD></TR></TABLE>";
@@ -1,13 +1,15 @@
<?php
# vicidial_stylesheet.php
#
# Copyright (C) 2019 Matt Florell <vicidial@gmail.com>, Joe Johnson <freewermadmin@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com>, Joe Johnson <freewermadmin@gmail.com> LICENSE: AGPLv2
#
# CSS/PHP file that uses the system-defined screen colors to display report elements
#
# 170830-2123 - First build
# 180501-0045 - New elements added
# 190129-1303 - New mobile display elements added
# 200309-1819 - Modifications for display formatting
#
require("dbconnect_mysqli.php");
require("functions.php");
@@ -57,6 +59,9 @@ redalert {font-size: 18px; font-weight:bold; font-family: Arial, Sans-Serif; col
font-size: 12pt;
opacity: 1.0;
}
.bold {
font-weight:bold;
}
.green {color: black; background-color: #99FF99}
.red {color: black; background-color: #FF9999}
.orange {color: black; background-color: #FFCC99}
@@ -73,12 +78,16 @@ redalert {font-size: 18px; font-weight:bold; font-family: Arial, Sans-Serif; col
.border2px {border:solid 2px #<?php echo $SSmenu_background; ?>}
.android_standard {
font-family: Arial, Helvetica, sans-serif;
font-size: 8pt;
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(8px + 1vw);
}
.android_medium {
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(9px + 1vw);
}
.android_large {
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(10px + 1vw);
font-weight: bold;
}
.android_auto {
@@ -87,6 +96,10 @@ redalert {font-size: 18px; font-weight:bold; font-family: Arial, Sans-Serif; col
font-size: calc(14px + (26 - 14) * ((100vw - 300px) / (1600 - 300)));
line-height: calc(1.3em + (1.5 - 1.2) * ((100vw - 300px)/(1600 - 300)));
}
.android_small {
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(7px + .5vw);
}
.android_auto_small {
font-family: Arial, Helvetica, sans-serif;
font-size: calc(8px + (18 - 8) * ((100vw - 300px) / (1600 - 300)));
@@ -94,7 +107,7 @@ redalert {font-size: 18px; font-weight:bold; font-family: Arial, Sans-Serif; col
}
.android_whiteboard_small {
font-family: Arial, Helvetica, sans-serif;
font-size: calc(8px + (16 - 8) * ((100vw - 300px) / (1600 - 300)));
FONT-SIZE: calc(8px + .5vw);
line-height: calc(1.3em + (1.5 - 1.2) * ((100vw - 300px)/(1600 - 300)));
}
.android_campaign_header {
@@ -209,7 +222,18 @@ ul.dropdown_android li:hover > ul { visibility: visible; }
}
.form_field_android {
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(4px + (12 - 4) * ((100vw - 300px) / (1600 - 300)));
FONT-SIZE: calc(8px + 1vw);
}
.form_field_android_small {
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(6px + 0.5vw);
}
.form_field_whiteboard_android {
font-family: Arial, Sans-Serif;
font-size: calc(8px + 1vw);
margin-bottom: 3px;
background-color: #<?php echo $SSalt_row3_background; ?>;
border: solid 1px #<?php echo $SSmenu_background; ?>;
}
.required_field {
font-family: Arial, Sans-Serif;
@@ -220,6 +244,14 @@ ul.dropdown_android li:hover > ul { visibility: visible; }
border: groove 2px #990000;
background-position: top;
}
.required_field_whiteboard_android {
font-family: Arial, Sans-Serif;
font-size: calc(8px + 1vw);
margin-bottom: 3px;
background-color: #FFCCCC;
border: groove 1px #990000;
background-position: top;
}
textarea.chat_box {
font-family: Arial, Sans-Serif;
font-size: 10px;
@@ -254,9 +286,9 @@ input.red_btn{
}
input.red_btn_mobile{
font-family: Arial, Sans-Serif;
font-size: calc(4px + (12 - 4) * ((100vw - 300px) / (1600 - 300)));
width: 10vw;
max-width:250px;
FONT-SIZE: calc(12px + .5vw);
width: 36vw;
max-width:600px;
color:#FFFFFF;
font-weight:bold;
background-color:#990000;
@@ -268,9 +300,9 @@ input.red_btn_mobile{
}
input.red_btn_mobile_lg{
font-family: Arial, Sans-Serif;
font-size: calc(4px + (12 - 4) * ((100vw - 300px) / (1600 - 300)));
width: 15vw;
max-width:200px;
FONT-SIZE: calc(14px + 1vw);
width: 48vw;
max-width:800px;
color:#FFFFFF;
font-weight:bold;
background-color:#990000;
@@ -280,6 +312,33 @@ input.red_btn_mobile_lg{
border-right-color:#330000;
border-bottom-color:#330000;
}
input.red_btn_mobile_sm{
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(12px + .2vw);
width: 30vw;
max-width:400px;
color:#FFFFFF;
font-weight:bold;
background-color:#990000;
border:2px solid;
border-top-color:#FFCCCC;
border-left-color:#FFCCCC;
border-right-color:#330000;
border-bottom-color:#330000;
}
input.red_btn_anywidth{
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(12px + .5vw);
color:#FFFFFF;
font-weight:bold;
background-color:#990000;
border:2px solid;
border-top-color:#FFCCCC;
border-left-color:#FFCCCC;
border-right-color:#330000;
border-bottom-color:#330000;
}
input.green_btn{
font-family: Arial, Sans-Serif;
font-size: 12px;
@@ -294,8 +353,8 @@ input.green_btn{
}
input.green_btn_mobile{
font-family: Arial, Sans-Serif;
font-size: calc(4px + (12 - 4) * ((100vw - 300px) / (1600 - 300)));
width: 10vw;
FONT-SIZE: calc(12px + .5vw);
width: 11vw;
max-width:250px;
color:#FFFFFF;
font-weight:bold;
@@ -308,7 +367,7 @@ input.green_btn_mobile{
}
input.green_btn_mobile_lg{
font-family: Arial, Sans-Serif;
font-size: calc(4px + (12 - 4) * ((100vw - 300px) / (1600 - 300)));
FONT-SIZE: calc(14px + 1vw);
width: 15vw;
max-width:200px;
color:#FFFFFF;
@@ -320,6 +379,30 @@ input.green_btn_mobile_lg{
border-right-color:#003300;
border-bottom-color:#003300;
}
input.green_btn_anywidth{
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(12px + .5vw);
color:#FFFFFF;
font-weight:bold;
background-color:#009900;
border:2px solid;
border-top-color:#CCFFCC;
border-left-color:#CCFFCC;
border-right-color:#003300;
border-bottom-color:#003300;
}
input.green_btn_anywidth_lg{
font-family: Arial, Sans-Serif;
FONT-SIZE: calc(14px + 1vw);
color:#FFFFFF;
font-weight:bold;
background-color:#009900;
border:2px solid;
border-top-color:#CCFFCC;
border-left-color:#CCFFCC;
border-right-color:#003300;
border-bottom-color:#003300;
}
input.blue_btn{
font-family: Arial, Sans-Serif;
font-size: 12px;
@@ -334,7 +417,7 @@ input.blue_btn{
}
input.blue_btn_mobile{
font-family: Arial, Sans-Serif;
font-size: calc(4px + (10 - 4) * ((100vw - 300px) / (1600 - 300)));
FONT-SIZE: calc(12px + .5vw);
color:#FFFFFF;
font-weight:bold;
background-color:#000099;
@@ -8,13 +8,14 @@ if (isset($_GET["mobile"])) {$mobile=$_GET["mobile"];}
?>
// vicidial_whiteboard_functions.php
//
// Copyright (C) 2017 Matt Florell <vicidial@gmail.com>, Joe Johnson <freewermadmin@gmail.com> LICENSE: AGPLv2
// Copyright (C) 2020 Matt Florell <vicidial@gmail.com>, Joe Johnson <freewermadmin@gmail.com> LICENSE: AGPLv2
//
// Javascript file used in AST_rt_whiteboard_reports.php and AST_rt_whiteboard_report_mobile.php
//
// 171027-2352 - First build
// 190226-1645 - Added mobile variable for mobile versions of reports
// 190307-0142 - Change auto-resize on load if device is mobile, removed debug
// 200309-1819 - Modifications for display formatting
//
var main_canvas = document.getElementById("MainReportCanvas");
@@ -242,19 +243,24 @@ function RefreshReportWindow() {
var regRPTrates = new RegExp("rates","g");
var regRPTcomma = new RegExp(", $","g");
var regRPTpipe = new RegExp("|$","g");
var regRPTdash = new RegExp("-","g");
var regRPTall = new RegExp("--ALL--","g");
var regRPTflag = new RegExp("ALL FLAGS","g");
var CPstr=campaign_parameters_str.replace(regRPTcomma, '');
var UGPstr=user_groups_parameters_str.replace(regRPTcomma, '');
var USPstr=users_parameters_str.replace(regRPTcomma, '');
var GPstr=groups_parameters_str.replace(regRPTcomma, '');
var DPstr=did_parameters_str.replace(regRPTcomma, '');
if (status_flags_parameters_str.match(regRPTflag)) {status_flags_parameters_str="<?php echo "ALL FLAGS"; ?>";}
var SFstr=status_flags_parameters_str.replace(regRPTcomma, '');
var CPstr=CPstr.replace(regRPTall, '<?php echo "ALL CAMPAIGNS"; ?>');
var UGPstr=UGPstr.replace(regRPTall, '<?php echo "ALL USER GROUPS"; ?>');
var USPstr=USPstr.replace(regRPTall, '<?php echo "ALL USERS"; ?>');
var GPstr=GPstr.replace(regRPTall, '<?php echo "ALL IN-GROUPS"; ?>');
var CPstr=CPstr.replace(regRPTall, '<?php echo _QXZ("ALL CAMPAIGNS"); ?>');
var UGPstr=UGPstr.replace(regRPTall, '<?php echo _QXZ("ALL USER GROUPS"); ?>');
var USPstr=USPstr.replace(regRPTall, '<?php echo _QXZ("ALL USERS"); ?>');
var GPstr=GPstr.replace(regRPTall, '<?php echo _QXZ("ALL IN-GROUPS"); ?>');
var DPstr=DPstr.replace(regRPTdash, '');
var report_parameters="<div class='embossed border2px round_corners sm_shadow alt_row1'>";
report_parameters+="<?php echo _QXZ("Report Type"); ?>: "+report_type_text+"<BR>\n";
@@ -0,0 +1,692 @@
<?php
header('Content-Type: application/javascript');
require("functions.php");
?>
// vicidial_whiteboard_functions.php
//
// Copyright (C) 2020 Matt Florell <vicidial@gmail.com>, Joe Johnson <freewermadmin@gmail.com> LICENSE: AGPLv2
//
// Javascript file used in AST_rt_whiteboard_reports.php and AST_rt_whiteboard_report_mobile.php
//
// 171027-2352 - First build
// 190226-1645 - Added mobile variable for mobile versions of reports
// 190307-0142 - Change auto-resize on load if device is mobile, removed debug
// 200309-1819 - Modifications for display formatting
//
var main_canvas = document.getElementById("MainReportCanvas");
var size = {
width: window.innerWidth || document.body.clientWidth,
height: window.innerHeight || document.body.clientHeight
}
main_canvas.width=size.width-220;
main_canvas.height=size.height-300;
// global chart names
var MainGraph=null;
var ChartsHidden=null;
var LabelArray_holder=new Array();
var CallCountArray_holder=new Array();
var SaleCountArray_holder=new Array();
var TotalCallCountArray_holder=new Array();
var TotalSaleCountArray_holder=new Array();
var TimeArray_holder=new Array();
var ConvRateArray_holder=new Array();
var CPHArray_holder=new Array();
var SPHArray_holder=new Array();
var TPAArray_holder=new Array();
var TGArray_holder=new Array();
function StartRefresh(refresh_rate) {
document.getElementById("loading_display").style.display="block";
if (!refresh_rate) {refresh_rate=30; RefreshReportWindow();}
document.getElementById("query_date2").value=document.getElementById("query_date").value;
// document.getElementById("end_date2").value=document.getElementById("end_date").value;
document.getElementById("query_time2").value=document.getElementById("query_time").value;
// document.getElementById("end_time2").value=document.getElementById("end_time").value;
document.getElementById("hourly_display2").value=document.getElementById("hourly_display").value;
ToggleVisibility('report_control_panel');
ToggleVisibility('report_display_panel');
ChartsHidden=null;
rInt=window.setInterval(function() {RefreshReportWindow()}, (refresh_rate*1000));
}
function StopRefresh() {
MainGraph.clear();
document.getElementById("parameters_span").innerHTML='';
ToggleVisibility('report_control_panel');
ToggleVisibility('report_display_panel');
clearInterval(rInt);
}
function ToggleVisibility(span_name) {
var span_vis = document.getElementById(span_name).style;
if (span_vis.display=='none') { span_vis.display = 'block'; } else { span_vis.display = 'none'; }
}
function sortFunction(a, b) {
if (a[0] === b[0])
{
return 0;
}
else
{
return (a[0] > b[0]) ? -1 : 1;
}
}
function HighlightRelatedFields(report_type) {
switch(report_type) {
case "agent_performance_total":
case "agent_performance_rates":
case "team_performance_total":
case "team_performance_rates":
var related_fields = ["campaigns", "user_groups", "users", "groups", "target_per_agent", "query_date", "query_time", "status_flags"];
break;
case "floor_performance_total":
case "floor_performance_rates":
var related_fields = ["campaigns", "target_gross", "query_date", "query_time", "hourly_display", "status_flags"];
break;
case "ingroup_performance_total":
case "ingroup_performance_rates":
var related_fields = ["campaigns", "groups", "target_per_agent", "query_date", "query_time", "status_flags"];
break;
case "did_performance_total":
case "did_performance_rates":
var related_fields = ["dids", "groups", "target_per_agent", "query_date", "query_time", "status_flags"];
break;
case "status_performance_total":
var related_fields = ["campaigns", "groups", "users", "query_date", "query_time", "status_flags"];
break;
}
var form_elements = document.getElementById("vicidial_report").elements;
for (var i=0, element; element=form_elements[i++];) {
if (element.type=="select-one" || element.type=="select-multiple") {
element.className='mobile_whiteboard_select form_field_whiteboard_android sm_shadow round_corners';
for (var j=0; j<related_fields.length; j++) {
if (related_fields[j]==element.id) {
element.className='mobile_whiteboard_select required_field_whiteboard_android sm_shadow round_corners';
}
}
} else if (element.type=="text") {
element.className='form_field_whiteboard_android sm_shadow round_corners';
for (var j=0; j<related_fields.length; j++) {
if (related_fields[j]==element.id) {
element.className='required_field_whiteboard_android sm_shadow round_corners';
}
}
}
}
}
document.getElementById("adjust_report").onclick = function() {
document.getElementById("query_date").value=document.getElementById("query_date2").value;
// document.getElementById("end_date").value=document.getElementById("end_date2").value;
document.getElementById("query_time").value=document.getElementById("query_time2").value;
// document.getElementById("end_time").value=document.getElementById("end_time2").value;
document.getElementById("hourly_display").value=document.getElementById("hourly_display2").value;
clearInterval(rInt);
var new_refresh_rate=document.getElementById("refresh_rate").value;
rInt=window.setInterval(function() {RefreshReportWindow()}, (new_refresh_rate*1000));
};
function RefreshReportWindow() {
var query_date=document.getElementById("query_date").value;
// var end_date=document.getElementById("end_date").value;
var query_time=document.getElementById("query_time").value;
// var end_time=document.getElementById("end_time").value;
var hourly_display=document.getElementById("hourly_display").value;
var target_gross=document.getElementById("target_gross").value;
var target_per_agent=document.getElementById("target_per_agent").value;
var rpt_field = document.getElementById("report_type");
var report_type = rpt_field.options[rpt_field.selectedIndex].value;
var report_type_text = rpt_field.options[rpt_field.selectedIndex].text;
if (!target_per_agent) {target_per_agent=0;}
if (!target_gross) {target_gross=0;}
var size = {
width: window.innerWidth || document.body.clientWidth,
height: window.innerHeight || document.body.clientHeight
}
// main_canvas.width=size.width-40;
// main_canvas.height=size.height-60;
var xmlhttp=false;
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
if (xmlhttp)
{
var rpt_query = "&rpt_type="+report_type+"&query_date="+query_date+"&query_time="+query_time+"&target_gross="+target_gross+"&target_per_agent="+target_per_agent+"&hourly_display="+hourly_display;
var InvForm = document.forms[0];
var x = 0;
var query_date_str="<?php echo _QXZ("Start date"); ?>: "+query_date+" "+query_time;
if (hourly_display && hourly_display>0)
{
query_date_str="<?php echo _QXZ("Displaying last"); ?> "+hourly_display+" <?php echo _QXZ("hours"); ?>";
}
var campaign_parameters_str="";
for (x=0;x<InvForm.campaigns.length;x++)
{
if (InvForm.campaigns[x].selected)
{
rpt_query +="&campaigns[]="+InvForm.campaigns[x].value;
campaign_parameters_str+=InvForm.campaigns[x].value+", ";
}
}
var user_groups_parameters_str="";
for (x=0;x<InvForm.user_groups.length;x++)
{
if (InvForm.user_groups[x].selected)
{
rpt_query +="&user_groups[]="+InvForm.user_groups[x].value;
user_groups_parameters_str+=InvForm.user_groups[x].value+", ";
}
}
var users_parameters_str="";
for (x=0;x<InvForm.users.length;x++)
{
if (InvForm.users[x].selected)
{
rpt_query +="&users[]="+InvForm.users[x].value;
users_parameters_str+=InvForm.users[x].value+", ";
}
}
var groups_parameters_str="";
for (x=0;x<InvForm.groups.length;x++)
{
if (InvForm.groups[x].selected)
{
rpt_query +="&groups[]="+InvForm.groups[x].value;
groups_parameters_str+=InvForm.groups[x].value+", ";
}
}
var did_parameters_str="";
for (x=0;x<InvForm.dids.length;x++)
{
if (InvForm.dids[x].selected)
{
rpt_query +="&dids[]="+InvForm.dids[x].value;
did_parameters_str+=InvForm.dids[x].text+", ";
}
}
var status_flags_parameters_str="";
for (x=0;x<InvForm.status_flags.length;x++)
{
if (InvForm.status_flags[x].selected)
{
rpt_query +="&status_flags[]="+InvForm.status_flags[x].value;
status_flags_parameters_str+=InvForm.status_flags[x].text+", ";
}
}
var regRPTtype = new RegExp("floor_performance","g");
var regRPTtotal = new RegExp("total","g");
var regRPTrates = new RegExp("rates","g");
var regRPTcomma = new RegExp(", $","g");
var regRPTpipe = new RegExp("|$","g");
var regRPTdash = new RegExp("-","g");
var regRPTall = new RegExp("--ALL--","g");
var regRPTflag = new RegExp("ALL FLAGS","g");
var CPstr=campaign_parameters_str.replace(regRPTcomma, '');
var UGPstr=user_groups_parameters_str.replace(regRPTcomma, '');
var USPstr=users_parameters_str.replace(regRPTcomma, '');
var GPstr=groups_parameters_str.replace(regRPTcomma, '');
var DPstr=did_parameters_str.replace(regRPTcomma, '');
if (status_flags_parameters_str.match(regRPTflag)) {status_flags_parameters_str="<?php echo "ALL FLAGS"; ?>";}
var SFstr=status_flags_parameters_str.replace(regRPTcomma, '');
var CPstr=CPstr.replace(regRPTall, '<?php echo _QXZ("ALL CAMPAIGNS"); ?>');
var UGPstr=UGPstr.replace(regRPTall, '<?php echo _QXZ("ALL USER GROUPS"); ?>');
var USPstr=USPstr.replace(regRPTall, '<?php echo _QXZ("ALL USERS"); ?>');
var GPstr=GPstr.replace(regRPTall, '<?php echo _QXZ("ALL IN-GROUPS"); ?>');
var DPstr=DPstr.replace(regRPTdash, '');
var report_parameters="<div class='embossed border2px round_corners sm_shadow alt_row1'>";
report_parameters+="<?php echo _QXZ("Report Type"); ?>: "+report_type_text+"<BR>\n";
report_parameters+=query_date_str+"<BR>\n";
if (campaign_parameters_str.length>0) {report_parameters+="<?php echo _QXZ("Campaigns"); ?>: "+CPstr+"<BR>\n";}
if (user_groups_parameters_str.length>0) {report_parameters+="<?php echo _QXZ("User groups"); ?>: "+UGPstr+"<BR>\n";}
if (users_parameters_str.length>0) {report_parameters+="<?php echo _QXZ("Users"); ?>: "+USPstr+"<BR>\n";}
if (groups_parameters_str.length>0) {report_parameters+="<?php echo _QXZ("In-groups"); ?>: "+GPstr+"<BR>\n";}
if (did_parameters_str.length>0) {report_parameters+="<?php echo _QXZ("DIDs"); ?>: "+DPstr+"<BR>\n";}
if (status_flags_parameters_str.length>0) {report_parameters+="<?php echo _QXZ("Status flags"); ?>: "+SFstr+"<BR>\n";}
report_parameters+="</div>\n";
document.getElementById("parameters_span").innerHTML=report_parameters;
xmlhttp.open('POST', 'whiteboard_reports.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(rpt_query);
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
response_txt = null;
response_txt = xmlhttp.responseText;
// document.getElementById("report_display_panel").innerHTML=report_type+" - "+response_txt; return 0;
var report_result_array=response_txt.split("\n");
var arrayLength = report_result_array.length;
// var main_canvas = document.getElementById("MainReportCanvas");
// Define all arrays here - don't care if it's long - easier to deal with for now.
var LabelArray=new Array();
var CallCountArray=new Array();
var SaleCountArray=new Array();
var TotalCallCountArray=new Array();
var TotalSaleCountArray=new Array();
var TimeArray=new Array();
var ConvRateArray=new Array();
var CPHArray=new Array();
var Top10Array=new Array();
var SPHArray=new Array();
var TPAArray=new Array(); // Target per agent
var TGArray=new Array(); // Target per agent
var TotalCallCount=0;
var TotalSaleCount=0;
var TotalTime=0;
var TotalCPH=0;
var TotalSPH=0;
var Top10Entries=0;
var PrevTop10Value=0;
var Top10Limit="off";
var alert_text="";
for (var i = 0; i < arrayLength; i++)
{
var agent_array=report_result_array[i].split("|");
var agent_array_length=agent_array.length;
if (report_type.match(regRPTtype))
{
LabelArray[i]=agent_array[0];
}
else
{
var agent_label=agent_array[0];
if (typeof agent_array[1] !== "undefined") {agent_label+=" - "+agent_array[1];}
LabelArray[i]=agent_label;
}
CallCountArray[i]=agent_array[2]; // TotalCallCount+=parseInt(agent_array[2]);
SaleCountArray[i]=agent_array[3]; // TotalSaleCount+=parseInt(agent_array[3]);
if (report_type=="status_performance_total")
{
Top10Array[i]=[parseInt(agent_array[2]),agent_array[0],agent_array[1]];
}
else if (report_type.match(regRPTrates))
{
Top10Array[i]=[agent_array[5],agent_array[0],agent_array[1]];
}
else
{
Top10Array[i]=[parseInt(agent_array[3]),agent_array[0],agent_array[1]];
}
TimeArray[i]=agent_array[4];
if (report_type.match(regRPTtype) || report_type=="status_performance_total") // If the cumulative floor report, use the last entries from the TotalCall and TotalSale above (m
{
TotalTime=parseInt(agent_array[4]);
}
else
{
TotalTime+=parseInt(agent_array[4]);
}
ConvRateArray[i]=agent_array[5];
CPHArray[i]=agent_array[6];
SPHArray[i]=agent_array[7];
TotalCallCountArray[i]=agent_array[8]; TotalCallCount=agent_array[8];
TotalSaleCountArray[i]=agent_array[9]; TotalSaleCount=agent_array[9];
alert_text=agent_array[10];
TPAArray[i]=target_per_agent;
TGArray[i]=target_gross;
}
Top10Array.sort(sortFunction);
}
var Top10HTMLChart="<div class='border2px round_corners sm_shadow alt_row1' align='center'><table cellpadding='8' valign='top'>";
Top10HTMLChart+="<tr>";
Top10HTMLChart+="<th colspan='3'><font class='android_large'><?php echo _QXZ("TOP 10 PERFORMERS"); ?></font></th>";
Top10HTMLChart+="<td align='right'><input type='button' class='red_btn sm_shadow' style='width:20px;height:20px' value='X' onClick=\"ToggleVisibility('top_10_display'); ToggleVisibility('graph_display');\"></td>";
Top10HTMLChart+="</tr>";
Top10HTMLChart+="<tr>";
Top10HTMLChart+="<th class='android_standard'><?php echo _QXZ("RANK"); ?></th>";
Top10HTMLChart+="<th class='android_standard'><?php echo _QXZ("NAME"); ?></th>";
Top10HTMLChart+="<th></th>";
Top10HTMLChart+="</tr>";
var breakloop="no";
var prev_ranking=0;
for (var i = 0; i < arrayLength; i++)
{
var trClass="std_row"+((i%2)+1);
if (i>0 && Top10Array[i][0]==Top10Array[(i-1)][0])
{
var ranking=prev_ranking+" (tie)";
}
else
{
var ranking=(i+1);
prev_ranking=ranking;
if (i>=10) {breakloop="yes";}
}
if (breakloop=="no")
{
Top10HTMLChart+="<tr class='"+trClass+" android_small'>";
Top10HTMLChart+="<td align='right'><B>"+ranking+".</B></td>";
Top10HTMLChart+="<td align='left'><B>"+Top10Array[i][1];
if (typeof Top10Array[i][2] !== "undefined" && report_type!="status_performance_total") {Top10HTMLChart+=" - "+Top10Array[i][2];}
Top10HTMLChart+="</B></td>";
Top10HTMLChart+="<td align='center' colspan='2'><B>"+Top10Array[i][0];
if (report_type.match(regRPTrates)) {Top10HTMLChart+=" %";} // Irritating, but necessary.
Top10HTMLChart+="</B></td>";
Top10HTMLChart+="</tr>";
}
else
{
i=arrayLength;
}
}
Top10HTMLChart+="<tr>";
Top10HTMLChart+="<th colspan='4'><input type='button' class='green_btn sm_shadow round_corners' style='width:250px' value='<?php echo _QXZ("SHOW PERFORMANCE CHART"); ?>' onClick=\"ToggleVisibility('top_10_display'); ToggleVisibility('graph_display');\"></th>";
Top10HTMLChart+="</tr>";
Top10HTMLChart+="</table><BR><BR></div>";
document.getElementById("top_10_display").innerHTML=Top10HTMLChart;
var TotalCPH=TotalCallCount/(TotalTime/3600);
var TotalSPH=TotalSaleCount/(TotalTime/3600);
var TotalConvRate=(TotalSaleCount/TotalCallCount)*100;
var TotalHours = Math.floor(TotalTime / 3600);
TotalTime = TotalTime - TotalHours * 3600;
var TotalMinutes = Math.floor(TotalTime / 60);
var TotalSeconds = TotalTime - TotalMinutes * 60;
TotalMinutes="0"+TotalMinutes;
TotalSeconds="0"+TotalSeconds;
if (response_txt && response_txt=="<?php echo _QXZ("REPORT RETURNED NO RESULTS"); ?>") {
document.getElementById("total_calls_div").innerHTML="** <?php echo _QXZ("NO RESULTS"); ?> **";
document.getElementById("total_sales_div").innerHTML="** <?php echo _QXZ("NO RESULTS"); ?> **";
document.getElementById("total_time_div").innerHTML="** <?php echo _QXZ("NO RESULTS"); ?> **";
document.getElementById("total_cph_div").innerHTML="** <?php echo _QXZ("NO RESULTS"); ?> **";
document.getElementById("total_sph_div").innerHTML="** <?php echo _QXZ("NO RESULTS"); ?> **";
document.getElementById("total_conv_div").innerHTML="** <?php echo _QXZ("NO RESULTS"); ?> **";
} else {
document.getElementById("total_calls_div").innerHTML=TotalCallCount;
document.getElementById("total_sales_div").innerHTML=TotalSaleCount;
document.getElementById("total_time_div").innerHTML=TotalHours+":"+TotalMinutes.slice(-2)+":"+TotalSeconds.slice(-2);
document.getElementById("total_cph_div").innerHTML=Math.round(TotalCPH*100)/100;
document.getElementById("total_sph_div").innerHTML=Math.round(TotalSPH*100)/100;
document.getElementById("total_conv_div").innerHTML=Math.round(TotalConvRate*100)/100+"%";
}
// document.getElementById("totals_span").innerHTML='';
// document.getElementById("parameters_span").innerHTML=response_txt;
var label_title=query_date+" "+query_time;
var hide_total="true";
var hide_rates="true";
var graph_type='bar';
if (LabelArray) { // Seems to return 3 times above. Dunno why
if (report_type.match(regRPTtotal)) {hide_total="false";}
if (report_type.match(regRPTrates)) {hide_rates="false";}
if (report_type.match(regRPTtype)) {graph_type='line';}
if (LabelArray.length!=LabelArray_holder.length) {
if (MainGraph)
{
MainGraph.destroy();
}
if (report_type.match(regRPTtype))
{
MainGraph=new Chart(main_canvas, {
type: graph_type,
// options: { elements: { point: { radius: 0 } } }, // no dots
data: {
datasets: [
{label: '<?php echo _QXZ("Total calls"); ?>', data: TotalCallCountArray, backgroundColor: "rgba(153,153,255,0.5)", hidden: hide_total}, // dataset 0, see below
{label: '<?php echo _QXZ("Total sales"); ?>', data: TotalSaleCountArray, backgroundColor: "rgba(255,153,153,0.5)", hidden: hide_total}, // dataset 1, see below
{label: '<?php echo _QXZ("Calls per hour"); ?>', data: CPHArray, backgroundColor: "rgba(255,255,0,0.5)", hidden: hide_rates}, // dataset 2, see below
{label: '<?php echo _QXZ("Sales per hour"); ?>', data: SPHArray, backgroundColor: "rgba(153,255,153,0.5)", hidden: hide_rates}, // dataset 3, see below
{label: '<?php echo _QXZ("Conversion rate %"); ?>', data: ConvRateArray, backgroundColor: "rgba(255,153,255,0.5)", hidden: hide_rates}, // dataset 4, see below
{label: '<?php echo _QXZ("Target gross"); ?>', data: TGArray, type: 'line', pointRadius: 0, backgroundColor: "rgba(153,255,255,0.5)", hidden: hide_total} // dataset 5, see below
],
labels: LabelArray
}
});
if (report_type.match(regRPTtotal))
{
if (!ChartsHidden)
{
ChartsHidden="false|false|true|true|true|false";
}
var hidden_array=ChartsHidden.split("|");
MainGraph.data.datasets[0].hidden=(hidden_array[0] == 'true');
MainGraph.data.datasets[1].hidden=(hidden_array[1] == 'true');
MainGraph.data.datasets[2].hidden=(hidden_array[2] == 'true');
MainGraph.data.datasets[3].hidden=(hidden_array[3] == 'true');
MainGraph.data.datasets[4].hidden=(hidden_array[4] == 'true');
MainGraph.data.datasets[5].hidden=(hidden_array[5] == 'true');
MainGraph.update();
}
if (report_type.match(regRPTrates))
{
if (!ChartsHidden)
{
ChartsHidden="true|true|false|false|false|true";
}
var hidden_array=ChartsHidden.split("|");
MainGraph.data.datasets[0].hidden=(hidden_array[0] == 'true');
MainGraph.data.datasets[1].hidden=(hidden_array[1] == 'true');
MainGraph.data.datasets[2].hidden=(hidden_array[2] == 'true');
MainGraph.data.datasets[3].hidden=(hidden_array[3] == 'true');
MainGraph.data.datasets[4].hidden=(hidden_array[4] == 'true');
MainGraph.data.datasets[5].hidden=(hidden_array[5] == 'true');
MainGraph.update();
}
}
else
{
MainGraph=new Chart(main_canvas, {
type: 'bar',
// options: { elements: { point: { radius: 0 } } }, // no dots
data: {
datasets: [
{label: '<?php echo _QXZ("Total calls"); ?>', data: CallCountArray, backgroundColor: "rgba(153,153,255,0.5)", hidden: false}, // dataset 0, see below
{label: '<?php echo _QXZ("Total sales"); ?>', data: SaleCountArray, backgroundColor: "rgba(255,153,153,0.5)", hidden: false}, // dataset 1, see below
{label: '<?php echo _QXZ("Sales per hour"); ?>', data: SPHArray, backgroundColor: "rgba(153,255,153,0.5)", hidden: false}, // dataset 2, see below
{label: '<?php echo _QXZ("Conversion rate %"); ?>', data: ConvRateArray, backgroundColor: "rgba(255,255,0,0.5)", hidden: false}, // dataset 3, see below
{label: '<?php echo _QXZ("Target per unit"); ?>', data: TPAArray, type: 'line', pointRadius: 0, backgroundColor: "rgba(153,255,255,0.5)", hidden: false} // dataset 4, see below
],
labels: LabelArray
},
options: {
scales:{
xAxes: [{
stacked: true
}],
}
}
});
if (report_type.match(regRPTtotal))
{
if (!ChartsHidden)
{
ChartsHidden="false|false|true|true|false";
}
var hidden_array=ChartsHidden.split("|");
MainGraph.data.datasets[0].hidden=(hidden_array[0] == 'true');
MainGraph.data.datasets[1].hidden=(hidden_array[1] == 'true');
MainGraph.data.datasets[2].hidden=(hidden_array[2] == 'true');
MainGraph.data.datasets[3].hidden=(hidden_array[3] == 'true');
MainGraph.data.datasets[4].hidden=(hidden_array[4] == 'true');
MainGraph.update();
}
if (report_type.match(regRPTrates))
{
if (!ChartsHidden)
{
ChartsHidden="true|true|false|false|true";
}
var hidden_array=ChartsHidden.split("|");
MainGraph.data.datasets[0].hidden=(hidden_array[0] == 'true');
MainGraph.data.datasets[1].hidden=(hidden_array[1] == 'true');
MainGraph.data.datasets[2].hidden=(hidden_array[2] == 'true');
MainGraph.data.datasets[3].hidden=(hidden_array[3] == 'true');
MainGraph.data.datasets[4].hidden=(hidden_array[4] == 'true');
MainGraph.update();
}
}
} else {
var update_graph_flag=0;
for (var j=0; j<LabelArray.length; j++) {
if (report_type.match(regRPTtype))
{
if (TotalCallCountArray[j]!=TotalCallCountArray_holder[j])
{
MainGraph.data.datasets[0].data[j]=TotalCallCountArray[j];
update_graph_flag++;
}
if (TotalSaleCountArray[j]!=TotalSaleCountArray_holder[j])
{
MainGraph.data.datasets[1].data[j]=TotalSaleCountArray[j];
update_graph_flag++;
}
if (CPHArray[j]!=CPHArray_holder[j])
{
MainGraph.data.datasets[2].data[j]=CPHArray[j];
update_graph_flag++;
}
if (SPHArray[j]!=SPHArray_holder[j])
{
MainGraph.data.datasets[3].data[j]=SPHArray[j];
update_graph_flag++;
}
if (ConvRateArray[j]!=ConvRateArray_holder[j])
{
MainGraph.data.datasets[4].data[j]=ConvRateArray[j];
update_graph_flag++;
}
if (TGArray[j]!=TGArray_holder[j])
{
MainGraph.data.datasets[5].data[j]=TGArray[j];
update_graph_flag++;
}
}
else
{
if (CallCountArray[j]!=CallCountArray_holder[j])
{
MainGraph.data.datasets[0].data[j]=CallCountArray[j];
update_graph_flag++;
}
if (SaleCountArray[j]!=SaleCountArray_holder[j])
{
MainGraph.data.datasets[1].data[j]=SaleCountArray[j];
update_graph_flag++;
}
if (SPHArray[j]!=SPHArray_holder[j])
{
MainGraph.data.datasets[2].data[j]=SPHArray[j];
update_graph_flag++;
}
if (ConvRateArray[j]!=ConvRateArray_holder[j])
{
MainGraph.data.datasets[3].data[j]=ConvRateArray[j];
update_graph_flag++;
}
if (TPAArray[j]!=TPAArray_holder[j])
{
MainGraph.data.datasets[4].data[j]=TPAArray[j];
update_graph_flag++;
}
}
}
if (update_graph_flag>0)
{
MainGraph.update();
}
}
var hidden_charts="";
for (var j=0; j<MainGraph.data.datasets.length; j++)
{
hidden_charts+=(!MainGraph.isDatasetVisible(j))+"|";
}
ChartsHidden=hidden_charts.replace(regRPTpipe, '');
document.getElementById("hidden_display").value=ChartsHidden;
LabelArray_holder=LabelArray;
CallCountArray_holder=CallCountArray;
SaleCountArray_holder=SaleCountArray;
TotalCallCountArray_holder=TotalCallCountArray;
TotalSaleCountArray_holder=TotalSaleCountArray;
TimeArray_holder=TimeArray;
ConvRateArray_holder=ConvRateArray;
CPHArray_holder=CPHArray;
SPHArray_holder=SPHArray;
TPAArray_holder=TPAArray;
TGArray_holder=TGArray;
// document.getElementById("canvas_message").innerHTML="URL: "+rpt_query+"<BR>\n";
// document.getElementById("canvas_message").innerHTML+="Hide total: "+hide_total+"<BR>\n";
// document.getElementById("canvas_message").innerHTML+="Hide rates: "+hide_rates+"<BR>\n";
// document.getElementById("canvas_message").innerHTML+="Graph type: "+graph_type+"<BR>\n";
// document.getElementById("canvas_message").innerHTML+="Target per agent: "+graph_type+"<BR>\n";
// document.getElementById("canvas_message").innerHTML+="Result: "+response_txt+"<BR>\n";
}
// MainGraph.update();
}
document.getElementById("loading_display").style.display="none";
/*
myLineChart.destroy();
myLineChart.data.datasets[0].data[2] = 50; // Would update the first dataset's value of 'March' to be 50
myLineChart.update(); // Calling update now animates the position of March from 90 to 50.
var mixedChart = new Chart(ctx, {
type: 'bar',
data: {
datasets: [{
label: 'Bar Dataset',
data: [10, 20, 30, 40]
}, {
label: 'Line Dataset',
data: [50, 50, 50, 50],
// Changes this dataset to become a line
type: 'line'
}],
labels: ['January', 'February', 'March', 'April']
},
options: options
});
*/
delete xmlhttp;
}
}