From d655fa0ba6f73acb25c6df67ccdf53063d02c515 Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Fri, 31 Jan 2025 21:40:35 -0700 Subject: [PATCH] Use the settings class use database::new() --- app/call_centers/call_center_queue_edit.php | 84 ++++++++++----------- 1 file changed, 39 insertions(+), 45 deletions(-) diff --git a/app/call_centers/call_center_queue_edit.php b/app/call_centers/call_center_queue_edit.php index 3db04a2404..0d02440c7c 100644 --- a/app/call_centers/call_center_queue_edit.php +++ b/app/call_centers/call_center_queue_edit.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2024 + Portions created by the Initial Developer are Copyright (C) 2008-2025 the Initial Developer. All Rights Reserved. Contributor(s): @@ -42,6 +42,10 @@ $language = new text; $text = $language->get(); +//initialize database and settings + $database = database::new(); + $settings = new settings(['database' => $database, $_SESSION['domain_uuid'] ?? '', $_SESSION['user_uuid'] ?? '']); + //set the defaults $queue_name = ''; $queue_extension = ''; @@ -61,24 +65,24 @@ $action = "add"; } -//get the domain_uuid +//get the domain details $domain_uuid = $_SESSION['domain_uuid']; + $domain_name = $_SESSION['domain_name']; -//initialize the destinations object +//initialize the destination object $destination = new destinations; //get total call center queues count from the database, check limit, if defined if ($action == 'add') { - if (!empty($_SESSION['limit']['call_center_queues']['numeric'])) { + if (!empty($settings->get('limit','call_center_queues', ''))) { $sql = "select count(*) from v_call_center_queues "; $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $domain_uuid; - $database = new database; $total_call_center_queues = $database->select($sql, $parameters, 'column'); unset($sql, $parameters); - if ($total_call_center_queues >= $_SESSION['limit']['call_center_queues']['numeric']) { - message::add($text['message-maximum_queues'].' '.$_SESSION['limit']['call_center_queues']['numeric'], 'negative'); + if ($total_call_center_queues >= $settings->get('limit','call_center_queues', 0)) { + message::add($text['message-maximum_queues'].' '.$settings->get('limit','call_center_queues', ''), 'negative'); header('Location: call_center_queues.php'); return; } @@ -124,7 +128,7 @@ $queue_context = $_POST["queue_context"]; } else if ($action == 'add') { - $queue_context = $_SESSION['domain_name']; + $queue_context = $domain_name; } //remove invalid characters @@ -149,7 +153,6 @@ $sql .= "and t.call_center_queue_uuid = q.call_center_queue_uuid; "; $parameters['domain_uuid'] = $domain_uuid; $parameters['call_center_tier_uuid'] = $call_center_tier_uuid; - $database = new database; $tiers = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); @@ -168,7 +171,7 @@ if ($esl->is_connected()) { //callcenter_config tier del [queue_name] [agent_name] if (is_numeric($queue_extension) && is_uuid($call_center_agent_uuid)) { - $cmd = "callcenter_config tier del ".$queue_extension."@".$_SESSION['domain_name']." ".$call_center_agent_uuid; + $cmd = "callcenter_config tier del ".$queue_extension."@".$domain_name." ".$call_center_agent_uuid; $response = event_socket::api($cmd); } } @@ -181,7 +184,6 @@ $p = permissions::new(); $p->add('call_center_tier_delete', 'temp'); - $database = new database; $database->app_name = 'call_centers'; $database->app_uuid = '95788e50-9500-079e-2807-fd530b0ea370'; $database->delete($array); @@ -205,7 +207,6 @@ $sql = "select * from v_call_center_queues "; $sql .= "where call_center_queue_uuid = :call_center_queue_uuid "; $parameters['call_center_queue_uuid'] = $call_center_queue_uuid; - $database = new database; $row = $database->select($sql, $parameters, 'row'); if (!empty($row)) { //if (!permission_exists('call_center_queue_domain')) { @@ -298,8 +299,8 @@ //add the recording path if needed if (!empty($queue_greeting)) { - if (file_exists($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$queue_greeting)) { - $queue_greeting_path = $_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$queue_greeting; + if (file_exists($settings->get('switch','recordings', '').'/'.$domain_name.'/'.$queue_greeting)) { + $queue_greeting_path = $settings->get('switch','recordings', '').'/'.$domain_name.'/'.$queue_greeting; } else { $queue_greeting_path = trim($queue_greeting); @@ -371,8 +372,8 @@ //add definable export variables can be set in default settings $export_variables = 'call_center_queue_uuid,sip_h_Alert-Info'; - if (!empty($_SESSION['call_center']['export_vars'])) { - foreach ($_SESSION['call_center']['export_vars'] as $export_variable) { + if (!empty($settings->get('call_center','export_vars', []))) { + foreach ($settings->get('call_center','export_vars', []) as $export_variable) { $export_variables .= ','.$export_variable; } } @@ -413,7 +414,7 @@ if (!empty($queue_cc_exit_keys)) { $dialplan_xml .= " \n"; } - $dialplan_xml .= " \n"; + $dialplan_xml .= " \n"; if ($destination->valid($queue_timeout_app.':'.$queue_timeout_data)) { $dialplan_xml .= " \n"; } @@ -439,7 +440,6 @@ $p->add("dialplan_edit", "temp"); //save to the data - $database = new database; $database->app_name = 'call_centers'; $database->app_uuid = '95788e50-9500-079e-2807-fd530b0ea370'; $database->save($array); @@ -457,7 +457,7 @@ //clear the cache $cache = new cache; - $cache->delete("dialplan:".$_SESSION["domain_name"]); + $cache->delete("dialplan:".$domain_name); //clear the destinations session array if (isset($_SESSION['destinations']['array'])) { @@ -496,19 +496,19 @@ */ //add the agent if (is_numeric($queue_extension) && is_uuid($call_center_agent_uuid) && is_numeric($tier_level) && is_numeric($tier_position)) { - $cmd = "callcenter_config tier add ".$queue_extension."@".$_SESSION["domain_name"]." ".$call_center_agent_uuid." ".$tier_level." ".$tier_position; + $cmd = "callcenter_config tier add ".$queue_extension."@".$domain_name." ".$call_center_agent_uuid." ".$tier_level." ".$tier_position; $response = event_socket::api($cmd); } usleep(200); //agent set level if (is_numeric($queue_extension) && is_numeric($tier_level)) { - $cmd = "callcenter_config tier set level ".$queue_extension."@".$_SESSION["domain_name"]." ".$call_center_agent_uuid." ".$tier_level; + $cmd = "callcenter_config tier set level ".$queue_extension."@".$domain_name." ".$call_center_agent_uuid." ".$tier_level; $response = event_socket::api($cmd); } usleep(200); //agent set position if (is_numeric($queue_extension) && is_numeric($tier_position)) { - $cmd = "callcenter_config tier set position ".$queue_extension."@".$_SESSION["domain_name"]." ".$tier_position; + $cmd = "callcenter_config tier set position ".$queue_extension."@".$domain_name." ".$tier_position; $response = event_socket::api($cmd); } usleep(200); @@ -538,7 +538,6 @@ $sql .= "and call_center_queue_uuid = :call_center_queue_uuid "; $parameters['domain_uuid'] = $domain_uuid; $parameters['call_center_queue_uuid'] = $call_center_queue_uuid; - $database = new database; $call_center_queues = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); @@ -587,17 +586,16 @@ $sql .= "order by tier_level asc, tier_position asc, a.agent_name asc"; $parameters['domain_uuid'] = $domain_uuid; $parameters['call_center_queue_uuid'] = $call_center_queue_uuid ?? null; - $database = new database; $tiers = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); //add an empty row to the tiers array if (count($tiers) == 0) { - $rows = $_SESSION['call_center']['agent_add_rows']['numeric'] ?? null; + $rows = $settings->get('call_center','agent_add_rows', null); $id = 0; } if (count($tiers) > 0) { - $rows = $_SESSION['call_center']['agent_edit_rows']['numeric']; + $rows = $settings->get('call_center','agent_edit_rows', null); $id = count($tiers)+1; } for ($x = 0; $x < $rows; $x++) { @@ -615,7 +613,6 @@ $sql .= "where domain_uuid = :domain_uuid "; $sql .= "order by agent_name asc"; $parameters['domain_uuid'] = $domain_uuid; - $database = new database; $agents = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); @@ -624,6 +621,7 @@ $audio_files[0] = $sounds->get(); unset($sounds); +//get the list of sounds if (permission_exists('call_center_announce_sound')) { $sounds = new sounds; $sounds->sound_types = ['recordings']; @@ -646,7 +644,7 @@ if (empty($queue_tier_rule_no_agent_no_wait)) { $queue_tier_rule_no_agent_no_wait = "true"; } if (empty($queue_discard_abandoned_after)) { $queue_discard_abandoned_after = "900"; } if (empty($queue_abandoned_resume_allowed)) { $queue_abandoned_resume_allowed = "false"; } - if (empty($queue_context)) { $queue_context = $_SESSION['domain_name']; } + if (empty($queue_context)) { $queue_context = $domain_name; } //create token $object = new token; @@ -667,12 +665,8 @@ } //set the record_template - if (empty($_SESSION['call_center']['record_name']['text'])) { - $record_template = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.\${record_ext}"; - } - else { - $record_template = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".$_SESSION['call_center']['record_name']['text']; - } + $record_template = $settings->get('switch','recordings', '')."/".$domain_name."/archive/"; + $record_template .= $settings->get('call_center','record_name', "\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.\${record_ext}"); //show the content if (permission_exists('recording_play') || permission_exists('recording_download')) { @@ -757,7 +751,7 @@ } echo "\n"; echo "
\n"; - echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','style'=>'margin-right: 15px;','link'=>'call_center_queues.php']); + echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme','button_icon_back', ''),'id'=>'btn_back','style'=>'margin-right: 15px;','link'=>'call_center_queues.php']); if ($action == "update") { if (permission_exists('call_center_wallboard')) { @@ -765,10 +759,10 @@ } //echo button::create(['type'=>'button','label'=>$text['button-stop'],'icon'=>$_SESSION['theme']['button_icon_stop'],'link'=>'cmd.php?cmd=unload&id='.urlencode($call_center_queue_uuid)]); //echo button::create(['type'=>'button','label'=>$text['button-start'],'icon'=>$_SESSION['theme']['button_icon_start'],'link'=>'cmd.php?cmd=load&id='.urlencode($call_center_queue_uuid)]); - echo button::create(['type'=>'button','label'=>$text['button-reload'],'icon'=>$_SESSION['theme']['button_icon_reload'],'link'=>'cmd.php?cmd=reload&id='.urlencode($call_center_queue_uuid)]); - echo button::create(['type'=>'button','label'=>$text['button-view'],'icon'=>$_SESSION['theme']['button_icon_view'],'style'=>'margin-right: 15px;','link'=>PROJECT_PATH.'/app/call_center_active/call_center_active.php?queue_name='.urlencode($call_center_queue_uuid)]); + echo button::create(['type'=>'button','label'=>$text['button-reload'],'icon'=>$settings->get('theme','button_icon_reload', ''),'link'=>'cmd.php?cmd=reload&id='.urlencode($call_center_queue_uuid)]); + echo button::create(['type'=>'button','label'=>$text['button-view'],'icon'=>$settings->get('theme','button_icon_view', ''),'style'=>'margin-right: 15px;','link'=>PROJECT_PATH.'/app/call_center_active/call_center_active.php?queue_name='.urlencode($call_center_queue_uuid)]); } - echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save']); + echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$settings->get('theme','button_icon_save', ''),'id'=>'btn_save']); echo "
\n"; echo "
\n"; echo "\n"; @@ -791,7 +785,7 @@ echo " ".$text['label-extension']."\n"; echo "\n"; echo "\n"; - echo " \n"; + echo " get('call_center','extension_range', '')."\">\n"; echo "
\n"; echo $text['description-extension']."\n"; echo "\n"; @@ -818,8 +812,8 @@ if ($key == 'recordings') { if ( !empty($instance_value) && - ($instance_value == $row["value"] || $instance_value == $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.$row["value"]) && - file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.pathinfo($row["value"], PATHINFO_BASENAME)) + ($instance_value == $row["value"] || $instance_value == $settings->get('switch','recordings', '')."/".$domain_name.'/'.$row["value"]) && + file_exists($settings->get('switch','recordings', '')."/".$domain_name.'/'.pathinfo($row["value"], PATHINFO_BASENAME)) ) { $selected = "selected='selected'"; $playable = '../recordings/recordings.php?action=download&type=rec&filename='.pathinfo($row["value"], PATHINFO_BASENAME); @@ -862,7 +856,7 @@ case 'ogg' : $mime_type = 'audio/ogg'; break; } echo ""; - echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$_SESSION['theme']['button_icon_play'],'id'=>'recording_button_'.$instance_id,'style'=>'display: '.(!empty($mime_type) ? 'inline' : 'none'),'onclick'=>"recording_play('".$instance_id."', document.getElementById('".$instance_id."').value, document.getElementById('".$instance_id."').options[document.getElementById('".$instance_id."').selectedIndex].parentNode.getAttribute('data-type'))"]); + echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$settings->get('theme','button_icon_play', ''),'id'=>'recording_button_'.$instance_id,'style'=>'display: '.(!empty($mime_type) ? 'inline' : 'none'),'onclick'=>"recording_play('".$instance_id."', document.getElementById('".$instance_id."').value, document.getElementById('".$instance_id."').options[document.getElementById('".$instance_id."').selectedIndex].parentNode.getAttribute('data-type'))"]); unset($playable, $mime_type); } echo "
\n"; @@ -1318,8 +1312,8 @@ if ($key == 'recordings') { if ( !empty($instance_value) && - ($instance_value == $row["value"] || $instance_value == $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.$row["value"]) && - file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.pathinfo($row["value"], PATHINFO_BASENAME)) + ($instance_value == $row["value"] || $instance_value == $settings->get('switch','recordings', '')."/".$domain_name.'/'.$row["value"]) && + file_exists($settings->get('switch','recordings', '')."/".$domain_name.'/'.pathinfo($row["value"], PATHINFO_BASENAME)) ) { $selected = "selected='selected'"; $playable = '../recordings/recordings.php?action=download&type=rec&filename='.pathinfo($row["value"], PATHINFO_BASENAME); @@ -1362,7 +1356,7 @@ case 'ogg' : $mime_type = 'audio/ogg'; break; } echo ""; - echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$_SESSION['theme']['button_icon_play'],'id'=>'recording_button_'.$instance_id,'style'=>'display: '.(!empty($mime_type) ? 'inline' : 'none'),'onclick'=>"recording_play('".$instance_id."', document.getElementById('".$instance_id."').value, document.getElementById('".$instance_id."').options[document.getElementById('".$instance_id."').selectedIndex].parentNode.getAttribute('data-type'))"]); + echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$settings->get('theme','button_icon_play', ''),'id'=>'recording_button_'.$instance_id,'style'=>'display: '.(!empty($mime_type) ? 'inline' : 'none'),'onclick'=>"recording_play('".$instance_id."', document.getElementById('".$instance_id."').value, document.getElementById('".$instance_id."').options[document.getElementById('".$instance_id."').selectedIndex].parentNode.getAttribute('data-type'))"]); unset($playable, $mime_type); } echo "
\n";