diff --git a/app/ivr_menus/app_config.php b/app/ivr_menus/app_config.php
index 69d3b3ec07..c010b39835 100644
--- a/app/ivr_menus/app_config.php
+++ b/app/ivr_menus/app_config.php
@@ -478,6 +478,13 @@
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
+ $apps[$x]['db'][$y]['fields'][$z]['name'] = "ivr_menu_option_enabled";
+ $apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "boolean";
+ $apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text";
+ $apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "text";
+ $apps[$x]['db'][$y]['fields'][$z]['toggle'] = ['true','false'];
+ $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
+ $z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "insert_date";
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'timestamptz';
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'date';
diff --git a/app/ivr_menus/app_defaults.php b/app/ivr_menus/app_defaults.php
index 2438c76cb7..307bf9a9f4 100644
--- a/app/ivr_menus/app_defaults.php
+++ b/app/ivr_menus/app_defaults.php
@@ -83,6 +83,14 @@ if ($domains_processed == 1) {
$ivr_menus = $database->select($sql, null, 'all');
unset($sql);
+ //enable existing ivr menu options by default
+ $sql = "update v_ivr_menu_options ";
+ $sql .= "set ivr_menu_option_enabled = true ";
+ $sql .= "where ivr_menu_option_enabled is null; ";
+ $database = new database;
+ $database->execute($sql, null);
+ unset($sql);
+
}
?>
diff --git a/app/ivr_menus/ivr_menu_edit.php b/app/ivr_menus/ivr_menu_edit.php
index 51e68eaf73..74146d151b 100644
--- a/app/ivr_menus/ivr_menu_edit.php
+++ b/app/ivr_menus/ivr_menu_edit.php
@@ -326,6 +326,7 @@
}
$array['ivr_menus'][0]['ivr_menu_options'][$y]["ivr_menu_option_order"] = $row["ivr_menu_option_order"];
$array['ivr_menus'][0]['ivr_menu_options'][$y]["ivr_menu_option_description"] = $row["ivr_menu_option_description"];
+ $array['ivr_menus'][0]["ivr_menu_options"][$y]["ivr_menu_option_enabled"] = $row['ivr_menu_option_enabled'] ?: 'false';
$y++;
}
}
@@ -540,6 +541,7 @@
$ivr_menu_options[$id]['ivr_menu_option_param'] = '';
$ivr_menu_options[$id]['ivr_menu_option_order'] = '';
$ivr_menu_options[$id]['ivr_menu_option_description'] = '';
+ $ivr_menu_options[$id]['ivr_menu_option_enabled'] = '';
$id++;
}
@@ -1031,6 +1033,7 @@
echo "
".$text['label-destination']." | \n";
echo " ".$text['label-order']." | \n";
echo " ".$text['label-description']." | \n";
+ echo " ".$text['label-enabled']." | \n";
if ($show_option_delete && permission_exists('ivr_menu_option_delete')) {
echo " \n";
echo " ".$text['label-delete']."\n";
@@ -1048,7 +1051,15 @@
}
echo " | \n";
- echo " \n";
+ if (!is_uuid($field['ivr_menu_option_uuid'])) { // new record
+ if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
+ $onkeyup = "onkeyup=\"document.getElementById('ivr_menu_options_".$x."_ivr_menu_option_enabled').checked = (this.value != '' ? true : false);\""; // switch
+ }
+ else {
+ $onkeyup = "onkeyup=\"document.getElementById('ivr_menu_options_".$x."_ivr_menu_option_enabled').value = (this.value != '' ? true : false);\""; // select
+ }
+ }
+ echo " \n";
echo " | \n";
echo "\n";
@@ -1081,7 +1092,22 @@
echo " | \n";
echo " \n";
echo " | \n";
-
+ echo "\n";
+ // switch
+ if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
+ echo " \n";
+ }
+ // select
+ else {
+ echo " \n";
+ }
+ echo " | \n";
if ($show_option_delete && permission_exists('ivr_menu_option_delete')) {
if (is_uuid($field['ivr_menu_option_uuid'])) {
echo "";
diff --git a/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/ivr.conf.lua b/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/ivr.conf.lua
index 3dff16098d..6203d45064 100644
--- a/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/ivr.conf.lua
+++ b/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/ivr.conf.lua
@@ -266,7 +266,7 @@
table.insert(xml, [[ >]]);
--get the ivr menu options
- local sql = [[SELECT * FROM v_ivr_menu_options WHERE ivr_menu_uuid = :ivr_menu_uuid ORDER BY ivr_menu_option_order asc ]];
+ local sql = [[ SELECT * FROM v_ivr_menu_options WHERE ivr_menu_uuid = :ivr_menu_uuid AND ivr_menu_option_enabled = 'true' ORDER BY ivr_menu_option_order asc ]];
local params = {ivr_menu_uuid = ivr_menu_uuid};
if (debug["sql"]) then
freeswitch.consoleLog("notice", "[ivr_menu] SQL: " .. sql .. "; params:" .. json.encode(params) .. "\n");
diff --git a/app/scripts/resources/scripts/ivr_menu.lua b/app/scripts/resources/scripts/ivr_menu.lua
index 21fc8f38e9..da191d0938 100644
--- a/app/scripts/resources/scripts/ivr_menu.lua
+++ b/app/scripts/resources/scripts/ivr_menu.lua
@@ -332,9 +332,17 @@
end
--get the ivr menu options
- local sql = "SELECT * FROM v_ivr_menu_options "
- .. "WHERE ivr_menu_uuid = :ivr_menu_uuid "
- .. "ORDER BY ivr_menu_option_order asc ";
+ local sql = [[
+ SELECT
+ *
+ FROM
+ v_ivr_menu_options
+ WHERE
+ ivr_menu_uuid = :ivr_menu_uuid
+ AND ivr_menu_option_enabled = 'true'
+ ORDER BY
+ ivr_menu_option_order asc
+ ]];
local params = {ivr_menu_uuid = ivr_menu_uuid};
if (debug["sql"]) then
log.notice("SQL: " .. sql .. "; params: " .. json.encode(params));
|