Portions created by the Initial Developer are Copyright (C) 2008-2014 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; 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 = check_str($_REQUEST["action"]); $default_setting_uuids = $_REQUEST["id"]; $enabled = check_str($_REQUEST['enabled']); $category = check_str($_REQUEST['category']); $search = check_str($_REQUEST['search']); if (sizeof($default_setting_uuids) == 1 && $enabled != '') { $sql = "update v_default_settings set "; $sql .= "default_setting_enabled = '".$enabled."' "; $sql .= "where default_setting_uuid = '".$default_setting_uuids[0]."'"; $db->exec(check_sql($sql)); unset($sql); $_SESSION["message"] = $text['message-update']; header("Location: default_settings.php".(($search != '') ? "?search=".$search : null)."#".$category); exit; } if ($action == 'copy' && permission_exists('domain_setting_add')) { $target_domain_uuid = check_str($_POST["target_domain_uuid"]); if ($target_domain_uuid != '' && 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."' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $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 ($prep_statement); // check if exists $sql = "select domain_setting_uuid from v_domain_settings "; $sql .= "where domain_uuid = '".$target_domain_uuid."' "; $sql .= "and domain_setting_category = '".$default_setting_category."' "; $sql .= "and domain_setting_subcategory = '".$default_setting_subcategory."' "; $sql .= "and domain_setting_name = '".$default_setting_name."' "; $sql .= "and domain_setting_name <> 'array' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); if (sizeof($result) > 0) { foreach ($result as &$row) { $target_domain_setting_uuid = $row["domain_setting_uuid"]; break; } $action = "update"; } else { $action = "add"; } unset ($prep_statement); // fix null $default_setting_order = ($default_setting_order != '') ? $default_setting_order : 'null'; // insert for target domain if ($action == "add" && permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) { $sql = "insert into v_domain_settings "; $sql .= "("; $sql .= "domain_uuid, "; $sql .= "domain_setting_uuid, "; $sql .= "domain_setting_category, "; $sql .= "domain_setting_subcategory, "; $sql .= "domain_setting_name, "; $sql .= "domain_setting_value, "; $sql .= "domain_setting_order, "; $sql .= "domain_setting_enabled, "; $sql .= "domain_setting_description "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".$target_domain_uuid."', "; $sql .= "'".uuid()."', "; $sql .= "'".$default_setting_category."', "; $sql .= "'".$default_setting_subcategory."', "; $sql .= "'".$default_setting_name."', "; $sql .= "'".$default_setting_value."', "; $sql .= " ".$default_setting_order." , "; $sql .= "'".$default_setting_enabled."', "; $sql .= "'".$default_setting_description."' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); $settings_copied++; } // add if ($action == "update" && permission_exists('domain_setting_edit')) { $sql = "update v_domain_settings set "; $sql .= "domain_setting_category = '".$default_setting_category."', "; $sql .= "domain_setting_subcategory = '".$default_setting_subcategory."', "; $sql .= "domain_setting_name = '".$default_setting_name."', "; $sql .= "domain_setting_value = '".$default_setting_value."', "; $sql .= "domain_setting_order = ".$default_setting_order.", "; $sql .= "domain_setting_enabled = '".$default_setting_enabled."', "; $sql .= "domain_setting_description = '".$default_setting_description."' "; $sql .= "where domain_uuid = '".$target_domain_uuid."' "; $sql .= "and domain_setting_uuid = '".$target_domain_setting_uuid."' "; $db->exec(check_sql($sql)); unset($sql); $settings_copied++; } // update } // foreach // set message $_SESSION["message"] = $text['message-copy'].": ".$settings_copied; } else { // set message $_SESSION["message"] = $text['message-copy_failed']; } header("Location: default_settings.php".(($search != '') ? "?search=".$search : null)); exit; } if ($action == 'delete' && permission_exists('default_setting_delete')) { if (sizeof($default_setting_uuids) > 0) { foreach ($default_setting_uuids as $default_setting_uuid) { //delete default_setting(s) $sql = "delete from v_default_settings "; $sql .= "where default_setting_uuid = '".$default_setting_uuid."' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); unset($sql); } // set message $_SESSION["message"] = $text['message-delete'].": ".sizeof($default_setting_uuids); } else { // set message $_SESSION["message"] = $text['message-delete_failed']; $_SESSION["message_mood"] = "negative"; } header("Location: default_settings.php".(($search != '') ? "?search=".$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 ""; } //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 " "; } echo " "; echo "
\n"; echo "
"; //prepare to page the results $sql = "select count(*) as num_rows from v_default_settings "; $prep_statement = $db->prepare($sql); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row['num_rows'] > 0) { $num_rows = $row['num_rows']; } else { $num_rows = '0'; } } //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 (strlen($order_by) == 0) { $sql .= "order by default_setting_category, default_setting_subcategory, default_setting_order asc "; } else { $sql .= "order by $order_by $order "; } $sql .= "limit $rows_per_page offset $offset "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $result_count = count($result); unset ($prep_statement, $sql); $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; if ($result_count > 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; default: echo ucwords(str_replace("_", " ", $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=\"javascript:document.location.href='default_setting_edit.php?id=".$row['default_setting_uuid']."&search='+$('#default_setting_search').val();\"" : 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_'.$row['default_setting_uuid']; } 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']; $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 "".$row['default_setting_subcategory'].""; } else { echo $row['default_setting_subcategory']; } echo " ".$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 = '".$row['default_setting_value']."' "; $sub_prep_statement = $db->prepare(check_sql($sql)); $sub_prep_statement->execute(); $sub_result = $sub_prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($sub_result as &$sub_row) { echo $sub_row["menu_language"]." - ".$sub_row["menu_name"]."\n"; } } else if ($category == "domain" && $subcategory == "template" && $name == "name" ) { echo " ".ucwords($row['default_setting_value']); } else if ($category == "email" && $subcategory == "smtp_password" && $name == "var" ) { echo " "; for ($d = 1; $d <= strlen($row['default_setting_value']); $d++) { echo "*"; } echo " \n"; } else if ($category == "provision" && $subcategory == "password" && $name == "var" ) { echo " "; for ($d = 1; $d <= strlen($row['default_setting_value']); $d++) { echo "*"; } echo " \n"; } else { echo " ".htmlspecialchars($row['default_setting_value']); } echo "  \n"; echo " ".$row['default_setting_description']." "; 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"; ?>