function utilities_view_snmp_cache() { global $colors, $poller_actions; define("MAX_DISPLAY_PAGES", 21); /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("snmp_query_id")); input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("poller_action")); /* ==================================================== */ /* clean up search filter */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_snmp_current_page"); kill_session_var("sess_snmp_host_id"); kill_session_var("sess_snmp_snmp_query_id"); kill_session_var("sess_snmp_filter"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["host_id"]); unset($_REQUEST["snmp_query_id"]); } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_snmp_current_page", "1"); load_current_session_value("host_id", "sess_snmp_host_id", "-1"); load_current_session_value("snmp_query_id", "sess_snmp_snmp_query_id", "-1"); load_current_session_value("filter", "sess_snmp_filter", ""); $_REQUEST['page_referrer'] = 'view_snmp_cache'; load_current_session_value('page_referrer', 'page_referrer', 'view_snmp_cache'); ?> <script type="text/javascript"> <!-- function applyViewSNMPFilterChange(objForm) { strURL = '?host_id=' + objForm.host_id.value; strURL = strURL + '&snmp_query_id=' + objForm.snmp_query_id.value; strURL = strURL + '&filter=' + objForm.filter.value; strURL = strURL + '&action=view_snmp_cache'; document.location = strURL; } --> </script> <?php html_start_box("<strong>SNMP Cache Items</strong>", "100%", $colors["header"], "3", "center", ""); ?> <tr bgcolor="<?php print $colors["panel"];?>"> <form name="form_snmpcache"> <td> <table cellpadding="0" cellspacing="0"> <tr> <td nowrap style='white-space: nowrap;' width="50"> Host: </td> <td width="1"> <select name="host_id" onChange="applyViewSNMPFilterChange(document.form_snmpcache)"> <option value="-1"<?php if (get_request_var_request("host_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("host_id") == "0") {?> selected<?php }?>>None</option> <?php if (get_request_var_request("snmp_query_id") == -1) { $hosts = db_fetch_assoc("SELECT DISTINCT host.id, host.description, host.hostname FROM (host_snmp_cache,snmp_query,host) WHERE host_snmp_cache.host_id=host.id AND host_snmp_cache.snmp_query_id=snmp_query.id ORDER by host.description"); }else{ $hosts = db_fetch_assoc("SELECT DISTINCT host.id, host.description, host.hostname FROM (host_snmp_cache,snmp_query,host) WHERE host_snmp_cache.host_id=host.id AND host_snmp_cache.snmp_query_id=snmp_query.id AND host_snmp_cache.snmp_query_id='" . get_request_var_request("snmp_query_id") . "' ORDER by host.description"); } if (sizeof($hosts) > 0) { foreach ($hosts as $host) { print "<option value='" . $host["id"] . "'"; if (get_request_var_request("host_id") == $host["id"]) { print " selected"; } print ">" . $host["description"] . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="90"> Query Name: </td> <td width="1"> <select name="snmp_query_id" onChange="applyViewSNMPFilterChange(document.form_snmpcache)"> <option value="-1"<?php if (get_request_var_request("host_id") == "-1") {?> selected<?php }?>>Any</option> <?php if (get_request_var_request("host_id") == -1) { $snmp_queries = db_fetch_assoc("SELECT DISTINCT snmp_query.id, snmp_query.name FROM (host_snmp_cache,snmp_query,host) WHERE host_snmp_cache.host_id=host.id AND host_snmp_cache.snmp_query_id=snmp_query.id ORDER by snmp_query.name"); }else{ $snmp_queries = db_fetch_assoc("SELECT DISTINCT snmp_query.id, snmp_query.name FROM (host_snmp_cache,snmp_query,host) WHERE host_snmp_cache.host_id=host.id AND host_snmp_cache.host_id='" . get_request_var_request("host_id") . "' AND host_snmp_cache.snmp_query_id=snmp_query.id ORDER by snmp_query.name"); } if (sizeof($snmp_queries) > 0) { foreach ($snmp_queries as $snmp_query) { print "<option value='" . $snmp_query["id"] . "'"; if (get_request_var_request("snmp_query_id") == $snmp_query["id"]) { print " selected"; } print ">" . $snmp_query["name"] . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="50"> Search: </td> <td width="1"> <input type="text" name="filter" size="20" value="<?php print clean_html_output(get_request_var_request("filter"));?>"> </td> <td nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" name="go" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> </td> <input type='hidden' name='page' value='1'> <input type='hidden' name='action' value='view_snmp_cache'> </form> </tr> <?php html_end_box(); $sql_where = ""; /* filter by host */ if (get_request_var_request("host_id") == "0") { $sql_where .= " AND host.id=0"; }elseif (!empty($_REQUEST["host_id"])) { $sql_where .= " AND host.id=" . get_request_var_request("host_id"); } /* filter by query name */ if (get_request_var_request("snmp_query_id") == "-1") { /* Show all items */ }elseif (!empty($_REQUEST["snmp_query_id"])) { $sql_where .= " AND host_snmp_cache.snmp_query_id=" . get_request_var_request("snmp_query_id"); } /* filter by search string */ if (get_request_var_request("filter") != "") { $sql_where .= " AND (host.description LIKE '%%" . get_request_var_request("filter") . "%%' OR snmp_query.name LIKE '%%" . iget_request_var_request("filter") . "%%' OR host_snmp_cache.field_name LIKE '%%" . get_request_var_request("filter") . "%%' OR host_snmp_cache.field_value LIKE '%%" . get_request_var_request("filter") . "%%' OR host_snmp_cache.oid LIKE '%%" . get_request_var_request("filter") . "%%')"; } html_start_box("", "100%", $colors["header"], "3", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(*) FROM (host_snmp_cache,snmp_query,host) WHERE host_snmp_cache.host_id=host.id AND host_snmp_cache.snmp_query_id=snmp_query.id $sql_where"); $snmp_cache_sql = "SELECT host_snmp_cache.*, host.description, snmp_query.name FROM (host_snmp_cache,snmp_query,host) WHERE host_snmp_cache.host_id=host.id AND host_snmp_cache.snmp_query_id=snmp_query.id $sql_where LIMIT " . (read_config_option("num_rows_data_source")*(get_request_var_request("page")-1)) . "," . read_config_option("num_rows_data_source"); // print $snmp_cache_sql; $snmp_cache = db_fetch_assoc($snmp_cache_sql); /* generate page list */ $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, read_config_option("num_rows_data_source"), $total_rows, "utilities.php?action=view_snmp_cache&host_id=" . get_request_var_request("host_id") . "&filter=" . get_request_var_request("filter")); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='7'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='utilities.php?action=view_snmp_cache&host_id=" . get_request_var_request("host_id") . "&filter=" . get_request_var_request("filter") . "&page=" . (get_request_var_request("page")-1) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((read_config_option("num_rows_data_source")*(get_request_var_request("page")-1))+1) . " to " . ((($total_rows < read_config_option("num_rows_data_source")) || ($total_rows < (read_config_option("num_rows_data_source")*get_request_var_request("page")))) ? $total_rows : (read_config_option("num_rows_data_source")*get_request_var_request("page"))) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if ((get_request_var_request("page") * read_config_option("num_rows_data_source")) < $total_rows) { $nav .= "<a class='linkOverDark' href='utilities.php?action=view_snmp_cache&host_id=" . get_request_var_request("host_id") . "&filter=" . get_request_var_request("filter") . "&page=" . (get_request_var_request("page")+1) . "'>"; } $nav .= "Next"; if ((get_request_var_request("page") * read_config_option("num_rows_data_source")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; html_header(array("Details")); $i = 0; if (sizeof($snmp_cache) > 0) { foreach ($snmp_cache as $item) { form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); ?> <td> Host: <?php print (strlen(get_request_var_request("filter")) ? (eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $item["description"])) : $item["description"]);?> , SNMP Query: <?php print (strlen(get_request_var_request("filter")) ? (eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $item["name"])) : $item["name"]);?> </td> </tr> <?php form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); ?> <td> Index: <?php print $item["snmp_index"];?> , Field Name: <?php print (strlen(get_request_var_request("filter")) ? (eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $item["field_name"])) : $item["field_name"]);?> , Field Value: <?php print (strlen(get_request_var_request("filter")) ? (eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $item["field_value"])) : $item["field_value"]);?> </td> </tr> <?php form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); $i++; ?> <td> OID: <?php print (strlen(get_request_var_request("filter")) ? (eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $item["oid"])) : $item["oid"]);?> </td> </tr> <?php } } html_end_box(); }
function data_query() { global $colors, $dq_actions; /* clean up search string */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } /* clean up sort_column */ if (isset($_REQUEST["sort_column"])) { $_REQUEST["sort_column"] = sanitize_search_string(get_request_var("sort_column")); } /* clean up search string */ if (isset($_REQUEST["sort_direction"])) { $_REQUEST["sort_direction"] = sanitize_search_string(get_request_var("sort_direction")); } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_data_queries_filter"); kill_session_var("sess_data_queries_sort_column"); kill_session_var("sess_data_queries_sort_direction"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); $_REQUEST["page"] = 1; } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("sort_column", "sess_data_queries_sort_column", "name"); load_current_session_value("sort_direction", "sess_data_queries_sort_direction", "ASC"); load_current_session_value("page", "sess_data_queries_current_page", "1"); load_current_session_value("filter", "sess_data_queries_filter", ""); html_start_box("<strong>Data Queries</strong>", "100%", $colors["header"], "3", "center", "data_queries.php?action=edit"); ?> <tr bgcolor="<?php print $colors["panel"];?>" class="noprint"> <form name="form_graph_id" method="get"> <td class="noprint"> <table width="100%" cellpadding="0" cellspacing="0"> <tr class="noprint"> <td nowrap style='white-space: nowrap;' width="50"> Search: </td> <td width="1"> <input type="text" name="filter" size="40" value="<?php print clean_html_output(get_request_var_request("filter"));?>"> </td> <td nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> </td> <input type='hidden' name='page' value='1'> </form> </tr> <?php html_end_box(); html_start_box("", "100%", $colors["header"], "3", "center", ""); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where = "where (snmp_query.name like '%%" . get_request_var_request("filter") . "%%' OR data_input.name like '%%" . get_request_var_request("filter") . "%%')"; }else{ $sql_where = ""; } $total_rows = db_fetch_cell("SELECT count(*) FROM snmp_query INNER JOIN data_input ON (snmp_query.data_input_id=data_input.id) $sql_where"); $snmp_queries = db_fetch_assoc("SELECT snmp_query.id, snmp_query.name, data_input.name AS data_input_method FROM snmp_query INNER JOIN data_input ON (snmp_query.data_input_id=data_input.id) $sql_where ORDER BY " . get_request_var_request("sort_column") . " " . get_request_var_request("sort_direction") . " LIMIT " . (read_config_option("num_rows_device")*(get_request_var_request("page")-1)) . "," . read_config_option("num_rows_device")); /* generate page list */ $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, read_config_option("num_rows_device"), $total_rows, "data_queries.php?filter=" . get_request_var_request("filter")); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='7'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='data_queries.php?filter=" . get_request_var_request("filter") . "&page=" . (get_request_var_request("page")-1) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((read_config_option("num_rows_device")*(get_request_var_request("page")-1))+1) . " to " . ((($total_rows < read_config_option("num_rows_device")) || ($total_rows < (read_config_option("num_rows_device")*get_request_var_request("page")))) ? $total_rows : (read_config_option("num_rows_device")*get_request_var_request("page"))) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if ((get_request_var_request("page") * read_config_option("num_rows_device")) < $total_rows) { $nav .= "<a class='linkOverDark' href='data_queries.php?filter=" . get_request_var_request("filter") . "&page=" . (get_request_var_request("page")+1) . "'>"; } $nav .= "Next"; if ((get_request_var_request("page") * read_config_option("num_rows_device")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; $display_text = array( "name" => array("Name", "ASC"), "data_input_method" => array("Data Input Method", "ASC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); $i = 0; if (sizeof($snmp_queries) > 0) { foreach ($snmp_queries as $snmp_query) { form_alternate_row_color($colors["alternate"],$colors["light"],$i, 'line' . $snmp_query["id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='data_queries.php?action=edit&id=" . $snmp_query["id"] . "'>" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $snmp_query["name"]) : $snmp_query["name"]) . "</a>", $snmp_query["id"]); form_selectable_cell((strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $snmp_query["data_input_method"]) : $snmp_query["data_input_method"]), $snmp_query["id"]); form_checkbox_cell($snmp_query["name"], $snmp_query["id"]); form_end_row(); } print $nav; }else{ print "<tr><td><em>No Data Queries</em></td></tr>"; } html_end_box(); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($dq_actions); }
function import() { global $colors, $hash_type_names; ?> <form method="post" action="templates_import.php" enctype="multipart/form-data"> <?php if ((isset($_SESSION["import_debug_info"])) && (is_array($_SESSION["import_debug_info"]))) { html_start_box("<strong>Import Results</strong>", "100%", "aaaaaa", "3", "center", ""); print "<tr bgcolor='#" . $colors["form_alternate1"] . "'><td><p class='textArea'>Cacti has imported the following items:</p>"; while (list($type, $type_array) = each($_SESSION["import_debug_info"])) { print "<p><strong>" . $hash_type_names[$type] . "</strong></p>"; while (list($index, $vals) = each($type_array)) { if ($vals["result"] == "success") { $result_text = "<span style='color: green;'>[success]</span>"; }else{ $result_text = "<span style='color: red;'>[fail]</span>"; } if ($vals["type"] == "update") { $type_text = "<span style='color: gray;'>[update]</span>"; }else{ $type_text = "<span style='color: blue;'>[new]</span>"; } print "<span style='font-family: monospace;'>$result_text " . clean_html_output($vals["title"]) . " $type_text</span><br>\n"; $dep_text = ""; $there_are_dep_errors = false; if ((isset($vals["dep"])) && (sizeof($vals["dep"]) > 0)) { while (list($dep_hash, $dep_status) = each($vals["dep"])) { if ($dep_status == "met") { $dep_status_text = "<span style='color: navy;'>Found Dependency:</span>"; }else{ $dep_status_text = "<span style='color: red;'>Unmet Dependency:</span>"; $there_are_dep_errors = true; } $dep_text .= "<span style='font-family: monospace;'> + $dep_status_text " . hash_to_friendly_name($dep_hash, true) . "</span><br>\n"; } } /* only print out dependency details if they contain errors; otherwise it would get too long */ if ($there_are_dep_errors == true) { print $dep_text; } } } print "</td></tr>"; html_end_box(); kill_session_var("import_debug_info"); } html_start_box("<strong>Import Templates</strong>", "100%", $colors["header"], "3", "center", ""); form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],0); ?> <td width="50%"> <font class="textEditTitle">Import Template from Local File</font><br> If the XML file containing template data is located on your local machine, select it here. </td> <td> <input type="file" name="import_file"> </td> </tr> <?php form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],1); ?> <td width="50%"> <font class="textEditTitle">Import Template from Text</font><br> If you have the XML file containing template data as text, you can paste it into this box to import it. </td> <td> <?php form_text_area("import_text", "", "10 ", "50", "");?> </td> </tr> <?php form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],0); ?> <td width="50%"> <font class="textEditTitle">Import RRA Settings</font><br> Choose whether to allow Cacti to import custom RRA settings from imported templates or whether to use the defaults for this installation. </td> <td> <?php form_radio_button("import_rra", 1, 1, "Use defaults for this installation (Recommended)", 1); echo "<br />"; form_radio_button("import_rra", 1, 2, "Use custom RRA settings from the template", 1); ?> </td> </tr> <?php form_hidden_box("save_component_import","1",""); html_end_box(); form_save_button("templates_import.php", "save"); }
function graph() { global $colors, $graph_actions, $item_rows; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("graph_rows")); input_validate_input_number(get_request_var_request("template_id")); input_validate_input_number(get_request_var_request("page")); /* ==================================================== */ /* clean up search string */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } /* clean up sort_column string */ if (isset($_REQUEST["sort_column"])) { $_REQUEST["sort_column"] = sanitize_search_string(get_request_var("sort_column")); } /* clean up sort_direction string */ if (isset($_REQUEST["sort_direction"])) { $_REQUEST["sort_direction"] = sanitize_search_string(get_request_var("sort_direction")); } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_graph_current_page"); kill_session_var("sess_graph_filter"); kill_session_var("sess_graph_sort_column"); kill_session_var("sess_graph_sort_direction"); kill_session_var("sess_graph_host_id"); kill_session_var("sess_graph_rows"); kill_session_var("sess_graph_template_id"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); unset($_REQUEST["host_id"]); unset($_REQUEST["graph_rows"]); unset($_REQUEST["template_id"]); } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_graph_current_page", "1"); load_current_session_value("filter", "sess_graph_filter", ""); load_current_session_value("sort_column", "sess_graph_sort_column", "title_cache"); load_current_session_value("sort_direction", "sess_graph_sort_direction", "ASC"); load_current_session_value("host_id", "sess_graph_host_id", "-1"); load_current_session_value("graph_rows", "sess_graph_rows", read_config_option("num_rows_graph")); load_current_session_value("template_id", "sess_graph_template_id", "-1"); /* if the number of rows is -1, set it to the default */ if (get_request_var_request("graph_rows") == -1) { $_REQUEST["graph_rows"] = read_config_option("num_rows_graph"); } ?> <script type="text/javascript"> <!-- function applyGraphsFilterChange(objForm) { strURL = '?host_id=' + objForm.host_id.value; strURL = strURL + '&graph_rows=' + objForm.graph_rows.value; strURL = strURL + '&filter=' + objForm.filter.value; strURL = strURL + '&template_id=' + objForm.template_id.value; document.location = strURL; } --> </script> <?php html_start_box("<strong>Graph Management</strong>", "100%", $colors["header"], "3", "center", "graphs.php?action=graph_edit&host_id=" . get_request_var_request("host_id")); ?> <tr bgcolor="<?php print $colors["panel"];?>"> <form name="form_graph_id"> <td> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Host: </td> <td width="1"> <select name="host_id" onChange="applyGraphsFilterChange(document.form_graph_id)"> <option value="-1"<?php if (get_request_var_request("host_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("host_id") == "0") {?> selected<?php }?>>None</option> <?php if (read_config_option("auth_method") != 0) { /* get policy information for the sql where clause */ $current_user = db_fetch_row("select * from user_auth where id=" . $_SESSION["sess_user_id"]); $sql_where = get_graph_permissions_sql($current_user["policy_graphs"], $current_user["policy_hosts"], $current_user["policy_graph_templates"]); $hosts = db_fetch_assoc("SELECT DISTINCT host.id, CONCAT_WS('',host.description,' (',host.hostname,')') as name FROM (graph_templates_graph,host) LEFT JOIN graph_local ON (graph_local.host_id=host.id) LEFT JOIN graph_templates ON (graph_templates.id=graph_local.graph_template_id) LEFT JOIN user_auth_perms ON ((graph_templates_graph.local_graph_id=user_auth_perms.item_id and user_auth_perms.type=1 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (host.id=user_auth_perms.item_id and user_auth_perms.type=3 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (graph_templates.id=user_auth_perms.item_id and user_auth_perms.type=4 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ")) WHERE graph_templates_graph.local_graph_id=graph_local.id " . (empty($sql_where) ? "" : "and $sql_where") . " ORDER BY name"); }else{ $hosts = db_fetch_assoc("SELECT DISTINCT host.id, CONCAT_WS('',host.description,' (',host.hostname,')') as name FROM host ORDER BY name"); } if (sizeof($hosts) > 0) { foreach ($hosts as $host) { print "<option value=' " . $host["id"] . "'"; if (get_request_var_request("host_id") == $host["id"]) { print " selected"; } print ">" . title_trim($host["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="70"> Template: </td> <td width="1"> <select name="template_id" onChange="applyGraphsFilterChange(document.form_graph_id)"> <option value="-1"<?php if (get_request_var_request("template_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("template_id") == "0") {?> selected<?php }?>>None</option> <?php if (read_config_option("auth_method") != 0) { $templates = db_fetch_assoc("SELECT DISTINCT graph_templates.id, graph_templates.name FROM (graph_templates_graph,graph_local) LEFT JOIN host ON (host.id=graph_local.host_id) LEFT JOIN graph_templates ON (graph_templates.id=graph_local.graph_template_id) LEFT JOIN user_auth_perms ON ((graph_templates_graph.local_graph_id=user_auth_perms.item_id and user_auth_perms.type=1 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (host.id=user_auth_perms.item_id and user_auth_perms.type=3 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (graph_templates.id=user_auth_perms.item_id and user_auth_perms.type=4 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ")) WHERE graph_templates_graph.local_graph_id=graph_local.id AND graph_templates.id IS NOT NULL " . (empty($sql_where) ? "" : "AND $sql_where") . " ORDER BY name"); }else{ $templates = db_fetch_assoc("SELECT DISTINCT graph_templates.id, graph_templates.name FROM graph_templates ORDER BY name"); } if (sizeof($templates) > 0) { foreach ($templates as $template) { print "<option value=' " . $template["id"] . "'"; if (get_request_var_request("template_id") == $template["id"]) { print " selected"; } print ">" . title_trim($template["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="120" nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Search: </td> <td> <input type="text" name="filter" size="40" value="<?php print clean_html_output(get_request_var_request("filter"));?>"> </td> <td nowrap style='white-space: nowrap;' width="50"> Rows per Page: </td> <td width="1"> <select name="graph_rows" onChange="applyGraphsFilterChange(document.form_graph_id)"> <option value="-1"<?php if (get_request_var_request("graph_rows") == "-1") {?> selected<?php }?>>Default</option> <?php if (sizeof($item_rows) > 0) { foreach ($item_rows as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("graph_rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> </tr> </table> </td> <input type='hidden' name='page' value='1'> </form> </tr> <?php html_end_box(); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where = "AND (graph_templates_graph.title_cache like '%%" . get_request_var_request("filter") . "%%'" . " OR graph_templates.name like '%%" . get_request_var_request("filter") . "%%')"; }else{ $sql_where = ""; } if (get_request_var_request("host_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("host_id") == "0") { $sql_where .= " AND graph_local.host_id=0"; }elseif (!empty($_REQUEST["host_id"])) { $sql_where .= " AND graph_local.host_id=" . get_request_var_request("host_id"); } if (get_request_var_request("template_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("template_id") == "0") { $sql_where .= " AND graph_templates_graph.graph_template_id=0"; }elseif (!empty($_REQUEST["template_id"])) { $sql_where .= " AND graph_templates_graph.graph_template_id=" . get_request_var_request("template_id"); } html_start_box("", "100%", $colors["header"], "3", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(graph_templates_graph.id) FROM (graph_local,graph_templates_graph) LEFT JOIN graph_templates ON (graph_local.graph_template_id=graph_templates.id) WHERE graph_local.id=graph_templates_graph.local_graph_id $sql_where"); $graph_list = db_fetch_assoc("SELECT graph_templates_graph.id, graph_templates_graph.local_graph_id, graph_templates_graph.height, graph_templates_graph.width, graph_templates_graph.title_cache, graph_templates.name, graph_local.host_id FROM (graph_local,graph_templates_graph) LEFT JOIN graph_templates ON (graph_local.graph_template_id=graph_templates.id) WHERE graph_local.id=graph_templates_graph.local_graph_id $sql_where ORDER BY " . $_REQUEST["sort_column"] . " " . get_request_var_request("sort_direction") . " LIMIT " . (get_request_var_request("graph_rows")*(get_request_var_request("page")-1)) . "," . get_request_var_request("graph_rows")); /* generate page list */ $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, get_request_var_request("graph_rows"), $total_rows, "graphs.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id")); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='5'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='graphs.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id") . "&page=" . (get_request_var_request("page")-1) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((get_request_var_request("graph_rows")*(get_request_var_request("page")-1))+1) . " to " . ((($total_rows < get_request_var_request("graph_rows")) || ($total_rows < (get_request_var_request("graph_rows")*get_request_var_request("page")))) ? $total_rows : (get_request_var_request("graph_rows")*get_request_var_request("page"))) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if ((get_request_var_request("page") * get_request_var_request("graph_rows")) < $total_rows) { $nav .= "<a class='linkOverDark' href='graphs.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id") . "&page=" . (get_request_var_request("page")+1) . "'>"; } $nav .= "Next"; if ((get_request_var_request("page") * get_request_var_request("graph_rows")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; $display_text = array( "title_cache" => array("Graph Title", "ASC"), "local_graph_id" => array("ID", "ASC"), "name" => array("Template Name", "ASC"), "height" => array("Size", "ASC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); $i = 0; if (sizeof($graph_list) > 0) { foreach ($graph_list as $graph) { $template_name = ((empty($graph["name"])) ? "<em>None</em>" : $graph["name"]); form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $graph["local_graph_id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='graphs.php?action=graph_edit&id=" . $graph["local_graph_id"] . "' title='" . htmlspecialchars($graph["title_cache"]) . "'>" . ((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($graph["title_cache"], read_config_option("max_title_graph"))) : title_trim($graph["title_cache"], read_config_option("max_title_graph"))) . "</a>", $graph["local_graph_id"]); form_selectable_cell($graph["local_graph_id"], $graph["local_graph_id"]); form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $template_name) : $template_name) . "</a>", $graph["local_graph_id"]); form_selectable_cell($graph["height"] . "x" . $graph["width"], $graph["local_graph_id"]); form_checkbox_cell($graph["title_cache"], $graph["local_graph_id"]); form_end_row(); } /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>No Graphs Found</em></td></tr>"; } html_end_box(false); /* add a list of tree names to the actions dropdown */ add_tree_names_to_actions_array(); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($graph_actions); print "</form>\n"; }
if ($_REQUEST["view_type"] == "tree") { print "<table width='100%' style='background-color: #ffffff; border: 1px solid #ffffff;' align='center' cellpadding='3'>"; } else { print "<br><table width='100%' style='background-color: #f5f5f5; border: 1px solid #bbbbbb;' align='center' cellpadding='3'>"; } $rras = get_associated_rras($_GET["local_graph_id"]); switch ($_REQUEST["action"]) { case 'view': ?> <tr bgcolor='#<?php print $colors["header_panel"]; ?> '> <td colspan='3' class='textHeaderDark'> <strong>Viewing Graph</strong> '<?php print clean_html_output($graph_title); ?> ' </td> </tr> <?php $i = 0; if (sizeof($rras) > 0) { foreach ($rras as $rra) { ?> <tr> <td align='center'> <table width='1' cellpadding='0'> <tr> <td> <img class='graphimage' id='graph_<?php
$graph_title = get_graph_title($_GET["local_graph_id"]); if ($_REQUEST["view_type"] == "tree") { print "<table width='100%' style='background-color: #ffffff; border: 1px solid #ffffff;' align='center' cellpadding='3'>"; }else{ print "<br><table width='100%' style='background-color: #f5f5f5; border: 1px solid #bbbbbb;' align='center' cellpadding='3'>"; } $rras = get_associated_rras($_GET["local_graph_id"]); switch ($_REQUEST["action"]) { case 'view': ?> <tr bgcolor='#<?php print $colors["header_panel"];?>'> <td colspan='3' class='textHeaderDark'> <strong>Viewing Graph</strong> '<?php print clean_html_output($graph_title);?>' </td> </tr> <?php $i = 0; if (sizeof($rras) > 0) { foreach ($rras as $rra) { ?> <tr> <td align='center'> <table width='1' cellpadding='0'> <tr> <td> <img class='graphimage' id='graph_<?php print $_GET["local_graph_id"] ?>' src='graph_image.php?action=view&local_graph_id=<?php print $_GET["local_graph_id"];?>&rra_id=<?php print $rra["id"];?>' border='0' alt='<?php print $graph_title;?>'> </td>
<?php } if ($user_enabled == "0") {?> <tr height="10"><td></td></tr> <tr> <td colspan="2"><font color="#FF0000"><strong>User Account Disabled</strong></font></td> </tr> <?php } } ?> <tr height="10"><td></td></tr> <tr> <td colspan="2">Please enter your Cacti user name and password below:</td> </tr> <tr height="10"><td></td></tr> <tr> <td>User Name:</td> <td><input type="text" name="login_username" size="40" style="width: 295px;" value="<?php print clean_html_output($username); ?>"></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="login_password" size="40" style="width: 295px;"></td> </tr> <?php if (read_config_option("auth_method") == "3") {?> <tr> <td>Realm:</td> <td> <select name="realm" style="width: 295px;"> <option value="local">Local</option> <option value="ldap" selected>LDAP</option> </select> </td>
function graph_view_search_filter() { global $graphs_per_page; global $colors; ?> <script type='text/javascript'> <!-- function applyFilter(objForm) { strURL = '?action=ajax_tree_graphs&filter=' + objForm.filter.value; strURL = strURL + '&graphs=' + objForm.graphs.value; strURL = strURL + '&thumbnails=' + objForm.thumbnails.checked; $.get("graph_view.php" + strURL, function (data) { $("#graphs").html(data); }); } function clearFilter(objForm) { strURL = '?action=ajax_tree_graphs&clear_filter=true'; $.get("graph_view.php" + strURL, function (data) { $("#graphs").html(data); }); } //--> </script> <?php html_start_box("", "100", $colors["header"], "0", "center", ""); ?> <tr class="rowGraphFilter noprint"> <td class="noprint"> <form name="form_graph_view" method="get" action="graph_view.php"> <table cellspacing="0" cellpadding="0"> <tr> <td class="nw50"> <?php print __("Search:");?> </td> <td class="nw120"> <input type='text' style='display:none;' name='workaround'> <input size='30' style='width:100;' name='filter' value='<?php print clean_html_output(get_request_var_request("filter"));?>' onChange='applyFilter(document.form_graph_view)'> </td> <td class="nw100"> <?php print __("Graphs/Page:");?> </td> <td class="w1"> <select name="graphs" onChange="applyFilter(document.form_graph_view)"> <?php if (sizeof($graphs_per_page) > 0) { foreach ($graphs_per_page as $key => $value) { print "\t\t\t\t\t\t\t<option value='" . $key . "'"; if ((isset($_REQUEST["graphs"])) && ($_REQUEST["graphs"] == $key)) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> <td width="40"> <label for="thumbnails"> <?php print __("Thumbnails:");?> </label> </td> <td> <input type="checkbox" name="thumbnails" id="thumbnails" onChange="applyFilter(document.form_graph_view);" <?php print ((isset($_REQUEST['thumbnails'])) && ($_REQUEST['thumbnails'] == "true") ? "checked":"");?>> </td> <td class='nw'> <input type='button' value='<?php print __("Refresh");?>' name='refresh' onClick='applyFilter(document.form_graph_view)'> <input type='button' value='<?php print __("Clear");?>' name='clear_x' onClick='clearFilter(document.form_graph_view)'> </td> </tr> </table> </form> </td> </tr> <?php html_graph_end_box(); }
<td colspan="2"><font color="#FF0000"><strong>User Account Disabled</strong></font></td> </tr> <?php } } ?> <tr height="10"><td></td></tr> <tr> <td colspan="2">Please enter your Cacti user name and password below:</td> </tr> <tr height="10"><td></td></tr> <tr> <td>User Name:</td> <td><input type="text" name="login_username" size="40" style="width: 295px;" value="<?php print clean_html_output($username); ?> "></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="login_password" size="40" style="width: 295px;"></td> </tr> <?php if (read_config_option("auth_method") == "3") { ?> <tr> <td>Realm:</td> <td> <select name="realm" style="width: 295px;"> <option value="local">Local</option>
function grow_right_pane_tree($tree_id, $leaf_id, $host_group_data) { global $current_user, $colors, $config, $graphs_per_page, $graph_timeshifts; include($config["include_path"] . "/global_arrays.php"); include_once($config["library_path"] . "/data_query.php"); include_once($config["library_path"] . "/tree.php"); include_once($config["library_path"] . "/html_utility.php"); define("MAX_DISPLAY_PAGES", 21); if (empty($tree_id)) { return; } $sql_where = ""; $sql_join = ""; $title = ""; $title_delimeter = ""; $search_key = ""; $leaf = db_fetch_row("SELECT order_key, title, host_id, host_grouping_type FROM graph_tree_items WHERE id=$leaf_id"); $leaf_type = get_tree_item_type($leaf_id); /* get the "starting leaf" if the user clicked on a specific branch */ if (!empty($leaf_id)) { $search_key = substr($leaf["order_key"], 0, (tree_tier($leaf["order_key"]) * CHARS_PER_TIER)); } /* graph permissions */ if (read_config_option("auth_method") != 0) { /* get policy information for the sql where clause */ $sql_where = get_graph_permissions_sql($current_user["policy_graphs"], $current_user["policy_hosts"], $current_user["policy_graph_templates"]); $sql_where = (empty($sql_where) ? "" : "AND $sql_where"); $sql_join = " LEFT JOIN host ON (host.id=graph_local.host_id) LEFT JOIN graph_templates ON (graph_templates.id=graph_local.graph_template_id) LEFT JOIN user_auth_perms ON ((graph_templates_graph.local_graph_id=user_auth_perms.item_id AND user_auth_perms.type=1 AND user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (host.id=user_auth_perms.item_id and user_auth_perms.type=3 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (graph_templates.id=user_auth_perms.item_id AND user_auth_perms.type=4 AND user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . "))"; } /* get information for the headers */ if (!empty($tree_id)) { $tree_name = db_fetch_cell("SELECT name FROM graph_tree WHERE id=$tree_id"); } if (!empty($leaf_id)) { $leaf_name = $leaf["title"]; } if (!empty($leaf_id)) { $host_name = db_fetch_cell("SELECT host.description FROM (graph_tree_items,host) WHERE graph_tree_items.host_id=host.id AND graph_tree_items.id=$leaf_id"); } $host_group_data_array = explode(":", $host_group_data); if ($host_group_data_array[0] == "graph_template") { $host_group_data_name = "<strong>Graph Template:</strong> " . db_fetch_cell("select name from graph_templates where id=" . $host_group_data_array[1]); $graph_template_id = $host_group_data_array[1]; }elseif ($host_group_data_array[0] == "data_query") { $host_group_data_name = "<strong>Graph Template:</strong> " . (empty($host_group_data_array[1]) ? "Non Query Based" : db_fetch_cell("select name from snmp_query where id=" . $host_group_data_array[1])); $data_query_id = $host_group_data_array[1]; }elseif ($host_group_data_array[0] == "data_query_index") { $host_group_data_name = "<strong>Graph Template:</strong> " . (empty($host_group_data_array[1]) ? "Non Query Based" : db_fetch_cell("select name from snmp_query where id=" . $host_group_data_array[1])) . "-> " . (empty($host_group_data_array[2]) ? "Template Based" : get_formatted_data_query_index($leaf["host_id"], $host_group_data_array[1], $host_group_data_array[2])); $data_query_id = $host_group_data_array[1]; $data_query_index = $host_group_data_array[2]; } if (!empty($tree_name)) { $title .= $title_delimeter . "<strong>Tree:</strong> $tree_name"; $title_delimeter = "-> "; } if (!empty($leaf_name)) { $title .= $title_delimeter . "<strong>Leaf:</strong> $leaf_name"; $title_delimeter = "-> "; } if (!empty($host_name)) { $title .= $title_delimeter . "<strong>Host:</strong> $host_name"; $title_delimeter = "-> "; } if (!empty($host_group_data_name)) { $title .= $title_delimeter . " $host_group_data_name"; $title_delimeter = "-> "; } if (isset($_REQUEST["tree_id"])) { $nodeid = "tree_" . get_request_var_request("tree_id"); } if (isset($_REQUEST["leaf_id"])) { $nodeid .= "_leaf_" . get_request_var_request("leaf_id"); } if (isset($_REQUEST["host_group_data"])) { $type_id = explode(":", get_request_var_request("host_group_data")); if ($type_id[0] == "graph_template") { $nodeid .= "_hgd_gt_" . $type_id[1]; }elseif ($type_id[0] == "data_query") { $nodeid .= "_hgd_dq_" . $type_id[1]; }else{ $nodeid .= "_hgd_dqi" . $type_id[1] . "_" . $type_id[2]; } } print "<script type=\"text/javascript\">\n"; print "<!--\n"; print "myNode = findObj(\"$nodeid\")\n"; print "myNode.forceOpeningOfAncestorFolders();\n"; print "highlightObjLink(myNode)\n"; print "//-->\n"; print "</script>"; print "<table width='100%' align='center' cellpadding='3'>"; /* ================= input validation ================= */ input_validate_input_number(get_request_var_post("graphs")); input_validate_input_number(get_request_var_post("page")); /* ==================================================== */ /* clean up search string */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var_post("filter")); } /* clean up search string */ if (isset($_REQUEST["thumbnails"])) { $_REQUEST["thumbnails"] = sanitize_search_string(get_request_var_post("thumbnails")); } /* if the user pushed the 'clear' button */ if (isset($_POST["clear_x"])) { kill_session_var("sess_graph_view_graphs"); kill_session_var("sess_graph_view_filter"); kill_session_var("sess_graph_view_thumbnails"); kill_session_var("sess_graph_view_page"); unset($_POST["graphs"]); unset($_REQUEST["graphs"]); unset($_POST["filter"]); unset($_REQUEST["filter"]); unset($_REQUEST["page"]); unset($_POST["thumbnails"]); unset($_REQUEST["thumbnails"]); $changed = true; }else{ /* if any of the settings changed, reset the page number */ $changed = 0; $changed += check_changed("graphs", "sess_graph_view_graphs"); $changed += check_changed("filter", "sess_graph_view_filter"); $changed += check_changed("action", "sess_graph_view_action"); } if (isset($_SESSION["sess_graph_view_tree_id"])) { if ($_SESSION["sess_graph_view_tree_id"] != $tree_id) { $changed += 1; } } $_SESSION["sess_graph_view_tree_id"] = $tree_id; if (isset($_SESSION["sess_graph_view_leaf_id"])) { if ($_SESSION["sess_graph_view_leaf_id"] != $leaf_id) { $changed += 1; } } $_SESSION["sess_graph_view_leaf_id"] = $leaf_id; if (isset($_SESSION["sess_graph_view_host_group_data"])) { if ($_SESSION["sess_graph_view_host_group_data"] != $host_group_data) { $changed += 1; } } $_SESSION["sess_graph_view_host_group_data"] = $host_group_data; if ($changed) { $_REQUEST["page"] = 1; } load_current_session_value("page", "sess_graph_view_page", "1"); load_current_session_value("graphs", "sess_graph_view_graphs", read_graph_config_option("treeview_graphs_per_page")); load_current_session_value("filter", "sess_graph_view_filter", ""); if (isset($_SESSION["sess_graph_view_thumbnails"])) { if ($_SESSION["sess_graph_view_thumbnails"] == "on") { if (isset($_POST["filter"])) { if (!isset($_POST["thumbnails"])) { $_SESSION["sess_graph_view_thumbnails"] = 'off'; } } }else{ if (isset($_POST["thumbnails"])) { $_SESSION["sess_graph_view_thumbnails"] = 'on'; } } }else{ $_SESSION["sess_graph_view_thumbnails"] = read_graph_config_option("thumbnail_section_tree_2"); if ($_SESSION["sess_graph_view_thumbnails"] == '') { $_SESSION["sess_graph_view_thumbnails"] = 'off'; }else{ $_SESSION["sess_graph_view_thumbnails"] = 'on'; } } html_graph_start_box(1, false); /* include time span selector */ if (read_graph_config_option("timespan_sel") == "on") { ?> <script type='text/javascript'> // Initialize the calendar calendar=null; // This function displays the calendar associated to the input field 'id' function showCalendar(id) { var el = document.getElementById(id); if (calendar != null) { // we already have some calendar created calendar.hide(); // so we hide it first. } else { // first-time call, create the calendar. var cal = new Calendar(true, null, selected, closeHandler); cal.weekNumbers = false; // Do not display the week number cal.showsTime = true; // Display the time cal.time24 = true; // Hours have a 24 hours format cal.showsOtherMonths = false; // Just the current month is displayed calendar = cal; // remember it in the global var cal.setRange(1900, 2070); // min/max year allowed. cal.create(); } calendar.setDateFormat('%Y-%m-%d %H:%M'); // set the specified date format calendar.parseDate(el.value); // try to parse the text in field calendar.sel = el; // inform it what input field we use // Display the calendar below the input field calendar.showAtElement(el, "Br"); // show the calendar return false; } // This function update the date in the input field when selected function selected(cal, date) { cal.sel.value = date; // just update the date in the input field. } // This function gets called when the end-user clicks on the 'Close' button. // It just hides the calendar without destroying it. function closeHandler(cal) { cal.hide(); // hide the calendar calendar = null; } </script> <script type="text/javascript"> <!-- function applyTimespanFilterChange(objForm) { strURL = '?predefined_timespan=' + objForm.predefined_timespan.value; strURL = strURL + '&predefined_timeshift=' + objForm.predefined_timeshift.value; document.location = strURL; } --> </script> <tr bgcolor="<?php print $colors["panel"];?>" class="noprint"> <form name="form_timespan_selector" method="post"> <td class="noprint"> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td nowrap style='white-space: nowrap;' width='55'> <strong>Presets:</strong> </td> <td nowrap style='white-space: nowrap;' width='130'> <select name='predefined_timespan' onChange="applyTimespanFilterChange(document.form_timespan_selector)"> <?php if ($_SESSION["custom"]) { $graph_timespans[GT_CUSTOM] = "Custom"; $start_val = 0; $end_val = sizeof($graph_timespans); } else { if (isset($graph_timespans[GT_CUSTOM])) { asort($graph_timespans); array_shift($graph_timespans); } $start_val = 1; $end_val = sizeof($graph_timespans)+1; } if (sizeof($graph_timespans) > 0) { for ($value=$start_val; $value < $end_val; $value++) { print "<option value='$value'"; if ($_SESSION["sess_current_timespan"] == $value) { print " selected"; } print ">" . title_trim($graph_timespans[$value], 40) . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width='30'> <strong>From:</strong> </td> <td width='150' nowrap style='white-space: nowrap;'> <input type='text' name='date1' id='date1' title='Graph Begin Timestamp' size='14' value='<?php print (isset($_SESSION["sess_current_date1"]) ? $_SESSION["sess_current_date1"] : "");?>'> <input style='padding-bottom: 4px;' type='image' src='images/calendar.gif' alt='Start date selector' title='Start date selector' border='0' align='absmiddle' onclick="return showCalendar('date1');"> </td> <td nowrap style='white-space: nowrap;' width='20'> <strong>To:</strong> </td> <td width='150' nowrap style='white-space: nowrap;'> <input type='text' name='date2' id='date2' title='Graph End Timestamp' size='14' value='<?php print (isset($_SESSION["sess_current_date2"]) ? $_SESSION["sess_current_date2"] : "");?>'> <input style='padding-bottom: 4px;' type='image' src='images/calendar.gif' alt='End date selector' title='End date selector' border='0' align='absmiddle' onclick="return showCalendar('date2');"> </td> <td width='130' nowrap style='white-space: nowrap;'> <input style='padding-bottom: 4px;' type='image' name='move_left' src='images/move_left.gif' alt='Left' border='0' align='absmiddle' title='Shift Left'> <select name='predefined_timeshift' title='Define Shifting Interval' onChange="applyTimespanFilterChange(document.form_timespan_selector)"> <?php $start_val = 1; $end_val = sizeof($graph_timeshifts)+1; if (sizeof($graph_timeshifts) > 0) { for ($shift_value=$start_val; $shift_value < $end_val; $shift_value++) { print "<option value='$shift_value'"; if ($_SESSION["sess_current_timeshift"] == $shift_value) { print " selected"; } print ">" . title_trim($graph_timeshifts[$shift_value], 40) . "</option>\n"; } } ?> </select> <input style='padding-bottom: 4px;' type='image' name='move_right' src='images/move_right.gif' alt='Right' border='0' align='absmiddle' title='Shift Right'> </td> <td nowrap style='white-space: nowrap;'> <input type='image' name='button_refresh' src='images/button_refresh.gif' alt='Refresh selected time span' border='0' align='absmiddle' value='refresh'> <input type='image' name='button_clear' src='images/button_clear.gif' alt='Return to the default time span' border='0' align='absmiddle'> </td> </tr> </table> </td> </form> </tr> <?php } ?> <tr class="noprint" bgcolor="#e5e5e5"> <form name="form_graph_view" method="post"> <td class="noprint"> <table cellspacing="0" cellpadding="0"> <tr> <td width="55" nowrap="" style="white-space: nowrap;"> <strong> Search:</strong> </td> <td width="130" nowrap="" style="white-space: nowrap;"> <input size='30' width='100' name='filter' value='<?php print clean_html_output(get_request_var_request("filter"));?>'> </td> <td nowrap style='white-space:nowrap;' width="110"> <strong>Graphs per Page:</strong> </td> <td width="1"> <select name="graphs" id="graphs" onChange="submit()"> <?php if (sizeof($graphs_per_page) > 0) { foreach ($graphs_per_page as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("graphs") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> <td width="40"> <label for="thumbnails"><strong> Thumbnails: <strong></label> </td> <td> <input type="checkbox" name="thumbnails" onClick="submit()" <?php print (($_SESSION['sess_graph_view_thumbnails'] == "on") ? "checked":"");?>> </td> <td style='white-space:nowrap;' nowrap> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> </td> </form> </tr> <?php html_graph_end_box(FALSE); html_graph_start_box(3, TRUE); $graph_list = array(); if (($leaf_type == "header") || (empty($leaf_id))) { if (strlen(get_request_var_request("filter"))) { $sql_where = (empty($sql_where) ? "" : "AND (title_cache LIKE '%" . get_request_var_request("filter") . "%' OR graph_templates_graph.title LIKE '%" . get_request_var_request("filter") . "%')"); } $graph_list = db_fetch_assoc("SELECT graph_tree_items.id, graph_tree_items.title, graph_tree_items.local_graph_id, graph_tree_items.rra_id, graph_tree_items.order_key, graph_templates_graph.title_cache as title_cache FROM (graph_tree_items,graph_local) LEFT JOIN graph_templates_graph ON (graph_tree_items.local_graph_id=graph_templates_graph.local_graph_id AND graph_tree_items.local_graph_id>0) $sql_join WHERE graph_tree_items.graph_tree_id=$tree_id AND graph_local.id=graph_templates_graph.local_graph_id AND graph_tree_items.order_key like '$search_key" . str_repeat('_', CHARS_PER_TIER) . str_repeat('0', (MAX_TREE_DEPTH * CHARS_PER_TIER) - (strlen($search_key) + CHARS_PER_TIER)) . "' AND graph_tree_items.local_graph_id>0 $sql_where GROUP BY graph_tree_items.id ORDER BY graph_tree_items.order_key"); }elseif ($leaf_type == "host") { /* graph template grouping */ if ($leaf["host_grouping_type"] == HOST_GROUPING_GRAPH_TEMPLATE) { $graph_templates = db_fetch_assoc("SELECT graph_templates.id, graph_templates.name FROM (graph_local,graph_templates,graph_templates_graph) WHERE graph_local.id=graph_templates_graph.local_graph_id AND graph_templates_graph.graph_template_id=graph_templates.id AND graph_local.host_id=" . $leaf["host_id"] . " " . (empty($graph_template_id) ? "" : "AND graph_templates.id=$graph_template_id") . " GROUP BY graph_templates.id ORDER BY graph_templates.name"); /* for graphs without a template */ array_push($graph_templates, array( "id" => "0", "name" => "(No Graph Template)" )); if (sizeof($graph_templates) > 0) { foreach ($graph_templates as $graph_template) { if (strlen(get_request_var_request("filter"))) { $sql_where = (empty($sql_where) ? "" : "AND (title_cache LIKE '%" . get_request_var_request("filter") . "%')"); } $graphs = db_fetch_assoc("SELECT graph_templates_graph.title_cache, graph_templates_graph.local_graph_id FROM (graph_local,graph_templates_graph) $sql_join WHERE graph_local.id=graph_templates_graph.local_graph_id AND graph_local.graph_template_id=" . $graph_template["id"] . " AND graph_local.host_id=" . $leaf["host_id"] . " $sql_where ORDER BY graph_templates_graph.title_cache"); /* let's sort the graphs naturally */ usort($graphs, 'naturally_sort_graphs'); if (sizeof($graphs)) { foreach ($graphs as $graph) { $graph["graph_template_name"] = $graph_template["name"]; array_push($graph_list, $graph); } } } } /* data query index grouping */ }elseif ($leaf["host_grouping_type"] == HOST_GROUPING_DATA_QUERY_INDEX) { $data_queries = db_fetch_assoc("SELECT snmp_query.id, snmp_query.name FROM (graph_local,snmp_query) WHERE graph_local.snmp_query_id=snmp_query.id AND graph_local.host_id=" . $leaf["host_id"] . " " . (!isset($data_query_id) ? "" : "and snmp_query.id=$data_query_id") . " GROUP BY snmp_query.id ORDER BY snmp_query.name"); /* for graphs without a data query */ if (empty($data_query_id)) { array_push($data_queries, array( "id" => "0", "name" => "Non Query Based" )); } if (sizeof($data_queries) > 0) { foreach ($data_queries as $data_query) { /* fetch a list of field names that are sorted by the preferred sort field */ $sort_field_data = get_formatted_data_query_indexes($leaf["host_id"], $data_query["id"]); if (strlen(get_request_var_request("filter"))) { $sql_where = (empty($sql_where) ? "" : "AND (title_cache LIKE '%" . get_request_var_request("filter") . "%')"); } /* grab a list of all graphs for this host/data query combination */ $graphs = db_fetch_assoc("SELECT graph_templates_graph.title_cache, graph_templates_graph.local_graph_id, graph_local.snmp_index FROM (graph_local, graph_templates_graph) $sql_join WHERE graph_local.id=graph_templates_graph.local_graph_id AND graph_local.snmp_query_id=" . $data_query["id"] . " AND graph_local.host_id=" . $leaf["host_id"] . " " . (empty($data_query_index) ? "" : "and graph_local.snmp_index='$data_query_index'") . " $sql_where GROUP BY graph_templates_graph.local_graph_id ORDER BY graph_templates_graph.title_cache"); /* re-key the results on data query index */ if (sizeof($graphs) > 0) { /* let's sort the graphs naturally */ usort($graphs, 'naturally_sort_graphs'); foreach ($graphs as $graph) { $snmp_index_to_graph{$graph["snmp_index"]}{$graph["local_graph_id"]} = $graph["title_cache"]; } } /* using the sorted data as they key; grab each snmp index from the master list */ while (list($snmp_index, $sort_field_value) = each($sort_field_data)) { /* render each graph for the current data query index */ if (isset($snmp_index_to_graph[$snmp_index])) { while (list($local_graph_id, $graph_title) = each($snmp_index_to_graph[$snmp_index])) { /* reformat the array so it's compatable with the html_graph* area functions */ array_push($graph_list, array("data_query_name" => $data_query["name"], "sort_field_value" => $sort_field_value, "local_graph_id" => $local_graph_id, "title_cache" => $graph_title)); } } } } } } } $total_rows = sizeof($graph_list); /* generate page list */ if ($total_rows > get_request_var_request("graphs")) { $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, get_request_var_request("graphs"), $total_rows, "graph_view.php?action=tree&tree_id=" . $tree_id . "&leaf_id=" . $leaf_id . (isset($_REQUEST["host_group_data"]) ? "&host_group_data=" . get_request_var_request("host_group_data") : "")); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='11'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='graph_view.php?action=tree&tree_id=" . $tree_id . "&leaf_id=" . $leaf_id . (isset($_REQUEST["host_group_data"]) ? "&host_group_data=" . get_request_var_request("host_group_data") : "") . "&page=" . (get_request_var_request("page")-1) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Graphs " . ((get_request_var_request("graphs")*(get_request_var_request("page")-1))+1) . " to " . ((($total_rows < read_graph_config_option("treeview_graphs_per_page")) || ($total_rows < (get_request_var_request("graphs")*get_request_var_request("page")))) ? $total_rows : (get_request_var_request("graphs")*get_request_var_request("page"))) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if ((get_request_var_request("page") * get_request_var_request("graphs")) < $total_rows) { $nav .= "<a class='linkOverDark' href='graph_view.php?action=tree&tree_id=" . $tree_id . "&leaf_id=" . $leaf_id . (isset($_REQUEST["host_group_data"]) ? "&host_group_data=" . get_request_var_request("host_group_data") : "") . "&page=" . (get_request_var_request("page")+1) . "'>"; } $nav .= "Next"; if ((get_request_var_request("page") * get_request_var_request("graphs")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; }else{ $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='11'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='center' class='textHeaderDark'> Showing All Graphs" . (strlen(get_request_var_request("filter")) ? " [ Filter '" . clean_html_output(get_request_var_request("filter")) . "' Applied ]" : "") . " </td> </tr> </table> </td> </tr>\n"; } print $nav; /* start graph display */ print "<tr bgcolor='#" . $colors["header_panel"] . "'><td width='390' colspan='10' class='textHeaderDark'>$title</td></tr>"; $i = get_request_var_request("graphs") * (get_request_var_request("page") - 1); $last_graph = $i + get_request_var_request("graphs"); $new_graph_list = array(); while ($i < $total_rows && $i < $last_graph) { $new_graph_list[] = $graph_list[$i]; $i++; } if ($_SESSION["sess_graph_view_thumbnails"] == "on") { html_graph_thumbnail_area($new_graph_list, "", "view_type=tree&graph_start=" . get_current_graph_start() . "&graph_end=" . get_current_graph_end()); }else{ html_graph_area($new_graph_list, "", "view_type=tree&graph_start=" . get_current_graph_start() . "&graph_end=" . get_current_graph_end()); } print $nav; print "</table>"; }
function user() { global $colors, $auth_realms, $user_actions; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("page")); /* ==================================================== */ /* clean up search string */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } /* clean up sort_column */ if (isset($_REQUEST["sort_column"])) { $_REQUEST["sort_column"] = sanitize_search_string(get_request_var("sort_column")); } /* clean up sort_direction string */ if (isset($_REQUEST["sort_direction"])) { $_REQUEST["sort_direction"] = sanitize_search_string(get_request_var("sort_direction")); } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_user_admin_current_page"); kill_session_var("sess_user_admin_filter"); kill_session_var("sess_user_admin_sort_column"); kill_session_var("sess_user_admin_sort_direction"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_user_admin_current_page", "1"); load_current_session_value("filter", "sess_user_admin_filter", ""); load_current_session_value("sort_column", "sess_user_admin_sort_column", "username"); load_current_session_value("sort_direction", "sess_user_admin_sort_direction", "ASC"); html_start_box("<strong>User Management</strong>", "100%", $colors["header"], "3", "center", "user_admin.php?action=user_edit"); ?> <tr bgcolor="<?php print $colors["panel"];?>"> <form name="form_user_admin"> <td> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td nowrap style='white-space: nowrap;' width="50"> Search: </td> <td width="1"> <input type="text" name="filter" size="40" value="<?php print clean_html_output(get_request_var_request("filter"));?>"> </td> <td nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> </td> <input type='hidden' name='page' value='1'> </form> </tr> <?php html_end_box(); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where = "WHERE (user_auth.username LIKE '%" . get_request_var_request("filter") . "%' OR user_auth.full_name LIKE '%" . get_request_var_request("filter") . "%')"; }else{ $sql_where = ""; } html_start_box("", "100%", $colors["header"], "3", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(user_auth.id) FROM user_auth $sql_where"); $user_list = db_fetch_assoc("SELECT id, user_auth.username, full_name, realm, enabled, policy_graphs, time, max(time) as dtime FROM user_auth LEFT JOIN user_log ON (user_auth.id = user_log.user_id) $sql_where GROUP BY id ORDER BY " . get_request_var_request("sort_column") . " " . get_request_var_request("sort_direction") . " LIMIT " . (read_config_option("num_rows_device") * (get_request_var_request("page") - 1)) . "," . read_config_option("num_rows_device")); /* generate page list */ $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, read_config_option("num_rows_device"), $total_rows, "user_admin.php?filter=" . get_request_var_request("filter")); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='7'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='user_admin.php?filter=" . get_request_var_request("filter") . "&page=" . (get_request_var_request("page") - 1) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((read_config_option("num_rows_device") * (get_request_var_request("page") - 1)) + 1) . " to " . ((($total_rows < read_config_option("num_rows_device")) || ($total_rows < (read_config_option("num_rows_device") * get_request_var_request("page")))) ? $total_rows : (read_config_option("num_rows_device") * get_request_var_request("page"))) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if ((get_request_var_request("page") * read_config_option("num_rows_device")) < $total_rows) { $nav .= "<a class='linkOverDark' href='user_admin.php?filter=" . get_request_var_request("filter") . "&page=" . (get_request_var_request("page") + 1) . "'>"; } $nav .= "Next"; if ((get_request_var_request("page") * read_config_option("num_rows_device")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; $display_text = array( "username" => array("User Name", "ASC"), "full_name" => array("Full Name", "ASC"), "enabled" => array("Enabled", "ASC"), "realm" => array("Realm", "ASC"), "policy_graphs" => array("Default Graph Policy", "ASC"), "dtime" => array("Last Login", "DESC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); $i = 0; if (sizeof($user_list) > 0) { foreach ($user_list as $user) { if (empty($user["dtime"]) || ($user["dtime"] == "12/31/1969")) { $last_login = "******"; }else{ $last_login = strftime("%A, %B %d, %Y %H:%M:%S ", strtotime($user["dtime"]));; } if ($user["enabled"] == "on") { $enabled = "Yes"; }else{ $enabled = "No"; } form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $user["id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='user_admin.php?action=user_edit&id=" . $user["id"] . "'>" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $user["username"]) : $user["username"]) , $user["id"]); form_selectable_cell((strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $user["full_name"]) : $user["full_name"]), $user["id"]); form_selectable_cell($enabled, $user["id"]); form_selectable_cell($auth_realms[$user["realm"]], $user["id"]); if ($user["policy_graphs"] == "1") { form_selectable_cell("ALLOW", $user["id"]); }else{ form_selectable_cell("DENY", $user["id"]); } form_selectable_cell($last_login, $user["id"]); form_checkbox_cell($user["username"], $user["id"]); form_end_row(); } print $nav; }else{ print "<tr><td><em>No Users</em></td></tr>"; } html_end_box(false); draw_actions_dropdown($user_actions); }
ORDER BY name"); } if (sizeof($graph_templates) > 0) { foreach ($graph_templates as $template) { print "<option value='" . $template["id"] . "'"; if (get_request_var_request("graph_template_id") == $template["id"]) { print " selected"; } print ">" . $template["name"] . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="50"> <strong>Search:</strong> </td> <td width="1"> <input type="text" name="filter" size="40" value="<?php print clean_html_output(get_request_var_request("filter"));?>"> </td> <td style='white-space:nowrap;' nowrap> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> </td> </form> </tr> <?php html_graph_end_box(TRUE); /* create filter for sql */ $sql_filter = "";
function host() { global $colors, $device_actions, $item_rows; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("host_template_id")); input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("host_status")); input_validate_input_number(get_request_var_request("host_rows")); /* ==================================================== */ /* clean up search string */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } /* clean up sort_column */ if (isset($_REQUEST["sort_column"])) { $_REQUEST["sort_column"] = sanitize_search_string(get_request_var("sort_column")); } /* clean up search string */ if (isset($_REQUEST["sort_direction"])) { $_REQUEST["sort_direction"] = sanitize_search_string(get_request_var("sort_direction")); } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_device_current_page"); kill_session_var("sess_device_filter"); kill_session_var("sess_device_host_template_id"); kill_session_var("sess_host_status"); kill_session_var("sess_host_rows"); kill_session_var("sess_host_sort_column"); kill_session_var("sess_host_sort_direction"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["host_template_id"]); unset($_REQUEST["host_status"]); unset($_REQUEST["host_rows"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } if ((!empty($_SESSION["sess_host_status"])) && (!empty($_REQUEST["host_status"]))) { if ($_SESSION["sess_host_status"] != $_REQUEST["host_status"]) { $_REQUEST["page"] = 1; } } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_device_current_page", "1"); load_current_session_value("filter", "sess_device_filter", ""); load_current_session_value("host_template_id", "sess_device_host_template_id", "-1"); load_current_session_value("host_status", "sess_host_status", "-1"); load_current_session_value("host_rows", "sess_host_rows", read_config_option("num_rows_device")); load_current_session_value("sort_column", "sess_host_sort_column", "description"); load_current_session_value("sort_direction", "sess_host_sort_direction", "ASC"); /* if the number of rows is -1, set it to the default */ if ($_REQUEST["host_rows"] == -1) { $_REQUEST["host_rows"] = read_config_option("num_rows_device"); } ?> <script type="text/javascript"> <!-- function applyViewDeviceFilterChange(objForm) { strURL = '?host_status=' + objForm.host_status.value; strURL = strURL + '&host_template_id=' + objForm.host_template_id.value; strURL = strURL + '&host_rows=' + objForm.host_rows.value; strURL = strURL + '&filter=' + objForm.filter.value; document.location = strURL; } --> </script> <?php html_start_box("<strong>Devices</strong>", "100%", $colors["header"], "3", "center", "host.php?action=edit&host_template_id=" . get_request_var_request("host_template_id") . "&host_status=" . get_request_var_request("host_status")); ?> <tr bgcolor="<?php print $colors["panel"];?>"> <form name="form_devices"> <td> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td nowrap style='white-space: nowrap;' width="50"> Type: </td> <td width="1"> <select name="host_template_id" onChange="applyViewDeviceFilterChange(document.form_devices)"> <option value="-1"<?php if (get_request_var_request("host_template_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("host_template_id") == "0") {?> selected<?php }?>>None</option> <?php $host_templates = db_fetch_assoc("select id,name from host_template order by name"); if (sizeof($host_templates) > 0) { foreach ($host_templates as $host_template) { print "<option value='" . $host_template["id"] . "'"; if (get_request_var_request("host_template_id") == $host_template["id"]) { print " selected"; } print ">" . $host_template["name"] . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="50"> Status: </td> <td width="1"> <select name="host_status" onChange="applyViewDeviceFilterChange(document.form_devices)"> <option value="-1"<?php if (get_request_var_request("host_status") == "-1") {?> selected<?php }?>>Any</option> <option value="-3"<?php if (get_request_var_request("host_status") == "-3") {?> selected<?php }?>>Enabled</option> <option value="-2"<?php if (get_request_var_request("host_status") == "-2") {?> selected<?php }?>>Disabled</option> <option value="-4"<?php if (get_request_var_request("host_status") == "-4") {?> selected<?php }?>>Not Up</option> <option value="3"<?php if (get_request_var_request("host_status") == "3") {?> selected<?php }?>>Up</option> <option value="1"<?php if (get_request_var_request("host_status") == "1") {?> selected<?php }?>>Down</option> <option value="2"<?php if (get_request_var_request("host_status") == "2") {?> selected<?php }?>>Recovering</option> <option value="0"<?php if (get_request_var_request("host_status") == "0") {?> selected<?php }?>>Unknown</option> </select> </td> <td nowrap style='white-space: nowrap;' width="20"> Search: </td> <td width="1"> <input type="text" name="filter" size="20" value="<?php print clean_html_output(get_request_var_request("filter"));?>"> </td> <td nowrap style='white-space: nowrap;' width="50"> Rows per Page: </td> <td width="1"> <select name="host_rows" onChange="applyViewDeviceFilterChange(document.form_devices)"> <option value="-1"<?php if (get_request_var_request("host_rows") == "-1") {?> selected<?php }?>>Default</option> <?php if (sizeof($item_rows) > 0) { foreach ($item_rows as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("host_rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> <td nowrap> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> </td> <input type='hidden' name='page' value='1'> </form> </tr> <?php html_end_box(); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where = "where (host.hostname like '%%" . get_request_var_request("filter") . "%%' OR host.description like '%%" . get_request_var_request("filter") . "%%')"; }else{ $sql_where = ""; } if (get_request_var_request("host_status") == "-1") { /* Show all items */ }elseif (get_request_var_request("host_status") == "-2") { $sql_where .= (strlen($sql_where) ? " and host.disabled='on'" : "where host.disabled='on'"); }elseif (get_request_var_request("host_status") == "-3") { $sql_where .= (strlen($sql_where) ? " and host.disabled=''" : "where host.disabled=''"); }elseif (get_request_var_request("host_status") == "-4") { $sql_where .= (strlen($sql_where) ? " and (host.status!='3' or host.disabled='on')" : "where (host.status!='3' or host.disabled='on')"); }else { $sql_where .= (strlen($sql_where) ? " and (host.status=" . get_request_var_request("host_status") . " AND host.disabled = '')" : "where (host.status=" . get_request_var_request("host_status") . " AND host.disabled = '')"); } if (get_request_var_request("host_template_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("host_template_id") == "0") { $sql_where .= (strlen($sql_where) ? " and host.host_template_id=0" : "where host.host_template_id=0"); }elseif (!empty($_REQUEST["host_template_id"])) { $sql_where .= (strlen($sql_where) ? " and host.host_template_id=" . get_request_var_request("host_template_id") : "where host.host_template_id=" . get_request_var_request("host_template_id")); } html_start_box("", "100%", $colors["header"], "3", "center", ""); $total_rows = db_fetch_cell("select COUNT(host.id) from host $sql_where"); $sortby = get_request_var_request("sort_column"); if ($sortby=="hostname") { $sortby = "INET_ATON(hostname)"; } $host_graphs = array_rekey(db_fetch_assoc("SELECT host_id, count(*) as graphs FROM graph_local GROUP BY host_id"), "host_id", "graphs"); $host_data_sources = array_rekey(db_fetch_assoc("SELECT host_id, count(*) as data_sources FROM data_local GROUP BY host_id"), "host_id", "data_sources"); $sql_query = "SELECT * FROM host $sql_where ORDER BY " . $sortby . " " . get_request_var_request("sort_direction") . " LIMIT " . (get_request_var_request("host_rows")*(get_request_var_request("page")-1)) . "," . get_request_var_request("host_rows"); $hosts = db_fetch_assoc($sql_query); /* generate page list */ $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, get_request_var_request("host_rows"), $total_rows, "host.php?filter=" . get_request_var_request("filter") . "&host_template_id=" . get_request_var_request("host_template_id") . "&host_status=" . get_request_var_request("host_status")); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='11'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='host.php?filter=" . get_request_var_request("filter") . "&host_template_id=" . get_request_var_request("host_template_id") . "&host_status=" . get_request_var_request("host_status") . "&page=" . (get_request_var_request("page")-1) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((get_request_var_request("host_rows")*(get_request_var_request("page")-1))+1) . " to " . ((($total_rows < read_config_option("num_rows_device")) || ($total_rows < (get_request_var_request("host_rows")*get_request_var_request("page")))) ? $total_rows : (get_request_var_request("host_rows")*get_request_var_request("page"))) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if ((get_request_var_request("page") * get_request_var_request("host_rows")) < $total_rows) { $nav .= "<a class='linkOverDark' href='host.php?filter=" . get_request_var_request("filter") . "&host_template_id=" . get_request_var_request("host_template_id") . "&host_status=" . get_request_var_request("host_status") . "&page=" . (get_request_var_request("page")+1) . "'>"; } $nav .= "Next"; if ((get_request_var_request("page") * get_request_var_request("host_rows")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; $display_text = array( "description" => array("Description", "ASC"), "id" => array("ID", "ASC"), "nosort1" => array("Graphs", "ASC"), "nosort2" => array("Data Sources", "ASC"), "status" => array("Status", "ASC"), "status_event_count" => array("Event Count", "ASC"), "hostname" => array("Hostname", "ASC"), "cur_time" => array("Current (ms)", "DESC"), "avg_time" => array("Average (ms)", "DESC"), "availability" => array("Availability", "ASC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); $i = 0; if (sizeof($hosts) > 0) { foreach ($hosts as $host) { form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $host["id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='host.php?action=edit&id=" . $host["id"] . "'>" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $host["description"]) : $host["description"]) . "</a>", $host["id"], 250); form_selectable_cell(round(($host["id"]), 2), $host["id"]); form_selectable_cell((isset($host_graphs[$host["id"]]) ? $host_graphs[$host["id"]] : 0), $host["id"]); form_selectable_cell((isset($host_data_sources[$host["id"]]) ? $host_data_sources[$host["id"]] : 0), $host["id"]); form_selectable_cell(get_colored_device_status(($host["disabled"] == "on" ? true : false), $host["status"]), $host["id"]); form_selectable_cell(round(($host["status_event_count"]), 2), $host["id"]); form_selectable_cell((strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $host["hostname"]) : $host["hostname"]), $host["id"]); form_selectable_cell(round(($host["cur_time"]), 2), $host["id"]); form_selectable_cell(round(($host["avg_time"]), 2), $host["id"]); form_selectable_cell(round($host["availability"], 2), $host["id"]); form_checkbox_cell($host["description"], $host["id"]); form_end_row(); } /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>No Hosts</em></td></tr>"; } html_end_box(false); /* add a list of tree names to the actions dropdown */ add_tree_names_to_actions_array(); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($device_actions); print "</form>\n"; }
print "<option value='" . $template["id"] . "'"; if (get_request_var_request("graph_template_id") == $template["id"]) { print " selected"; } print ">" . $template["name"] . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="50"> <strong>Search:</strong> </td> <td width="1"> <input type="text" name="filter" size="40" value="<?php print clean_html_output(get_request_var_request("filter")); ?> "> </td> <td style='white-space:nowrap;' nowrap> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> </td> </form> </tr> <?php html_graph_end_box(TRUE); /* create filter for sql */