From 465a1fba3ae0ccbd44cfcb4d3d9f15b1fff7a02d Mon Sep 17 00:00:00 2001 From: mattf Date: Sun, 13 Nov 2016 16:01:30 +0000 Subject: [PATCH] Changed script_id to 20 characters max, other small script changes git-svn-id: svn://192.168.202.10@2617 3d104415-ff17-0410-8863-d5cf3c621b8a --- .../trunk/extras/MySQL_AST_CREATE_tables.sql | 20 +- agc_2-X/trunk/extras/upgrade_2.12.sql | 18 + .../trunk/www/agc/vdc_soundboard_display.php | 693 +++++++++++++----- agc_2-X/trunk/www/vicidial/admin.php | 46 +- .../trunk/www/vicidial/admin_soundboard.php | 338 +++++++-- agc_2-X/trunk/www/vicidial/help.php | 2 +- 6 files changed, 864 insertions(+), 253 deletions(-) diff --git a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql index 976d2bf8..6850cdfe 100644 --- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql +++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql @@ -739,7 +739,7 @@ campaign_vdad_exten VARCHAR(20) default '8368', campaign_rec_exten VARCHAR(20) default '8309', campaign_recording ENUM('NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'ONDEMAND', campaign_rec_filename VARCHAR(50) default 'FULLDATE_CUSTPHONE', -campaign_script VARCHAR(10), +campaign_script VARCHAR(20), get_call_launch ENUM('NONE','SCRIPT','WEBFORM','WEBFORMTWO','WEBFORMTHREE','FORM') default 'NONE', am_message_exten VARCHAR(100) default 'vm-goodbye', amd_send_to_vmx ENUM('Y','N') default 'N', @@ -792,7 +792,7 @@ qc_shift_id VARCHAR(20) default '24HRMIDNIGHT', qc_get_record_launch ENUM('NONE','SCRIPT','WEBFORM','QCSCRIPT','QCWEBFORM') default 'NONE', qc_show_recording ENUM('Y','N') default 'Y', qc_web_form_address VARCHAR(255), -qc_script VARCHAR(10), +qc_script VARCHAR(20), survey_first_audio_file VARCHAR(50) default 'US_pol_survey_hello', survey_dtmf_digits VARCHAR(16) default '1238', survey_ni_digit VARCHAR(1) default '8', @@ -978,7 +978,7 @@ list_description VARCHAR(255), list_changedate DATETIME, list_lastcalldate DATETIME, reset_time VARCHAR(100) default '', -agent_script_override VARCHAR(10) default '', +agent_script_override VARCHAR(20) default '', campaign_cid_override VARCHAR(20) default '', am_message_exten_override VARCHAR(100) default '', drop_inbound_group_override VARCHAR(20) default '', @@ -1077,7 +1077,7 @@ web_form_address TEXT, voicemail_ext VARCHAR(10), next_agent_call VARCHAR(30) default 'longest_wait_time', fronter_display ENUM('Y','N') default 'Y', -ingroup_script VARCHAR(10), +ingroup_script VARCHAR(20), get_call_launch ENUM('NONE','SCRIPT','WEBFORM','WEBFORMTWO','WEBFORMTHREE','FORM','EMAIL') default 'NONE', xferconf_a_dtmf VARCHAR(50), xferconf_a_number VARCHAR(50), @@ -1109,7 +1109,7 @@ qc_shift_id VARCHAR(20) default '24HRMIDNIGHT', qc_get_record_launch ENUM('NONE','SCRIPT','WEBFORM','QCSCRIPT','QCWEBFORM') default 'NONE', qc_show_recording ENUM('Y','N') default 'Y', qc_web_form_address VARCHAR(255), -qc_script VARCHAR(10), +qc_script VARCHAR(20), play_place_in_line ENUM('Y','N') default 'N', play_estimate_hold_time ENUM('Y','N') default 'N', hold_time_option VARCHAR(30) default 'NONE', @@ -1302,7 +1302,7 @@ index (event_time) ) ENGINE=MyISAM; CREATE TABLE vicidial_scripts ( -script_id VARCHAR(10) PRIMARY KEY NOT NULL, +script_id VARCHAR(20) PRIMARY KEY NOT NULL, script_name VARCHAR(50), script_comments VARCHAR(255), script_text TEXT, @@ -3178,7 +3178,9 @@ avatar_api_pass VARCHAR(20) default '', active ENUM('Y','N') default 'Y', audio_functions VARCHAR(100) default 'PLAY-STOP-RESTART', audio_display VARCHAR(100) default 'FILE-NAME', -user_group VARCHAR(20) default '---ALL---' +user_group VARCHAR(20) default '---ALL---', +soundboard_layout VARCHAR(40) default 'default', +columns_limit SMALLINT(5) default '5' ) ENGINE=MyISAM; CREATE TABLE vicidial_avatar_audio ( @@ -3190,6 +3192,8 @@ h_ord SMALLINT(5) default '1', level SMALLINT(5) default '1', parent_audio_filename VARCHAR(255) default '', parent_rank VARCHAR(2) default '', +button_type VARCHAR(40) default 'button', +font_size VARCHAR(3) default '2', index (avatar_id) ) ENGINE=MyISAM; @@ -3811,4 +3815,4 @@ UPDATE vicidial_configuration set value='1766' where name='qc_database_version'; UPDATE system_settings set vdc_agent_api_active='1'; -UPDATE system_settings SET db_schema_version='1476',db_schema_update_date=NOW(),reload_timestamp=NOW(); +UPDATE system_settings SET db_schema_version='1477',db_schema_update_date=NOW(),reload_timestamp=NOW(); diff --git a/agc_2-X/trunk/extras/upgrade_2.12.sql b/agc_2-X/trunk/extras/upgrade_2.12.sql index 690e8f3d..4b60e090 100644 --- a/agc_2-X/trunk/extras/upgrade_2.12.sql +++ b/agc_2-X/trunk/extras/upgrade_2.12.sql @@ -745,3 +745,21 @@ ALTER TABLE system_settings ADD agent_script VARCHAR(50) default 'vicidial.php'; INSERT INTO vicidial_screen_colors VALUES ('default_grey_agent','default grey agent','Y','FFFFFF','cccccc','E6E6E6','E6E6E6','E6E6E6','E6E6E6','E6E6E6','E6E6E6','E6E6E6','E6E6E6','---ALL---','DEFAULTAGENT.png'); UPDATE system_settings SET db_schema_version='1476',db_schema_update_date=NOW() where db_schema_version < 1476; + +ALTER TABLE vicidial_avatars ADD soundboard_layout VARCHAR(40) default 'default'; +ALTER TABLE vicidial_avatars ADD columns_limit SMALLINT(5) default '5'; + +ALTER TABLE vicidial_avatar_audio ADD button_type VARCHAR(40) default 'button'; +ALTER TABLE vicidial_avatar_audio ADD font_size VARCHAR(3) default '2'; + +ALTER TABLE vicidial_scripts MODIFY script_id VARCHAR(20) NOT NULL; + +ALTER TABLE vicidial_campaigns MODIFY campaign_script VARCHAR(20); +ALTER TABLE vicidial_campaigns MODIFY qc_script VARCHAR(20); + +ALTER TABLE vicidial_lists MODIFY agent_script_override VARCHAR(20) default ''; + +ALTER TABLE vicidial_inbound_groups MODIFY ingroup_script VARCHAR(20); +ALTER TABLE vicidial_inbound_groups MODIFY qc_script VARCHAR(20); + +UPDATE system_settings SET db_schema_version='1477',db_schema_update_date=NOW() where db_schema_version < 1477; diff --git a/agc_2-X/trunk/www/agc/vdc_soundboard_display.php b/agc_2-X/trunk/www/agc/vdc_soundboard_display.php index 787d2639..f13e5f56 100644 --- a/agc_2-X/trunk/www/agc/vdc_soundboard_display.php +++ b/agc_2-X/trunk/www/agc/vdc_soundboard_display.php @@ -11,10 +11,11 @@ # 141216-2135 - Added language settings lookups and user/pass variable standardization # 160428-1848 - Fix for user_authorization # 161103-1656 - Added Agent Debug Logging +# 161111-1647 - Added HIDENUMBERS display option, Font size, button type and layout options # -$version = '2.12-5'; -$build = '161103-1656'; +$version = '2.12-6'; +$build = '161111-1647'; require_once("dbconnect_mysqli.php"); require_once("functions.php"); @@ -109,12 +110,15 @@ if ($qm_conf_ct > 0) if ($non_latin < 1) { $user=preg_replace("/[^-_0-9a-zA-Z]/","",$user); + $pass=preg_replace("/[^-_0-9a-zA-Z]/","",$pass); $soundboard_id=preg_replace("/[^-_0-9a-zA-Z]/","",$soundboard_id); $avatar_id=preg_replace("/[^-_0-9a-zA-Z]/","",$avatar_id); $session_name=preg_replace("/[^-_0-9a-zA-Z]/","",$session_name); } else { + $user=preg_replace("/\'|\"|\\\\|;| /","",$user); + $pass=preg_replace("/\'|\"|\\\\|;| /","",$pass); $soundboard_id=preg_replace("/\'|\"|\\\\|;| /","",$soundboard_id); $avatar_id=preg_replace("/\'|\"|\\\\|;| /","",$avatar_id); $session_name=preg_replace("/[^-_0-9a-zA-Z]/","",$session_name); @@ -167,7 +171,7 @@ else # do nothing for now } -$stmt="SELECT avatar_id,avatar_name,avatar_notes,avatar_api_user,avatar_api_pass,active,audio_functions,user_group,audio_display from vicidial_avatars where avatar_id='$soundboard_id' and active='Y';"; +$stmt="SELECT avatar_id,avatar_name,avatar_notes,avatar_api_user,avatar_api_pass,active,audio_functions,user_group,audio_display,soundboard_layout,columns_limit from vicidial_avatars where avatar_id='$soundboard_id' and active='Y';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $soundboard_ct = mysqli_num_rows($rslt); @@ -183,6 +187,8 @@ if ($soundboard_ct > 0) $audio_functions = $row[6]; $user_group = $row[7]; $audio_display = $row[8]; + $soundboard_layout = $row[9]; + $columns_limit = $row[10]; } else { @@ -508,9 +514,10 @@ echo "\n"; echo "
\n"; echo "\n"; echo "\n"; +echo "\n"; ##### get files listing for display -$stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='1' order by rank,h_ord;"; +$stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord,button_type,font_size from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='1' order by rank,h_ord;"; if ($DB) {echo "$stmt\n";} $rsltx=mysql_to_mysqli($stmt, $link); $soundboardfiles_to_print = mysqli_num_rows($rsltx); @@ -528,6 +535,14 @@ while ($soundboardfiles_to_print > $o) $Aparent_audio_filename[$o] = $rowx[4]; $Aparent_rank[$o] = $rowx[5]; $Ah_ord[$o] = $rowx[6]; + $Abutton_type[$o] = $rowx[7]; + $Afont_size[$o] = $rowx[8]; + $Abold_start[$o]=''; $Abold_end[$o]=''; + if (preg_match("/B/",$Afont_size[$o])) + {$Abold_start[$o]=''; $Abold_end[$o]=''; $Afont_size[$o] = preg_replace("/B/",'',$Afont_size[$o]);} + $Aitalic_start[$o]=''; $Aitalic_end[$o]=''; + if (preg_match("/I/",$Afont_size[$o])) + {$Aitalic_start[$o]=''; $Aitalic_end[$o]=''; $Afont_size[$o] = preg_replace("/I/",'',$Afont_size[$o]);} if ($o == 0) { $Uranks[$ranks] = $Arank[$o]; @@ -583,216 +598,562 @@ while($o < $ranks) if ($DB > 0) {echo _QXZ("Max rank count").": $rank_max_count
\n";} -echo "
\n"; -echo ""; -echo ""; -if (preg_match("/STOP/",$audio_functions)) - {echo "";} -else - {echo "";} -echo ""; -echo "
$avatar_name"._QXZ("stop audio")."          
\n"; -echo "\n"; -### generate display tables -$o=0; -while ($soundboardfiles_to_print > $o) + + + + + + + +if ($soundboard_layout == 'columns01') { - $ro = ($o + 1); - $display_button=''; - if (preg_match("/FILE/",$audio_display)) - {$display_button .= " $Aaudio_filename[$o]";} - if (preg_match("/NAME/",$audio_display)) - { - if (strlen($display_button) > 1) - {$display_button .= " - ";} - $display_button .= " $Aaudio_name[$o]"; - } + ##### BEGIN columns01 layout ##### + echo "
\n"; + echo ""; + echo ""; + if (preg_match("/STOP/",$audio_functions)) + {echo "";} + else + {echo "";} + echo ""; + echo "
$avatar_name"._QXZ("stop audio")."          
\n"; + echo "\n"; + echo "\n"; - $rc=0; - $rc_found=0; - $Rcolspan=1; - $tr_begin=''; - $tr_end=''; - - while($rc < $ranks) + ### generate display tables + $o=0; $columns=0; $row_count=0; $head_span_count=0; + while ($soundboardfiles_to_print > $o) { - if ($Arank[$o] == $Uranks[$rc]) + $temp_col_limit = ($columns_limit - $head_span_count); + if ( ( ($columns >= $columns_limit) and ($row_count < 1) ) or ( ($row_count > 0) and ($columns >= $temp_col_limit) ) ) { - if ($Rtally[$rc] == '0') + echo "\n"; + if ($row_count > 0) {$head_span_count=0;} + $columns=0; + $row_count++; + } + $head_span=''; + if ($Abutton_type[$o] == 'head2r') + {$head_span = " rowspan=3"; $head_span_count++;} + echo "\n"; + $o++; + $columns++; + } + echo "\n"; + ##### END columns01 layout ##### + } - $audio_length=0; - $stmt="SELECT audio_length from audio_store_details where audio_filename IN('$Caudio_filename[$Co]$wav','$Caudio_filename[$Co]$gsm') order by audio_length desc limit 1;"; + + + + + + + + + + +else + { + ##### BEGIN default layout ##### + echo "
 
\n"; + $ro = ($o + 1); + $display_button=''; + if (preg_match("/FILE/",$audio_display)) + {$display_button .= " $Aaudio_filename[$o]";} + if (preg_match("/NAME/",$audio_display)) + { + if (strlen($display_button) > 1) + {$display_button .= " - ";} + $display_button .= " $Aaudio_name[$o]"; + } + $count_display="$ro. "; + if (preg_match("/HIDENUMBERS/",$audio_display)) + {$count_display = '';} + + $rc=0; + $rc_found=0; + $Rcolspan=1; + $tr_begin=''; + $tr_end=''; + + while($rc < $ranks) + { + if ($Arank[$o] == $Uranks[$rc]) { - $tr_begin=''; - } - if ($Rcount[$rc] == '1') - { - $Rcolspan = ($rank_max_count + 1); - $tr_end=''; - } - else - { - $Rtally[$rc]++; - if ($Rtally[$rc] == 1) - {$Rcolspan=2;} - else - {$Rcolspan=1;} - if ($Rcount[$rc] == $Rtally[$rc]) + if ($Rtally[$rc] == '0') { - $Rdiff = ($rank_max_count - $Rtally[$rc]); - $Rcolspan = ($Rcolspan + $Rdiff); + $tr_begin=''; + } + if ($Rcount[$rc] == '1') + { + $Rcolspan = ($rank_max_count + 1); $tr_end=''; } + else + { + $Rtally[$rc]++; + if ($Rtally[$rc] == 1) + {$Rcolspan=2;} + else + {$Rcolspan=1;} + if ($Rcount[$rc] == $Rtally[$rc]) + { + $Rdiff = ($rank_max_count - $Rtally[$rc]); + $Rcolspan = ($Rcolspan + $Rdiff); + $tr_end=''; + } + } } + $rc++; } - $rc++; - } - $audio_length=0; - $stmt="SELECT audio_length from audio_store_details where audio_filename IN('$Aaudio_filename[$o]$wav','$Aaudio_filename[$o]$gsm') order by audio_length desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslty=mysql_to_mysqli($stmt, $link); - $al_ct = mysqli_num_rows($rslty); - if ($al_ct > 0) - { - $rowD=mysqli_fetch_row($rslty); - $audio_length = $rowD[0]; - if ($audio_length < 1) - {$audio_length = '1';} - } - - echo "$tr_begin"; - echo "$tr_end\n"; - - if (strlen($tr_end)>4) - { - $stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='2' and parent_rank='$Arank[$o]' order by parent_audio_filename,rank,h_ord;"; - # and parent_audio_filename='$Aaudio_filename[$o]' removed for multi-entries per line + $audio_length=0; + $stmt="SELECT audio_length from audio_store_details where audio_filename IN('$Aaudio_filename[$o]$wav','$Aaudio_filename[$o]$gsm') order by audio_length desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslty=mysql_to_mysqli($stmt, $link); - $Csoundboardfiles_to_print = mysqli_num_rows($rslty); - $Clevels = 2; - $Cranks=0; - $Crank_max_count=0; - $Co=0; - while ($Csoundboardfiles_to_print > $Co) + $al_ct = mysqli_num_rows($rslty); + if ($al_ct > 0) { - $rowC=mysqli_fetch_row($rslty); - $Caudio_filename[$Co] = $rowC[0]; - $Caudio_name[$Co] = $rowC[1]; - $Crank[$Co] = $rowC[2]; - $Clevel[$Co] = $rowC[3]; - $Cparent_audio_filename[$Co] = $rowC[4]; - $Cparent_rank[$Co] = $rowC[5]; - $Ch_ord[$Co] = $rowC[6]; - if ($Co == 0) + $rowD=mysqli_fetch_row($rslty); + $audio_length = $rowD[0]; + if ($audio_length < 1) + {$audio_length = '1';} + } + + if ( ($Abutton_type[$o] == 'header') or ($Abutton_type[$o] == 'head2r') ) + { + echo "$tr_begin"; + echo "$tr_end\n"; + } + else + { + if ($Abutton_type[$o] == 'space') { - $CUranks[$Cranks] = $Crank[$Co]; - $CRcount[$Cranks]=1; - $Crank_max_count=1; - $Cranks++; + echo "$tr_begin"; + echo "$tr_end\n"; } else { + echo "$tr_begin"; + echo "$tr_end\n"; + } + } + + if (strlen($tr_end)>4) + { + $stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord,button_type,font_size from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='2' and parent_rank='$Arank[$o]' order by parent_audio_filename,rank,h_ord;"; + # and parent_audio_filename='$Aaudio_filename[$o]' removed for multi-entries per line + if ($DB) {echo "$stmt\n";} + $rslty=mysql_to_mysqli($stmt, $link); + $Csoundboardfiles_to_print = mysqli_num_rows($rslty); + $Clevels = 2; + $Cranks=0; + $Crank_max_count=0; + $Co=0; + while ($Csoundboardfiles_to_print > $Co) + { + $rowC=mysqli_fetch_row($rslty); + $Caudio_filename[$Co] = $rowC[0]; + $Caudio_name[$Co] = $rowC[1]; + $Crank[$Co] = $rowC[2]; + $Clevel[$Co] = $rowC[3]; + $Cparent_audio_filename[$Co] = $rowC[4]; + $Cparent_rank[$Co] = $rowC[5]; + $Ch_ord[$Co] = $rowC[6]; + $Cbutton_type[$Co] = $rowC[7]; + $Cfont_size[$Co] = $rowC[8]; + $Cbold_start[$Co]=''; $Cbold_end[$Co]=''; + if (preg_match("/B/",$Cfont_size[$Co])) + {$Cbold_start[$Co]=''; $Cbold_end[$Co]=''; $Cfont_size[$Co] = preg_replace("/B/",'',$Cfont_size[$Co]);} + $Citalic_start[$Co]=''; $Citalic_end[$Co]=''; + if (preg_match("/I/",$Cfont_size[$Co])) + {$Citalic_start[$Co]=''; $Citalic_end[$Co]=''; $Cfont_size[$Co] = preg_replace("/B/",'',$Cfont_size[$Co]);} + if ($Co == 0) + { + $CUranks[$Cranks] = $Crank[$Co]; + $CRcount[$Cranks]=1; + $Crank_max_count=1; + $Cranks++; + } + else + { + $rc=0; + $rc_found=0; + while($rc < $Cranks) + { + if ($Crank[$Co] == $CUranks[$rc]) + { + $CRcount[$rc]++; + if ($Crank_max_count < $CRcount[$rc]) + {$Crank_max_count = $CRcount[$rc];} + $rc_found++; + } + $rc++; + } + if ($rc_found < 1) + { + $CUranks[$Cranks] = $Crank[$Co]; + $CRcount[$Cranks]=1; + $Cranks++; + } + } + $Co++; + } + + ### count number of entries for each unique rank + $Co=0; + while($Co < $Cranks) + { + $CRtally[$Co]=0; + if ($DB > 0) {echo "$CUranks[$Co] - $CRcount[$Co] - $Cranks - $Crank_max_count
\n";} + $Co++; + } + if ($DB > 0) {echo _QXZ("Max rank count").": $Crank_max_count
\n";} + + $Co=0; + while ($Csoundboardfiles_to_print > $Co) + { + $ro = ($Co + 1); + $display_button=''; + if (preg_match("/FILE/",$audio_display)) + {$display_button .= " $Caudio_filename[$Co]";} + if (preg_match("/NAME/",$audio_display)) + { + if (strlen($display_button) > 1) + {$display_button .= " - ";} + $display_button .= " $Caudio_name[$Co]"; + } + $count_display="$ro. "; + if (preg_match("/HIDENUMBERS/",$audio_display)) + {$count_display = '';} + $rc=0; $rc_found=0; + $CRcolspan=1; + $tr_begin=''; + $tr_end=''; + while($rc < $Cranks) { if ($Crank[$Co] == $CUranks[$rc]) { - $CRcount[$rc]++; - if ($Crank_max_count < $CRcount[$rc]) - {$Crank_max_count = $CRcount[$rc];} - $rc_found++; + if ($CRtally[$rc] == '0') + { + $tr_begin=''; + } + if ($CRcount[$rc] == '1') + { + $CRcolspan = $rank_max_count; + $tr_end=''; + } + else + { + $CRtally[$rc]++; + $CRcolspan=1; + if ($CRcount[$rc] == $CRtally[$rc]) + { + $CRdiff = ($rank_max_count - $CRtally[$rc]); + $CRcolspan = ($CRcolspan + $CRdiff); + $tr_end=''; + } + } } $rc++; } - if ($rc_found < 1) + + $audio_length=0; + $stmt="SELECT audio_length from audio_store_details where audio_filename IN('$Caudio_filename[$Co]$wav','$Caudio_filename[$Co]$gsm') order by audio_length desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslty=mysql_to_mysqli($stmt, $link); + $al_ct = mysqli_num_rows($rslty); + if ($al_ct > 0) { - $CUranks[$Cranks] = $Crank[$Co]; - $CRcount[$Cranks]=1; - $Cranks++; + $rowD=mysqli_fetch_row($rslty); + $audio_length = $rowD[0]; + if ($audio_length < 1) + {$audio_length = '1';} } - } - $Co++; - } - ### count number of entries for each unique rank - $Co=0; - while($Co < $Cranks) - { - $CRtally[$Co]=0; - if ($DB > 0) {echo "$CUranks[$Co] - $CRcount[$Co] - $Cranks - $Crank_max_count
\n";} - $Co++; - } - if ($DB > 0) {echo _QXZ("Max rank count").": $Crank_max_count
\n";} - - $Co=0; - while ($Csoundboardfiles_to_print > $Co) - { - $ro = ($Co + 1); - $display_button=''; - if (preg_match("/FILE/",$audio_display)) - {$display_button .= " $Caudio_filename[$Co]";} - if (preg_match("/NAME/",$audio_display)) - { - if (strlen($display_button) > 1) - {$display_button .= " - ";} - $display_button .= " $Caudio_name[$Co]"; - } - - $rc=0; - $rc_found=0; - $CRcolspan=1; - $tr_begin=''; - $tr_end=''; - - while($rc < $Cranks) - { - if ($Crank[$Co] == $CUranks[$rc]) + if ( ($Cbutton_type[$Co] == 'header') or ($Cbutton_type[$Co] == 'head2r') ) { - if ($CRtally[$rc] == '0') + echo "$tr_begin"; + echo "$tr_end\n"; + } + else + { + if ($Cbutton_type[$Co] == 'space') { - $tr_begin=''; - } - if ($CRcount[$rc] == '1') - { - $CRcolspan = $rank_max_count; - $tr_end=''; + echo "$tr_begin"; + echo "$tr_end\n"; } else { - $CRtally[$rc]++; - $CRcolspan=1; - if ($CRcount[$rc] == $CRtally[$rc]) - { - $CRdiff = ($rank_max_count - $CRtally[$rc]); - $CRcolspan = ($CRcolspan + $CRdiff); - $tr_end=''; - } + echo "$tr_begin"; + echo "$tr_end\n"; } } - $rc++; + $Co++; } + } + echo "
$ro. $display_button$Abold_start[$o]$Aitalic_start[$o]   $count_display$Aaudio_name[$o]   $Aitalic_end[$o]$Abold_end[$o]$Abold_start[$o]$Aitalic_start[$o]   $Aitalic_end[$o]$Abold_end[$o]$Abold_start[$o]$Aitalic_start[$o]   $count_display$display_button   $Aitalic_end[$o]$Abold_end[$o]
 
$Cbold_start[$Co]$Citalic_start[$Co]   $count_display$Caudio_name[$Co]   $Citalic_end[$Co]$Cbold_end[$Co]
 
$Cbold_start[$Co]$Citalic_start[$Co]$count_display   $Citalic_end[$Co]$Cbold_end[$Co]
$Cbold_start[$Co]$Citalic_start[$Co]   $count_display$display_button   $Citalic_end[$Co]$Cbold_end[$Co]
\n"; + echo ""; + echo ""; + if (preg_match("/STOP/",$audio_functions)) + {echo "";} + else + {echo "";} + echo ""; + echo "
$avatar_name"._QXZ("stop audio")."          
\n"; + echo "\n"; + + ### generate display tables + $o=0; + while ($soundboardfiles_to_print > $o) + { + $ro = ($o + 1); + $display_button=''; + if (preg_match("/FILE/",$audio_display)) + {$display_button .= " $Aaudio_filename[$o]";} + if (preg_match("/NAME/",$audio_display)) + { + if (strlen($display_button) > 1) + {$display_button .= " - ";} + $display_button .= " $Aaudio_name[$o]"; + } + $count_display="$ro. "; + if (preg_match("/HIDENUMBERS/",$audio_display)) + {$count_display = '';} + + $rc=0; + $rc_found=0; + $Rcolspan=1; + $tr_begin=''; + $tr_end=''; + + while($rc < $ranks) + { + if ($Arank[$o] == $Uranks[$rc]) + { + if ($Rtally[$rc] == '0') + { + $tr_begin=''; + } + if ($Rcount[$rc] == '1') + { + $Rcolspan = ($rank_max_count + 1); + $tr_end=''; + } + else + { + $Rtally[$rc]++; + if ($Rtally[$rc] == 1) + {$Rcolspan=2;} + else + {$Rcolspan=1;} + if ($Rcount[$rc] == $Rtally[$rc]) + { + $Rdiff = ($rank_max_count - $Rtally[$rc]); + $Rcolspan = ($Rcolspan + $Rdiff); + $tr_end=''; + } + } + } + $rc++; + } + + $audio_length=0; + $stmt="SELECT audio_length from audio_store_details where audio_filename IN('$Aaudio_filename[$o]$wav','$Aaudio_filename[$o]$gsm') order by audio_length desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslty=mysql_to_mysqli($stmt, $link); + $al_ct = mysqli_num_rows($rslty); + if ($al_ct > 0) + { + $rowD=mysqli_fetch_row($rslty); + $audio_length = $rowD[0]; + if ($audio_length < 1) + {$audio_length = '1';} + } + + if ( ($Abutton_type[$o] == 'header') or ($Abutton_type[$o] == 'head2r') ) + { + echo "$tr_begin"; + echo "$tr_end\n"; + } + else + { + if ($Abutton_type[$o] == 'space') + { + echo "$tr_begin"; + echo "$tr_end\n"; + } + else + { + echo "$tr_begin"; + echo "$tr_end\n"; + } + } + + if (strlen($tr_end)>4) + { + $stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord,button_type,font_size from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='2' and parent_rank='$Arank[$o]' order by parent_audio_filename,rank,h_ord;"; + # and parent_audio_filename='$Aaudio_filename[$o]' removed for multi-entries per line if ($DB) {echo "$stmt\n";} $rslty=mysql_to_mysqli($stmt, $link); - $al_ct = mysqli_num_rows($rslty); - if ($al_ct > 0) + $Csoundboardfiles_to_print = mysqli_num_rows($rslty); + $Clevels = 2; + $Cranks=0; + $Crank_max_count=0; + $Co=0; + while ($Csoundboardfiles_to_print > $Co) { - $rowD=mysqli_fetch_row($rslty); - $audio_length = $rowD[0]; - if ($audio_length < 1) - {$audio_length = '1';} + $rowC=mysqli_fetch_row($rslty); + $Caudio_filename[$Co] = $rowC[0]; + $Caudio_name[$Co] = $rowC[1]; + $Crank[$Co] = $rowC[2]; + $Clevel[$Co] = $rowC[3]; + $Cparent_audio_filename[$Co] = $rowC[4]; + $Cparent_rank[$Co] = $rowC[5]; + $Ch_ord[$Co] = $rowC[6]; + $Cbutton_type[$Co] = $rowC[7]; + $Cfont_size[$Co] = $rowC[8]; + $Cbold_start[$Co]=''; $Cbold_end[$Co]=''; + if (preg_match("/B/",$Cfont_size[$Co])) + {$Cbold_start[$Co]=''; $Cbold_end[$Co]=''; $Cfont_size[$Co] = preg_replace("/B/",'',$Cfont_size[$Co]);} + $Citalic_start[$Co]=''; $Citalic_end[$Co]=''; + if (preg_match("/I/",$Cfont_size[$Co])) + {$Citalic_start[$Co]=''; $Citalic_end[$Co]=''; $Cfont_size[$Co] = preg_replace("/B/",'',$Cfont_size[$Co]);} + if ($Co == 0) + { + $CUranks[$Cranks] = $Crank[$Co]; + $CRcount[$Cranks]=1; + $Crank_max_count=1; + $Cranks++; + } + else + { + $rc=0; + $rc_found=0; + while($rc < $Cranks) + { + if ($Crank[$Co] == $CUranks[$rc]) + { + $CRcount[$rc]++; + if ($Crank_max_count < $CRcount[$rc]) + {$Crank_max_count = $CRcount[$rc];} + $rc_found++; + } + $rc++; + } + if ($rc_found < 1) + { + $CUranks[$Cranks] = $Crank[$Co]; + $CRcount[$Cranks]=1; + $Cranks++; + } + } + $Co++; } - echo "$tr_begin"; - echo "$tr_end\n"; + ### count number of entries for each unique rank + $Co=0; + while($Co < $Cranks) + { + $CRtally[$Co]=0; + if ($DB > 0) {echo "$CUranks[$Co] - $CRcount[$Co] - $Cranks - $Crank_max_count
\n";} + $Co++; + } + if ($DB > 0) {echo _QXZ("Max rank count").": $Crank_max_count
\n";} - $Co++; + $Co=0; + while ($Csoundboardfiles_to_print > $Co) + { + $ro = ($Co + 1); + $display_button=''; + if (preg_match("/FILE/",$audio_display)) + {$display_button .= " $Caudio_filename[$Co]";} + if (preg_match("/NAME/",$audio_display)) + { + if (strlen($display_button) > 1) + {$display_button .= " - ";} + $display_button .= " $Caudio_name[$Co]"; + } + $count_display="$ro. "; + if (preg_match("/HIDENUMBERS/",$audio_display)) + {$count_display = '';} + + $rc=0; + $rc_found=0; + $CRcolspan=1; + $tr_begin=''; + $tr_end=''; + + while($rc < $Cranks) + { + if ($Crank[$Co] == $CUranks[$rc]) + { + if ($CRtally[$rc] == '0') + { + $tr_begin=''; + } + if ($CRcount[$rc] == '1') + { + $CRcolspan = $rank_max_count; + $tr_end=''; + } + else + { + $CRtally[$rc]++; + $CRcolspan=1; + if ($CRcount[$rc] == $CRtally[$rc]) + { + $CRdiff = ($rank_max_count - $CRtally[$rc]); + $CRcolspan = ($CRcolspan + $CRdiff); + $tr_end=''; + } + } + } + $rc++; + } + + $audio_length=0; + $stmt="SELECT audio_length from audio_store_details where audio_filename IN('$Caudio_filename[$Co]$wav','$Caudio_filename[$Co]$gsm') order by audio_length desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslty=mysql_to_mysqli($stmt, $link); + $al_ct = mysqli_num_rows($rslty); + if ($al_ct > 0) + { + $rowD=mysqli_fetch_row($rslty); + $audio_length = $rowD[0]; + if ($audio_length < 1) + {$audio_length = '1';} + } + + if ( ($Cbutton_type[$Co] == 'header') or ($Cbutton_type[$Co] == 'head2r') ) + { + echo "$tr_begin"; + echo "$tr_end\n"; + } + else + { + if ($Cbutton_type[$Co] == 'space') + { + echo "$tr_begin"; + echo "$tr_end\n"; + } + else + { + echo "$tr_begin"; + echo "$tr_end\n"; + } + } + $Co++; + } } + $o++; } - $o++; + ##### END default layout ##### } echo "
$Abold_start[$o]$Aitalic_start[$o]$count_display$Aaudio_name[$o]$Aitalic_end[$o]$Abold_end[$o]$Abold_start[$o]$Aitalic_start[$o]   $Aitalic_end[$o]$Abold_end[$o]$Abold_start[$o]$Aitalic_start[$o]$count_display$display_button$Aitalic_end[$o]$Abold_end[$o]$ro. $display_button
 
$Cbold_start[$Co]$Citalic_start[$Co]$count_display$Caudio_name[$Co]$Citalic_end[$Co]$Cbold_end[$Co]$Cbold_start[$Co]$Citalic_start[$Co]$count_display   $Citalic_end[$Co]$Cbold_end[$Co]$Cbold_start[$Co]$Citalic_start[$Co]$count_display$display_button$Citalic_end[$Co]$Cbold_end[$Co]

\n"; diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index e7279ec0..1f1a9c02 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -3894,12 +3894,13 @@ else # 161102-1040 - Fixed QM partition problem # 161103-2204 - Added web_loader_phone_length and agent soundboards # 161106-2058 - Added agent_script +# 161113-0900 - Changed script_id to 20 characters max, other small script changes # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time -$admin_version = '2.12-574a'; -$build = '161106-2058'; +$admin_version = '2.12-575a'; +$build = '161113-0900'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -7256,7 +7257,7 @@ if ($ADD==1111111) } else { - echo ""._QXZ("Script ID").": ("._QXZ("no spaces or punctuation").")$NWB#scripts-script_id$NWE\n"; + echo ""._QXZ("Script ID").": ("._QXZ("no spaces or punctuation").")$NWB#scripts-script_id$NWE\n"; } echo ""._QXZ("Script Name").": ("._QXZ("title of the script").")$NWB#scripts-script_name$NWE\n"; echo ""._QXZ("Script Comments").": $NWB#scripts-script_comments$NWE\n"; @@ -29656,7 +29657,7 @@ if ($ADD==3111111) echo "

\n"; - echo " "._QXZ("CAMPAIGNS USING THIS SCRIPT").":
\n"; + echo " "._QXZ("CAMPAIGNS USING THIS SCRIPT").":
\n"; echo "\n"; $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id' $LOGallowed_campaignsSQL;"; @@ -29666,12 +29667,12 @@ if ($ADD==3111111) while ($camps_to_print > $o) { $row=mysqli_fetch_row($rslt); - echo "\n"; + echo "\n"; $o++; } echo "
$row[0] $row[1]
$row[0] $row[1]


\n"; - echo " "._QXZ("IN-GROUPS USING THIS SCRIPT").":
\n"; + echo " "._QXZ("IN-GROUPS USING THIS SCRIPT").":
\n"; echo "\n"; $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id' $LOGadmin_viewable_groupsSQL;"; @@ -29681,12 +29682,12 @@ if ($ADD==3111111) while ($camps_to_print > $o) { $row=mysqli_fetch_row($rslt); - echo "\n"; + echo "\n"; $o++; } echo "
$row[0] $row[1]
$row[0] $row[1]


\n"; - echo " "._QXZ("LIST OVERRIDES USING THIS SCRIPT").":
\n"; + echo " "._QXZ("LIST OVERRIDES USING THIS SCRIPT").":
\n"; echo "\n"; $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id' $LOGallowed_campaignsSQL;"; @@ -29696,10 +29697,37 @@ if ($ADD==3111111) while ($camps_to_print > $o) { $row=mysqli_fetch_row($rslt); - echo "\n"; + echo "\n"; $o++; } + + if ( ($SSagent_soundboards > 0) and (preg_match("/vdc_soundboard_display/",$script_text)) ) + { + $sb_check = preg_replace('~[\r\n]+~', '', $script_text); + $sb_lines = explode("vdc_soundboard_display",$sb_check); + $sb_content = explode('"',$sb_lines[1]); + $sb_id = explode('soundboard_id=',$sb_content[0]); + if ($DB) {echo "|$sb_check|\n|$sb_lines[1]|\n|$sb_content[0]|\n|$sb_id[1]|\n";} + echo "
$row[0] $row[1]
$row[0] $row[1]


\n"; + echo " "._QXZ("AGENT SOUNDBOARD USED WITHIN THIS SCRIPT").":
\n"; + echo "\n"; + + $stmt="SELECT avatar_id,avatar_name from vicidial_avatars where avatar_id='$sb_id[1]' $LOGadmin_viewable_groupsSQL;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $sb_to_print = mysqli_num_rows($rslt); + $o=0; + while ($sb_to_print > $o) + { + $row=mysqli_fetch_row($rslt); + echo "\n"; + $o++; + } + } + + echo "
$row[0] $row[1]


\n"; + if ($LOGdelete_scripts > 0) { echo "

"._QXZ("DELETE THIS SCRIPT")."\n"; diff --git a/agc_2-X/trunk/www/vicidial/admin_soundboard.php b/agc_2-X/trunk/www/vicidial/admin_soundboard.php index cd0dceb1..b79b0d21 100644 --- a/agc_2-X/trunk/www/vicidial/admin_soundboard.php +++ b/agc_2-X/trunk/www/vicidial/admin_soundboard.php @@ -16,10 +16,11 @@ # 160404-0937 - design changes # 160429-1122 - Added admin_row_click option # 161103-1605 - Updated code for new admin links +# 161111-1646 - Added HIDENUMBERS display option, Font size, button type and layout options # -$admin_version = '2.12-10'; -$build = '161103-1605'; +$admin_version = '2.12-11'; +$build = '161111-1646'; require("dbconnect_mysqli.php"); require("functions.php"); @@ -71,6 +72,10 @@ if (isset($_GET["source_avatar_id"])) {$source_avatar_id=$_GET["source_avatar_ elseif (isset($_POST["source_avatar_id"])) {$source_avatar_id=$_POST["source_avatar_id"];} if (isset($_GET["copy_option"])) {$copy_option=$_GET["copy_option"];} elseif (isset($_POST["copy_option"])) {$copy_option=$_POST["copy_option"];} +if (isset($_GET["soundboard_layout"])) {$soundboard_layout=$_GET["soundboard_layout"];} + elseif (isset($_POST["soundboard_layout"])) {$soundboard_layout=$_POST["soundboard_layout"];} +if (isset($_GET["columns_limit"])) {$columns_limit=$_GET["columns_limit"];} + elseif (isset($_POST["columns_limit"])) {$columns_limit=$_POST["columns_limit"];} if (isset($_GET["ConFiRm"])) {$ConFiRm=$_GET["ConFiRm"];} elseif (isset($_POST["ConFiRm"])) {$ConFiRm=$_POST["ConFiRm"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} @@ -119,6 +124,7 @@ if ($non_latin < 1) $rank = preg_replace('/[^0-9]/','',$rank); $level = preg_replace('/[^0-9]/','',$level); $parent_rank = preg_replace('/[^0-9]/','',$parent_rank); + $columns_limit = preg_replace('/[^0-9]/','',$columns_limit); $active = preg_replace('/[^NY]/','',$active); @@ -134,6 +140,7 @@ if ($non_latin < 1) $audio_display = preg_replace('/[^-_0-9a-zA-Z]/', '',$audio_display); $stage = preg_replace('/[^-_0-9a-zA-Z]/', '',$stage); $user_group = preg_replace('/[^-_0-9a-zA-Z]/', '',$user_group); + $soundboard_layout = preg_replace('/[^-_0-9a-zA-Z]/', '',$soundboard_layout); $avatar_name = preg_replace('/[^- \.\,\_0-9a-zA-Z]/','',$avatar_name); $avatar_notes = preg_replace('/[^- \.\,\_0-9a-zA-Z]/','',$avatar_notes); @@ -268,7 +275,7 @@ if ($action == "HELP")
-
+

@@ -307,9 +314,14 @@ if ($action == "HELP") -
- +
- - + - + +
+
+
+ -
@@ -336,6 +348,16 @@ if ($action == "HELP")
- +
+
+
+ - + +
+
+
+ - +

@@ -346,6 +368,17 @@ if ($action == "HELP")
- +
+
+
+ - +
+
+ <iframe src="./vdc_soundboard_display.php?user=--A--user--B--&pass=--A--pass--B--&bcrypt=OFF&soundboard_id=" style="background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" width="100%" height="500"> + </iframe> +
+
+
@@ -407,7 +440,7 @@ if ( (!preg_match("/soundboard/i",$SSactive_modules)) and ($SSagent_soundboards } -$NWB = "   \"HELP\""; @@ -446,7 +479,15 @@ while ($UUgroups_to_print > $o) $o++; } - +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ( (!preg_match('/\-ALL/i', $LOGallowed_campaigns)) ) + { + $rawLOGallowed_campaignsSQL = preg_replace("/ -/",'',$LOGallowed_campaigns); + $rawLOGallowed_campaignsSQL = preg_replace("/ /","','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } ###################### @@ -628,12 +669,12 @@ if ($ADD==262211111111) { echo "
"._QXZ("SOUNDBOARD ENTRY COPIED")."\n"; - $stmt="INSERT INTO vicidial_avatars (avatar_id,avatar_name,avatar_notes,user_group,avatar_api_user,avatar_api_pass,audio_display,audio_functions,active) SELECT '$soundboard_id','$avatar_name',avatar_notes,user_group,avatar_api_user,avatar_api_pass,audio_display,audio_functions,active from vicidial_avatars where avatar_id='$source_avatar_id';"; + $stmt="INSERT INTO vicidial_avatars (avatar_id,avatar_name,avatar_notes,user_group,avatar_api_user,avatar_api_pass,audio_display,audio_functions,active,soundboard_layout,columns_limit) SELECT '$soundboard_id','$avatar_name',avatar_notes,user_group,avatar_api_user,avatar_api_pass,audio_display,audio_functions,active,soundboard_layout,columns_limit from vicidial_avatars where avatar_id='$source_avatar_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $affected_rows = mysqli_affected_rows($link); - $stmtA="INSERT INTO vicidial_avatar_audio (avatar_id,audio_filename,audio_name,rank,h_ord,level,parent_audio_filename,parent_rank) SELECT '$soundboard_id',audio_filename,audio_name,rank,h_ord,level,parent_audio_filename,parent_rank from vicidial_avatar_audio where avatar_id='$source_avatar_id';"; + $stmtA="INSERT INTO vicidial_avatar_audio (avatar_id,audio_filename,audio_name,rank,h_ord,level,parent_audio_filename,parent_rank,button_type,font_size) SELECT '$soundboard_id',audio_filename,audio_name,rank,h_ord,level,parent_audio_filename,parent_rank,button_type,font_size from vicidial_avatar_audio where avatar_id='$source_avatar_id';"; if ($DB) {echo "$stmtA\n";} $rslt=mysql_to_mysqli($stmtA, $link); $affected_rowsA = mysqli_affected_rows($link); @@ -669,7 +710,7 @@ if ($ADD==462111111111) {echo "
"._QXZ("SOUNDBOARD ENTRY NOT MODIFIED - Please go back and look at the data you entered")."\n";} else { - $stmt="DELETE FROM vicidial_avatar_audio where avatar_id='$soundboard_id' and audio_filename='$audio_filename' and rank='$rank';"; + $stmt="DELETE FROM vicidial_avatar_audio where avatar_id='$soundboard_id' and audio_filename='$audio_filename' and rank='$rank' and parent_audio_filename='$parent_filename';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); @@ -690,12 +731,12 @@ if ($ADD==462111111111) {echo "
"._QXZ("SOUNDBOARD ENTRY NOT MODIFIED - Please go back and look at the data you entered")."\n";} else { - $stmt="UPDATE vicidial_avatars set avatar_name='$avatar_name',avatar_notes='$avatar_notes',avatar_api_user='$avatar_api_user',avatar_api_pass='$avatar_api_pass',active='$active',audio_functions='$audio_functions',audio_display='$audio_display',user_group='$user_group' where avatar_id='$soundboard_id';"; + $stmt="UPDATE vicidial_avatars set avatar_name='$avatar_name',avatar_notes='$avatar_notes',avatar_api_user='$avatar_api_user',avatar_api_pass='$avatar_api_pass',active='$active',audio_functions='$audio_functions',audio_display='$audio_display',user_group='$user_group',soundboard_layout='$soundboard_layout',columns_limit='$columns_limit' where avatar_id='$soundboard_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $stmtLIST = $stmt; - $stmt="SELECT audio_filename,rank,audio_name,level from vicidial_avatar_audio where avatar_id='$soundboard_id' order by rank;"; + $stmt="SELECT audio_filename,rank,audio_name,level,parent_audio_filename from vicidial_avatar_audio where avatar_id='$soundboard_id' order by rank;"; if ($DB) {echo "$stmt\n";} $rsltx=mysql_to_mysqli($stmt, $link); $soundboardfiles_to_print = mysqli_num_rows($rsltx); @@ -708,6 +749,7 @@ if ($ADD==462111111111) $avatarranks[$o] = $rowx[1]; $avatarnames[$o] = $rowx[2]; $avatarlevel[$o] = $rowx[3]; + $avatarparent[$o] = $rowx[4]; $o++; } @@ -715,23 +757,48 @@ if ($ADD==462111111111) while ($soundboardfiles_to_print > $o) { $new_rank=0; - $Ffilename = $avatarfiles[$o]; - $NAMEfilename = '--NAME--' . $avatarfiles[$o]; - $LEVELfilename = '--LEVEL--' . $avatarfiles[$o]; - $OLDRANKfilename = '--OLDRANK--' . $avatarfiles[$o]; - $HORDfilename = '--HORD--' . $avatarfiles[$o]; - if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} - elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} - if (isset($_GET[$NAMEfilename])) {$new_name=$_GET[$NAMEfilename];} - elseif (isset($_POST[$NAMEfilename])) {$new_name=$_POST[$NAMEfilename];} - if (isset($_GET[$LEVELfilename])) {$new_level=$_GET[$LEVELfilename];} - elseif (isset($_POST[$LEVELfilename])) {$new_level=$_POST[$LEVELfilename];} - if (isset($_GET[$OLDRANKfilename])) {$old_rank=$_GET[$OLDRANKfilename];} - elseif (isset($_POST[$OLDRANKfilename])) {$old_rank=$_POST[$OLDRANKfilename];} - if (isset($_GET[$HORDfilename])) {$new_h_ord=$_GET[$HORDfilename];} - elseif (isset($_POST[$HORDfilename])) {$new_h_ord=$_POST[$HORDfilename];} + $new_name=''; + $new_level=''; + $old_rank=''; + $new_h_ord=''; + $new_button_type=''; + $new_font_size=''; + $Ffilename = $avatarfiles[$o] . '--' . $avatarlevel[$o] . '--' . $avatarranks[$o] . '--' . $avatarparent[$o]; + $NAMEfilename = '--NAME--' . $avatarfiles[$o] . '--' . $avatarlevel[$o] . '--' . $avatarranks[$o] . '--' . $avatarparent[$o]; + $LEVELfilename = '--LEVEL--' . $avatarfiles[$o] . '--' . $avatarlevel[$o] . '--' . $avatarranks[$o] . '--' . $avatarparent[$o]; + $OLDRANKfilename = '--OLDRANK--' . $avatarfiles[$o] . '--' . $avatarlevel[$o] . '--' . $avatarranks[$o] . '--' . $avatarparent[$o]; + $HORDfilename = '--HORD--' . $avatarfiles[$o] . '--' . $avatarlevel[$o] . '--' . $avatarranks[$o] . '--' . $avatarparent[$o]; + $TYPEfilename = '--TYPE--' . $avatarfiles[$o] . '--' . $avatarlevel[$o] . '--' . $avatarranks[$o] . '--' . $avatarparent[$o]; + $FONTfilename = '--FONT--' . $avatarfiles[$o] . '--' . $avatarlevel[$o] . '--' . $avatarranks[$o] . '--' . $avatarparent[$o]; + if (isset($_GET["$Ffilename"])) {$new_rank=$_GET["$Ffilename"];} + elseif (isset($_POST["$Ffilename"])) {$new_rank=$_POST["$Ffilename"];} + if (isset($_GET["$NAMEfilename"])) {$new_name=$_GET["$NAMEfilename"];} + elseif (isset($_POST["$NAMEfilename"])) {$new_name=$_POST["$NAMEfilename"];} + if (isset($_GET["$LEVELfilename"])) {$new_level=$_GET["$LEVELfilename"];} + elseif (isset($_POST["$LEVELfilename"])) {$new_level=$_POST["$LEVELfilename"];} + if (isset($_GET["$OLDRANKfilename"])) {$old_rank=$_GET["$OLDRANKfilename"];} + elseif (isset($_POST["$OLDRANKfilename"])) {$old_rank=$_POST["$OLDRANKfilename"];} + if (isset($_GET["$HORDfilename"])) {$new_h_ord=$_GET["$HORDfilename"];} + elseif (isset($_POST["$HORDfilename"])) {$new_h_ord=$_POST["$HORDfilename"];} + if (isset($_GET["$TYPEfilename"])) {$new_button_type=$_GET["$TYPEfilename"];} + elseif (isset($_POST["$TYPEfilename"])) {$new_button_type=$_POST["$TYPEfilename"];} + if (isset($_GET["$FONTfilename"])) {$new_font_size=$_GET["$FONTfilename"];} + elseif (isset($_POST["$FONTfilename"])) {$new_font_size=$_POST["$FONTfilename"];} + + if ($DB) + { + echo "update variable debug: ($avatarfiles[$o])\n"; + echo "RANK: $Ffilename($new_rank)\n"; + echo "NAME: $NAMEfilename($new_name)\n"; + echo "LEVEL: $LEVELfilename($new_level)\n"; + echo "OLDRANK: $OLDRANKfilename($old_rank)\n"; + echo "HORD: $HORDfilename($new_h_ord)\n"; + echo "TYPE: $TYPEfilename($new_button_type)\n"; + echo "FONT: $FONTfilename($new_font_size)\n"; - $stmt="UPDATE vicidial_avatar_audio set rank='$new_rank',audio_name='$new_name',h_ord='$new_h_ord' where avatar_id='$soundboard_id' and audio_filename='$avatarfiles[$o]' and rank='$old_rank' and level='$new_level';"; + } + + $stmt="UPDATE vicidial_avatar_audio set rank='$new_rank',audio_name='$new_name',h_ord='$new_h_ord',button_type='$new_button_type',font_size='$new_font_size' where avatar_id='$soundboard_id' and audio_filename='$avatarfiles[$o]' and rank='$old_rank' and level='$new_level' and parent_audio_filename='$avatarparent[$o]';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $stmtLIST .= "|$stmt"; @@ -748,43 +815,48 @@ if ($ADD==462111111111) if (strlen($audio_filename) > 0) { - if (preg_match("/--PARENT----NEW-------X/i",$parent_filename[0])) + if (preg_match("/^\./",$audio_filename)) + {echo "
"._QXZ("ERROR, Soundbords cannot use files that begin with a period").": $audio_filename";} + else { - $stmt="SELECT count(*) from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='1' and audio_filename='$audio_filename' and parent_audio_filename='';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_to_mysqli($stmt, $link); - $row=mysqli_fetch_row($rslt); - $duplicate_first = $row[0]; + if (preg_match("/--PARENT----NEW-------X/i",$parent_filename[0])) + { + $stmt="SELECT count(*) from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='1' and audio_filename='$audio_filename' and parent_audio_filename='';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $duplicate_first = $row[0]; - if ($duplicate_first > 0) - {echo "
"._QXZ("ERROR, Level One Audio File Duplicate, not added").": $audio_filename";} + if ($duplicate_first > 0) + {echo "
"._QXZ("ERROR, Level One Audio File Duplicate, not added").": $audio_filename";} + else + { + $stmt="SELECT count(*) from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $new_rank = ($row[0] + 1); + + $stmt="INSERT INTO vicidial_avatar_audio set audio_filename='$audio_filename',rank='$new_rank',avatar_id='$soundboard_id';"; + } + } else { - $stmt="SELECT count(*) from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='1';"; + $parent_filename[0] = preg_replace("/--PARENT--/i",'',$parent_filename[0]); + $parent_array = explode('-----',$parent_filename[0]); + + $stmt="SELECT count(*) from vicidial_avatar_audio where avatar_id='$soundboard_id' and parent_audio_filename='$parent_array[0]' and parent_rank='$parent_array[1]';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $new_rank = ($row[0] + 1); - $stmt="INSERT INTO vicidial_avatar_audio set audio_filename='$audio_filename',rank='$new_rank',avatar_id='$soundboard_id';"; + $stmt="INSERT INTO vicidial_avatar_audio set audio_filename='$audio_filename',rank='$new_rank',parent_audio_filename='$parent_array[0]',parent_rank='$parent_array[1]',level='2',avatar_id='$soundboard_id';"; } - } - else - { - $parent_filename[0] = preg_replace("/--PARENT--/i",'',$parent_filename[0]); - $parent_array = explode('-----',$parent_filename[0]); - - $stmt="SELECT count(*) from vicidial_avatar_audio where avatar_id='$soundboard_id' and parent_audio_filename='$parent_array[0]' and parent_rank='$parent_array[1]';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); - $row=mysqli_fetch_row($rslt); - $new_rank = ($row[0] + 1); - - $stmt="INSERT INTO vicidial_avatar_audio set audio_filename='$audio_filename',rank='$new_rank',parent_audio_filename='$parent_array[0]',parent_rank='$parent_array[1]',level='2',avatar_id='$soundboard_id';"; + $stmtLIST .= "|$stmt"; } - if ($DB) {echo "$stmt\n";} - $rslt=mysql_to_mysqli($stmt, $link); - $stmtLIST .= "|$stmt"; } echo "
"._QXZ("SOUNDBOARD ENTRY MODIFIED").": $soundboard_id\n"; @@ -886,7 +958,7 @@ if ($ADD==362111111111) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "
\n"; echo ""; - $stmt="SELECT avatar_id,avatar_name,avatar_notes,avatar_api_user,avatar_api_pass,active,audio_functions,user_group,audio_display from vicidial_avatars where avatar_id='$soundboard_id' $LOGadmin_viewable_groupsSQL;"; + $stmt="SELECT avatar_id,avatar_name,avatar_notes,avatar_api_user,avatar_api_pass,active,audio_functions,user_group,audio_display,soundboard_layout,columns_limit from vicidial_avatars where avatar_id='$soundboard_id' $LOGadmin_viewable_groupsSQL;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); @@ -899,6 +971,8 @@ if ($ADD==362111111111) $audio_functions = $row[6]; $user_group = $row[7]; $audio_display = $row[8]; + $soundboard_layout = $row[9]; + $columns_limit = $row[10]; echo "
"._QXZ("MODIFY A SOUNDBOARDS RECORD").": $soundboard_id\n"; echo "\n"; @@ -914,6 +988,7 @@ if ($ADD==362111111111) echo "
"._QXZ("Active").": $NWB#soundboard-active$NWE
"._QXZ("Audio Functions").": $NWB#soundboard-audio_functions$NWE
"._QXZ("Audio Display").": $NWB#soundboard-audio_display$NWE
"._QXZ("Layout").": $NWB#soundboard-soundboard_layout$NWE   "._QXZ("Columns Limit").":
"._QXZ("Admin User Group").":
"._QXZ("Audio Files").":
\n"; echo "\n"; - echo ""; + echo ""; ##### get files listing for rank/delete options - $stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='1' order by rank,h_ord;"; + $stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord,button_type,font_size from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='1' order by rank,h_ord;"; if ($DB) {echo "$stmt\n";} $rsltx=mysql_to_mysqli($stmt, $link); $soundboardfiles_to_print = mysqli_num_rows($rsltx); @@ -937,7 +1012,7 @@ if ($ADD==362111111111) $ro = ($o + 1); $rowx=mysqli_fetch_row($rsltx); echo ""; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo ""; - echo ""; - echo ""; + echo ""; - echo "\n"; + echo "\n"; - $stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='2' and parent_audio_filename='$rowx[0]' and parent_rank='$rowx[2]' order by rank,h_ord;"; + $stmt="SELECT audio_filename,audio_name,rank,level,parent_audio_filename,parent_rank,h_ord,button_type,font_size from vicidial_avatar_audio where avatar_id='$soundboard_id' and level='2' and parent_audio_filename='$rowx[0]' and parent_rank='$rowx[2]' order by rank,h_ord;"; if ($DB) {echo "$stmt\n";} $rslty=mysql_to_mysqli($stmt, $link); $Csoundboardfiles_to_print = mysqli_num_rows($rslty); @@ -975,7 +1084,7 @@ if ($ADD==362111111111) $ro = ($Co + 1); $rowC=mysqli_fetch_row($rslty); echo ""; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo ""; - echo ""; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; $Co++; } $o++; @@ -1024,6 +1166,62 @@ if ($ADD==362111111111) echo "\n"; + echo "

"._QXZ("SCRIPTS USING THIS SOUNDBOARD").":
\n"; + echo "
"._QXZ("FILENAME").""._QXZ("RANK").""._QXZ("HORZ").""._QXZ("level").""._QXZ("add").""._QXZ("name")."  
"._QXZ("FILENAME").""._QXZ("RANK").""._QXZ("HORZ").""._QXZ("type").""._QXZ("FONT").""._QXZ("level").""._QXZ("add").""._QXZ("name")."  
$ro. $rowx[0]   $rowx[3] "; - echo ""; + echo ""; + echo ""; echo " "._QXZ("Name").": "._QXZ("Name").": - "._QXZ("DELETE")."
- "._QXZ("DELETE")."
    $ro. $rowC[0]                     $rowC[3] "; - echo ""; + echo ""; + echo ""; echo "     "._QXZ("Name").":   "._QXZ("Name").":   - "._QXZ("DELETE")."
  - "._QXZ("DELETE")."
\n"; + + $scripts_SQL=''; + $stmt="SELECT script_id,script_name from vicidial_scripts where script_text LIKE \"%$soundboard_id%\" and script_text LIKE \"%vdc_soundboard_display%\" $LOGadmin_viewable_groupsSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $scripts_to_print = mysqli_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $row=mysqli_fetch_row($rslt); + echo "\n"; + $scripts_SQL .= "'$row[0]',"; + $o++; + } + $scripts_SQL = preg_replace("/,$/",'',$scripts_SQL); + + echo "
$row[0] $row[1]


\n"; + + echo ""._QXZ("CAMPAIGNS USING SCRIPTS THAT USE THIS SOUNDBOARD").":
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script IN($scripts_SQL) $LOGallowed_campaignsSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $camps_to_print = mysqli_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysqli_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + + + echo ""._QXZ("INGROUPS USING SCRIPTS THAT USE THIS SOUNDBOARD").":
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script IN($scripts_SQL) $LOGadmin_viewable_groupsSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $igs_to_print = mysqli_num_rows($rslt); + $o=0; + while ($igs_to_print > $o) + { + $row=mysqli_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + + if ($modify_audiostore > 0) { echo "

"._QXZ("DELETE SOUNDBOARD ENTRY")."\n"; @@ -1050,7 +1248,7 @@ if ($ADD==162000000000) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo "\n"; @@ -1080,6 +1279,7 @@ if ($ADD==162000000000) echo " 0) {echo " onclick=\"window.document.location='$PHP_SELF?ADD=362111111111&soundboard_id=$row[0]&DB=$DB'\"";} echo ">"; echo ""; echo ""; + echo ""; echo ""; echo ""; echo "\n"; diff --git a/agc_2-X/trunk/www/vicidial/help.php b/agc_2-X/trunk/www/vicidial/help.php index 69982a20..c0500e63 100644 --- a/agc_2-X/trunk/www/vicidial/help.php +++ b/agc_2-X/trunk/www/vicidial/help.php @@ -3527,7 +3527,7 @@ if ($SSqc_features_active > 0) SCRIPTS TABLE


- - + -
\n"; echo " "; - $stmt="SELECT avatar_id,avatar_name,active,avatar_api_user,user_group from vicidial_avatars where active IN('N','Y') $LOGadmin_viewable_groupsSQL order by avatar_id"; + $stmt="SELECT avatar_id,avatar_name,active,avatar_api_user,user_group,soundboard_layout from vicidial_avatars where active IN('N','Y') $LOGadmin_viewable_groupsSQL order by avatar_id"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); $soundboard_to_print = mysqli_num_rows($rslt); @@ -1061,6 +1259,7 @@ if ($ADD==162000000000) echo ""._QXZ("Soundboard ID").""._QXZ("Soundboard Name").""._QXZ("Active").""._QXZ("Layout").""._QXZ("API User").""._QXZ("ADMIN GROUP").""._QXZ("MODIFY")."
$row[0]$row[1]$row[2]$row[5]$row[3]$row[4]"._QXZ("MODIFY")."