diff --git a/app/call_centers/call_center_queue_edit.php b/app/call_centers/call_center_queue_edit.php index a2568cfdaf..4d3227a7b0 100644 --- a/app/call_centers/call_center_queue_edit.php +++ b/app/call_centers/call_center_queue_edit.php @@ -128,8 +128,6 @@ } unset ($prep_statement); //delete the agent from freeswitch - //get the domain using the $_SESSION['domain_uuid'] - $tmp_domain = $_SESSION['domains'][$_SESSION['domain_uuid']]['domain_name']; //setup the event socket connection $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); //delete the agent over event socket @@ -204,6 +202,21 @@ $_POST["dialplan_uuid"] = $dialplan_uuid; } + //update the call centier tiers array + $x = 0; + foreach ($_POST["call_center_tiers"] as $row) { + //add the domain_uuid + if (strlen($row["domain_uuid"]) == 0) { + $_POST["call_center_tiers"][$x]["domain_uuid"] = $_SESSION['domain_uuid']; + } + //unset ring_group_destination_uuid if the field has no value + if (strlen($row["call_center_agent_uuid"]) == 0) { + unset($_POST["call_center_tiers"][$x]); + } + //increment the row + $x++; + } + //get the application and data $action_array = explode(":",$queue_timeout_action); $queue_timeout_application = $action_array[0]; @@ -241,18 +254,9 @@ $dialplan["dialplan_description"] = $queue_description; $dialplan["app_uuid"] = "95788e50-9500-079e-2807-fd530b0ea370"; - //set the queue name - $_POST["call_center_tiers"][0]["queue_name"] = $queue_name; - - //check for to make sure the agent_name was provided if not then remove from the array - if (strlen($_POST["call_center_tiers"][0]["agent_name"]) == 0) { - unset($_POST["call_center_tiers"]); - } - //prepare the array $array['call_center_queues'][] = $_POST; $array['dialplans'][] = $dialplan; - //echo "
". print_r($array, true) .""; //add the dialplan permission $p = new permissions; @@ -307,8 +311,6 @@ $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); //add the agent using event socket if ($fp) { - //get the domain using the $domain_uuid - $tmp_domain = $_SESSION['domains'][$domain_uuid]['domain_name']; /* syntax: callcenter_config tier add [queue_name] [agent_name] [level] [position] callcenter_config tier set state [queue_name] [agent_name] [state] @@ -330,15 +332,15 @@ } } - //syncrhonize configuration - save_call_center_xml(); + //syncrhonize configuration + save_call_center_xml(); - //remove the cache - remove_config_from_cache('configuration:callcenter.conf'); + //remove the cache + remove_config_from_cache('configuration:callcenter.conf'); - //redirect the user - header("Location: call_center_queue_edit.php?id=".$call_center_queue_uuid); - return; + //redirect the user + header("Location: call_center_queue_edit.php?id=".$call_center_queue_uuid); + return; } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) @@ -347,7 +349,6 @@ //pre-populate the form if (is_array($_GET) && is_uuid($_GET["id"]) && $_POST["persistformvar"] != "true") { - $call_center_queue_uuid = $_GET["id"]; $sql = "select * from v_call_center_queues "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; @@ -386,7 +387,7 @@ } //get the tiers - $sql = "select t.call_center_tier_uuid, t.tier_level, t.tier_position, a.agent_name "; + $sql = "select t.call_center_tier_uuid, t.call_center_agent_uuid, t.call_center_queue_uuid, t.tier_level, t.tier_position, a.agent_name "; $sql .= "from v_call_center_tiers as t, v_call_center_agents as a "; $sql .= "where t.call_center_queue_uuid = '".$call_center_queue_uuid."' "; $sql .= "and t.call_center_agent_uuid = a.call_center_agent_uuid "; @@ -396,6 +397,36 @@ $prep_statement->execute(); $tiers = $prep_statement->fetchAll(PDO::FETCH_NAMED); +//add an empty row to the tiers array + + if (count($tiers) == 0) { + $rows = $_SESSION['call_center']['agent_add_rows']['numeric']; + $id = 0; + } + if (count($tiers) > 0) { + $rows = $_SESSION['call_center']['agent_edit_rows']['numeric']; + $id = count($tiers)+1; + } + $rows = 1; + $id = count($tiers) + 1; + for ($x = 0; $x < $rows; $x++) { + $tiers[$id]['call_center_tier_uuid'] = uuid(); + $tiers[$id]['call_center_agent_uuid'] = ''; + $tiers[$id]['call_center_queue_uuid'] = $call_center_queue_uuid; + $tiers[$id]['tier_level'] = ''; + $tiers[$id]['tier_position'] = ''; + $tiers[$id]['agent_name'] = ''; + $id++; + } + +//get the agents + $sql = "select call_center_agent_uuid, agent_name from v_call_center_agents "; + $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "order by agent_name asc"; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $agents = $prep_statement->fetchAll(PDO::FETCH_NAMED); + //set default values if (strlen($queue_strategy) == 0) { $queue_strategy = "longest-idle-agent"; } if (strlen($queue_moh_sound) == 0) { $queue_moh_sound = "\$\${hold_music}"; } @@ -542,7 +573,7 @@ echo "
| ".$text['label-agent_name']." | \n"; echo "".$text['label-tier_level']." | \n"; @@ -551,74 +582,56 @@ echo "||||||
| ".$field['agent_name']." | \n"; - echo "".$field['tier_level']." | \n"; - echo "".$field['tier_position']." | \n"; - echo ""; - if (permission_exists('call_center_tier_edit')) { - echo "".$v_link_label_edit.""; + echo " | "; + echo " \n"; + echo " \n"; + echo " "; + echo " | \n"; + echo ""; + echo " \n"; + echo " | \n"; + + echo "\n"; + echo " \n"; + echo " | \n"; + echo ""; if (permission_exists('call_center_tier_delete')) { - echo "$v_link_label_delete"; + echo " $v_link_label_delete"; } echo " | \n"; echo "
| \n"; - echo " \n"; - echo " "; - echo " | \n"; - echo "\n"; - echo " \n"; - echo " | \n"; - echo "\n"; - echo " \n"; - echo " | \n"; - echo ""; - echo " \n"; - //echo " \n"; - echo " \n"; - echo " | \n"; - echo "