Portions created by the Initial Developer are Copyright (C) 2008-2021 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('default_setting_add') || permission_exists('default_setting_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //action add or update if (is_uuid($_REQUEST["id"])) { $action = "update"; $default_setting_uuid = $_REQUEST["id"]; } else { $action = "add"; } $search = $_REQUEST['search']; //get http post variables and set them to php variables if (count($_REQUEST) > 0) { $default_setting_category = strtolower($_REQUEST["default_setting_category"]); $default_setting_subcategory = strtolower($_POST["default_setting_subcategory"]); $default_setting_name = strtolower($_POST["default_setting_name"]); $default_setting_value = $_POST["default_setting_value"]; $default_setting_order = $_POST["default_setting_order"]; $default_setting_enabled = $_POST["default_setting_enabled"]; $default_setting_description = $_POST["default_setting_description"]; } //process the http post if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //set the default_setting_uuid if ($action == "update") { $default_setting_uuid = $_POST["default_setting_uuid"]; } else { $default_setting_uuid = uuid(); } //validate the token $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); header('Location: default_settings.php'); exit; } //check for all required data $msg = ''; if (strlen($default_setting_category) == 0) { $msg .= $text['message-required'].$text['label-category']."
\n"; } if (strlen($default_setting_subcategory) == 0) { $msg .= $text['message-required'].$text['label-subcategory']."
\n"; } if (strlen($default_setting_name) == 0) { $msg .= $text['message-required'].$text['label-type']."
\n"; } //if (strlen($default_setting_value) == 0) { $msg .= $text['message-required'].$text['label-value']."
\n"; } if (strlen($default_setting_order) == 0) { $msg .= $text['message-required'].$text['label-order']."
\n"; } if (strlen($default_setting_enabled) == 0) { $msg .= $text['message-required'].$text['label-enabled']."
\n"; } //if (strlen($default_setting_description) == 0) { $msg .= $text['message-required'].$text['label-description']."
\n"; } if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { require_once "resources/header.php"; require_once "resources/persist_form_var.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "resources/footer.php"; return; } //add or update the database if ($_POST["persistformvar"] != "true") { // fix null $default_setting_order = ($default_setting_order != '') ? $default_setting_order : 'null'; //update switch timezone variables if ($default_setting_category == "domain" && $default_setting_subcategory == "time_zone" && $default_setting_name == "name" ) { //get the dialplan_uuid $sql = "select dialplan_uuid from v_dialplans "; $sql .= "where app_uuid = 'd49ee3bd-5085-4619-a2f9-2b62c8c461c5' "; $database = new database; $dialplan_uuid = $database->select($sql, null, 'column'); unset($sql); //get the action $sql = "select dialplan_detail_uuid from v_dialplan_details "; $sql .= "where dialplan_uuid = :dialplan_uuid "; $sql .= "and dialplan_detail_tag = 'action' "; $sql .= "and dialplan_detail_type = 'set' "; $sql .= "and dialplan_detail_data like 'timezone=%' "; $parameters['dialplan_uuid'] = $dialplan_uuid; $database = new database; $dialplan_detail_uuid = $database->select($sql, $parameters, 'column'); $detail_action = is_uuid($dialplan_detail_uuid) ? 'update' : 'add'; unset($sql, $parameters); //update the timezone $p = new permissions; if ($detail_action == "update") { $array['dialplan_details'][0]['dialplan_detail_uuid'] = $dialplan_detail_uuid; $array['dialplan_details'][0]['dialplan_detail_data'] = 'timezone='.$default_setting_value; $p->add('dialplan_detail_edit', 'temp'); } else { $array['dialplan_details'][0]['dialplan_detail_uuid'] = uuid(); $array['dialplan_details'][0]['dialplan_uuid'] = $dialplan_uuid; $array['dialplan_details'][0]['dialplan_detail_tag'] = 'action'; $array['dialplan_details'][0]['dialplan_detail_type'] = 'set'; $array['dialplan_details'][0]['dialplan_detail_data'] = 'timezone='.$default_setting_value; $array['dialplan_details'][0]['dialplan_detail_inline'] = 'true'; $array['dialplan_details'][0]['dialplan_detail_group'] = '0'; $array['dialplan_details'][0]['dialplan_detail_order'] = '20'; $p->add('dialplan_detail_add', 'temp'); } if (is_array($array) && sizeof($array) != 0) { $database = new database; $database->app_name = 'default_settings'; $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09'; $database->save($array); unset($array); $p->delete('dialplan_detail_edit', 'temp'); $p->delete('dialplan_detail_add', 'temp'); } //update the dialplan xml $dialplans = new dialplan; $dialplans->source = "details"; $dialplans->destination = "database"; $dialplans->uuid = $dialplan_uuid; $dialplans->xml(); //clear the cache $cache = new cache; $cache->delete("dialplan:".$domain_name); } elseif ($default_setting_category == "destinations" && $default_setting_subcategory == "dialplan_mode" ) { //clear the cache $cache = new cache; $cache->delete("dialplan:mode"); } //build the array of data $x = 0; $array['default_settings'][$x]['default_setting_uuid'] = $default_setting_uuid; $array['default_settings'][$x]['default_setting_category'] = $default_setting_category; $array['default_settings'][$x]['default_setting_subcategory'] = $default_setting_subcategory; $array['default_settings'][$x]['default_setting_name'] = $default_setting_name; $array['default_settings'][$x]['default_setting_value'] = $default_setting_value; $array['default_settings'][$x]['default_setting_order'] = $default_setting_order; $array['default_settings'][$x]['default_setting_enabled'] = $default_setting_enabled; $array['default_settings'][$x]['default_setting_description'] = $default_setting_description; //save to the data $database = new database; $database->app_name = 'default_settings'; $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09'; $database->save($array); $message = $database->message; //set the message and redirect the user if ($action == "add" && permission_exists('default_setting_add')) { message::add($text['message-add']); header("Location: default_settings.php".(($search != '') ? "?search=".$search : null)."#anchor_".$default_setting_category); return; } if ($action == "update" && permission_exists('default_setting_edit')) { message::add($text['message-update']); header("Location: default_settings.php".(($search != '') ? "?search=".$search : null)."#anchor_".$default_setting_category); return; } } //if ($_POST["persistformvar"] != "true") } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) //pre-populate the form if (count($_GET) > 0 && $_POST["persistformvar"] != "true") { $default_setting_uuid = $_GET["id"]; $sql = "select default_setting_uuid, default_setting_category, default_setting_subcategory, default_setting_name, default_setting_value, default_setting_order, cast(default_setting_enabled as text), default_setting_description "; $sql .= "from v_default_settings "; $sql .= "where default_setting_uuid = :default_setting_uuid "; $parameters['default_setting_uuid'] = $default_setting_uuid; $database = new database; $row = $database->select($sql, $parameters, 'row'); if (is_array($row) && sizeof($row) != 0) { $default_setting_category = $row["default_setting_category"]; $default_setting_subcategory = $row["default_setting_subcategory"]; $default_setting_name = $row["default_setting_name"]; $default_setting_value = $row["default_setting_value"]; $default_setting_order = $row["default_setting_order"]; $default_setting_enabled = $row["default_setting_enabled"]; $default_setting_description = $row["default_setting_description"]; } unset($sql, $parameters); } //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //include the header if ($action == "update") { $document['title'] = $text['title-default_setting-edit']; } elseif ($action == "add") { $document['title'] = $text['title-default_setting-add']; } require_once "resources/header.php"; //show the content echo "
\n"; echo "
\n"; echo "
"; if ($action == "add") { echo "".$text['header-default_setting-add'].""; } if ($action == "update") { echo "".$text['header-default_setting-edit'].""; } 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'=>'default_settings.php'.($search != '' ? "?search=".urlencode($search) : null)]); echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','onclick'=>'submit_form();']); echo "
\n"; echo "
\n"; echo "
\n"; if ($action == "add") { echo $text['description-default_setting-add']."\n"; } if ($action == "update") { echo $text['description-default_setting-edit']."\n"; } echo "

\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo " ".$text['label-category']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-category']."\n"; echo "
\n"; echo " ".$text['label-subcategory']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-subcategory']."\n"; echo "
\n"; echo " ".$text['label-type']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-type']."\n"; echo "
\n"; echo " ".$text['label-value']."\n"; echo "\n"; $category = $row['default_setting_category']; $subcategory = $row['default_setting_subcategory']; $name = $row['default_setting_name']; if ($category == "cdr" && $subcategory == "format" && $name == "text" ) { echo " \n"; } elseif ($category == "cdr" && $subcategory == "storage" && $name == "text" ) { echo " \n"; } elseif ($category == "domain" && $subcategory == "menu" && $name == "uuid" ) { echo " \n"; } elseif ($category == "domain" && $subcategory == "template" && $name == "name" ) { echo " \n"; } elseif ($category == "domain" && $subcategory == "language" && $name == "code" ) { echo " \n"; } elseif ($category == "email" && $subcategory == "smtp_auth" && $name == "var" ) { echo " \n"; } elseif ($category == "email" && $subcategory == "smtp_secure" && $name == "var" ) { echo " \n"; } elseif ($category == "domain" && $subcategory == "time_zone" && $name == "name" ) { echo " \n"; } elseif ($category == "domain" && $subcategory == "time_format" && $name == "text" ) { echo " \n"; } elseif ($subcategory == 'password' || substr_count($subcategory, '_password') > 0 || $category == "login" && $subcategory == "password_reset_key" && $name == "text") { echo " \n"; } elseif (substr_count($subcategory, "_color") > 0 && ($name == "text" || $name == 'array')) { echo " \n"; } elseif ($category == "theme" && substr_count($subcategory, "_font") > 0 && $name == "text") { $default_setting_value = str_replace('"', "'", $default_setting_value); if ($fonts = get_available_fonts('alpha')) { echo " "; echo " \n"; } else { echo " \n"; } } elseif ($category == "fax" && $subcategory == "page_size" && $name == "text" ) { echo " "; } elseif ($category == "fax" && $subcategory == "resolution" && $name == "text" ) { echo " "; } elseif ($category == "provision" && $subcategory == "aastra_time_format" && $name == "text" ) { echo " \n"; } elseif ($category == "provision" && $subcategory == "aastra_date_format" && $name == "text" ) { echo " \n"; } elseif ($category == "message" && $subcategory == "display_last" && $name == "text") { $array = explode(' ',$default_setting_value); if (!is_numeric($array[0])) { $array[1] = $array[0]; $array[0] = ''; } echo " \n"; echo " \n"; echo " \n"; unset($array); } elseif ($category == "theme" && $subcategory == "domain_visible" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "cache" && $name == "boolean" ) { echo " \n"; } elseif ( ($category == "theme" && $subcategory == "menu_main_icons" && $name == "boolean") || ($category == "theme" && $subcategory == "menu_sub_icons" && $name == "boolean") ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "menu_brand_type" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "menu_style" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "menu_position" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "logo_align" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "custom_css_code" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "button_icons" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "menu_side_state" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "menu_side_toggle" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "menu_side_toggle_body_width" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "menu_side_item_main_sub_close" && $name == "text" ) { echo " \n"; } elseif ($category == "theme" && $subcategory == "body_header_brand_type" && $name == "text" ) { echo " \n"; } elseif ($category == "users" && $subcategory == "username_format" && $name == "text" ) { echo " \n"; } elseif ($category == "voicemail" && $subcategory == "voicemail_file" && $name == "text" ) { echo " \n"; } elseif ($category == "voicemail" && $subcategory == "keep_local" && $name == "boolean" ) { echo " \n"; } elseif ($category == "recordings" && $subcategory == "storage_type" && $name == "text" ) { echo " \n"; } elseif ($category == "destinations" && $subcategory == "dialplan_details" && $name == "boolean" ) { echo " \n"; } elseif ($category == "destinations" && $subcategory == "dialplan_mode" && $name == "text" ) { echo " \n"; } elseif ($category == "destinations" && $subcategory == "select_mode" && $name == "text" ) { echo " \n"; } elseif ($category == "destinations" && $subcategory == "unique" && $name == "boolean" ) { echo " \n"; } elseif (is_json($default_setting_value)) { echo " \n"; } else { echo " \n"; } echo "
\n"; echo $text['description-value']."\n"; if ($category == "theme" && substr_count($subcategory, "_font") > 0 && $name == "text") { echo "  ".$text['label-reference'].": ".$text['label-web_fonts']."\n"; } echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo " ".$text['label-order']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-order']."\n"; echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo " ".$text['label-enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-enabled']."\n"; echo "
\n"; echo " ".$text['label-description']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-description']."\n"; echo "
"; echo "

"; if ($action == "update") { echo "\n"; echo "\n"; } echo "\n"; echo "
"; if ($_REQUEST["id"] == '' && $_REQUEST["default_setting_category"] != '') { echo ""; } echo "\n"; //include the footer require_once "resources/footer.php"; ?>