From 34ae1fbe64963943a203685da4cd3d512ca99dd2 Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Thu, 14 Jul 2016 01:11:17 -0600 Subject: [PATCH] Update ivr_menu_edit.php Simplify ivr_menu_edit.php and remove the edit option link as it is no longer needed. --- app/ivr_menus/ivr_menu_edit.php | 273 +++++++++++++++----------------- 1 file changed, 129 insertions(+), 144 deletions(-) diff --git a/app/ivr_menus/ivr_menu_edit.php b/app/ivr_menus/ivr_menu_edit.php index 7561a7a7ab..87d489538e 100644 --- a/app/ivr_menus/ivr_menu_edit.php +++ b/app/ivr_menus/ivr_menu_edit.php @@ -24,18 +24,22 @@ Mark J Crane Luis Daniel Lucio Quiroz */ -require_once "root.php"; -require_once "resources/require.php"; -require_once "resources/check_auth.php"; -require_once "resources/classes/logging.php"; -require_once "resources/classes/ringbacks.php"; -if (permission_exists('ivr_menu_add') || permission_exists('ivr_menu_edit')) { - //access granted -} -else { - echo "access denied"; - exit; -} + +//includes + require_once "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + require_once "resources/classes/logging.php"; + require_once "resources/classes/ringbacks.php"; + +//check permissions + if (permission_exists('ivr_menu_add') || permission_exists('ivr_menu_edit')) { + //access granted + } + else { + echo "access denied"; + exit; + } //add multi-lingual support $language = new text; @@ -112,7 +116,7 @@ else { } } -//process the http data +//process the http data if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //get the id @@ -156,100 +160,65 @@ else { return; } - //replace the space with a dash - $ivr_menu_name = str_replace(" ", "-", $ivr_menu_name); + //array cleanup + //remove the save + unset($_POST["submit"]); + + //add the domain_uuid + if (strlen($_POST["domain_uuid"] ) == 0) { + $_POST["domain_uuid"] = $_SESSION['domain_uuid']; + } + + //seperate the action and the param + $exit_array = explode(":", $_POST["ivr_menu_exit_action"]); + $_POST["ivr_menu_exit_app"] = array_shift($exit_array); + $_POST["ivr_menu_exit_data"] = join(':', $exit_array); + unset($_POST["ivr_menu_exit_action"]); + + //unset empty options, and seperate the option action from the param + $x = 0; + foreach ($_POST["ivr_menu_options"] as $row) { + if (strlen($row["ivr_menu_option_param"]) == 0) { + //remove the empty row + unset($_POST["ivr_menu_options"][$x]); + } + else { + //seperate the action and the param + $options_array = explode(":", $row["ivr_menu_option_param"]); + $_POST["ivr_menu_options"][$x]["ivr_menu_option_action"] = array_shift($options_array); + $_POST["ivr_menu_options"][$x]["ivr_menu_option_param"] = join(':', $options_array); + + //add the domain_uuid + if (strlen($row["domain_uuid"]) == 0) { + $_POST["ivr_menu_options"][$x]["domain_uuid"] = $_POST["domain_uuid"]; + } + } + $x++; + } //add or update the database if ($_POST["persistformvar"] != "true") { - //prepare the object - require_once "resources/classes/database.php"; - require_once "resources/classes/ivr_menu.php"; + + //used for debugging + if ($_POST["debug"] == "true") { + unset($_POST["debug"]); + echo "
\n";
+						print_r($_POST);
+						echo "
\n"; + exit; + } + + //save the ivr menu $ivr = new ivr_menu; $ivr->domain_uuid = $_SESSION["domain_uuid"]; - $ivr->ivr_menu_name = $ivr_menu_name; - $ivr->ivr_menu_extension = $ivr_menu_extension; - $ivr->ivr_menu_greet_long = $ivr_menu_greet_long; - $ivr->ivr_menu_greet_short = $ivr_menu_greet_short; - $ivr->ivr_menu_invalid_sound = $ivr_menu_invalid_sound; - $ivr->ivr_menu_exit_sound = $ivr_menu_exit_sound; - $ivr->ivr_menu_confirm_macro = $ivr_menu_confirm_macro; - $ivr->ivr_menu_confirm_key = $ivr_menu_confirm_key; - $ivr->ivr_menu_tts_engine = $ivr_menu_tts_engine; - $ivr->ivr_menu_tts_voice = $ivr_menu_tts_voice; - $ivr->ivr_menu_confirm_attempts = $ivr_menu_confirm_attempts; - $ivr->ivr_menu_timeout = $ivr_menu_timeout; - $ivr->ivr_menu_exit_app = $ivr_menu_exit_app; - $ivr->ivr_menu_exit_data = $ivr_menu_exit_data; - $ivr->ivr_menu_inter_digit_timeout = $ivr_menu_inter_digit_timeout; - $ivr->ivr_menu_max_failures = $ivr_menu_max_failures; - $ivr->ivr_menu_max_timeouts = $ivr_menu_max_timeouts; - $ivr->ivr_menu_max_timeouts = $ivr_menu_max_timeouts; - $ivr->ivr_menu_digit_len = $ivr_menu_digit_len; - $ivr->ivr_menu_digit_len = $ivr_menu_digit_len; - $ivr->ivr_menu_direct_dial = $ivr_menu_direct_dial; - $ivr->ivr_menu_ringback = $ivr_menu_ringback; - $ivr->ivr_menu_cid_prefix = $ivr_menu_cid_prefix; - $ivr->ivr_menu_enabled = $ivr_menu_enabled; - $ivr->ivr_menu_description = $ivr_menu_description; - - //add the data - if ($action == "add" && permission_exists('ivr_menu_add')) { - //set the ivr_menu_uuid - $ivr_menu_uuid = uuid(); - $ivr->ivr_menu_uuid = $ivr_menu_uuid; - - //run the add method in the ivr menu class - $ivr->add(); - - //set the message - $_SESSION['message'] = $text['message-add']; + if (strlen($ivr_menu_uuid ) > 0) { + $ivr->ivr_menu_uuid = $ivr_menu_uuid; } - - //update the data - if ($action == "update" && permission_exists('ivr_menu_edit')) { - //get the ivr_menu_uuid - $ivr_menu_uuid = check_str($_REQUEST["id"]); - - //run the update method in the ivr menu class - $ivr->ivr_menu_uuid = $ivr_menu_uuid; - $ivr->update(); - - //set the message - $_SESSION['message'] = $text['message-update']; + $response = $ivr->save($_POST); + if (strlen($response['uuid']) > 0) { + $ivr_menu_uuid = $response['uuid']; } - //add the ivr menu options - if (($action == "add" && permission_exists('ivr_menu_add')) || ($action == "update" && permission_exists('ivr_menu_edit'))) { - require_once "resources/classes/database.php"; - require_once "resources/classes/ivr_menu.php"; - foreach ($ivr_menu_options as $row) { - //seperate the action and the param - $option_array = explode(":", $row["ivr_menu_option_param"]); - $ivr_menu_option_action = array_shift($option_array); - $ivr_menu_option_param = join(':', $option_array); - - //add the ivr menu option - if (strlen($ivr_menu_option_action) > 0) { - $ivr = new ivr_menu; - $ivr->domain_uuid = $_SESSION["domain_uuid"]; - $ivr->ivr_menu_uuid = $ivr_menu_uuid; - $ivr->ivr_menu_option_uuid = uuid(); - $ivr->ivr_menu_option_digits = trim($row["ivr_menu_option_digits"]); - $ivr->ivr_menu_option_action = $ivr_menu_option_action; - $ivr->ivr_menu_option_param = $ivr_menu_option_param; - $ivr->ivr_menu_option_order = $row["ivr_menu_option_order"]; - $ivr->ivr_menu_option_description = $row["ivr_menu_option_description"]; - $ivr->add(); - } - } - if ($action == "add") { - $action == "update"; - } - } - - //synchronize the xml config - save_dialplan_xml(); - //clear the cache $cache = new cache; $cache->delete("dialplan:".$_SESSION["context"]); @@ -269,12 +238,12 @@ else { //pre-populate the form if (strlen($ivr_menu_uuid) == 0) { $ivr_menu_uuid = check_str($_REQUEST["id"]); } if (strlen($ivr_menu_uuid) > 0 && $_POST["persistformvar"] != "true") { - require_once "resources/classes/ivr_menu.php"; $ivr = new ivr_menu; $ivr->domain_uuid = $_SESSION["domain_uuid"]; $ivr->ivr_menu_uuid = $ivr_menu_uuid; $ivr_menus = $ivr->find(); if (is_array($ivr_menus)) foreach ($ivr_menus as &$row) { + $dialplan_uuid = $row["dialplan_uuid"]; $ivr_menu_name = $row["ivr_menu_name"]; $ivr_menu_extension = $row["ivr_menu_extension"]; $ivr_menu_greet_long = $row["ivr_menu_greet_long"]; @@ -318,6 +287,13 @@ else { $prep_statement->execute(); $ivr_menu_options = $prep_statement->fetchAll(PDO::FETCH_NAMED); +//add an empty row to the options array + $ivr_menu_options[$x]['ivr_menu_option_digits'] = ''; + $ivr_menu_options[$x]['ivr_menu_option_action'] = ''; + $ivr_menu_options[$x]['ivr_menu_option_param'] = ''; + $ivr_menu_options[$x]['ivr_menu_option_order'] = ''; + $ivr_menu_options[$x]['ivr_menu_option_description'] = ''; + //set the defaults if (strlen($ivr_menu_timeout) == 0) { $ivr_menu_timeout = '3000'; } if (strlen($ivr_menu_ringback) == 0) { $ivr_menu_ringback = 'local_stream://default'; } @@ -646,59 +622,66 @@ else { echo " ".$text['label-description']."\n"; echo " \n"; echo " \n"; - if (strlen($ivr_menu_uuid) > 0) { + if (is_array($ivr_menu_options)) { + $c = 0; + foreach($ivr_menu_options as $field) { - if (is_array($ivr_menu_options)) foreach($ivr_menu_options as $field) { - $ivr_menu_option_param = $field['ivr_menu_option_param']; - if (strlen(trim($ivr_menu_option_param)) == 0) { - $ivr_menu_option_param = $field['ivr_menu_option_action']; + //add the primary key uuid + if (strlen($field['ivr_menu_option_uuid']) > 0) { + echo " \n"; } - $ivr_menu_option_param = str_replace("menu-", "", $ivr_menu_option_param); - $ivr_menu_option_param = str_replace("XML ", "", $ivr_menu_option_param); - $ivr_menu_option_param = str_replace("transfer ", "", $ivr_menu_option_param); - $ivr_menu_option_param = str_replace("bridge ", "", $ivr_menu_option_param); - $ivr_menu_option_param = str_replace($_SESSION['domain_name'], "", $ivr_menu_option_param); - $ivr_menu_option_param = str_replace("\${domain_name}", "", $ivr_menu_option_param); - $ivr_menu_option_param = str_replace("\${domain}", "", $ivr_menu_option_param); - $ivr_menu_option_param = str_replace(".".$_SESSION['domain_uuid'], "", $ivr_menu_option_param); - $ivr_menu_option_param = str_replace("//", "/", $ivr_menu_option_param); - if (preg_match( "/^phrase /", $ivr_menu_option_param )) { - // parse out phrase uuid - $phrase_uuid = str_replace("phrase ", "", $ivr_menu_option_param); - // retrieve phrase name from db - $sql = "select phrase_name from v_phrases where phrase_uuid = '$phrase_uuid' limit 1"; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - if (count($result) > 0) { - $phrase_name = $result[0]['phrase_name']; - $ivr_menu_option_param = "phrase: $phrase_name"; - } - unset ($prep_statement, $sql, $phrase_uuid, $phrase_name); + + echo "\n"; + echo " \n"; + echo "\n"; + + echo "\n"; + $destination_action = ''; + if (strlen($field['ivr_menu_option_action'].$field['ivr_menu_option_param']) > 0) { + $destination_action = $field['ivr_menu_option_action'].':'.$field['ivr_menu_option_param']; + } else { $destination_action = ''; } + echo $destination->select('ivr', 'ivr_menu_options['.$c.'][ivr_menu_option_param]', $destination_action); + unset($destination_action); + echo "\n"; + + echo "\n"; + echo " \n"; + echo "\n"; + + echo "\n"; + echo " \n"; + echo "\n"; + echo " "; - echo "$v_link_label_edit"; - echo "$v_link_label_delete"; + if (strlen($field['ivr_menu_option_uuid']) > 0) { + //echo " $v_link_label_edit"; + echo " $v_link_label_delete"; + } + else { + echo "  \n"; + } echo " \n"; echo " \n"; + + $c++; } } unset($sql, $result); - +/* for ($c = 0; $c < 1; $c++) { echo " \n"; echo "\n"; @@ -737,6 +720,7 @@ else { echo " \n"; echo " \n"; } +*/ echo " \n"; echo " ".$text['description-options']."\n"; @@ -1165,6 +1149,7 @@ else { echo " \n"; if (strlen($ivr_menu_uuid) > 0) { echo " \n"; + echo " \n"; } echo "
"; echo " \n";