diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE
index 50baccba..a4bec3bc 100644
--- a/agc_2-X/trunk/UPGRADE
+++ b/agc_2-X/trunk/UPGRADE
@@ -697,6 +697,10 @@ OTHER CHANGES:
194. Added MIN LENGTH to the Dispo Call URL ALT admin screen, allowing for a
minimum call time threshold before a Dispo Call URL will trigger.
+195. Added User Location to the Modify User page. Also added Queue Groups Admin
+ pages, allowing you to define multiple campaigns and/or in-groups in a
+ single Queue Group to be used in some reports.
+
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 22393019..b84fa183 100644
--- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql
+++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql
@@ -691,7 +691,8 @@ max_inbound_filter_min_sec SMALLINT(5) default '-1',
status_group_id VARCHAR(20) default '',
mobile_number VARCHAR(20) default '',
two_factor_override ENUM('NOT_ACTIVE','ENABLED','DISABLED') default 'NOT_ACTIVE',
-manual_dial_filter VARCHAR(50) default 'DISABLED'
+manual_dial_filter VARCHAR(50) default 'DISABLED',
+user_location VARCHAR(100) default ''
) ENGINE=MyISAM;
CREATE UNIQUE INDEX user ON vicidial_users (user);
@@ -4685,6 +4686,15 @@ index (call_date),
unique index cicc_cd (caller_code, uniqueid)
) ENGINE=MyISAM;
+CREATE TABLE vicidial_queue_groups (
+queue_group VARCHAR(20) NOT NULL,
+queue_group_name VARCHAR(40) NOT NULL,
+included_campaigns TEXT,
+included_inbound_groups TEXT,
+user_group VARCHAR(20) default '---ALL---',
+active ENUM('Y','N')
+) ENGINE=MyISAM;
+
ALTER TABLE vicidial_email_list MODIFY message text character set utf8;
@@ -5026,7 +5036,8 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
INSERT INTO vicidial_settings_containers(container_id,container_notes,container_type,user_group,container_entry) VALUES ('PHONE_DEFAULTS','Default phone settings for preloading','PHONE_DEFAULTS','---ALL---','# Below are all phone settings recognized under the PHONE_DEFAULTS \r\n# container type and the type of data each accepts. Any setting that\r\n# uses a default value in the database has said value pre-set below\r\n\r\n# 10 char max\r\nvoicemail_id => \r\n \r\n# 15 char max\r\nserver_ip => \r\n\r\n# 100 char max\r\npass => \r\n\r\n# 10 char max\r\nstatus => \r\n\r\n# Y/N only\r\nactive => Y\r\n\r\n# 50 char max\r\nphone_type => \r\n\r\n# \'SIP\',\'Zap\',\'IAX2\' or \'EXTERNAL\'\r\nprotocol => SIP\r\n\r\n# positive or negatier 2-decimal floating point number\r\nlocal_gmt => -5.00\r\n\r\n# 20 char max\r\nvoicemail_dump_exten => 85026666666666\r\n\r\n# 20 char max\r\noutbound_cid => \r\n\r\n# 100 char max\r\nemail => \r\n\r\n# 15 char max\r\ntemplate_id => \r\n\r\n# text, conf_override can span multiple lines, see below\r\nconf_override => \r\n# type=friend\r\n# host=dynamic\r\n# canreinvite=no\r\n# context=default1\r\n\r\n# 50 char max\r\nphone_context => default\r\n\r\n# Unsigned - max value 65536\r\nphone_ring_timeout => 60\r\n\r\n# 20 char max\r\nconf_secret => test\r\n\r\n# Y/N only\r\ndelete_vm_after_email => N\r\n\r\n# Options - Y, N, or Y_API_LAUNCH\r\nis_webphone => N\r\n\r\n# Y/N only\r\nuse_external_server_ip => N\r\n\r\n# 100 char max\r\ncodecs_list => \r\n\r\n# 0/1 only\r\ncodecs_with_template => 0\r\n\r\n# Options - Y, N, TOGGLE, or TOGGLE_OFF\r\nwebphone_dialpad => Y\r\n\r\n# Y/N only\r\non_hook_agent => N\r\n\r\n# Y/N only\r\nwebphone_auto_answer => Y\r\n\r\n# 30 char max\r\nvoicemail_timezone => eastern\r\n\r\n# 255 char max\r\nvoicemail_options => \r\n\r\n# 20 char max\r\nuser_group => ---ALL---\r\n\r\n# 100 char max\r\nvoicemail_greeting => \r\n\r\n# 20 char max\r\nvoicemail_dump_exten_no_inst => 85026666666667\r\n\r\n# Y/N only\r\nvoicemail_instructions => Y\r\n\r\n# Y/N only\r\non_login_report => N\r\n\r\n# 40 char max\r\nunavail_dialplan_fwd_exten => \r\n\r\n# 100 char max\r\nunavail_dialplan_fwd_context => \r\n\r\n# text\r\nnva_call_url => \r\n\r\n# 40 char max\r\nnva_search_method => \r\n\r\n# 255 char max\r\nnva_error_filename => \r\n\r\n# Integer, any size\r\nnva_new_list_id => 995\r\n\r\n# 10 char max\r\nnva_new_phone_code => 1\r\n\r\n# 6 char max\r\nnva_new_status => NVAINS\r\n\r\n# Y/N only\r\nwebphone_dialbox => Y\r\n\r\n# Y/N only\r\nwebphone_mute => Y\r\n\r\n# Y/N only\r\nwebphone_volume => Y\r\n\r\n# Y/N only\r\nwebphone_debug => N\r\n\r\n# 20 char max\r\noutbound_alt_cid => \r\n\r\n# Y/N only\r\nconf_qualify => Y\r\n\r\n# 255 char max\r\nwebphone_layout => \r\n');
INSERT INTO vicidial_settings_containers(container_id,container_notes,container_type,user_group,container_entry) VALUES ('QC_STATUS_TEMPLATE','Sample QC Status Template','QC_TEMPLATE','---ALL---','# These types of containers are simply used for creating a list of \r\n# QC-enabled statuses to apply to campaigns, lists, and ingroups.\r\n# Simply put all the statuses that this template should allow in\r\n# a comma-delimited string, as below:\r\n\r\nSALE,DNC,NI');
INSERT INTO vicidial_settings_containers(container_id,container_notes,container_type,user_group,container_entry) VALUES ('INTERNATIONAL_DNC_IMPORT','Process DNC lists of various countries from FTP site','PERL_CLI','---ALL---','# This setting container is used for the international DNC system. \r\n# The below two settings are mandatory for importing suppression lists\r\n# and tell the import process where to look for new files and where to\r\n# move them when handled. These settings cannot have the same value. \r\n--file-dir=/root/ftp\r\n--file-destination=/root/ftp/DONE\r\n\r\n# Uncomment below and set the status to whatever custom disposition you \r\n# would like already-loaded leads to be set to when they dedupe against\r\n# a country\'s DNC list (default is \"DNCI\")\r\n# --dnc-status-override=BMNR\r\n\r\n# The below settings are optional for when files are stored on a remote\r\n# server. It is strongly recommended these settings are not used and\r\n# that the processing scripts and files are stored locally on the same\r\n# server. \r\n# --ftp-host=localhost\r\n# --ftp-user=user\r\n# --ftp-pwd=pwd\r\n# --ftp-port=21\r\n# --ftp-passive=1\r\n'),('DNC_IMPORT_FORMATS','Import formats for DNC files','OTHER','---ALL---','# This setting container is used for storing file formats used when \r\n# loading DNC suppression lists into the dialer. \r\n#\r\n# import template => (delimited|fixed),delimiter,phone1(,phone2,phone3)\r\n#\r\n# For delimited files, the phone1 value should be the index value of\r\n# the field where the phone appears. The first array index is 0 and\r\n# indexes continue through the natural numbers.\r\n\r\n# In delimited files, acceptable values for the \"delimiter\" field are:\r\n# - \"tab\", \"pipe\", \"comma\", \"quote-comma\"\r\nBASIC_DELIMITED_FORMAT => delimited,pipe,0\r\n\r\n# If the phone number is split into multiple fields (ex: area code in\r\n# one field, rest of the number in another), simply list additional \r\n# indices of the phone number fields separated by commas in the order \r\n# in which the data should be combined to make the complete phone \r\n# number \r\nDELIMITED_WITH_AC_AND_EXCHANGE_SPLIT => delimited,tab,0,1\r\n\r\n# For fixed-length files, the phone field values should be of the type:\r\n# - \"starting_position|length\"\r\nBASIC_FIXED_FORMAT => fixed,,0|10\r\n\r\n# (delimited|fixed) is not used for CSV/Excel files, so all that needs \r\n# providing for those is the index field value(s) of the phone number\r\nBASIC_CSV_OR_EXCEL_FORMAT => ,,0'),('DNC_CURRENT_BLOCKED_LISTS','Lists currently blocked due to pending DNC scrub','READ_ONLY','---ALL---','');
+INSERT INTO vicidial_settings_containers(container_id,container_notes,container_type,user_group,container_entry) VALUES ('USER_LOCATIONS_SYSTEM','User Locations List','OTHER','---ALL---',';location|description\n|default\n');
UPDATE system_settings set vdc_agent_api_active='1';
-UPDATE system_settings SET db_schema_version='1648',db_schema_update_date=NOW(),reload_timestamp=NOW();
+UPDATE system_settings SET db_schema_version='1649',db_schema_update_date=NOW(),reload_timestamp=NOW();
diff --git a/agc_2-X/trunk/extras/upgrade_2.14.sql b/agc_2-X/trunk/extras/upgrade_2.14.sql
index ab7925a1..d9f1a15d 100644
--- a/agc_2-X/trunk/extras/upgrade_2.14.sql
+++ b/agc_2-X/trunk/extras/upgrade_2.14.sql
@@ -1835,3 +1835,18 @@ UPDATE system_settings SET db_schema_version='1647',db_schema_update_date=NOW()
ALTER TABLE vicidial_url_multi ADD url_call_length SMALLINT(5) default '0';
UPDATE system_settings SET db_schema_version='1648',db_schema_update_date=NOW() where db_schema_version < 1648;
+
+ALTER TABLE vicidial_users ADD user_location VARCHAR(100) default '';
+
+INSERT INTO vicidial_settings_containers(container_id,container_notes,container_type,user_group,container_entry) VALUES ('USER_LOCATIONS_SYSTEM','User Locations List','OTHER','---ALL---',';location|description\n|default\n');
+
+CREATE TABLE vicidial_queue_groups (
+queue_group VARCHAR(20) NOT NULL,
+queue_group_name VARCHAR(40) NOT NULL,
+included_campaigns TEXT,
+included_inbound_groups TEXT,
+user_group VARCHAR(20) default '---ALL---',
+active ENUM('Y','N')
+) ENGINE=MyISAM;
+
+UPDATE system_settings SET db_schema_version='1649',db_schema_update_date=NOW() where db_schema_version < 1649;
diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php
index fe7e9cb3..8c674fe6 100644
--- a/agc_2-X/trunk/www/vicidial/admin.php
+++ b/agc_2-X/trunk/www/vicidial/admin.php
@@ -2678,7 +2678,16 @@ if (isset($_GET["in_queue_nanque"])) {$in_queue_nanque=$_GET["in_queue_nanque"
elseif (isset($_POST["in_queue_nanque"])) {$in_queue_nanque=$_POST["in_queue_nanque"];}
if (isset($_GET["in_queue_nanque_exceptions"])) {$in_queue_nanque_exceptions=$_GET["in_queue_nanque_exceptions"];}
elseif (isset($_POST["in_queue_nanque_exceptions"])) {$in_queue_nanque_exceptions=$_POST["in_queue_nanque_exceptions"];}
-
+if (isset($_GET["user_location"])) {$user_location=$_GET["user_location"];}
+ elseif (isset($_POST["user_location"])) {$user_location=$_POST["user_location"];}
+if (isset($_GET["queue_group"])) {$queue_group=$_GET["queue_group"];}
+ elseif (isset($_POST["queue_group"])) {$queue_group=$_POST["queue_group"];}
+if (isset($_GET["queue_group_name"])) {$queue_group_name=$_GET["queue_group_name"];}
+ elseif (isset($_POST["queue_group_name"])) {$queue_group_name=$_POST["queue_group_name"];}
+if (isset($_GET["included_campaigns"])) {$included_campaigns=$_GET["included_campaigns"];}
+ elseif (isset($_POST["included_campaigns"])) {$included_campaigns=$_POST["included_campaigns"];}
+if (isset($_GET["included_inbound_groups"])) {$included_inbound_groups=$_GET["included_inbound_groups"];}
+ elseif (isset($_POST["included_inbound_groups"])) {$included_inbound_groups=$_POST["included_inbound_groups"];}
if (isset($script_id)) {$script_id= mb_strtoupper($script_id,'utf-8');}
if (isset($lead_filter_id)) {$lead_filter_id = mb_strtoupper($lead_filter_id,'utf-8');}
@@ -3774,6 +3783,7 @@ if ($non_latin < 1)
$call_limit_24hour_scope = preg_replace('/[^-_0-9a-zA-Z]/','',$call_limit_24hour_scope);
$call_limit_24hour_override = preg_replace('/[^-_0-9a-zA-Z]/','',$call_limit_24hour_override);
$in_queue_nanque_exceptions = preg_replace('/[^-_0-9a-zA-Z]/','',$in_queue_nanque_exceptions);
+ $queue_group = preg_replace('/[^-_0-9a-zA-Z]/','',$queue_group);
### ALPHA-NUMERIC and underscore
$qc_statuses_id = preg_replace('/[^_0-9a-zA-Z]/','',$qc_statuses_id);
@@ -3999,6 +4009,8 @@ if ($non_latin < 1)
$label_rank = preg_replace('/[^- \.\,\_0-9a-zA-Z]/','',$label_rank);
$label_owner = preg_replace('/[^- \.\,\_0-9a-zA-Z]/','',$label_owner);
$label_entry_list_id = preg_replace('/[^- \.\,\_0-9a-zA-Z]/','',$label_entry_list_id);
+ $user_location = preg_replace('/[^- \.\,\_0-9a-zA-Z]/','',$user_location);
+ $queue_group_name = preg_replace('/[^- \.\,\_0-9a-zA-Z]/','',$queue_group_name);
### ALPHA-NUMERIC and underscore and dash and slash and at and dot
$call_out_number_group = preg_replace('/[^-\.\:\/\@\_0-9a-zA-Z]/','',$call_out_number_group);
@@ -4487,6 +4499,7 @@ else
$call_limit_24hour_scope = preg_replace('/[^-_0-9\p{L}]/u','',$call_limit_24hour_scope);
$call_limit_24hour_override = preg_replace('/[^-_0-9\p{L}]/u','',$call_limit_24hour_override);
$in_queue_nanque_exceptions = preg_replace('/[^-_0-9\p{L}]/u','',$in_queue_nanque_exceptions);
+ $queue_group = preg_replace('/[^-_0-9\p{L}]/u','',$queue_group);
### ALPHA-NUMERIC and underscore and dash and slash and dot
$menu_timeout_prompt = preg_replace('/[^-\/\|\._0-9\p{L}]/u','',$menu_timeout_prompt);
@@ -4709,6 +4722,8 @@ else
$label_rank = preg_replace('/[^- \.\,\_0-9\p{L}]/u','',$label_rank);
$label_owner = preg_replace('/[^- \.\,\_0-9\p{L}]/u','',$label_owner);
$label_entry_list_id = preg_replace('/[^- \.\,\_0-9\p{L}]/u','',$label_entry_list_id);
+ $user_location = preg_replace('/[^- \.\,\_0-9\p{L}]/u','',$user_location);
+ $queue_group_name = preg_replace('/[^- \.\,\_0-9\p{L}]/u','',$queue_group_name);
### ALPHA-NUMERIC and underscore and dash and slash and at and dot
$call_out_number_group = preg_replace('/[^-\.\:\/\@\_0-9\p{L}]/u','',$call_out_number_group);
@@ -5729,11 +5744,13 @@ if ($SSscript_remove_js > 0)
# 211012-0934 - Added incall_tally_threshold_seconds campaign feature
# 211027-1031 - Added lead_search Non-Agent API function
# 211106-1500 - Added In-Group in_queue_nanque settings
+# 211208-1646 - Added user_location to User Modify page, Added Queue Groups to Admin pages
+#
# 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.14-833a';
-$build = '211106-1500';
+$admin_version = '2.14-834a';
+$build = '211208-1646';
$STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s");
@@ -6414,6 +6431,7 @@ if ($ADD==194111111111) {$hh='admin'; $sh='ar'; echo _QXZ("ADD AUTOMATED REPORT"
if ($ADD==195111111111) {$hh='admin'; $sh='il'; echo _QXZ("ADD IP LIST");}
if ($ADD==196111111111) {$hh='admin'; $sh='cg'; echo _QXZ("ADD CID GROUP");}
if ($ADD==197111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("ADD VM MESSAGE GROUP");}
+if ($ADD==198111111111) {$hh='admin'; $sh='qg'; echo _QXZ("ADD QUEUE GROUP");}
if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADD NEW CONFERENCE");}
if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADD NEW AGENT CONFERENCE");}
if ($ADD=='2') {$hh='users'; $sh='new'; echo _QXZ("New User Addition");}
@@ -6471,6 +6489,7 @@ if ($ADD==294111111111) {$hh='admin'; $sh='ar'; echo _QXZ("ADDING NEW AUTOMATED
if ($ADD==295111111111) {$hh='admin'; $sh='il'; echo _QXZ("ADDING NEW IP LIST");}
if ($ADD==296111111111) {$hh='admin'; $sh='cg'; echo _QXZ("ADDING NEW CID GROUP");}
if ($ADD==297111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("ADDING NEW VM MESSAGE GROUP");}
+if ($ADD==298111111111) {$hh='admin'; $sh='qg'; echo _QXZ("ADDING NEW QUEUE GROUP");}
if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADDING NEW CONFERENCE");}
if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADDING NEW AGENT CONFERENCE");}
if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo _QXZ("ADDING SYSTEM STATUSES");}
@@ -6555,6 +6574,7 @@ if ($ADD==394111111111) {$hh='admin'; $sh='ar'; echo _QXZ("MODIFY AUTOMATED REPO
if ($ADD==395111111111) {$hh='admin'; $sh='il'; echo _QXZ("MODIFY IP LIST");}
if ($ADD==396111111111) {$hh='admin'; $sh='cg'; echo _QXZ("MODIFY CID GROUP");}
if ($ADD==397111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("MODIFY VM MESSAGE GROUP");}
+if ($ADD==398111111111) {$hh='admin'; $sh='qg'; echo _QXZ("MODIFY QUEUE GROUP");}
if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY CONFERENCE");}
if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY AGENT CONFERENCE");}
if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo _QXZ("MODIFY SYSTEM SETTINGS");}
@@ -6609,6 +6629,7 @@ if ($ADD==493111111111) {$hh='admin'; $sh='sg'; echo _QXZ("MODIFY STATUS GROUP")
if ($ADD==494111111111) {$hh='admin'; $sh='ar'; echo _QXZ("MODIFY AUTOMATED REPORT");}
if ($ADD==496111111111) {$hh='admin'; $sh='cg'; echo _QXZ("MODIFY CID GROUP");}
if ($ADD==497111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("MODIFY VM MESSAGE GROUP");}
+if ($ADD==498111111111) {$hh='admin'; $sh='qg'; echo _QXZ("MODIFY QUEUE GROUP");}
if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY CONFERENCE");}
if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY CONFERENCE");}
if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo _QXZ("MODIFY SYSTEM SETTINGS");}
@@ -6654,6 +6675,7 @@ if ($ADD==594111111111) {$hh='admin'; $sh='ar'; echo _QXZ("DELETE AUTOMATED REPO
if ($ADD==595111111111) {$hh='admin'; $sh='il'; echo _QXZ("DELETE IP LIST");}
if ($ADD==596111111111) {$hh='admin'; $sh='cg'; echo _QXZ("DELETE CID GROUP");}
if ($ADD==597111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("DELETE VM MESSAGE GROUP");}
+if ($ADD==598111111111) {$hh='admin'; $sh='qg'; echo _QXZ("DELETE QUEUE GROUP");}
if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE CONFERENCE");}
if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE AGENT CONFERENCE");}
if ($ADD==6) {$hh='users'; $sh='list'; echo _QXZ("Delete User");}
@@ -6702,6 +6724,7 @@ if ($ADD==694111111111) {$hh='admin'; $sh='ar'; echo _QXZ("DELETE AUTOMATED REPO
if ($ADD==695111111111) {$hh='admin'; $sh='il'; echo _QXZ("DELETE IP LIST");}
if ($ADD==696111111111) {$hh='admin'; $sh='cg'; echo _QXZ("DELETE CID GROUP");}
if ($ADD==697111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("DELETE VM MESSAGE GROUP");}
+if ($ADD==698111111111) {$hh='admin'; $sh='qg'; echo _QXZ("DELETE QUEUE GROUP");}
if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE CONFERENCE");}
if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE AGENT CONFERENCE");}
if ($ADD==73) {$hh='campaigns'; echo _QXZ("Dialable Lead Count");}
@@ -6756,6 +6779,7 @@ if ($ADD==194000000000) {$hh='admin'; $sh='ar'; echo _QXZ("AUTOMATED REPORTS LIS
if ($ADD==195000000000) {$hh='admin'; $sh='il'; echo _QXZ("IP LISTS");}
if ($ADD==196000000000) {$hh='admin'; $sh='cg'; echo _QXZ("CID GROUP LIST");}
if ($ADD==197000000000) {$hh='admin'; $sh='vmmg'; echo _QXZ("VM MESSAGE GROUPS LIST");}
+if ($ADD==198000000000) {$hh='admin'; $sh='qg'; echo _QXZ("QUEUE GROUPS LIST");}
if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo _QXZ("CONFERENCE LIST");}
if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo _QXZ("AGENT CONFERENCE LIST");}
if ($ADD==100000000000000) {$hh='qc'; $sh='campaign'; echo _QXZ("Quality Control");}
@@ -7428,6 +7452,89 @@ if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($A
}
##### END get campaigns listing for checkboxes #####
+##### BEGIN Queue Groups campaigns/in-groups listings #####
+if ( ($ADD==298111111111) or ($ADD==398111111111) or ($ADD==498111111111) or ($ADD==598111111111) or ($ADD==698111111111) )
+ {
+ if ( ($ADD==298111111111) or ($ADD==398111111111) or ($ADD==598111111111) or ($ADD==698111111111) )
+ {
+ $stmt="SELECT queue_group,queue_group_name,active,user_group,included_campaigns,included_inbound_groups from vicidial_queue_groups where queue_group='$queue_group' $LOGadmin_viewable_groupsSQL;";
+ $rslt=mysql_to_mysqli($stmt, $link);
+ $row=mysqli_fetch_row($rslt);
+ $included_campaigns = $row[4];
+ $included_inbound_groups = $row[5];
+
+ $qg_allowed_campaigns = preg_replace("/ -$/","",$included_campaigns);
+ $qg_campaigns = explode(" ", $qg_allowed_campaigns);
+ $qg_allowed_inbound_groups = preg_replace("/ -$/","",$included_inbound_groups);
+ $qg_groups = explode(" ", $qg_allowed_inbound_groups);
+ }
+ if ($ADD==498111111111)
+ {
+ $qg_campaigns = $included_campaigns;
+ $qg_groups = $included_inbound_groups;
+ }
+
+ $qg_campaigns_value='';
+ $qg_campaigns_list='';
+ $qg_groups_value='';
+ $qg_groups_list='';
+
+ $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL order by campaign_id;";
+ $rslt=mysql_to_mysqli($stmt, $link);
+ $campaigns_to_print = mysqli_num_rows($rslt);
+
+ $o=0;
+ while ($campaigns_to_print > $o)
+ {
+ $rowx=mysqli_fetch_row($rslt);
+ $campaign_id_value = $rowx[0];
+ $campaign_name_value = $rowx[1];
+ $qg_campaigns_list .= "";
+ $p++;
+ }
+ $qg_campaigns_list .= "> $campaign_id_value - $campaign_name_value
\n";
+ $o++;
+ }
+
+ $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') $LOGadmin_viewable_groupsSQL order by group_id;";
+ $rslt=mysql_to_mysqli($stmt, $link);
+ $groups_to_print = mysqli_num_rows($rslt);
+
+ $o=0;
+ while ($groups_to_print > $o)
+ {
+ $rowx=mysqli_fetch_row($rslt);
+ $group_id_value = $rowx[0];
+ $group_name_value = $rowx[1];
+ $qg_groups_list .= " 1) )
+ {
+ $qg_groups_list .= " CHECKED";
+ $qg_groups_value .= " $group_id_value";
+ }
+ $p++;
+ }
+ $qg_groups_list .= "> $group_id_value - $group_name_value
\n";
+ $o++;
+ }
+
+ if (strlen($qg_campaigns_value)>2) {$qg_campaigns_value .= " -";}
+ if (strlen($qg_groups_value)>2) {$qg_groups_value .= " -";}
+ }
+##### END Queue Groups campaigns/in-groups listings #####
+
if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) or ($ADD=='141111111111') or ($ADD=='140111111111') or ($ADD=='341111111111') or ($ADD=='311111111111111') or ( (strlen($ADD)>4) and ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD<70)) or ($ADD=="4A") or ($ADD=="4B") or (strlen($ADD)==12) )
{
@@ -11048,6 +11155,42 @@ if ($ADD==197111111111)
}
+######################
+# ADD=198111111111 display the ADD NEW Queue Group
+######################
+if ($ADD==198111111111)
+ {
+ if ($LOGmodify_statuses==1)
+ {
+ echo "
| \n";
+ echo " "._QXZ("ADD NEW QUEUE GROUP")." |