function template() { global $colors, $graph_template_actions, $item_rows; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("rows")); /* ==================================================== */ /* 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_template_current_page"); kill_session_var("sess_graph_template_rows"); kill_session_var("sess_graph_template_filter"); kill_session_var("sess_graph_template_sort_column"); kill_session_var("sess_graph_template_sort_direction"); unset($_REQUEST["page"]); unset($_REQUEST["rows"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } ?> <script type="text/javascript"> <!-- function applyFilterChange(objForm) { strURL = '?rows=' + objForm.rows.value; strURL = strURL + '&filter=' + objForm.filter.value; document.location = strURL; } //--> </script> <?php /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_graph_template_current_page", "1"); load_current_session_value("rows", "sess_graph_template_rows", "-1"); load_current_session_value("filter", "sess_graph_template_filter", ""); load_current_session_value("sort_column", "sess_graph_template_sort_column", "name"); load_current_session_value("sort_direction", "sess_graph_template_sort_direction", "ASC"); html_start_box("<strong>" . __("Graph Templates") . "</strong>", "100", $colors["header"], "3", "center", "graph_templates.php?action=template_edit", true); ?> <tr class='rowAlternate2'> <td> <form name="form_graph_template" action='<?php print basename($_SERVER["PHP_SELF"]);?>'> <table cellpadding="0" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Search:");?> </td> <td class="w1"><input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"></td> <td class="nw50"> <?php print __("Rows:");?> </td> <td class="w1"><select name="rows" onChange="applyFilterChange(document.form_graph_template)"> <option value="-1" <?php if (get_request_var_request("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("rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select></td> <td style='white-space: nowrap; width: 120px;'> <input type="submit" Value="<?php print __("Go");?>" name="go" align="middle"> <input type="submit" Value="<?php print __("Clear");?>" name="clear_x" align="middle"> <div><input type='hidden' name='page' value='1'></div> </td> </tr> </table> </form> </td> </tr> <?php html_end_box(false); /* form the 'where' clause for our main sql query */ if ($_REQUEST["filter"] != "") { $sql_where = "WHERE (graph_templates.name LIKE '%%" . $_REQUEST["filter"] . "%%') OR graph_templates.description LIKE '%%" . get_request_var_request("filter") . "%%'"; }else{ $sql_where = ""; } html_start_box("", "100", $colors["header"], "0", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(graph_templates.id) FROM graph_templates $sql_where"); if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_device"); }else{ $rows = get_request_var_request("rows"); } $template_list = db_fetch_assoc("SELECT * FROM graph_templates $sql_where ORDER BY " . get_request_var_request('sort_column') . " " . get_request_var_request('sort_direction') . " LIMIT " . ($rows*(get_request_var_request("page")-1)) . "," . $rows); /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, 7, "graph_templates.php"); print $nav; html_end_box(false); $display_text = array( "name" => array(__("Template Title"), "ASC"), "description" => array(__("Description"), "ASC"), "nosort" => array(__("Image"), "") ); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); if (sizeof($template_list) > 0) { foreach ($template_list as $template) { form_alternate_row_color('line' . $template["id"], true); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("graph_templates.php?action=template_edit&id=" . $template["id"]) . "'>" . (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $template["name"]) : $template["name"]) . "</a>", $template["id"]); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("graph_templates.php?action=template_edit&id=" . $template["id"]) . "'>" . (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $template["description"]) : $template["description"]) . "</a>", $template["id"]); form_selectable_cell("<img src='" . $template["image"] . "'>", $template["id"]); form_checkbox_cell($template["name"], $template["id"]); form_end_row(); } form_end_table(); print $nav; }else{ print "<tr><td><em>" . __("No Graph Templates") . "</em></td></tr>\n"; } print "</table>\n"; # end table of html_header_sort_checkbox /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($graph_template_actions); print "</form>\n"; # end form of html_header_sort_checkbox }
function poller() { global $colors, $poller_actions, $item_rows; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("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 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_poller_current_page"); kill_session_var("sess_poller_rows"); kill_session_var("sess_poller_filter"); kill_session_var("sess_poller_sort_column"); kill_session_var("sess_poller_sort_direction"); unset($_REQUEST["page"]); unset($_REQUEST["rows"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } ?> <script type="text/javascript"> <!-- function applyFilterChange(objForm) { strURL = '?rows=' + objForm.rows.value; strURL = strURL + '&filter=' + objForm.filter.value; document.location = strURL; } --> </script> <?php /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_poller_current_page", "1"); load_current_session_value("rows", "sess_poller_rows", "-1"); load_current_session_value("filter", "sess_poller_filter", ""); load_current_session_value("sort_column", "sess_poller_sort_column", "description"); load_current_session_value("sort_direction", "sess_poller_sort_direction", "ASC"); display_output_messages(); html_start_box("<strong>" . __("Pollers") . "</strong>", "100", $colors["header"], "3", "center", "pollers.php?action=edit", true); ?> <tr class='rowAlternate2'> <td> <form name="form_pollers" action="pollers.php"> <table cellpadding="0" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Search:");?> </td> <td class="w1"> <input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"> </td> <td class="nw50"> <?php print __("Rows:");?> </td> <td class="w1"> <select name="rows" onChange="applyFilterChange(document.form_pollers)"> <option value="-1"<?php if (get_request_var_request("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("rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> <td class="nw120"> <input type="submit" Value="<?php print __("Go");?>" name="go" align="middle"> <input type="submit" Value="<?php print __("Clear");?>" name="clear_x" align="middle"> </td> </tr> </table> <div><input type='hidden' name='page' value='1'></div> </form> </td> </tr> <?php html_end_box(false); /* form the 'where' clause for our main sql query */ if ($_REQUEST["filter"] != "") { $sql_where = "WHERE (p.description LIKE '%%" . $_REQUEST["filter"] . "%%')"; }else{ $sql_where = ""; } html_start_box("", "100", $colors["header"], "0", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(*) FROM poller $sql_where"); if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_device"); }else{ $rows = get_request_var_request("rows"); } $poller_list = db_fetch_assoc("SELECT p.*, sum(CASE WHEN h.poller_id IS NOT NULL THEN 1 ELSE NULL END) AS total_devices FROM poller AS p LEFT JOIN device AS h ON h.poller_id=p.id $sql_where GROUP BY p.id ORDER BY " . get_request_var_request('sort_column') . " " . get_request_var_request('sort_direction') . " LIMIT " . ($rows*(get_request_var_request("page")-1)) . "," . $rows); /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, 7, "pollers.php"); print $nav; html_end_box(false); $display_text = array( "description" => array(__("Description"), "ASC"), "id" => array(__("ID"), "ASC"), "total_devices" => array(__("Devices"), "DESC"), "nosort2" => array(__("Poller Items"), "DESC"), "hostname" => array(__("Hostname"), "ASC"), "nosort1" => array(__("Status"), ""), "last_update" => array(__("Last Updated"), "ASC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); if (sizeof($poller_list) > 0) { foreach ($poller_list as $poller) { form_alternate_row_color('line' . $poller["id"], true); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("pollers.php?action=edit&id=" . $poller["id"]) . "'>" . (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $poller["description"]) : $poller["description"]) . "</a>", $poller["id"]); form_selectable_cell($poller["id"], $poller["id"]); form_selectable_cell($poller["total_devices"], $poller["id"]); form_selectable_cell(db_fetch_cell("SELECT count(*) FROM poller_item WHERE poller_id=" . $poller["id"]), $poller["id"]); form_selectable_cell($poller["hostname"], $poller["id"]); form_selectable_cell(get_colored_poller_status(($poller["disabled"] == CHECKED ? true : false), $poller["last_update"]), $poller["id"]); form_selectable_cell($poller["last_update"], $poller["id"]); form_checkbox_cell($poller["description"], $poller["id"]); form_end_row(); } form_end_table(); /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>" . __("No Pollers Defined") . "</em></td></tr>\n"; } print "</table>\n"; # end table of html_header_sort_checkbox /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($poller_actions); print "</form>\n"; # end form of html_header_sort_checkbox }
function data_source() { global $colors, $item_rows; require(CACTI_BASE_PATH . "/include/data_source/data_source_arrays.php"); /* validate request variables */ data_source_validate(); /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_ds_current_page"); kill_session_var("sess_ds_filter"); kill_session_var("sess_ds_sort_column"); kill_session_var("sess_ds_sort_direction"); kill_session_var("sess_ds_rows"); if (!substr_count($_SERVER["REQUEST_URI"], "/devices.php")) { kill_session_var("sess_ds_device_id"); } kill_session_var("sess_ds_template_id"); kill_session_var("sess_ds_method_id"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); unset($_REQUEST["rows"]); if (!substr_count($_SERVER["REQUEST_URI"], "/devices.php")) { unset($_REQUEST["device_id"]); } unset($_REQUEST["template_id"]); unset($_REQUEST["method_id"]); $_REQUEST["page"] = 1; }else{ /* let's see if someone changed an important setting */ $changed = FALSE; $changed += check_changed("filter", "sess_ds_filter"); $changed += check_changed("rows", "sess_ds_rows"); $changed += check_changed("device_id", "sess_ds_device_id"); $changed += check_changed("template_id", "sess_ds_template_id"); $changed += check_changed("method_id", "sess_ds_method_id"); if ($changed) { $_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_ds_current_page", "1"); load_current_session_value("filter", "sess_ds_filter", ""); load_current_session_value("sort_column", "sess_ds_sort_column", "name_cache"); load_current_session_value("sort_direction", "sess_ds_sort_direction", "ASC"); load_current_session_value("rows", "sess_ds_rows", "-1"); load_current_session_value("device_id", "sess_ds_device_id", "-1"); load_current_session_value("template_id", "sess_ds_template_id", "-1"); load_current_session_value("method_id", "sess_ds_method_id", "-1"); $device = db_fetch_row("select hostname from device where id=" . $_REQUEST["device_id"]); ?> <script type="text/javascript"> <!-- $().ready(function() { $("#device").autocomplete("./lib/ajax/get_devices_brief.php", { max: 8, highlight: false, scroll: true, scrollHeight: 300 }); $("#device").result(function(event, data, formatted) { if (data) { $(this).parent().find("#device_id").val(data[1]); applyDSFilterChange(document.form_data_sources); }else{ $(this).parent().find("#device_id").val(0); } }); }); function clearDSFilterChange(objForm) { strURL = '?filter='; <?php # called from outside if (isset($_REQUEST["tab"])) { # print the tab print "strURL = strURL + &tab=" . $_REQUEST["tab"] . "';"; # now look for more parameters if (isset($_REQUEST["device_id"])) { print "strURL = strURL + '&device_id=" . $_REQUEST["device_id"] . "&id=" . $_REQUEST["device_id"] . "';"; } if (isset($_REQUEST["template_id"])) { print "strURL = strURL + '&template_id=" . $_REQUEST["template_id"] . "&id=" . $_REQUEST["template_id"] . "';"; } }else { # clear all parms print "strURL = strURL + '&device_id=-1';"; print "strURL = strURL + '&template_id=-1';"; } ?> strURL = strURL + '&rows=-1'; strURL = strURL + '&method_id=-1'; document.location = strURL; } function applyDSFilterChange(objForm) { strURL = '?filter=' + objForm.filter.value; // take care of parms provided via autocomplete // those are passed as objForm.<parm>.value // instead of $_REQUEST["<parm>"] when called from outside if (objForm.device_id.value) { strURL = '?device_id=' + objForm.device_id.value; }else{ <?php print (isset($_REQUEST["device_id"]) ? "strURL = strURL + '&device_id=" . $_REQUEST["device_id"] . "&id=" . $_REQUEST["device_id"] . "';" : "strURL = strURL + '&device_id=-1';");?> } if (objForm.template_id.value) { strURL = '?template_id=' + objForm.template_id.value; }else{ <?php print (isset($_REQUEST["template_id"]) ? "strURL = strURL + '&template_id=" . $_REQUEST["template_id"] . "&id=" . $_REQUEST["template_id"] . "';" : "strURL = strURL + '&template_id=-1';");?> } strURL = strURL + '&rows=' + objForm.rows.value; strURL = strURL + '&method_id=' + objForm.method_id.value; document.location = strURL; } --> </script> <?php html_start_box("<strong>" . __("Data Sources") . "</strong> " . __("[device:") . " " . (empty($device["hostname"]) ? __("No Host") : $device["hostname"]) . "]", "100", $colors["header"], "3", "center", "data_sources.php?action=data_source_edit&device_id=" . $_REQUEST["device_id"], true); ?> <tr class='rowAlternate2'> <td> <form action="data_sources.php" name="form_data_sources"> <table cellpadding="0" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Host:");?> </td> <td class="w1"> <?php if (isset($_REQUEST["device_id"])) { $hostname = db_fetch_cell("SELECT description as name FROM device WHERE id=".$_REQUEST["device_id"]." ORDER BY description,hostname"); } else { $hostname = ""; } ?> <input class="ac_field" type="text" id="device" size="30" value="<?php print $hostname; ?>"> <input type="hidden" id="device_id"> </td> <td class="nw50"> <?php print __("Template:");?> </td> <td class="w1"> <select name="template_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("template_id") == "-1") {?> selected<?php }?>><?php print __("Any");?></option> <option value="0"<?php if (get_request_var_request("template_id") == "0") {?> selected<?php }?>><?php print __("None");?></option> <?php $templates = db_fetch_assoc("SELECT DISTINCT data_template.id, data_template.name FROM data_template INNER JOIN data_template_data ON data_template.id=data_template_data.data_template_id WHERE data_template_data.local_data_id>0 ORDER BY data_template.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 class="nw120"> <input type="submit" value="<?php print __("Go");?>" name="go" align="middle"> <input type="button" value="<?php print __("Clear");?>" name="clear" align="middle" onClick="clearDSFilterChange(document.form_data_sources)"> </td> </tr> <tr> <td class="nw50"> <?php print __("Method:");?> </td> <td class="w1"> <select name="method_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("method_id") == "-1") {?> selected<?php }?>><?php print __("Any");?></option> <option value="0"<?php if (get_request_var_request("method_id") == "0") {?> selected<?php }?>><?php print __("None");?></option> <?php $methods = db_fetch_assoc("SELECT DISTINCT data_input.id, data_input.name FROM data_input INNER JOIN data_template_data ON data_input.id=data_template_data.data_input_id WHERE data_template_data.local_data_id>0 ORDER BY data_input.name"); if (sizeof($methods) > 0) { foreach ($methods as $method) { print "<option value='" . $method["id"] . "'"; if (get_request_var_request("method_id") == $method["id"]) { print " selected"; } print ">" . title_trim($method["name"], 40) . "</option>\n"; } } ?> </select> </td> <td class="nw50"> <?php print __("Rows:");?> </td> <td class="w1"> <select name="rows" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("rows") == "-1") {?> selected<?php }?>><?php print __("Default");?></option> <?php if (sizeof($item_rows) > 0) { foreach ($item_rows as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> </tr> </table> <table cellpadding="1" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Search:");?> </td> <td class="w1"> <input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"> </td> </tr> </table> <input type='hidden' name='page' value='1'> </form> </td> </tr> <?php html_end_box(false); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where1 = "AND (data_template_data.name_cache like '%%" . $_REQUEST["filter"] . "%%'" . " OR data_template_data.local_data_id like '%%" . get_request_var_request("filter") . "%%'" . " OR data_template.name like '%%" . get_request_var_request("filter") . "%%'" . " OR data_input.name like '%%" . get_request_var_request("filter") . "%%')"; $sql_where2 = "AND (data_template_data.name_cache like '%%" . $_REQUEST["filter"] . "%%'" . " OR data_template.name like '%%" . get_request_var_request("filter") . "%%')"; }else{ $sql_where1 = ""; $sql_where2 = ""; } if (get_request_var_request("device_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("device_id") == "0") { $sql_where1 .= " AND data_local.device_id=0"; $sql_where2 .= " AND data_local.device_id=0"; }else { $sql_where1 .= " AND data_local.device_id=" . $_REQUEST["device_id"]; $sql_where2 .= " AND data_local.device_id=" . $_REQUEST["device_id"]; } if (get_request_var_request("template_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("template_id") == "0") { $sql_where1 .= " AND data_template_data.data_template_id=0"; $sql_where2 .= " AND data_template_data.data_template_id=0"; }else { $sql_where1 .= " AND data_template_data.data_template_id=" . $_REQUEST["template_id"]; $sql_where2 .= " AND data_template_data.data_template_id=" . $_REQUEST["template_id"]; } if (get_request_var_request("method_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("method_id") == "0") { $sql_where1 .= " AND data_template_data.data_input_id=0"; $sql_where2 .= " AND data_template_data.data_input_id=0"; }else { $sql_where1 .= " AND data_template_data.data_input_id=" . $_REQUEST["method_id"]; $sql_where2 .= " AND data_template_data.data_input_id=" . $_REQUEST["method_id"]; } if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_data_source"); }else{ $rows = get_request_var_request("rows"); } $total_rows = sizeof(db_fetch_assoc("SELECT data_local.id FROM (data_local,data_template_data) LEFT JOIN data_input ON (data_input.id=data_template_data.data_input_id) LEFT JOIN data_template ON (data_local.data_template_id=data_template.id) WHERE data_local.id=data_template_data.local_data_id $sql_where1")); $poller_intervals = array_rekey(db_fetch_assoc("SELECT data_template_data.local_data_id AS id, Min(data_template_data.rrd_step*rra.steps) AS poller_interval FROM data_template INNER JOIN (data_local INNER JOIN ((data_template_data_rra INNER JOIN data_template_data ON data_template_data_rra.data_template_data_id=data_template_data.id) INNER JOIN rra ON data_template_data_rra.rra_id = rra.id) ON data_local.id = data_template_data.local_data_id) ON data_template.id = data_template_data.data_template_id $sql_where2 GROUP BY data_template_data.local_data_id"), "id", "poller_interval"); $dssql = "SELECT data_template_data.local_data_id, data_template_data.name_cache, data_template_data.active, data_input.name as data_input_name, data_template.name as data_template_name, data_local.device_id FROM (data_local,data_template_data) LEFT JOIN data_input ON (data_input.id=data_template_data.data_input_id) LEFT JOIN data_template ON (data_local.data_template_id=data_template.id) WHERE data_local.id=data_template_data.local_data_id $sql_where1 ORDER BY ". get_request_var_request('sort_column') . " " . get_request_var_request('sort_direction') . " LIMIT " . ($rows*(get_request_var_request("page")-1)) . "," . $rows; $data_sources = db_fetch_assoc($dssql); html_start_box("", "100", $colors["header"], "0", "center", ""); /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, 7, "data_sources.php"); print $nav; html_end_box(false); $display_text = array( "name_cache" => array(__("Name"), "ASC"), "local_data_id" => array(__("ID"),"ASC"), "data_input_name" => array(__("Data Input Method"), "ASC"), "nosort" => array(__("Poller Interval"), "ASC"), "active" => array(__("Active"), "ASC"), "data_template_name" => array(__("Template Name"), "ASC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); if (sizeof($data_sources) > 0) { foreach ($data_sources as $data_source) { $data_source = api_plugin_hook_function('data_sources_table', $data_source); $data_template_name = ((empty($data_source["data_template_name"])) ? "<em>" . __("None") . "</em>" : $data_source["data_template_name"]); $data_input_name = ((empty($data_source["data_input_name"])) ? "<em>" . __("External") . "</em>" : $data_source["data_input_name"]); $poller_interval = ((isset($poller_intervals[$data_source["local_data_id"]])) ? $poller_intervals[$data_source["local_data_id"]] : 0); form_alternate_row_color('line' . $data_source["local_data_id"], true); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("data_sources.php?action=data_source_edit&id=" . $data_source["local_data_id"]) . "' title='" . htmlspecialchars($data_source["name_cache"]) . "'>" . (($_REQUEST["filter"] != "") ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", title_trim(htmlentities($data_source["name_cache"], ENT_NOQUOTES, "UTF-8"), read_config_option("max_title_data_source"))) : title_trim(htmlentities($data_source["name_cache"], ENT_NOQUOTES, "UTF-8"), read_config_option("max_title_data_source"))) . "</a>", $data_source["local_data_id"]); form_selectable_cell($data_source['local_data_id'], $data_source['local_data_id']); form_selectable_cell((($_REQUEST["filter"] != "") ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $data_input_name) : $data_input_name), $data_source["local_data_id"]); form_selectable_cell(get_poller_interval($poller_interval), $data_source["local_data_id"]); form_selectable_cell(($data_source['active'] == CHECKED ? "Yes" : "No"), $data_source["local_data_id"]); form_selectable_cell((($_REQUEST["filter"] != "") ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $data_source['data_template_name']) : $data_source['data_template_name']), $data_source["local_data_id"]); form_checkbox_cell($data_source["name_cache"], $data_source["local_data_id"]); form_end_row(); } form_end_table(); /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>" . __("No Data Sources") . "</em></td></tr>"; } print "</table>\n"; # end table of html_header_sort_checkbox /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($ds_actions); print "</form>\n"; # end form of html_header_sort_checkbox }
function site() { global $colors, $site_actions, $config; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("site_id")); input_validate_input_number(get_request_var_request("device_template_id")); input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("rows")); /* ==================================================== */ /* clean up search string */ if (isset($_REQUEST["detail"])) { $_REQUEST["detail"] = sanitize_search_string(get_request_var("detail")); } /* 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_sites_current_page"); kill_session_var("sess_sites_detail"); kill_session_var("sess_sites_site_id"); kill_session_var("sess_sites_device_template_id"); kill_session_var("sess_sites_filter"); kill_session_var("sess_sites_rows"); kill_session_var("sess_sites_sort_column"); kill_session_var("sess_sites_sort_direction"); $_REQUEST["page"] = 1; unset($_REQUEST["filter"]); unset($_REQUEST["rows"]); unset($_REQUEST["site_id"]); unset($_REQUEST["device_template_id"]); unset($_REQUEST["detail"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); }else{ /* if any of the settings changed, reset the page number */ $changed = 0; $changed += check_changed("site_id", "sess_sites_site_id"); $changed += check_changed("device_template_id", "sess_sites_device_template_id"); $changed += check_changed("filter", "sess_sites_filter"); $changed += check_changed("rows", "sess_sites_rows"); $changed += check_changed("detail", "sess_sites_detail"); if ($changed) { $_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_sites_current_page", "1"); load_current_session_value("rows", "sess_sites_rows", "-1"); load_current_session_value("detail", "sess_sites_detail", "false"); load_current_session_value("site_id", "sess_sites_site_id", "-1"); load_current_session_value("device_template_id", "sess_sites_device_template_id", "-1"); load_current_session_value("filter", "sess_sites_filter", ""); load_current_session_value("rows", "sess_sites_rows", read_config_option("num_rows_devices")); load_current_session_value("sort_column", "sess_sites_sort_column", "name"); load_current_session_value("sort_direction", "sess_sites_sort_direction", "ASC"); site_filter(); html_start_box("", "100", $colors["header"], "0", "center", ""); $sql_where = ""; if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_device"); }else{ $rows = get_request_var_request("rows"); } $sites = site_get_site_records($sql_where, $rows); if (get_request_var_request("detail") == "false") { $total_rows = db_fetch_cell("SELECT COUNT(sites.id) FROM sites $sql_where"); }else{ $total_rows = sizeof(db_fetch_assoc("SELECT device_template.id, sites.name FROM (device_template RIGHT JOIN device ON (device_template.id=device.device_template_id)) RIGHT JOIN sites ON (device.site_id=sites.id) $sql_where GROUP BY sites.name, device_template.id")); } /* generate page list */ $url_page_select = str_replace("&page", "?page", get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, "sites.php")); if (get_request_var_request("detail") == "false") { /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, read_config_option("num_rows_device"), $total_rows, 6, "sites.php"); print $nav; html_end_box(false); $display_text = array( "name" => array(__("Site Name"), "ASC"), "address1" => array(__("Address"), "ASC"), "city" => array(__("City"), "ASC"), "state" => array(__("State"), "DESC"), "country" => array(__("Country"), "DESC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); if (sizeof($sites) > 0) { foreach ($sites as $site) { form_alternate_row_color('line' . $site["id"], true); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("sites.php?action=edit&id=" . $site["id"]) . "'>" . (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $site["name"]) : $site["name"]) . "</a>", $site["id"], "20%"); form_selectable_cell($site["address1"], $site["id"]); form_selectable_cell($site["city"], $site["id"]); form_selectable_cell($site["state"], $site["id"]); form_selectable_cell($site["country"], $site["id"]); form_checkbox_cell($site["name"], $site["id"]); form_end_row(); } form_end_table(); /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>" . __("No Sites") . "</em></td></tr>"; } print "</table>\n"; # end table of html_header_sort_checkbox }else{ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, read_config_option("num_rows_device"), $total_rows, 10, "sites.php"); print $nav; html_end_box(false); $display_text = array( "name" => array(__("Site Name"), "ASC"), "device_template_name" => array(__("Device Type"), "ASC"), "total_devices" => array(__("Devices"), "DESC"), "address1" => array(__("Address"), "ASC"), "city" => array(__("City"), "ASC"), "state" => array(__("State"), "DESC"), "country" => array(__("Country"), "DESC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); $i = 0; if (sizeof($sites) > 0) { foreach ($sites as $site) { form_alternate_row_color($site["id"], true); $i++; form_selectable_cell("<a class='linkEditMain' href='sites.php?action=edit&id=" . $site["id"] . "'>" . (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $site["name"]) : $site["name"]) . "</a>", $site["id"], "20%"); form_selectable_cell(preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $site["device_template_name"]), $site["id"]); form_selectable_cell($site["total_devices"], $site["id"]); form_selectable_cell($site["address1"], $site["id"]); form_selectable_cell($site["city"], $site["id"]); form_selectable_cell($site["state"], $site["id"]); form_selectable_cell($site["country"], $site["id"]); form_checkbox_cell($site["name"], $site["id"]); form_end_row(); } /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>" . __("No Sites") . "</em></td></tr>"; } print "</table>\n"; # end table of html_header_sort_checkbox } /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($site_actions); print "</form>\n"; # end form of html_header_sort_checkbox }
function user() { global $colors, $user_actions; require(CACTI_BASE_PATH . "/include/auth/auth_arrays.php"); /* ================= 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", true); ?> <tr class='rowAlternate2'> <td> <form name="form_user_admin" action="user_admin.php"> <table cellpadding="0" cellspacing="0"> <tr> <td class="nw50"> <?php print __("Search:");?> </td> <td class="w1"> <input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"> </td> <td class="nw120"> <input type="submit" Value="<?php echo __('Go');?>" name="go" align="middle"> <input type="submit" Value="<?php echo __('Clear');?>" name="clear_x" align="middle"> </td> </tr> </table> <div><input type='hidden' name='page' value='1'></div> </form> </td> </tr> <?php html_end_box(false); /* 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"], "0", "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 navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, read_config_option("num_rows_device"), $total_rows, 7, "user_admin.php"); print $nav; html_end_box(false); $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")); 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"] == CHECKED) { $enabled = __("Yes"); }else{ $enabled = __("No"); } form_alternate_row_color('line' . $user["id"], true); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("user_admin.php?action=user_edit&id=" . $user["id"]) . "'>" . (strlen(get_request_var_request("filter")) ? preg_replace("/(" . preg_quote(get_request_var_request("filter")) . ")/i", "<span class=\"filter\">\\1</span>", $user["username"]) : $user["username"]) . "</a>" , $user["id"]); form_selectable_cell((strlen(get_request_var_request("filter")) ? preg_replace("/(" . preg_quote(get_request_var_request("filter")) . ")/i", "<span class=\"filter\">\\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"]); form_selectable_cell($graph_policy_array[$user["policy_graphs"]], $user["id"]); form_selectable_cell($last_login, $user["id"]); form_checkbox_cell($user["username"], $user["id"]); form_end_row(); } form_end_table(); print $nav; }else{ print "<tr><td><em>" . __("No Users") ."</em></td></tr>"; } print "</table>\n"; # end table of html_header_sort_checkbox draw_actions_dropdown($user_actions); print "</form>\n"; # end form of html_header_sort_checkbox }
function utilities_view_poller_cache() { global $colors, $poller_actions, $item_rows; define("MAX_DISPLAY_PAGES", 21); /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("device_id")); input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("rows")); 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")); } /* clean up sort_column */ if (isset($_REQUEST["sort_column"])) { $_REQUEST["sort_column"] = sanitize_search_string(get_request_var("sort_column")); } /* clean up sort direction */ 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_poller_cache_current_page"); kill_session_var("sess_poller_cache_rows"); kill_session_var("sess_poller_cache_device_id"); kill_session_var("sess_poller_cache_poller_action"); kill_session_var("sess_poller_cache_filter"); unset($_REQUEST["page"]); unset($_REQUEST["rows"]); unset($_REQUEST["filter"]); unset($_REQUEST["device_id"]); unset($_REQUEST["poller_action"]); } if ((!empty($_SESSION["sess_poller_cache_action"])) && (!empty($_REQUEST["poller_action"]))) { if ($_SESSION["sess_poller_cache_poller_action"] != $_REQUEST["poller_action"]) { $_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_poller_cache_current_page", "1"); load_current_session_value("rows", "sess_poller_cache_rows", "-1"); load_current_session_value("device_id", "sess_poller_cache_device_id", "-1"); load_current_session_value("poller_action", "sess_poller_cache_poller_action", "-1"); load_current_session_value("filter", "sess_poller_cache_filter", ""); load_current_session_value("sort_column", "sess_poller_cache_sort_column", "data_template_data.name_cache"); load_current_session_value("sort_direction", "sess_poller_cache_sort_direction", "ASC"); $_REQUEST['page_referrer'] = 'view_poller_cache'; load_current_session_value('page_referrer', 'page_referrer', 'view_poller_cache'); ?> <script type="text/javascript"> <!-- $().ready(function() { $("#device").autocomplete("./lib/ajax/get_devices_brief.php", { max: 8, highlight: false, scroll: true, scrollHeight: 300 }); $("#device").result(function(event, data, formatted) { if (data) { $(this).parent().find("#device_id").val(data[1]); applyPItemFilterChange(document.form_pollercache); }else{ $(this).parent().find("#device_id").val(0); } }); }); function applyPItemFilterChange(objForm) { if (objForm.device_id.value) { strURL = '?device_id=' + objForm.device_id.value; strURL = strURL + '&filter=' + objForm.filter.value; }else{ strURL = '?filter=' + objForm.filter.value; } strURL = strURL + '&poller_action=' + objForm.poller_action.value; strURL = strURL + '&rows=' + objForm.rows.value; strURL = strURL + '&action=view_poller_cache'; strURL = strURL + '&page=1'; document.location = strURL; } --> </script> <?php html_start_box("<strong>" . __("Poller Cache Items") . "</strong>", "100", $colors["header"], "3", "center", "", true); ?> <tr class='rowAlternate2'> <td> <form name="form_pollercache" action="utilities.php"> <table cellpadding="0" cellspacing="0"> <tr> <td class="nw50"> <?php print __("Host:");?> </td> <td class="w1"> <?php if (isset($_REQUEST["device_id"])) { $hostname = db_fetch_cell("SELECT description as name FROM device WHERE id=".$_REQUEST["device_id"]." ORDER BY description,hostname"); } else { $hostname = ""; } ?> <input class="ac_field" type="text" id="device" size="30" value="<?php print $hostname; ?>"> <input type="hidden" id="device_id"> </td> <td class="nw50"> <?php print __("Action:");?> </td> <td class="w1"> <select name="poller_action" onChange="applyPItemFilterChange(document.form_pollercache)"> <option value="-1"<?php if (get_request_var_request('poller_action') == '-1') {?> selected<?php }?>><?php print __("Any");?></option> <option value="0"<?php if (get_request_var_request('poller_action') == '0') {?> selected<?php }?>><?php print __("SNMP");?></option> <option value="1"<?php if (get_request_var_request('poller_action') == '1') {?> selected<?php }?>><?php print __("Script");?></option> <option value="2"<?php if (get_request_var_request('poller_action') == '2') {?> selected<?php }?>><?php print __("Script Server");?></option> </select> </td> <td class="nw120"> <input type="submit" Value="<?php print __("Go");?>" name="go" align="middle"> <input type="submit" Value="<?php print __("Clear");?>" name="clear_x" align="middle"> </td> </tr> </table> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="nw50"> <?php print __("Search:");?> </td> <td class="w1"> <input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"> </td> <td class="nw50"> <?php print __("Rows:");?> </td> <td class="w1"> <select name="rows" onChange="applyPItemFilterChange(document.form_pollercache)"> <option value="-1"<?php if (get_request_var_request("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("rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> </tr> </table> <div><input type='hidden' name='page' value='1'></div> <div><input type='hidden' name='action' value='view_poller_cache'></div> </form> </td> </tr> <?php html_end_box(false); /* form the 'where' clause for our main sql query */ $sql_where = "WHERE poller_item.local_data_id=data_template_data.local_data_id"; if (get_request_var_request("poller_action") == "-1") { /* Show all items */ }else { $sql_where .= " AND poller_item.action='" . $_REQUEST["poller_action"] . "'"; } if (get_request_var_request("device_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("device_id") == "0") { $sql_where .= " AND poller_item.device_id=0"; }elseif (!empty($_REQUEST["device_id"])) { $sql_where .= " AND poller_item.device_id=" . $_REQUEST["device_id"]; } if (strlen(get_request_var_request("filter"))) { $sql_where .= " AND (data_template_data.name_cache LIKE '%%" . $_REQUEST["filter"] . "%%' OR device.description LIKE '%%" . get_request_var_request("filter") . "%%' OR poller_item.arg1 LIKE '%%" . get_request_var_request("filter") . "%%' OR poller_item.hostname LIKE '%%" . get_request_var_request("filter") . "%%' OR poller_item.rrd_path LIKE '%%" . get_request_var_request("filter") . "%%')"; } html_start_box("", "100", $colors["header"], "0", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(*) FROM data_template_data RIGHT JOIN (poller_item LEFT JOIN device ON poller_item.device_id=device.id) ON data_template_data.local_data_id=poller_item.local_data_id $sql_where"); if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_data_source"); }else{ $rows = get_request_var_request("rows"); } $poller_sql = "SELECT poller_item.*, data_template_data.name_cache, device.description FROM data_template_data RIGHT JOIN (poller_item LEFT JOIN device ON poller_item.device_id=device.id) ON data_template_data.local_data_id=poller_item.local_data_id $sql_where ORDER BY " . get_request_var_request("sort_column") . " " . get_request_var_request("sort_direction") . ", action ASC LIMIT " . ($rows*(get_request_var_request("page")-1)) . "," . $rows; // print $poller_sql; $poller_cache = db_fetch_assoc($poller_sql); /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, 7, "utilities.php?action=view_poller_cache"); print $nav; html_end_box(false); $display_text = array( "data_template_data.name_cache" => array(__("Data Source Name"), "ASC"), "" => array(__("Details"), "ASC")); html_header_sort($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); if (sizeof($poller_cache) > 0) { foreach ($poller_cache as $item) { form_alternate_row_color(); ?> <td width="375"> <a class="linkEditMain" href="<?php print htmlspecialchars("data_sources.php?action=ds_edit&id=" . $item["local_data_id"]);?>"><?php print (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $item["name_cache"]) : $item["name_cache"]);?></a> </td> <td> <?php if ($item["action"] == 0) { if ($item["snmp_version"] != 3) { $details = __("SNMP Version:") . " " . $item["snmp_version"] . ", " . __("Community:") . " " . $item["snmp_community"] . ", " . __("OID:") . " " . (strlen(get_request_var_request("filter")) ? (preg_replace("/(" . preg_quote(get_request_var_request("filter")) . ")/i", "<span class=\"filter\">\\1</span>", $item["arg1"])) : $item["arg1"]); }else{ $details = __("SNMP Version:") . " " . $item["snmp_version"] . ", " . __("User:"******" " . $item["snmp_username"] . ", " . __("OID:") . " " . $item["arg1"]; } }elseif ($item["action"] == 1) { $details = __("Script:") . " " . (strlen(get_request_var_request("filter")) ? (preg_replace("/(" . preg_quote(get_request_var_request("filter")) . ")/i", "<span class=\"filter\">\\1</span>", $item["arg1"])) : $item["arg1"]); }else{ $details = __("Script Server:") . " " . (strlen(get_request_var_request("filter")) ? (preg_replace("/(" . preg_quote(get_request_var_request("filter")) . ")/i", "<span class=\"filter\">\\1</span>", $item["arg1"])) : $item["arg1"]); } print $details; ?> </td> <?php form_end_row(); form_alternate_row_color(); ?> <td> </td> <td> RRD: <?php print $item["rrd_path"];?> </td> <?php form_end_row(); } form_end_table(); print $nav; }else{ print "<tr><td><em>" . __("No Records Found") . "</em></td></tr>\n"; } print "</table>\n"; }
function data() { global $colors, $di_actions, $item_rows; require(CACTI_BASE_PATH . "/include/data_input/data_input_arrays.php"); /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("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_data_input_current_page"); kill_session_var("sess_data_input_rows"); kill_session_var("sess_data_input_filter"); kill_session_var("sess_data_input_sort_column"); kill_session_var("sess_data_input_sort_direction"); unset($_REQUEST["page"]); unset($_REQUEST["rows"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } ?> <script type="text/javascript"> <!-- function applyFilterChange(objForm) { strURL = '?rows=' + objForm.rows.value; strURL = strURL + '&filter=' + objForm.filter.value; document.location = strURL; } --> </script> <?php /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_data_input_current_page", "1"); load_current_session_value("rows", "sess_data_input_rows", "-1"); load_current_session_value("filter", "sess_data_input_filter", ""); load_current_session_value("sort_column", "sess_data_input_sort_column", "name"); load_current_session_value("sort_direction", "sess_data_input_sort_direction", "ASC"); html_start_box("<strong>" . __("Data Input Methods") . "</strong>", "100", $colors["header"], "3", "center", "data_input.php?action=edit", true); ?> <tr class="rowAlternate2 noprint"> <td class="noprint"> <form name="form_graph_id" action="data_input.php"> <table cellpadding="0" cellspacing="3"> <tr class="noprint"> <td class="nw50"> <?php print __("Search:");?> </td> <td width="1"> <input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"> </td> <td class="nw50"> <?php print __("Rows:");?> </td> <td width="1"> <select name="rows" onChange="applyFilterChange(document.form_graph_id)"> <option value="-1"<?php if (get_request_var_request("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("rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> <td class="nw120"> <input type="submit" Value="<?php print __("Go");?>" name="go" align="middle"> <input type="submit" Value="<?php print __("Clear");?>" name="clear_x" align="middle"> </td> </tr> </table> <div><input type='hidden' name='page' value='1'></div> </form> </td> </tr> <?php html_end_box(FALSE); html_start_box("", "100", $colors["header"], "0", "center", ""); /* form the 'where' clause for our main sql query */ $sql_where = "WHERE (data_input.name like '%%" . $_REQUEST["filter"] . "%%')"; $sql_where .= " AND (data_input.name!='Get Script Data (Indexed)' AND data_input.name!='Get Script Server Data (Indexed)' AND data_input.name!='Get SNMP Data' AND data_input.name!='Get SNMP Data (Indexed)')"; $total_rows = db_fetch_cell("SELECT count(*) FROM data_input $sql_where"); if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_device"); }else{ $rows = get_request_var_request("rows"); } $data_inputs = db_fetch_assoc("SELECT * FROM data_input $sql_where ORDER BY " . get_request_var_request('sort_column') . " " . get_request_var_request('sort_direction') . " LIMIT " . ($rows*(get_request_var_request("page")-1)) . "," . $rows); /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, 7, "data_input.php"); print $nav; html_end_box(FALSE); $display_text = array( "name" => array(__("Name"), "ASC"), "type_id" => array(__("Data Input Method"), "ASC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); if (sizeof($data_inputs) > 0) { foreach ($data_inputs as $data_input) { /* hide system types */ form_alternate_row_color('line' . $data_input["id"], true); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("data_input.php?action=edit&id=" . $data_input["id"]) . "'>" . (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $data_input["name"]) : $data_input["name"]) . "</a>", $data_input["id"]); form_selectable_cell($input_types{$data_input["type_id"]}, $data_input["id"]); form_checkbox_cell($data_input["name"], $data_input["id"]); form_end_row(); } form_end_table(); print $nav; }else{ print "<tr><td><em>" . __("No Data Input Methods") . "</em></td></tr>"; } print "</table>\n"; # end table of html_header_sort_checkbox /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($di_actions); print "</form>\n"; # end form of html_header_sort_checkbox }
function xaxis() { global $colors, $xaxis_actions, $item_rows; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("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_xaxis_current_page"); kill_session_var("sess_xaxis_filter"); kill_session_var("sess_xaxis_rows"); kill_session_var("sess_xaxis_sort_column"); kill_session_var("sess_xaxis_sort_direction"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["rows"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } /* let's see if someone changed an important setting */ $changed = FALSE; $changed += check_changed("filter", "sess_xaxis_filter"); $changed += check_changed("rows", "sess_xaxis_rows"); if ($changed) { $_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_xaxis_current_page", "1"); load_current_session_value("filter", "sess_xaxis_filter", ""); load_current_session_value("rows", "sess_xaxis_rows", "-1"); load_current_session_value("sort_column", "sess_xaxis_sort_column", "name"); load_current_session_value("sort_direction", "sess_xaxis_sort_direction", "ASC"); ?> <script type="text/javascript"> <!-- function applyFilterChange(objForm) { strURL = '?rows=' + objForm.rows.value; strURL = strURL + '&filter=' + objForm.filter.value; document.location = strURL; } --> </script> <?php html_start_box("<strong>" . __("X-Axis Presets") . "</strong>", "100", $colors["header"], "3", "center", "xaxis_presets.php?action=edit", true); ?> <tr class='rowAlternate2'> <td> <form action="xaxis_presets.php" name="form_xaxis" method="post"> <table cellpadding="0" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Search:");?> </td> <td class="w1"><input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"></td> <td class="nw50"> <?php print __("Rows:");?> </td> <td class="w1"><select name="rows" onChange="applyFilterChange(document.form_xaxis)"> <option value="-1" <?php if (get_request_var_request("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("rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select></td> <td class="nw120"> <input type="submit" Value="<?php print __("Go");?>" name="go" align="middle"> <input type="submit" Value="<?php print __("Clear");?>" name="clear_x" align="middle"></td> </tr> </table> <div><input type='hidden' name='page' value='1'></div> </form> </td> </tr> <?php html_end_box(false); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where = "where (name like '%%" . $_REQUEST["filter"] . "%%')"; }else{ $sql_where = ""; } html_start_box("", "100", $colors["header"], "0", "center", ""); $total_rows = db_fetch_cell("select COUNT(id) from graph_templates_xaxis $sql_where"); if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_device"); }else{ $rows = get_request_var_request("rows"); } $sql_query = "SELECT * " . "FROM graph_templates_xaxis " . $sql_where . " ORDER BY " . get_request_var_request("sort_column") . " " . get_request_var_request("sort_direction") . " LIMIT " . ($rows*(get_request_var_request("page")-1)) . "," . $rows; //print $sql_query; $xaxis_array = db_fetch_assoc($sql_query); /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, 2, "xaxis_presets.php"); print $nav; html_end_box(false); $display_text = array( "name" => array(__("Name"), "ASC"), ); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); if (sizeof($xaxis_array) > 0) { foreach ($xaxis_array as $xaxis) { form_alternate_row_color('line' . $xaxis["id"], true); form_selectable_cell("<a style='white-space:nowrap;' class='linkEditMain' href='" . htmlspecialchars("xaxis_presets.php?action=edit&id=" . $xaxis["id"]) . "'>" . (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $xaxis["name"]) : $xaxis["name"]) . "</a>", $xaxis["id"]); form_checkbox_cell($xaxis["name"], $xaxis["id"]); form_end_row(); } form_end_table(); /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>" . __("No X-Axis Presets") . "</em></td></tr>"; } print "</table>\n"; /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($xaxis_actions); print "</form>\n"; }
function rrdtool_info2html($info_array, $diff=array()) { global $colors; html_start_box("<strong>" . __("RRD File Information") . "</strong>", "100", $colors["header"], 0, "center", ""); # header data $header_items = array(__("Header"), ''); print "<tr><td>"; html_header($header_items, 1, false, 'info_header'); # add human readable timestamp if (isset($info_array["last_update"])) { $info_array["last_update"] .= " [" . date(date_time_format(), $info_array["last_update"]) . "]"; } $loop = array( "filename" => $info_array["filename"], "rrd_version" => $info_array["rrd_version"], "step" => $info_array["step"], "last_update" => $info_array["last_update"]); foreach ($loop as $key => $value) { form_alternate_row_color($key, true); form_selectable_cell($key, 'key'); form_selectable_cell($value, 'value', "", ((isset($diff[$key]) ? "textError" : ""))); form_end_row(); } form_end_table(); # data sources $header_items = array(__("Data Source Items"), __('Type'), __('Minimal Heartbeat'), __('Min'), __('Max'), __('Last DS'), __('Value'), __('Unkown Sec')); print "<tr><td>"; html_header($header_items, 1, false, 'info_ds'); if (sizeof($info_array["ds"]) > 0) { foreach ($info_array["ds"] as $key => $value) { form_alternate_row_color('line' . $key, true); form_selectable_cell($key, 'name', "", (isset($diff["ds"][$key]["error"]) ? "textError" : "")); form_selectable_cell((isset($value['type']) ? $value['type'] : ''), 'type', "", (isset($diff["ds"][$key]['type']) ? "textError" : "")); form_selectable_cell((isset($value['minimal_heartbeat']) ? $value['minimal_heartbeat'] : ''), 'minimal_heartbeat', "", (isset($diff["ds"][$key]['minimal_heartbeat']) ? "textError" : "")); form_selectable_cell((isset($value['min']) ? floatval($value['min']) : ''), 'min', "", (isset($diff["ds"][$key]['min']) ? "textError" : "")); form_selectable_cell((isset($value['max']) ? floatval($value['max']) : ''), 'max', "", (isset($diff["ds"][$key]['max']) ? "textError" : "")); form_selectable_cell((isset($value['last_ds']) ? $value['last_ds'] : ''), 'last_ds'); form_selectable_cell((isset($value['value']) ? floatval($value['value']) : ''), 'value'); form_selectable_cell((isset($value['unknown_sec']) ? $value['unknown_sec'] : ''), 'unknown_sec'); form_end_row(); } form_end_table(); } # round robin archive $header_items = array(__("Round Robin Archive"), __('Consolidation Function'), __('Rows'), __('Cur Row'), __('PDP per Row'), __('X Files Factor'), __('CDP Prep Value (0)'), __('CDP Unknown Datapoints (0)')); print "<tr><td>"; html_header($header_items, 1, false, 'info_rra'); if (sizeof($info_array['rra']) > 0) { foreach ($info_array['rra'] as $key => $value) { form_alternate_row_color('line_' . $key, true); form_selectable_cell($key, 'name', "", (isset($diff['rra'][$key]["error"]) ? "textError" : "")); form_selectable_cell((isset($value['cf']) ? $value['cf'] : ''), 'cf'); form_selectable_cell((isset($value['rows']) ? $value['rows'] : ''), 'rows', "", (isset($diff['rra'][$key]['rows']) ? "textError" : "")); form_selectable_cell((isset($value['cur_row']) ? $value['cur_row'] : ''), 'cur_row'); form_selectable_cell((isset($value['pdp_per_row']) ? $value['pdp_per_row'] : ''), 'pdp_per_row'); form_selectable_cell((isset($value['xff']) ? floatval($value['xff']) : ''), 'xff', "", (isset($diff['rra'][$key]['xff']) ? "textError" : "")); form_selectable_cell((isset($value['cdp_prep'][0]['value']) ? (strtolower($value['cdp_prep'][0]['value']) == "nan") ? $value['cdp_prep'][0]['value'] : floatval($value['cdp_prep'][0]['value']) : ''), 'value'); form_selectable_cell((isset($value['cdp_prep'][0]['unknown_datapoints'])? $value['cdp_prep'][0]['unknown_datapoints'] : ''), 'unknown_datapoints'); form_end_row(); } form_end_table(); } print "</table></td></tr>"; /* end of html_header */ html_end_box(); }
function graph() { global $colors, $item_rows; require_once(CACTI_BASE_PATH . "/lib/graph/graph_info.php"); require_once(CACTI_BASE_PATH . "/include/auth/auth_constants.php"); /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("device_id")); input_validate_input_number(get_request_var_request("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"); if (!substr_count($_SERVER["REQUEST_URI"], "/devices.php")) { kill_session_var("sess_graph_device_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"]); if (!substr_count($_SERVER["REQUEST_URI"], "/devices.php")) { unset($_REQUEST["device_id"]); } unset($_REQUEST["rows"]); unset($_REQUEST["template_id"]); } /* let's see if someone changed an important setting */ $changed = FALSE; $changed += check_changed("filter", "sess_ds_filter"); $changed += check_changed("rows", "sess_ds_rows"); $changed += check_changed("device_id", "sess_ds_device_id"); $changed += check_changed("template_id", "sess_ds_template_id"); if ($changed) { $_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_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("device_id", "sess_graph_device_id", "-1"); load_current_session_value("rows", "sess_graph_rows", "-1"); load_current_session_value("template_id", "sess_graph_template_id", "-1"); ?> <script type="text/javascript"> <!-- $().ready(function() { $("#device").autocomplete("./lib/ajax/get_devices_brief.php", { max: 8, highlight: false, scroll: true, scrollHeight: 300 }); $("#device").result(function(event, data, formatted) { if (data) { $(this).parent().find("#device_id").val(data[1]); applyGraphsFilterChange(document.form_graph_id); }else{ $(this).parent().find("#device_id").val(0); } }); }); function clearGraphsFilterChange(objForm) { strURL = '?filter='; <?php # called from outside if (isset($_REQUEST["tab"])) { # print the tab print "strURL = strURL + &tab=" . $_REQUEST["tab"] . "';"; # now look for more parameters if (isset($_REQUEST["device_id"])) { print "strURL = strURL + '&device_id=" . $_REQUEST["device_id"] . "&id=" . $_REQUEST["device_id"] . "';"; } if (isset($_REQUEST["template_id"])) { print "strURL = strURL + '&template_id=" . $_REQUEST["template_id"] . "&id=" . $_REQUEST["template_id"] . "';"; } }else { # clear all parms print "strURL = strURL + '&device_id=-1';"; print "strURL = strURL + '&template_id=-1';"; } ?> strURL = strURL + '&rows=-1'; document.location = strURL; } function applyGraphsFilterChange(objForm) { strURL = '?filter=' + objForm.filter.value; // take care of parms provided via autocomplete // those are passed as objForm.<parm>.value // instead of $_REQUEST["<parm>"] when called from outside if (objForm.device_id.value) { strURL = '?device_id=' + objForm.device_id.value; }else{ <?php print (isset($_REQUEST["device_id"]) ? "strURL = strURL + '&device_id=" . $_REQUEST["device_id"] . "&id=" . $_REQUEST["device_id"] . "';" : "strURL = strURL + '&device_id=-1';");?> } if (objForm.template_id.value) { strURL = '?template_id=' + objForm.template_id.value; }else{ <?php print (isset($_REQUEST["template_id"]) ? "strURL = strURL + '&template_id=" . $_REQUEST["template_id"] . "&id=" . $_REQUEST["template_id"] . "';" : "strURL = strURL + '&template_id=-1';");?> } strURL = strURL + '&rows=' + objForm.rows.value; document.location = strURL; } --> </script> <?php html_start_box("<strong>" . __("Graph Management") . "</strong>", "100", $colors["header"], "3", "center", "graphs.php?action=graph_edit&device_id=" . $_REQUEST["device_id"], true); ?> <tr class='rowAlternate2'> <td> <form name="form_graph_id" action="graphs.php"> <table cellpadding="0" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Host:");?> </td> <td width="1"> <?php if (isset($_REQUEST["device_id"])) { $hostname = db_fetch_cell("SELECT description as name FROM device WHERE id=".$_REQUEST["device_id"]." ORDER BY description,hostname"); } else { $hostname = ""; } ?> <input class="ac_field" type="text" id="device" size="30" value="<?php print $hostname; ?>"> <input type="hidden" id="device_id"> </td> <td width="70"> <?php print __("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 }?>><?php print __("Any");?></option> <option value="0"<?php if (get_request_var_request("template_id") == "0") {?> selected<?php }?>><?php print __("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 device ON (device.id=graph_local.device_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=" . PERM_GRAPHS . " and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (device.id=user_auth_perms.item_id and user_auth_perms.type=" . PERM_DEVICES . " and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (graph_templates.id=user_auth_perms.item_id and user_auth_perms.type=" . PERM_GRAPH_TEMPLATES . " 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 class="nw120"> <input type="submit" Value="<?php print __("Go");?>" name="go" align="middle"> <input type="button" Value="<?php print __("Clear");?>" name="clear_x" align="middle" onClick="clearGraphsFilterChange(document.form_graph_id)"> </td> </tr> </table> <table cellpadding="0" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Search:");?> </td> <td> <input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"> </td> <td class="nw50"> <?php print __("Rows:");?> </td> <td width="1"> <select name="rows" onChange="applyGraphsFilterChange(document.form_graph_id)"> <option value="-1"<?php if (get_request_var_request("rows") == "-1") {?> selected<?php }?>><?php print __("Default");?></option> <?php if (sizeof($item_rows) > 0) { foreach ($item_rows as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> </tr> </table> <input type='hidden' name='page' value='1'> </form> </td> </tr> <?php html_end_box(false); /* 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 '%%" . $_REQUEST["filter"] . "%%'" . " OR graph_templates.name like '%%" . get_request_var_request("filter") . "%%')"; }else{ $sql_where = ""; } if (get_request_var_request("device_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("device_id") == "0") { $sql_where .= " AND graph_local.device_id=0"; }elseif (!empty($_REQUEST["device_id"])) { $sql_where .= " AND graph_local.device_id=" . $_REQUEST["device_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=" . $_REQUEST["template_id"]; } html_start_box("", "100", $colors["header"], "0", "center", ""); if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_graph"); }else{ $rows = get_request_var_request("rows"); } $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.device_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 " . get_request_var_request('sort_column') . " " . get_request_var_request('sort_direction') . " LIMIT " . ($rows*(get_request_var_request("page")-1)) . "," . $rows); /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, 7, "graphs.php"); print $nav; html_end_box(false); $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")); if (sizeof($graph_list) > 0) { foreach ($graph_list as $graph) { $template_name = ((empty($graph["name"])) ? "<em>" . __("None") . "</em>" : $graph["name"]); form_alternate_row_color('line' . $graph["local_graph_id"], true); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("graphs.php?action=graph_edit&id=" . $graph["local_graph_id"] . "' title='" . $graph["title_cache"]) . "'>" . (($_REQUEST["filter"] != "") ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\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((($_REQUEST["filter"] != "") ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $template_name) : $template_name), $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(); } form_end_table(); /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>" . __("No Graphs Found") . "</em></td></tr>"; } print "</table>\n"; # end table of html_header_sort_checkbox /* add a list of tree names to the actions dropdown */ $graph_actions = array_merge(graph_actions_list(), api_tree_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"; # end form of html_header_sort_checkbox }
function device() { global $colors, $item_rows; require(CACTI_BASE_PATH . "/include/device/device_arrays.php"); /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("template_id")); input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("status")); input_validate_input_number(get_request_var_request("rows")); input_validate_input_number(get_request_var_request("poller")); input_validate_input_number(get_request_var_request("site")); /* ==================================================== */ /* 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"); if (!substr_count($_SERVER["REQUEST_URI"], "/device_templates.php")) { kill_session_var("sess_device_template_id"); } kill_session_var("sess_device_status"); kill_session_var("sess_device_rows"); kill_session_var("sess_device_poller"); kill_session_var("sess_device_site"); kill_session_var("sess_device_sort_column"); kill_session_var("sess_device_sort_direction"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); if (!substr_count($_SERVER["REQUEST_URI"], "/device_templates.php")) { unset($_REQUEST["template_id"]); } unset($_REQUEST["status"]); unset($_REQUEST["poller"]); unset($_REQUEST["site"]); unset($_REQUEST["rows"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } /* let's see if someone changed an important setting */ $changed = FALSE; $changed += check_changed("filter", "sess_device_filter"); $changed += check_changed("template_id", "sess_device_template_id"); $changed += check_changed("status", "sess_device_status"); $changed += check_changed("rows", "sess_device_rows"); $changed += check_changed("poller", "sess_device_poller"); $changed += check_changed("site", "sess_device_site"); $changed += check_changed("device_id", "sess_ds_device_id"); if ($changed) { $_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("template_id", "sess_device_template_id", "-1"); load_current_session_value("status", "sess_device_status", "-1"); load_current_session_value("rows", "sess_device_rows", "-1"); load_current_session_value("poller", "sess_device_poller", "-1"); load_current_session_value("site", "sess_device_site", "-1"); load_current_session_value("sort_column", "sess_device_sort_column", "description"); load_current_session_value("sort_direction", "sess_device_sort_direction", "ASC"); ?> <script type="text/javascript"> <!-- function clearDeviceFilterChange(objForm) { <?php print (isset($_REQUEST["tab"]) ? "strURL = '?template_id=" . $_REQUEST["template_id"] . "&id=" . $_REQUEST["template_id"] . "&action=edit&action=edit&tab=" . $_REQUEST["tab"] . "';" : "strURL = '?template_id=-1';");?> strURL = strURL + '&filter='; strURL = strURL + '&rows=-1'; document.location = strURL; } function applyDeviceFilterChange(objForm) { if (objForm.template_id.value) { strURL = '?template_id=' + objForm.template_id.value; strURL = strURL + '&filter=' + objForm.filter.value; }else{ strURL = '?filter=' + objForm.filter.value; } strURL = strURL + '&status=' + objForm.status.value; strURL = strURL + '&rows=' + objForm.rows.value; strURL = strURL + '&poller=' + objForm.poller.value; strURL = strURL + '&site=' + objForm.site.value; <?php print (isset($_REQUEST["tab"]) ? "strURL = strURL + '&id=' + objForm.template_id.value + '&action=edit&action=edit&tab=" . $_REQUEST["tab"] . "';" : "");?> document.location = strURL; } --> </script> <?php html_start_box("<strong>" . __("Devices") . "</strong>", "100", $colors["header"], "3", "center", "devices.php?action=edit&template_id=" . $_REQUEST["template_id"] . "&status=" . $_REQUEST["status"], true); ?> <tr class='rowAlternate2'> <td> <form action="devices.php" name="form_devices" method="post"> <table cellpadding="0" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Type:");?> </td> <td class="w1"> <select name="template_id" onChange="applyDeviceFilterChange(document.form_devices)"> <option value="-1"<?php if (get_request_var_request("template_id") == "-1") {?> selected<?php }?>><?php print __("Any");?></option> <option value="0"<?php if (get_request_var_request("template_id") == "0") {?> selected<?php }?>><?php print __("None");?></option> <?php $device_templates = db_fetch_assoc("select id,name from device_template order by name"); if (sizeof($device_templates) > 0) { foreach ($device_templates as $device_template) { print "<option value='" . $device_template["id"] . "'"; if (get_request_var_request("template_id") == $device_template["id"]) { print " selected"; } print ">" . $device_template["name"] . "</option>\n"; } } ?> </select> </td> <td class="nw50"> <?php print __("Status:");?> </td> <td class="w1"> <select name="status" onChange="applyDeviceFilterChange(document.form_devices)"> <option value="-1"<?php if (get_request_var_request("status") == "-1") {?> selected<?php }?>><?php print __("Any");?></option> <option value="-3"<?php if (get_request_var_request("status") == "-3") {?> selected<?php }?>><?php print __("Enabled");?></option> <option value="-2"<?php if (get_request_var_request("status") == "-2") {?> selected<?php }?>><?php print __("Disabled");?></option> <option value="-4"<?php if (get_request_var_request("status") == "-4") {?> selected<?php }?>><?php print __("Not Up");?></option> <option value="3"<?php if (get_request_var_request("status") == "3") {?> selected<?php }?>><?php print __("Up");?></option> <option value="1"<?php if (get_request_var_request("status") == "1") {?> selected<?php }?>><?php print __("Down");?></option> <option value="2"<?php if (get_request_var_request("status") == "2") {?> selected<?php }?>><?php print __("Recovering");?></option> <option value="0"<?php if (get_request_var_request("status") == "0") {?> selected<?php }?>><?php print __("Unknown");?></option> </select> </td> <td class="nw50"> <?php print __("Rows:");?> </td> <td class="w1"> <select name="rows" onChange="applyDeviceFilterChange(document.form_devices)"> <option value="-1"<?php if (get_request_var_request("rows") == "-1") {?> selected<?php }?>><?php print __("Default");?></option> <?php if (sizeof($item_rows) > 0) { foreach ($item_rows as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> </tr> </table> <table cellpadding="0" cellspacing="3"> <tr> <td class="nw50"> <?php print __("Site:");?> </td> <td class="w1"> <select name="site" onChange="applyDeviceFilterChange(document.form_devices)"> <option value="-1"<?php if (get_request_var_request("site") == "-1") {?> selected<?php }?>><?php print __("All");?></option> <option value="0"<?php if (get_request_var_request("site") == "0") {?> selected<?php }?>><?php print __("Not Defined");?></option> <?php $sites = db_fetch_assoc("select id,name from sites order by name"); if (sizeof($sites)) { foreach ($sites as $site) { print "<option value='" . $site["id"] . "'"; if (get_request_var_request("site") == $site["id"]) { print " selected"; } print ">" . $site["name"] . "</option>\n"; } } ?> </select> </td> <td class="nw50"> <?php print __("Poller:");?> </td> <td class="w1"> <select name="poller" onChange="applyDeviceFilterChange(document.form_devices)"> <option value="-1"<?php if (get_request_var_request("poller") == "-1") {?> selected<?php }?>><?php print __("All");?></option> <option value="0"<?php if (get_request_var_request("poller") == "0") {?> selected<?php }?>><?php print __("System Default");?></option> <?php $pollers = db_fetch_assoc("select id,description AS name from poller order by description"); if (sizeof($pollers)) { foreach ($pollers as $poller) { print "<option value='" . $poller["id"] . "'"; if (get_request_var_request("poller") == $poller["id"]) { print " selected"; } print ">" . $poller["name"] . "</option>\n"; } } ?> </select> </td> <td class="nw50"> <?php print __("Search:");?> </td> <td class="w1"> <input type="text" name="filter" size="20" value="<?php print $_REQUEST["filter"];?>"> </td> <td class="nw120"> <input type="submit" Value="<?php print __("Go");?>" name="go" align="middle"> <input type="button" Value="<?php print __("Clear");?>" name="clear_x" align="middle" onClick="clearDeviceFilterChange(document.form_devices)"> </td> </tr> </table> <div><input type='hidden' name='page' value='1'></div> </form> </td> </tr> <?php html_end_box(false); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where = "where (device.hostname like '%%" . $_REQUEST["filter"] . "%%' OR device.description like '%%" . $_REQUEST["filter"] . "%%')"; }else{ $sql_where = ""; } if (get_request_var_request("status") == "-1") { /* Show all items */ }elseif (get_request_var_request("status") == "-2") { $sql_where .= (strlen($sql_where) ? " and device.disabled='on'" : "where device.disabled='on'"); }elseif (get_request_var_request("status") == "-3") { $sql_where .= (strlen($sql_where) ? " and device.disabled=''" : "where device.disabled=''"); }elseif (get_request_var_request("status") == "-4") { $sql_where .= (strlen($sql_where) ? " and (device.status!='3' or device.disabled='on')" : "where (device.status!='3' or device.disabled='on')"); }else { $sql_where .= (strlen($sql_where) ? " and (device.status=" . $_REQUEST["status"] . " AND device.disabled = '')" : "where (device.status=" . $_REQUEST["status"] . " AND device.disabled = '')"); } if (get_request_var_request("template_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("template_id") == "0") { $sql_where .= (strlen($sql_where) ? " and device.device_template_id=0" : "where device.device_template_id=0"); }elseif (!empty($_REQUEST["template_id"])) { $sql_where .= (strlen($sql_where) ? " and device.device_template_id=" . $_REQUEST["template_id"] : "where device.device_template_id=" . $_REQUEST["template_id"]); } if (get_request_var_request("poller") == "-1") { /* Show all items */ }elseif (get_request_var_request("poller") == "0") { $sql_where .= (strlen($sql_where) ? " and device.poller_id=0" : "where device.poller_id=0"); }elseif (!empty($_REQUEST["poller"])) { $sql_where .= (strlen($sql_where) ? " and device.poller_id=" . $_REQUEST["poller"] : "where device.poller_id=" . $_REQUEST["poller"]); } if (get_request_var_request("site") == "-1") { /* Show all items */ }elseif (get_request_var_request("site") == "0") { $sql_where .= (strlen($sql_where) ? " and device.site_id=0" : "where device.site_id=0"); }elseif (!empty($_REQUEST["site"])) { $sql_where .= (strlen($sql_where) ? " and device.site_id=" . $_REQUEST["site"] : "where device.site_id=" . $_REQUEST["site"]); } html_start_box("", "100", $colors["header"], "0", "center", ""); $total_rows = db_fetch_cell("select COUNT(device.id) from device $sql_where"); if (get_request_var_request("rows") == "-1") { $rows = read_config_option("num_rows_device"); }else{ $rows = get_request_var_request("rows"); } $sortby = $_REQUEST["sort_column"]; if ($sortby=="hostname") { $sortby = "INET_ATON(hostname)"; } $device_graphs = array_rekey(db_fetch_assoc("SELECT device_id, count(*) as graphs FROM graph_local GROUP BY device_id"), "device_id", "graphs"); $device_data_sources = array_rekey(db_fetch_assoc("SELECT device_id, count(*) as data_sources FROM data_local GROUP BY device_id"), "device_id", "data_sources"); $sql_query = "SELECT device.*, poller.description AS poller, sites.name AS site FROM device LEFT JOIN poller ON device.poller_id=poller.id LEFT JOIN sites ON device.site_id=sites.id $sql_where ORDER BY " . $sortby . " " . get_request_var_request("sort_direction") . " LIMIT " . ($rows*(get_request_var_request("page")-1)) . "," . $rows; //print $sql_query; $devices = db_fetch_assoc($sql_query); /* generate page list navigation */ $nav = html_create_nav($_REQUEST["page"], MAX_DISPLAY_PAGES, $rows, $total_rows, 13, "devices.php"); print $nav; html_end_box(false); $display_text = array( "description" => array(__("Description"), "ASC"), "device.hostname" => array(__("Hostname"), "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"), "cur_time" => array(__("Current (ms)"), "DESC"), "avg_time" => array(__("Average (ms)"), "DESC"), "availability" => array(__("Availability"), "ASC"), "polling_time" => array(__("Poll Time"), "DESC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); if (sizeof($devices) > 0) { foreach ($devices as $device) { $spanextra = ""; if($device["disabled"] != CHECKED && $device["status"] == DEVICE_DOWN) { $date = __date("D, " . date_time_format() . " T", strtotime($device['status_fail_date'])); $spanextra = 'title="' . __("Down since %s with error: '%s'", $date, $device['status_last_error']) . '"'; } form_alternate_row_color('line' . $device["id"], true); form_selectable_cell("<a style='white-space:nowrap;' class='linkEditMain' href='" . htmlspecialchars("devices.php?action=edit&id=" . $device["id"]) . "'>" . (strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $device["description"]) : $device["description"]) . "</a>", $device["id"]); form_selectable_cell((strlen($_REQUEST["filter"]) ? preg_replace("/(" . preg_quote($_REQUEST["filter"]) . ")/i", "<span class=\"filter\">\\1</span>", $device["hostname"]) : $device["hostname"]), $device["id"]); form_selectable_cell(round(($device["id"]), 2), $device["id"]); form_selectable_cell((isset($device_graphs[$device["id"]]) ? $device_graphs[$device["id"]] : 0), $device["id"]); form_selectable_cell((isset($device_data_sources[$device["id"]]) ? $device_data_sources[$device["id"]] : 0), $device["id"]); form_selectable_cell( "<span $spanextra>".get_colored_device_status(($device["disabled"] == CHECKED ? true : false), $device["status"]) . "</span>", $device["id"]); form_selectable_cell(round(($device["status_event_count"]), 2), $device["id"]); form_selectable_cell(round(($device["cur_time"]), 2), $device["id"]); form_selectable_cell(round(($device["avg_time"]), 2), $device["id"]); form_selectable_cell(round($device["availability"], 2), $device["id"]); form_selectable_cell(round($device["polling_time"], 2), $device["id"]); form_checkbox_cell($device["description"], $device["id"]); form_end_row(); } form_end_table(); /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>" . __("No Hosts") . "</em></td></tr>"; } print "</table>\n"; /* add a list of tree names to the actions dropdown */ $device_actions = array_merge($device_actions, api_tree_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"; }