Portions created by the Initial Developer are Copyright (C) 2008-2019 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_view')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //get posted values, if any if (sizeof($_REQUEST) > 0) { $action = $_REQUEST["action"]; $default_setting_uuids = $_REQUEST["id"]; $enabled = $_REQUEST['enabled']; $category = $_REQUEST['category']; $search = $_REQUEST['search']; if (is_array($default_setting_uuids) && sizeof($default_setting_uuids) == 1 && $enabled != '' && is_uuid($default_setting_uuids[0])) { $array['default_settings'][0]['default_setting_uuid'] = $default_setting_uuids[0]; $array['default_settings'][0]['default_setting_enabled'] = $enabled; $database = new database; $database->app_name = 'default_settings'; $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09'; $database->save($array); $message = $database->message; unset($array); message::add($text['message-update']); header("Location: default_settings.php".($search != '' ? "?search=".escape($search) : null)."#anchor_".escape($category)); exit; } if ($action == 'copy' && permission_exists('domain_setting_add')) { $target_domain_uuid = $_POST["target_domain_uuid"]; if (is_uuid($target_domain_uuid) && is_array($default_setting_uuids) && sizeof($default_setting_uuids) > 0) { $settings_copied = 0; foreach ($default_setting_uuids as $default_setting_uuid) { // get default setting from db $sql = "select * 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, $row); //set a random password for http_auth_password if ($default_setting_subcategory == "http_auth_password") { $default_setting_value = generate_password(); } // check if exists $sql = "select domain_setting_uuid from v_domain_settings "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and domain_setting_category = :domain_setting_category "; $sql .= "and domain_setting_subcategory = :domain_setting_subcategory "; $sql .= "and domain_setting_name = :domain_setting_name "; $sql .= "and domain_setting_name <> 'array' "; $parameters['domain_uuid'] = $target_domain_uuid; $parameters['domain_setting_category'] = $default_setting_category; $parameters['domain_setting_subcategory'] = $default_setting_subcategory; $parameters['domain_setting_name'] = $default_setting_name; $database = new database; $target_domain_setting_uuid = $database->select($sql, $parameters, 'column'); $message = $database->message; $action = is_uuid($target_domain_setting_uuid) ? 'update' : 'add'; unset($sql, $parameters); // fix null $default_setting_order = $default_setting_order != '' ? $default_setting_order : null; //begin array $array['domain_settings'][0]['domain_uuid'] = $target_domain_uuid; $array['domain_settings'][0]['domain_setting_category'] = $default_setting_category; $array['domain_settings'][0]['domain_setting_subcategory'] = $default_setting_subcategory; $array['domain_settings'][0]['domain_setting_name'] = $default_setting_name; $array['domain_settings'][0]['domain_setting_value'] = $default_setting_value; $array['domain_settings'][0]['domain_setting_order'] = $default_setting_order; $array['domain_settings'][0]['domain_setting_enabled'] = $default_setting_enabled; $array['domain_settings'][0]['domain_setting_description'] = $default_setting_description; //insert if ($action == "add" && permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) { $array['domain_settings'][0]['domain_setting_uuid'] = uuid(); } //update if ($action == "update" && permission_exists('domain_setting_edit')) { $array['domain_settings'][0]['domain_setting_uuid'] = $target_domain_setting_uuid; } //execute if (is_uuid($array['domain_settings'][0]['domain_setting_uuid'])) { $database = new database; $database->app_name = 'default_settings'; $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09'; $database->save($array); $message = $database->message; unset($array); $settings_copied++; } } // foreach // set message message::add($text['message-copy'].": ".escape($settings_copied)); } else { // set message message::add($text['message-copy_failed']); } header("Location: default_settings.php".($search != '' ? "?search=".escape($search) : null)); exit; } if ($action == 'delete' && permission_exists('default_setting_delete')) { if (sizeof($default_setting_uuids) > 0) { foreach ($default_setting_uuids as $index => $default_setting_uuid) { //delete default_setting(s) $array['default_settings'][$index]['default_setting_uuid'] = $default_setting_uuid; } if (is_array($array)) { $database = new database; $database->app_name = 'default_settings'; $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09'; $database->delete($array); $message = $database->message; unset($array); } // set message $_SESSION["message"] = $text['message-delete'].": ".sizeof($default_setting_uuids); } else { // set message message::add($text['message-delete_failed'], 'negative'); } header("Location: default_settings.php".(($search != '') ? "?search=".escape($search) : null)); exit; } } // post //header and paging require_once "resources/header.php"; $document['title'] = $text['title-default_settings']; require_once "resources/paging.php"; //get variables used to control the order $order_by = $_GET["order_by"]; $order = $_GET["order"]; //copy settings javascript if (permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) { echo ""; } //prevent enter key submit on search field echo "\n"; //show the content echo "
"; echo ""; echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
"; echo " ".$text['header-default_settings'].""; echo "

"; echo " ".$text['description-default_settings']; echo "
"; echo " \n"; if (permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) { echo " "; echo " "; echo " \n"; echo " "; } if (permission_exists('default_setting_edit')) { echo " \n"; } echo " "; echo "
\n"; echo "
"; //prepare to page the results $sql = "select count(*) from v_default_settings "; $database = new database; $num_rows = $database->select($sql, null, 'column'); unset($sql); //prepare to page the results $rows_per_page = 1000; $param = ""; $page = $_GET['page']; if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; } list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page); $offset = $rows_per_page * $page; //get the list $sql = "select * from v_default_settings "; if ($order_by == '') { $sql .= "order by default_setting_category, default_setting_subcategory, default_setting_order asc, default_setting_name, default_setting_value "; } else { $sql .= order_by($order_by, $order); } $sql .= limit_offset($rows_per_page, $offset); $database = new database; $result = $database->select($sql, null, 'all'); unset($sql); $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; if (is_array($result) && sizeof($result) != 0) { $previous_category = ''; foreach($result as $row) { if ($previous_category != $row['default_setting_category']) { $c = 0; if ($previous_category != '') { echo ""; echo ""; } echo "
"; echo ""; echo ""; switch (strtolower($row['default_setting_category'])) { case "api" : echo "API"; break; case "cdr" : echo "CDR"; break; case "ldap" : echo "LDAP"; break; case "ivr menu" : echo "IVR Menu"; break; default: echo ucwords(str_replace("_", " ", escape($row['default_setting_category']))); } echo "\n"; echo "\n"; echo "\n"; if ( (permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) || permission_exists('default_setting_delete') ) { echo ""; } echo ""; echo ""; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; } $tr_link = (permission_exists('default_setting_edit')) ? "href=\"default_setting_edit.php?id=".urlencode($row['default_setting_uuid'])."\"" : null; echo "\n"; if ( (permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) || permission_exists("default_setting_delete") ) { echo " \n"; $subcat_ids[strtolower($row['default_setting_category'])][] = 'checkbox_'.escape($row['default_setting_uuid']); } echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; //populate search/filter arrays $array_categories[] = $row['default_setting_category']; $array_categories_displayed[] = str_replace("_", " ", $row['default_setting_category']); $array_setting_uuids[] = $row['default_setting_uuid']; $array_setting_subcategories[] = $row['default_setting_subcategory']; $array_setting_types[] = $row['default_setting_name']; if (!($category == "theme" && $subcategory == "custom_css_code" && $name == "text" )) { $array_setting_values[] = str_replace('"','\"',$row['default_setting_value']); } $array_setting_descriptions[] = str_replace('"','\"',$row['default_setting_description']); $previous_category = $row['default_setting_category']; $c = ($c == 0) ? 1 : 0; } //end foreach echo "
".$text['label-subcategory']."".$text['label-type']."".$text['label-value']."".$text['label-enabled']."".$text['label-description'].""; if (permission_exists('default_setting_add')) { echo "".$v_link_label_add.""; } if (permission_exists('default_setting_delete')) { echo "".$v_link_label_delete.""; } echo "
"; if (permission_exists('default_setting_edit')) { echo "".escape($row['default_setting_subcategory']).""; } else { echo $row['default_setting_subcategory']; } echo " ".escape($row['default_setting_name'])." \n"; $category = $row['default_setting_category']; $subcategory = $row['default_setting_subcategory']; $name = $row['default_setting_name']; if ($category == "domain" && $subcategory == "menu" && $name == "uuid" ) { $sql = "select * from v_menus "; $sql .= "where menu_uuid = :menu_uuid "; $parameters['menu_uuid'] = $row['default_setting_value']; $database = new database; $sub_result = $database->select($sql, $parameters, 'all'); foreach ($sub_result as &$sub_row) { echo $sub_row["menu_language"]." - ".$sub_row["menu_name"]."\n"; } unset($sql, $sub_result, $sub_row); } else if ($category == "domain" && $subcategory == "template" && $name == "name" ) { echo " ".ucwords($row['default_setting_value']); } else if ($category == "domain" && $subcategory == "time_format" && $name == "text" ) { switch ($row['default_setting_value']) { case '12h': echo $text['label-12-hour']; break; case '24h': echo $text['label-24-hour']; break; } } else if ( ( $category == "theme" && $subcategory == "menu_main_icons" && $name == "boolean" ) || ( $category == "theme" && $subcategory == "menu_sub_icons" && $name == "boolean" ) || ( $category == "theme" && $subcategory == "menu_brand_type" && $name == "text" ) || ( $category == "theme" && $subcategory == "menu_style" && $name == "text" ) || ( $category == "theme" && $subcategory == "menu_position" && $name == "text" ) || ( $category == "theme" && $subcategory == "logo_align" && $name == "text" ) ) { echo " ".$text['label-'.$row['default_setting_value']]; } else if ($category == 'theme' && $subcategory == 'custom_css_code' && $name == 'text') { echo " [...]\n"; } else if ($subcategory == 'password' || substr_count($subcategory, '_password') > 0 || $category == "login" && $subcategory == "password_reset_key" && $name == "text" || substr_count($subcategory, '_secret') > 0) { echo " ".str_repeat('*', strlen($row['default_setting_value'])); } else { if ($category == "theme" && substr_count($subcategory, "_color") > 0 && ($name == "text" || $name == 'array')) { echo " ".(img_spacer('15px', '15px', 'background: '.escape($row['default_setting_value']).'; margin-right: 4px; vertical-align: middle; border: 1px solid '.(color_adjust($row['default_setting_value'], -0.18)).'; padding: -1px;')); echo "".escape($row['default_setting_value'])."\n"; } else { echo " ".escape($row['default_setting_value'])."\n"; } } echo " ".escape($row['default_setting_description'])." "; //this one works if (permission_exists('default_setting_edit')) { echo "$v_link_label_edit"; } if (permission_exists('default_setting_delete')) { echo "$v_link_label_delete"; } echo "
"; echo "
"; unset($sql, $result, $row_count); } //end if results echo "
"; echo $paging_controls; echo "


"; echo "
"; //check or uncheck all category checkboxes if (sizeof($subcat_ids) > 0) { echo "\n"; } //setting search script echo "\n"; //include the footer require_once "resources/footer.php"; ?>