<td> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td nowrap style='white-space: nowrap;' width="100"> Filter by host: </td> <td width="1"> <select name="cbo_graph_id" onChange="window.location=document.form_graph_id.cbo_graph_id.options[document.form_graph_id.cbo_graph_id.selectedIndex].value"> <option value="graphs.php?host_id=-1&filter=<?php print $_REQUEST["filter"];?>"<?php if ($_REQUEST["host_id"] == "-1") {?> selected<?php }?>>Any</option> <option value="graphs.php?host_id=0&filter=<?php print $_REQUEST["filter"];?>"<?php if ($_REQUEST["host_id"] == "0") {?> selected<?php }?>>None</option> <?php $hosts = db_fetch_assoc("select id,".sql_function_concat("description","' ('","hostname","')'")." as name from host order by description,hostname"); if (sizeof($hosts) > 0) { foreach ($hosts as $host) { print "<option value='graphs.php?host_id=" . $host["id"] . "&filter=" . $_REQUEST["filter"] . "&page=1'"; if ($_REQUEST["host_id"] == $host["id"]) { print " selected"; } print ">" . title_trim($host["name"], 40) . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="50"> Search: </td> <td width="1"> <input type="text" name="filter" size="20" value="<?php print $_REQUEST["filter"];?>"> </td> <td nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td>
"<?php if ($_REQUEST["host_id"] == "0") { ?> selected<?php } ?> >None</option> <?php $hosts = db_fetch_assoc("select id,CONCAT_WS('',description,' (',hostname,')') as name from host order by description,hostname"); if (sizeof($hosts) > 0) { foreach ($hosts as $host) { print "<option value='data_sources.php?host_id=" . $host["id"] . "&page=1'"; if ($_REQUEST["host_id"] == $host["id"]) { print " selected"; } print ">" . title_trim($host["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="30"></td> <td width="60"> Search: </td> <td width="1"> <input type="text" name="filter" size="20" value="<?php print $_REQUEST["filter"]; ?> ">
function ds() { global $colors, $ds_actions; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("host_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_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_host_id"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); unset($_REQUEST["host_id"]); } /* 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("host_id", "sess_ds_host_id", "-1"); $host = db_fetch_row("select hostname from host where id=" . $_REQUEST["host_id"]); html_start_box("<strong>Data Sources</strong> [host: " . (empty($host["hostname"]) ? "No Host" : $host["hostname"]) . "]", "100%", $colors["header"], "3", "center", "data_sources.php?action=ds_edit&host_id=" . $_REQUEST["host_id"]); include "./include/html/inc_data_source_filter_table.php"; html_end_box(); /* form the 'where' clause for our main sql query */ if (strlen($_REQUEST["filter"])) { $sql_where = "AND (data_template_data.name_cache like '%%" . $_REQUEST["filter"] . "%%'" . " OR data_template.name like '%%" . $_REQUEST["filter"] . "%%'" . " OR data_input.name like '%%" . $_REQUEST["filter"] . "%%')"; } else { $sql_where = ""; } if ($_REQUEST["host_id"] == "-1") { /* Show all items */ } elseif ($_REQUEST["host_id"] == "0") { $sql_where .= " AND data_local.host_id=0"; } elseif (!empty($_REQUEST["host_id"])) { $sql_where .= " AND data_local.host_id=" . $_REQUEST["host_id"]; } $total_rows = sizeof(db_fetch_assoc("SELECT\n\t\tdata_local.id\n\t\tFROM (data_local,data_template_data)\n\t\tLEFT JOIN data_input\n\t\tON (data_input.id=data_template_data.data_input_id)\n\t\tLEFT JOIN data_template\n\t\tON (data_local.data_template_id=data_template.id)\n\t\tWHERE data_local.id=data_template_data.local_data_id\n\t\t{$sql_where}")); $poller_intervals = array_rekey(db_fetch_assoc("SELECT data_template_data.local_data_id AS id,\n\t\tMin(data_template_data.rrd_step*rra.steps) AS poller_interval\n\t\tFROM data_template\n\t\tINNER JOIN (data_local\n\t\tINNER JOIN ((data_template_data_rra\n\t\tINNER JOIN data_template_data ON data_template_data_rra.data_template_data_id=data_template_data.id)\n\t\tINNER 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\n\t\t{$sql_where}\n\t\tGROUP BY data_template_data.local_data_id"), "id", "poller_interval"); $data_sources = db_fetch_assoc("SELECT\n\t\tdata_template_data.local_data_id,\n\t\tdata_template_data.name_cache,\n\t\tdata_template_data.active,\n\t\tdata_input.name as data_input_name,\n\t\tdata_template.name as data_template_name,\n\t\tdata_local.host_id\n\t\tFROM (data_local,data_template_data)\n\t\tLEFT JOIN data_input\n\t\tON (data_input.id=data_template_data.data_input_id)\n\t\tLEFT JOIN data_template\n\t\tON (data_local.data_template_id=data_template.id)\n\t\tWHERE data_local.id=data_template_data.local_data_id\n\t\t{$sql_where}\n\t\tORDER BY " . $_REQUEST['sort_column'] . " " . $_REQUEST['sort_direction'] . " LIMIT " . read_config_option("num_rows_data_source") * ($_REQUEST["page"] - 1) . "," . read_config_option("num_rows_data_source")); html_start_box("", "100%", $colors["header"], "3", "center", ""); /* generate page list */ $url_page_select = get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, read_config_option("num_rows_data_source"), $total_rows, "data_sources.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"]); $nav = "<tr bgcolor='#" . $colors["header"] . "'>\n\t\t\t<td colspan='6'>\n\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td align='left' class='textHeaderDark'>\n\t\t\t\t\t\t\t<strong><< "; if ($_REQUEST["page"] > 1) { $nav .= "<a class='linkOverDark' href='data_sources.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"] . "&page=" . ($_REQUEST["page"] - 1) . "'>"; } $nav .= "Previous"; if ($_REQUEST["page"] > 1) { $nav .= "</a>"; } $nav .= "</strong>\n\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\n\t\t\t\t\t\t\tShowing Rows " . (read_config_option("num_rows_data_source") * ($_REQUEST["page"] - 1) + 1) . " to " . ($total_rows < read_config_option("num_rows_data_source") || $total_rows < read_config_option("num_rows_data_source") * $_REQUEST["page"] ? $total_rows : read_config_option("num_rows_data_source") * $_REQUEST["page"]) . " of {$total_rows} [{$url_page_select}]\n\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t<td align='right' class='textHeaderDark'>\n\t\t\t\t\t\t\t<strong>"; if ($_REQUEST["page"] * read_config_option("num_rows_data_source") < $total_rows) { $nav .= "<a class='linkOverDark' href='data_sources.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"] . "&page=" . ($_REQUEST["page"] + 1) . "'>"; } $nav .= "Next"; if ($_REQUEST["page"] * read_config_option("num_rows_data_source") < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong>\n\t\t\t\t\t\t</td>\n\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</td>\n\t\t</tr>\n"; print $nav; $display_text = array("name_cache" => array("Name", "ASC"), "data_input_name" => array("Data Input Method", "ASC"), "nosort" => array("Poller<br>Interval", "ASC"), "active" => array("Active", "ASC"), "data_template_name" => array("Template Name", "ASC")); html_header_sort_checkbox($display_text, $_REQUEST["sort_column"], $_REQUEST["sort_direction"]); $i = 0; if (sizeof($data_sources) > 0) { foreach ($data_sources as $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($colors["alternate"], $colors["light"], $i, 'line' . $data_source["local_data_id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='data_sources.php?action=ds_edit&id=" . $data_source["local_data_id"] . "'>" . ($_REQUEST["filter"] != "" ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim(htmlentities($data_source["name_cache"]), read_config_option("max_title_data_source"))) : title_trim(htmlentities($data_source["name_cache"]), read_config_option("max_title_data_source"))) . "</a>", $data_source["local_data_id"]); form_selectable_cell(($_REQUEST["filter"] != "" ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $data_input_name) : $data_input_name) . "</a>", $data_source["local_data_id"]); form_selectable_cell(get_poller_interval($poller_interval), $data_source["local_data_id"]); form_selectable_cell($data_source['active'], $data_source["local_data_id"]); form_selectable_cell(($_REQUEST["filter"] != "" ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $data_source['data_template_name']) : $data_source['data_template_name']) . "</a>", $data_source["local_data_id"]); form_checkbox_cell($data_source["name_cache"], $data_source["local_data_id"]); form_end_row(); } /* put the nav bar on the bottom as well */ print $nav; } else { print "<tr><td><em>No Data Sources</em></td></tr>"; } html_end_box(false); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($ds_actions); print "</form>\n"; }
function html_create_list($form_data, $column_display, $column_id, $form_previous_value) { if (empty($column_display)) { foreach (array_keys($form_data) as $id) { print '<option value="' . $id . '"'; if ($form_previous_value == $id) { print " selected"; } print ">" . title_trim(null_out_substitutions($form_data[$id]), 75) . "</option>\n"; } }else{ if (sizeof($form_data) > 0) { foreach ($form_data as $row) { print "<option value='$row[$column_id]'"; if ($form_previous_value == $row[$column_id]) { print " selected"; } if (isset($row["host_id"])) { print ">" . title_trim($row[$column_display], 75) . "</option>\n"; }else{ print ">" . title_trim(null_out_substitutions($row[$column_display]), 75) . "</option>\n"; } } } } }
/** function syslog_messages() * This is the main page display function in Syslog. Displays all the * syslog messages that are relevant to Syslog. */ function syslog_messages($tab = "syslog") { global $colors, $sql_where, $hostfilter, $severities; global $config, $syslog_incoming_config, $reset_multi, $syslog_levels; include "./include/global_arrays.php"; /* force the initial timespan to be 30 minutes for performance reasons */ if (!isset($_SESSION["sess_syslog_init"])) { $_SESSION["sess_current_timespan"] = 1; $_SESSION["sess_syslog_init"] = 1; } if (file_exists("./lib/timespan_settings.php")) { include "./lib/timespan_settings.php"; } else { include "./include/html/inc_timespan_settings.php"; } include dirname(__FILE__) . "/config.php"; /* create the custom css and javascript for the page */ generate_syslog_cssjs(); $url_curr_page = get_browser_query_string(); $sql_where = ""; if ($_REQUEST["rows"] == -1) { $row_limit = read_config_option("num_rows_syslog"); } elseif ($_REQUEST["rows"] == -2) { $row_limit = 999999; } else { $row_limit = $_REQUEST["rows"]; } $syslog_messages = get_syslog_messages($sql_where, $row_limit, $tab); $total_rows = syslog_filter($sql_where, $tab); /* generate page list */ $url_page_select = get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, $row_limit, $total_rows, "syslog.php?tab={$tab}"); if ($total_rows > 0) { $nav = "<tr bgcolor='#" . $colors["header"] . "'>\n\t\t\t\t\t<td colspan='13'>\n\t\t\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td align='left' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\t<strong><< "; if ($_REQUEST["page"] > 1) { $nav .= "<a class='linkOverDark' href='syslog.php?tab={$tab}&page=" . ($_REQUEST["page"] - 1) . "'>"; } $nav .= "Previous"; if ($_REQUEST["page"] > 1) { $nav .= "</a>"; } $nav .= "</strong>\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\tShowing Rows " . ($total_rows == 0 ? "None" : $row_limit * ($_REQUEST["page"] - 1) + 1 . " to " . ($total_rows < $row_limit || $total_rows < $row_limit * $_REQUEST["page"] ? $total_rows : $row_limit * $_REQUEST["page"]) . " of {$total_rows} [{$url_page_select}]") . "\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t\t<td align='right' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\t<strong>"; if ($_REQUEST["page"] * $row_limit < $total_rows) { $nav .= "<a class='linkOverDark' href='syslog.php?tab={$tab}&page=" . ($_REQUEST["page"] + 1) . "'>"; } $nav .= "Next"; if ($_REQUEST["page"] * $row_limit < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong>\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n"; } else { $nav = "<tr bgcolor='#" . $colors["header"] . "' class='noprint'>\n\t\t\t\t\t<td colspan='22'>\n\t\t\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\tNo Rows Found\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n"; } print $nav; if ($tab == "syslog") { if (api_plugin_user_realm_auth('syslog_alerts.php')) { $display_text = array("nosortt" => array("Actions", "ASC"), "host_id" => array("Host", "ASC"), "logtime" => array("Date", "ASC"), "message" => array("Message", "ASC"), "facility_id" => array("Facility", "ASC"), "priority_id" => array("Priority", "ASC")); } else { $display_text = array("host_id" => array("Host", "ASC"), "logtime" => array("Date", "ASC"), "message" => array("Message", "ASC"), "facility_id" => array("Facility", "ASC"), "priority_id" => array("Priority", "ASC")); } html_header_sort($display_text, $_REQUEST["sort_column"], $_REQUEST["sort_direction"]); $hosts = array_rekey(syslog_db_fetch_assoc("SELECT host_id, host FROM `" . $syslogdb_default . "`.`syslog_hosts`"), "host_id", "host"); $facilities = array_rekey(syslog_db_fetch_assoc("SELECT facility_id, facility FROM `" . $syslogdb_default . "`.`syslog_facilities`"), "facility_id", "facility"); $priorities = array_rekey(syslog_db_fetch_assoc("SELECT priority_id, priority FROM `" . $syslogdb_default . "`.`syslog_priorities`"), "priority_id", "priority"); $i = 0; if (sizeof($syslog_messages) > 0) { foreach ($syslog_messages as $syslog_message) { $title = "'" . str_replace("\"", "", str_replace("'", "", $syslog_message["message"])) . "'"; $tip_options = "CLICKCLOSE, 'true', WIDTH, '40', DELAY, '500', FOLLOWMOUSE, 'true', FADEIN, 450, FADEOUT, 450, BGCOLOR, '#F9FDAF', STICKY, 'true', SHADOWCOLOR, '#797C6E', TITLE, 'Message'"; syslog_row_color($colors["alternate"], $colors["light"], $i, $priorities[$syslog_message["priority_id"]], $title); $i++; if (api_plugin_user_realm_auth('syslog_alerts.php')) { print "<td style='whitspace-nowrap;width:1%;'>"; if ($syslog_message['mtype'] == 'main') { print "<a href='syslog_alerts.php?id=" . $syslog_message[$syslog_incoming_config["id"]] . "&date=" . $syslog_message["logtime"] . "&action=newedit&type=0'><img src='images/green.gif' align='absmiddle' border=0></a>\n\t\t\t\t\t\t<a href='syslog_removal.php?id=" . $syslog_message[$syslog_incoming_config["id"]] . "&date=" . $syslog_message["logtime"] . "&action=newedit&type=new&type=0'><img src='images/red.gif' align='absmiddle' border=0></a>\n"; } print "</td>\n"; } print "<td>" . $hosts[$syslog_message["host_id"]] . "</td>\n"; print "<td>" . $syslog_message["logtime"] . "</td>\n"; print "<td>" . (strlen($_REQUEST["filter"]) ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($syslog_message[$syslog_incoming_config["textField"]], get_request_var_request("trimval"))) : title_trim($syslog_message[$syslog_incoming_config["textField"]], get_request_var_request("trimval"))) . "</td>\n"; print "<td>" . ucfirst($facilities[$syslog_message["facility_id"]]) . "</td>\n"; print "<td>" . ucfirst($priorities[$syslog_message["priority_id"]]) . "</td>\n"; } } else { print "<tr><td><em>No Messages</em></td></tr>"; } print $nav; html_end_box(false); syslog_syslog_legend(); } else { $display_text = array("name" => array("Alert Name", "ASC"), "severity" => array("Severity", "ASC"), "count" => array("Count", "ASC"), "logtime" => array("Date", "ASC"), "logmsg" => array("Message", "ASC"), "slhost" => array("Host", "ASC"), "facility" => array("Facility", "ASC"), "priority" => array("Priority", "ASC")); html_header_sort($display_text, $_REQUEST["sort_column"], $_REQUEST["sort_direction"]); $i = 0; if (sizeof($syslog_messages) > 0) { foreach ($syslog_messages as $log) { $title = "'" . str_replace("\"", "", str_replace("'", "", $log["logmsg"])) . "'"; $tip_options = "CLICKCLOSE, 'true', WIDTH, '40', DELAY, '500', FOLLOWMOUSE, 'true', FADEIN, 450, FADEOUT, 450, BGCOLOR, '#F9FDAF', STICKY, 'true', SHADOWCOLOR, '#797C6E', TITLE, 'Message'"; switch ($log['severity']) { case "0": $color = "notice"; break; case "1": $color = "warn"; break; case "2": $color = "crit"; break; default: $color = "info"; break; } syslog_row_color($colors["alternate"], $colors["light"], $i, $color, $title); $i++; print "<td><a class='linkEditMain' href='" . $config["url_path"] . "plugins/syslog/syslog.php?id=" . $log["seq"] . "&tab=current'>" . (strlen($log["name"]) ? $log["name"] : "Alert Removed") . "</a></td>\n"; print "<td>" . (isset($severities[$log["severity"]]) ? $severities[$log["severity"]] : "Unknown") . "</td>\n"; print "<td>" . $log["count"] . "</td>\n"; print "<td>" . $log["logtime"] . "</td>\n"; print "<td>" . (strlen($_REQUEST["filter"]) ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($log["logmsg"], get_request_var_request("trimval"))) : title_trim($log["logmsg"], get_request_var_request("trimval"))) . "</td>\n"; print "<td>" . $log["host"] . "</td>\n"; print "<td>" . ucfirst($log["facility"]) . "</td>\n"; print "<td>" . ucfirst($log["priority"]) . "</td>\n"; } } else { print "<tr><td><em>No Messages</em></td></tr>"; } print $nav; html_end_box(false); syslog_log_legend(); } /* put the nav bar on the bottom as well */ ?> </td> </tr> </table> </td> </tr> </table> </form> <script type='text/javascript'> function syslogFindPos(obj) { var curleft = curtop = 0; if (obj.offsetParent) { curleft = obj.offsetLeft; curtop = obj.offsetTop; while (obj = obj.offsetParent) { curleft += obj.offsetLeft; curtop += obj.offsetTop; } } return [curleft,curtop]; } function setHostMultiSelect() { selectPos = syslogFindPos(document.getElementById("host_select")); textSize = document.getElementById("host_all").scrollHeight; if (textSize == 0) textSize = 16; if (window.innerHeight) { height = window.innerHeight; }else{ height = document.body.clientHeight; } //alert("Height:"+height+", YPos:"+selectPos[1]+", TextSize:"+textSize); /* the full window size of the multi-select */ size = parseInt((height-selectPos[1]-5)/textSize); window.onresize = null; document.getElementById("host_select").size=size; window.onresize = this; } window.onresize = setHostMultiSelect; window.onload = setHostMultiSelect; </script> <?php }
function graph() { global $colors, $graph_actions; /* 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_host_id"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["host_id"]); } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_graph_current_page", "1"); load_current_session_value("filter", "sess_graph_filter", ""); load_current_session_value("host_id", "sess_graph_host_id", "-1"); html_start_box("<strong>Graph Management</strong>", "98%", $colors["header"], "3", "center", "graphs.php?action=graph_edit&host_id=" . $_REQUEST["host_id"]); include("./include/html/inc_graph_filter_table.php"); html_end_box(); /* form the 'where' clause for our main sql query */ $sql_where = "and graph_templates_graph.title_cache like '%%" . $_REQUEST["filter"] . "%%'"; if ($_REQUEST["host_id"] == "-1") { /* Show all items */ }elseif ($_REQUEST["host_id"] == "0") { $sql_where .= " and graph_local.host_id=0"; }elseif (!empty($_REQUEST["host_id"])) { $sql_where .= " and graph_local.host_id=" . $_REQUEST["host_id"]; } html_start_box("", "98%", $colors["header"], "3", "center", ""); $total_rows = db_fetch_cell("select COUNT(graph_templates_graph.id) from graph_local,graph_templates_graph where graph_local.id=graph_templates_graph.local_graph_id $sql_where"); $graph_list = db_fetch_assoc("select graph_templates_graph.id, graph_templates_graph.local_graph_id, graph_templates_graph.height, graph_templates_graph.width, graph_templates_graph.title_cache, graph_templates.name, graph_local.host_id from graph_local,graph_templates_graph left join graph_templates on graph_local.graph_template_id=graph_templates.id where graph_local.id=graph_templates_graph.local_graph_id $sql_where order by graph_templates_graph.title_cache,graph_local.host_id limit " . (read_config_option("num_rows_graph")*($_REQUEST["page"]-1)) . "," . read_config_option("num_rows_graph")); /* generate page list */ $url_page_select = get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, read_config_option("num_rows_graph"), $total_rows, "graphs.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"]); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='4'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if ($_REQUEST["page"] > 1) { $nav .= "<a class='linkOverDark' href='graphs.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"] . "&page=" . ($_REQUEST["page"]-1) . "'>"; } $nav .= "Previous"; if ($_REQUEST["page"] > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((read_config_option("num_rows_graph")*($_REQUEST["page"]-1))+1) . " to " . ((($total_rows < read_config_option("num_rows_graph")) || ($total_rows < (read_config_option("num_rows_graph")*$_REQUEST["page"]))) ? $total_rows : (read_config_option("num_rows_graph")*$_REQUEST["page"])) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if (($_REQUEST["page"] * read_config_option("num_rows_graph")) < $total_rows) { $nav .= "<a class='linkOverDark' href='graphs.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"] . "&page=" . ($_REQUEST["page"]+1) . "'>"; } $nav .= "Next"; if (($_REQUEST["page"] * read_config_option("num_rows_graph")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; html_header_checkbox(array("Graph Title", "Template Name", "Size")); $i = 0; if (sizeof($graph_list) > 0) { foreach ($graph_list as $graph) { form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++; ?> <td> <a class="linkEditMain" href="graphs.php?action=graph_edit&id=<?php print $graph["local_graph_id"];?>"><?php print eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($graph["title_cache"], read_config_option("max_title_graph")));?></a> </td> <td> <?php print ((empty($graph["name"])) ? "<em>None</em>" : $graph["name"]); ?> </td> <td> <?php print $graph["height"];?>x<?php print $graph["width"];?> </td> <td style="<?php print get_checkbox_style();?>" width="1%" align="right"> <input type='checkbox' style='margin: 0px;' name='chk_<?php print $graph["local_graph_id"];?>' title="<?php print $graph["title_cache"];?>"> </td> </tr> <?php } /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>No Graphs Found</em></td></tr>"; } html_end_box(false); /* add a list of tree names to the actions dropdown */ add_tree_names_to_actions_array(); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($graph_actions); print "</form>\n"; }
</td> <td nowrap style='white-space: nowrap;'> <input type='image' name='move_left' src='images/move_left.gif' align='middle' alt='Left' title='Shift Left'> </td> <td nowrap style='white-space: nowrap;'> <select name='predefined_timeshift' title='Define Shifting Interval' onChange="applyTimespanFilterChange(document.form_timespan_selector)"> <?php $start_val = 1; $end_val = sizeof($graph_timeshifts) + 1; if (sizeof($graph_timeshifts) > 0) { for ($shift_value = $start_val; $shift_value < $end_val; $shift_value++) { print "<option value='{$shift_value}'"; if ($_SESSION["sess_current_timeshift"] == $shift_value) { print " selected"; } print ">" . title_trim($graph_timeshifts[$shift_value], 40) . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;'> <input type='image' name='move_right' src='images/move_right.gif' align='middle' alt='Right' title='Shift Right'> </td> <td nowrap style='white-space: nowrap;'> <input type='submit' name='button_refresh_x' value='Refresh' title='Refresh selected time span'> <input type='submit' name='button_clear_x' value='Clear' title='Return to the default time span'> </td> </tr> </table> </form>
function mikrotik_timespan_selector() { global $config, $colors, $graph_timespans, $graph_timeshifts; ?> <script type='text/javascript'> <!-- calendar=null; function showCalendar(id) { var el = document.getElementById(id); if (calendar != null) { calendar.hide(); } else { var cal = new Calendar(true, null, selected, closeHandler); cal.weekNumbers = false; cal.showsTime = true; cal.time24 = true; cal.showsOtherMonths = false; calendar = cal; cal.setRange(1900, 2070); cal.create(); } calendar.setDateFormat('%Y-%m-%d %H:%M'); calendar.parseDate(el.value); calendar.sel = el; calendar.showAtElement(el, "Br"); return false; } function selected(cal, date) { cal.sel.value = date; } function closeHandler(cal) { cal.hide(); calendar = null; } --> </script> <script type="text/javascript"> <!-- function applyTimespanFilterChange(objForm) { strURL = '?action=graphs&predefined_timespan=' + objForm.predefined_timespan.value; strURL = strURL + '&predefined_timeshift=' + objForm.predefined_timeshift.value; document.location = strURL; } --> </script> <tr bgcolor="#<?php print $colors["panel"]; ?> " class="noprint"> <td class="noprint"> <form name="form_timespan_selector" method="post" action="mikrotik.php?action=graphs"> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td nowrap style='white-space: nowrap;' width='55'> Presets: </td> <td nowrap style='white-space: nowrap;' width='130'> <select name='predefined_timespan' onChange="applyTimespanFilterChange(document.form_timespan_selector)"> <?php if ($_SESSION["custom"]) { $graph_timespans[GT_CUSTOM] = "Custom"; $start_val = 0; $end_val = sizeof($graph_timespans); } else { if (isset($graph_timespans[GT_CUSTOM])) { asort($graph_timespans); array_shift($graph_timespans); } $start_val = 1; $end_val = sizeof($graph_timespans) + 1; } if (sizeof($graph_timespans) > 0) { for ($value = $start_val; $value < $end_val; $value++) { print "<option value='{$value}'"; if ($_SESSION["sess_current_timespan"] == $value) { print " selected"; } print ">" . title_trim($graph_timespans[$value], 40) . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width='30'> From: </td> <td width='155' nowrap style='white-space: nowrap;'> <input type='text' name='date1' id='date1' title='Graph Begin Timestamp' size='14' value='<?php print isset($_SESSION["sess_current_date1"]) ? $_SESSION["sess_current_date1"] : ""; ?> '> <input style='padding-bottom: 4px;' type='image' src='<?php print $config["url_path"]; ?> images/calendar.gif' alt='Start date selector' title='Start date selector' border='0' align='absmiddle' onclick="return showCalendar('date1');"> </td> <td nowrap style='white-space: nowrap;' width='20'> To: </td> <td width='155' nowrap style='white-space: nowrap;'> <input type='text' name='date2' id='date2' title='Graph End Timestamp' size='14' value='<?php print isset($_SESSION["sess_current_date2"]) ? $_SESSION["sess_current_date2"] : ""; ?> '> <input style='padding-bottom: 4px;' type='image' src='<?php print $config["url_path"]; ?> images/calendar.gif' alt='End date selector' title='End date selector' border='0' align='absmiddle' onclick="return showCalendar('date2');"> </td> <td width='130' nowrap style='white-space: nowrap;'> <input style='padding-bottom: 4px;' type='image' name='move_left' src='<?php print $config['url_path']; ?> images/move_left.gif' alt='Left' border='0' align='absmiddle' title='Shift Left'> <select name='predefined_timeshift' title='Define Shifting Interval' onChange="applyTimespanFilterChange(document.form_timespan_selector)"> <?php $start_val = 1; $end_val = sizeof($graph_timeshifts) + 1; if (sizeof($graph_timeshifts) > 0) { for ($shift_value = $start_val; $shift_value < $end_val; $shift_value++) { print "<option value='{$shift_value}'"; if ($_SESSION["sess_current_timeshift"] == $shift_value) { print " selected"; } print ">" . title_trim($graph_timeshifts[$shift_value], 40) . "</option>\n"; } } ?> </select> <input style='padding-bottom: 4px;' type='image' name='move_right' src='<?php print $config['url_path']; ?> images/move_right.gif' alt='Right' border='0' align='absmiddle' title='Shift Right'> </td> <td nowrap style='white-space: nowrap;'> <input type='submit' name='refresh' value='Refresh'> <input type='submit' name='clear' value='Clear'> </td> </tr> </table> </form> </td> </tr> <?php }
function ds() { global $colors, $ds_actions, $item_rows; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("ds_rows")); input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("template_id")); input_validate_input_number(get_request_var_request("method_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_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"); kill_session_var("sess_ds_host_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["ds_rows"]); unset($_REQUEST["host_id"]); unset($_REQUEST["template_id"]); unset($_REQUEST["method_id"]); } /* 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("ds_rows", "sess_ds_rows", read_config_option("num_rows_data_source")); load_current_session_value("host_id", "sess_ds_host_id", "-1"); load_current_session_value("template_id", "sess_ds_template_id", "-1"); load_current_session_value("method_id", "sess_ds_method_id", "-1"); $host = db_fetch_row("select hostname from host where id=" . get_request_var_request("host_id")); /* if the number of rows is -1, set it to the default */ if (get_request_var_request("ds_rows") == -1) { $_REQUEST["ds_rows"] = read_config_option("num_rows_data_source"); } ?> <script type="text/javascript"> <!-- function applyDSFilterChange(objForm) { strURL = '?host_id=' + objForm.host_id.value; strURL = strURL + '&filter=' + objForm.filter.value; strURL = strURL + '&ds_rows=' + objForm.ds_rows.value; strURL = strURL + '&template_id=' + objForm.template_id.value; strURL = strURL + '&method_id=' + objForm.method_id.value; document.location = strURL; } --> </script> <?php html_start_box("<strong>Data Sources</strong> [host: " . (empty($host["hostname"]) ? "No Host" : $host["hostname"]) . "]", "100%", $colors["header"], "3", "center", "data_sources.php?action=ds_edit&host_id=" . get_request_var_request("host_id")); ?> <tr bgcolor="<?php print $colors["panel"];?>"> <form name="form_data_sources"> <td> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Host: </td> <td> <select name="host_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("host_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("host_id") == "0") {?> selected<?php }?>>None</option> <?php $hosts = db_fetch_assoc("select id,CONCAT_WS('',description,' (',hostname,')') as name from host order by description,hostname"); if (sizeof($hosts) > 0) { foreach ($hosts as $host) { print "<option value='" . $host["id"] . "'"; if (get_request_var_request("host_id") == $host["id"]) { print " selected"; } print ">" . title_trim($host["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="50"> Template: </td> <td width="1"> <select name="template_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("template_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("template_id") == "0") {?> selected<?php }?>>None</option> <?php $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 nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> <tr> <td width="50"> Method: </td> <td width="1"> <select name="method_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("method_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("method_id") == "0") {?> selected<?php }?>>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 nowrap style='white-space: nowrap;' width="50"> Rows per Page: </td> <td width="1"> <select name="ds_rows" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("ds_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("ds_rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> </tr> </table> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Search: </td> <td width="1"> <input type="text" name="filter" size="40" value="<?php print get_request_var_request("filter");?>"> </td> </tr> </table> </td> <input type='hidden' name='page' value='1'> </form> </tr> <?php html_end_box(); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where1 = "AND (data_template_data.name_cache like '%%" . get_request_var_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 '%%" . get_request_var_request("filter") . "%%'" . " OR data_template.name like '%%" . get_request_var_request("filter") . "%%')"; }else{ $sql_where1 = ""; $sql_where2 = ""; } if (get_request_var_request("host_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("host_id") == "0") { $sql_where1 .= " AND data_local.host_id=0"; $sql_where2 .= " AND data_local.host_id=0"; }elseif (!empty($_REQUEST["host_id"])) { $sql_where1 .= " AND data_local.host_id=" . get_request_var_request("host_id"); $sql_where2 .= " AND data_local.host_id=" . get_request_var_request("host_id"); } if (get_request_var_request("template_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("template_id") == "0") { $sql_where1 .= " AND data_template_data.data_template_id=0"; $sql_where2 .= " AND data_template_data.data_template_id=0"; }elseif (!empty($_REQUEST["host_id"])) { $sql_where1 .= " AND data_template_data.data_template_id=" . get_request_var_request("template_id"); $sql_where2 .= " AND data_template_data.data_template_id=" . get_request_var_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"; }elseif (!empty($_REQUEST["method_id"])) { $sql_where1 .= " AND data_template_data.data_input_id=" . get_request_var_request("method_id"); $sql_where2 .= " AND data_template_data.data_input_id=" . get_request_var_request("method_id"); } $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"); $data_sources = db_fetch_assoc("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.host_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 " . (get_request_var_request("ds_rows")*(get_request_var_request("page")-1)) . "," . get_request_var_request("ds_rows")); html_start_box("", "100%", $colors["header"], "3", "center", ""); /* generate page list */ $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, get_request_var_request("ds_rows"), $total_rows, "data_sources.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id")); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='7'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='data_sources.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id") . "&page=" . (get_request_var_request("page")-1) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((get_request_var_request("ds_rows")*(get_request_var_request("page")-1))+1) . " to " . ((($total_rows < get_request_var_request("ds_rows")) || ($total_rows < (get_request_var_request("ds_rows")*get_request_var_request("page")))) ? $total_rows : (get_request_var_request("ds_rows")*get_request_var_request("page"))) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if ((get_request_var_request("page") * get_request_var_request("ds_rows")) < $total_rows) { $nav .= "<a class='linkOverDark' href='data_sources.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id") . "&page=" . (get_request_var_request("page")+1) . "'>"; } $nav .= "Next"; if ((get_request_var_request("page") * get_request_var_request("ds_rows")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; $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")); $i = 0; 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($colors["alternate"], $colors["light"], $i, 'line' . $data_source["local_data_id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='data_sources.php?action=ds_edit&id=" . $data_source["local_data_id"] . "' title='" . htmlspecialchars($data_source["name_cache"]) . "'>" . ((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim(htmlentities($data_source["name_cache"]), read_config_option("max_title_data_source"))) : title_trim(htmlentities($data_source["name_cache"]), 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(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $data_input_name) : $data_input_name) . "</a>", $data_source["local_data_id"]); form_selectable_cell(get_poller_interval($poller_interval), $data_source["local_data_id"]); form_selectable_cell(($data_source['active'] == "on" ? "Yes" : "No"), $data_source["local_data_id"]); form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $data_source['data_template_name']) : $data_source['data_template_name']) . "</a>", $data_source["local_data_id"]); form_checkbox_cell($data_source["name_cache"], $data_source["local_data_id"]); form_end_row(); } /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>No Data Sources</em></td></tr>"; } html_end_box(false); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($ds_actions); print "</form>\n"; }
<td width="1"> <select name="method_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if ($_REQUEST["method_id"] == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if ($_REQUEST["method_id"] == "0") {?> selected<?php }?>>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 ($_REQUEST["method_id"] == $method["id"]) { print " selected"; } print ">" . title_trim($method["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="50"> Search: </td> <td width="1"> <input type="text" name="filter" size="40" value="<?php print $_REQUEST["filter"];?>"> </td> </tr> </table> </td>
?> </select> </td> <td> <select id='delay' name='delay' title='<?php print __('Cycle Rotation Refresh Frequency'); ?> '> <?php if (sizeof($page_refresh_interval)) { foreach ($page_refresh_interval as $key => $value) { print "<option value='{$key}'"; if (get_request_var('delay') == $key) { print ' selected'; } print '>' . title_trim($value, 40) . "</option>\n"; } } ?> </select> </td> <td> <select id='graphs' name='graphs' title='<?php print __('Number of Graphs per Page'); ?> '> <?php foreach ($graphs_array as $key => $value) { print "<option value='{$key}'"; if (get_request_var('graphs') == $key) { print ' selected';
$end_val = sizeof($graph_timespans); } else { if (isset($graph_timespans[GT_CUSTOM])) { asort($graph_timespans); array_shift($graph_timespans); } $start_val = 1; $end_val = sizeof($graph_timespans) + 1; } if (sizeof($graph_timespans) > 0) { for ($value = $start_val; $value < $end_val; $value++) { print "<option value='{$value}'"; if ($_SESSION["sess_current_timespan"] == $value) { print " selected"; } print ">" . title_trim($graph_timespans[$value], 40) . "</option>\n"; } } ?> </select> <strong> From: </strong> <input type='text' name='date1' id='date1' size='14' value='<?php print isset($_SESSION["sess_current_date1"]) ? $_SESSION["sess_current_date1"] : ""; ?> '> <input type='image' src='images/calendar.gif' alt='Start date selector' border='0' align='absmiddle' onclick="return showCalendar('date1');"> <strong>To: </strong> <input type='text' name='date2' id='date2' size='14' value='<?php print isset($_SESSION["sess_current_date2"]) ? $_SESSION["sess_current_date2"] : "";
function html_create_list($form_data, $column_display, $column_id, $form_previous_value, $trim_display_length = 0) { require_once(CACTI_BASE_PATH . "/lib/sys/variable.php"); if (empty($column_display)) { foreach (array_keys($form_data) as $id) { if (empty($trim_display_length)) { $item_text = htmlspecialchars((remove_variables($form_data[$id])), ENT_QUOTES); }else{ $item_text = htmlspecialchars((title_trim(remove_variables($form_data[$id]), $trim_display_length)), ENT_QUOTES); } echo '<option value="' . htmlspecialchars($id, ENT_QUOTES) . '"'; if (strval($form_previous_value) == $id) { echo " selected"; } echo ">$item_text</option>\n"; } }else{ if (sizeof($form_data) > 0) { foreach ($form_data as $row) { if (empty($trim_display_length)) { $item_text = htmlspecialchars((remove_variables($row[$column_display])), ENT_QUOTES); }else{ $item_text = htmlspecialchars((title_trim(remove_variables($row[$column_display]), $trim_display_length)), ENT_QUOTES); } echo "<option value='" . htmlspecialchars($row[$column_id], ENT_QUOTES) . "'"; if (strval($form_previous_value) == $row[$column_id]) { echo " selected"; } //if (isset($row["host_id"])) { // print ">" . htmlspecialchars(title_trim($row[$column_display], 75), ENT_QUOTES) . "</option>\n"; //}else{ echo ">$item_text</option>\n"; //} } } } }
function hmib_running() { global $config, $item_rows, $hmib_hrSWTypes, $hmib_hrSWRunStatus; /* ================= input validation and session storage ================= */ $filters = array('rows' => array('filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1'), 'page' => array('filter' => FILTER_VALIDATE_INT, 'default' => '1'), 'template' => array('filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1'), 'device' => array('filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1'), 'type' => array('filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1'), 'process' => array('filter' => FILTER_CALLBACK, 'pageset' => true, 'default' => '-1', 'options' => array('options' => 'sanitize_search_string')), 'sort_column' => array('filter' => FILTER_CALLBACK, 'default' => 'name', 'options' => array('options' => 'sanitize_search_string')), 'sort_direction' => array('filter' => FILTER_CALLBACK, 'default' => 'ASC', 'options' => array('options' => 'sanitize_search_string'))); validate_store_request_vars($filters, 'sess_hmib_run'); /* ================= input validation ================= */ ?> <script type='text/javascript'> function applyFilter() { strURL = '?action=running'; strURL += '&template=' + $('#template').val(); strURL += '&filter=' + $('#filter').val(); strURL += '&rows=' + $('#rows').val(); strURL += '&device=' + $('#device').val(); strURL += '&process=' + $('#process').val(); strURL += '&type=' + $('#type').val(); strURL += '&header=false'; loadPageNoHeader(strURL); } function clearFilter() { strURL = '?action=running&clear=true&header=false'; loadPageNoHeader(strURL); } $(function() { $('#running').submit(function(event) { event.preventDefault(); applyFilter(); }); }); </script> <?php html_start_box(__('Running Processes'), '100%', '', '3', 'center', ''); ?> <tr class='even'> <td> <form id='running' method='get' action='hmib.php?action=running'> <table class='filterTable'> <tr> <td style='width:55px;white-space: nowrap;'> <?php print __('OS Type'); ?> </td> <td> <select id='type' onChange='applyFilter()'> <option value='-1'<?php if (get_request_var('type') == '-1') { ?> selected<?php } ?> ><?php print __('All'); ?> </option> <?php $types = db_fetch_assoc("SELECT DISTINCT id, CONCAT_WS('', name, ' [', version, ']') AS name\n\t\t\t\t\t\t\t\tFROM plugin_hmib_hrSystemTypes AS hrst\n\t\t\t\t\t\t\t\tINNER JOIN plugin_hmib_hrSystem AS hrs\n\t\t\t\t\t\t\t\tON hrst.id=hrs.host_type\n\t\t\t\t\t\t\t\tWHERE name!='' ORDER BY name"); if (sizeof($types)) { foreach ($types as $t) { echo "<option value='" . $t['id'] . "' " . (get_request_var('type') == $t['id'] ? 'selected' : '') . '>' . $t['name'] . '</option>'; } } ?> </select> </td> <td> <?php print __('Device'); ?> </td> <td> <select id='device' onChange='applyFilter()'> <option value='-1'<?php if (get_request_var('device') == '-1') { ?> selected<?php } ?> ><?php print __('All'); ?> </option> <?php $hosts = db_fetch_assoc('SELECT DISTINCT host.id, host.description FROM plugin_hmib_hrSystem AS hrs INNER JOIN host ON hrs.host_id=host.id ' . (get_request_var('type') > 0 ? 'WHERE hrs.host_type=' . get_request_var('type') : '') . ' ORDER BY description'); if (sizeof($hosts)) { foreach ($hosts as $h) { echo "<option value='" . $h['id'] . "' " . (get_request_var('device') == $h['id'] ? 'selected' : '') . '>' . $h['description'] . '</option>'; } } ?> </select> </td> <td> <?php print __('Template'); ?> </td> <td> <select id='template' onChange='applyFilter()'> <option value='-1'<?php if (get_request_var('template') == '-1') { ?> selected<?php } ?> ><?php print __('All'); ?> </option> <?php $templates = db_fetch_assoc('SELECT DISTINCT ht.id, ht.name FROM host_template AS ht INNER JOIN host ON ht.id=host.host_template_id INNER JOIN plugin_hmib_hrSystem AS hrs ON host.id=hrs.host_id ORDER BY name'); if (sizeof($templates)) { foreach ($templates as $t) { echo "<option value='" . $t['id'] . "' " . (get_request_var('template') == $t['id'] ? 'selected' : '') . '>' . $t['name'] . '</option>'; } } ?> </select> </td> <td> <input type='button' onClick='applyFilter()' value='<?php print __('Go'); ?> '> </td> <td> <input type='button' onClick='clearFilter()' value='<?php print __('Clear'); ?> '> </td> </tr> </table> <table class='filterTable'> <tr> <td style='width:55px;'> <?php print __('Search'); ?> </td> <td> <input type='textbox' size='25' id='filter' value='<?php print get_request_var('filter'); ?> '> </td> <td> <?php print __('Process'); ?> </td> <td> <select id='process' onChange='applyFilter()'> <option value='-1'<?php if (get_request_var('process') == '-1') { ?> selected<?php } ?> ><?php print __('All'); ?> </option> <?php $procs = db_fetch_assoc("SELECT DISTINCT name\n\t\t\t\t\t\t\t\tFROM plugin_hmib_hrSWRun_last_seen AS hrswr\n\t\t\t\t\t\t\t\tWHERE name!='System Idle Time' AND name NOT LIKE '128%' AND (name IS NOT NULL AND name!='')\n\t\t\t\t\t\t\t\tORDER BY name"); if (sizeof($procs)) { foreach ($procs as $p) { echo "<option value='" . $p['name'] . "' " . (get_request_var('process') == $p['name'] ? 'selected' : '') . '>' . $p['name'] . '</option>'; } } ?> </select> </td> <td> <?php print __('Entries'); ?> </td> <td> <select id='rows' onChange='applyFilter()'> <option value='-1'<?php if (get_request_var('rows') == '-1') { ?> selected<?php } ?> ><?php print __('Default'); ?> </option> <?php if (sizeof($item_rows)) { foreach ($item_rows as $key => $name) { echo "<option value='" . $key . "' " . (get_request_var('rows') == $key ? 'selected' : '') . '>' . $name . '</option>'; } } ?> </select> </td> </tr> </table> </td> <input type='hidden' id='page' value='<?php print get_request_var('page'); ?> '> </form> </tr> <?php html_end_box(); if (get_request_var('rows') == '-1') { $num_rows = read_config_option('num_rows_table'); } else { $num_rows = get_request_var('rows'); } $limit = ' LIMIT ' . $num_rows * (get_request_var('page') - 1) . ',' . $num_rows; $sql_where = "WHERE hrswr.name!='' AND hrswr.name!='System Idle Process'"; if (get_request_var('template') != '-1') { $sql_where .= (strlen($sql_where) ? ' AND' : 'WHERE') . ' host.host_template_id=' . get_request_var('template'); } if (get_request_var('device') != '-1') { $sql_where .= (strlen($sql_where) ? ' AND' : 'WHERE') . ' host.id=' . get_request_var('device'); } if (get_request_var('type') != '-1') { $sql_where .= (strlen($sql_where) ? ' AND' : 'WHERE') . ' hrs.host_type=' . get_request_var('type'); } if (get_request_var('process') != '-1') { $sql_where .= (strlen($sql_where) ? ' AND' : 'WHERE') . " hrswr.name='" . get_request_var('process') . "'"; } if (get_request_var('filter') != '') { $sql_where .= (strlen($sql_where) ? ' AND' : 'WHERE') . " (host.description LIKE '%" . get_request_var('filter') . "%' OR\n\t\t\thrswr.name LIKE '%" . get_request_var('filter') . "%' OR\n\t\t\thost.hostname LIKE '%" . get_request_var('filter') . "%')"; } $sql = "SELECT hrswr.*, host.hostname, host.description, host.disabled\n\t\tFROM plugin_hmib_hrSWRun AS hrswr\n\t\tINNER JOIN host\n\t\tON host.id=hrswr.host_id\n\t\tINNER JOIN plugin_hmib_hrSystem AS hrs\n\t\tON hrs.host_id=host.id\n\t\tINNER JOIN plugin_hmib_hrSystemTypes AS hrst\n\t\tON hrst.id=hrs.host_type\n\t\t{$sql_where}\n\t\tORDER BY " . get_request_var('sort_column') . ' ' . get_request_var('sort_direction') . ' ' . $limit; //echo $sql; $rows = db_fetch_assoc($sql); $total_rows = db_fetch_cell("SELECT COUNT(*)\n\t\tFROM plugin_hmib_hrSWRun AS hrswr\n\t\tINNER JOIN host\n\t\tON host.id=hrswr.host_id\n\t\tINNER JOIN plugin_hmib_hrSystem AS hrs\n\t\tON hrs.host_id=host.id\n\t\tINNER JOIN plugin_hmib_hrSystemTypes AS hrst\n\t\tON hrst.id=hrs.host_type\n\t\t{$sql_where}"); $totals = db_fetch_row("SELECT\n\t\tROUND(SUM(perfCPU),2) as cpu,\n\t\tROUND(SUM(perfMemory),2) as memory \n\t\tFROM plugin_hmib_hrSWRun AS hrswr \n\t\tINNER JOIN host ON host.id=hrswr.host_id \n\t\tINNER JOIN plugin_hmib_hrSystem AS hrs \n\t\tON hrs.host_id=host.id \n\t\tINNER JOIN plugin_hmib_hrSystemTypes AS hrst \n\t\tON hrst.id=hrs.host_type\n\t\t{$sql_where}"); $nav = html_nav_bar('hmib.php?action=running', MAX_DISPLAY_PAGES, get_request_var('page'), $num_rows, $total_rows, 16, __('Processes'), 'page', 'main'); print $nav; html_start_box('', '100%', '', '3', 'center', ''); $display_text = array('description' => array('display' => __('Hostname'), 'sort' => 'ASC', 'align' => 'left'), 'hrswr.name' => array('display' => __('Process'), 'sort' => 'DESC', 'align' => 'left'), 'path' => array('display' => __('Path'), 'sort' => 'ASC', 'align' => 'left'), 'parameters' => array('display' => __('Parameters'), 'sort' => 'ASC', 'align' => 'left'), 'perfCpu' => array('display' => __('CPU (Hrs)'), 'sort' => 'DESC', 'align' => 'right'), 'perfMemory' => array('display' => __('Memory (MB)'), 'sort' => 'DESC', 'align' => 'right'), 'type' => array('display' => __('Type'), 'sort' => 'ASC', 'align' => 'left'), 'status' => array('display' => __('Status'), 'sort' => 'DESC', 'align' => 'right')); html_header_sort($display_text, get_request_var('sort_column'), get_request_var('sort_direction'), false, 'hmib.php?action=running', 'page', 'main'); if (sizeof($rows)) { foreach ($rows as $row) { form_alternate_row(); if (api_plugin_user_realm_auth('host.php')) { $host_url = "<a href='" . htmlspecialchars($config['url_path'] . 'host.php?action=edit&id=' . $row['host_id']) . "' title='" . __('Edit Device') . "'>" . $row['hostname'] . '</a>'; } else { $host_url = $row['hostname']; } echo "<td style='white-space:nowrap;' align='left' width='200'><strong>" . (strlen(get_request_var('filter')) ? preg_replace('/(' . preg_quote(get_request_var('filter')) . ')/i', "<span class='filteredValue'>\\1</span>", $row['description'] . '</strong> [' . $host_url . ']') : $row['description'] . '</strong> [' . $host_url . ']') . '</td>'; echo "<td style='white-space:nowrap;' align='left' width='100'>" . (strlen(get_request_var('filter')) ? preg_replace('/(' . preg_quote(get_request_var('filter')) . ')/i', "<span class='filteredValue'>\\1</span>", $row['name']) : $row['name']) . '</td>'; echo "<td style='white-space:nowrap;' align='left' title='" . $row['path'] . "' width='100'>" . (strlen(get_request_var('filter')) ? preg_replace('/(' . preg_quote(get_request_var('filter')) . ')/i', "<span class='filteredValue'>\\1</span>", title_trim($row['path'], 40)) : title_trim($row['path'], 40)) . '</td>'; echo "<td style='white-space:nowrap;' align='left' title='" . $row['parameters'] . "' width='100'>" . (strlen(get_request_var('filter')) ? preg_replace('/(' . preg_quote(get_request_var('filter')) . ')/i', "<span class='filteredValue'>\\1</span>", title_trim($row['parameters'], 40)) : title_trim($row['parameters'], 40)) . '</td>'; echo "<td style='white-space:nowrap;' align='right'>" . number_format_i18n($row['perfCPU'] / 3600, 0) . '</td>'; echo "<td style='white-space:nowrap;' align='right'>" . number_format_i18n($row['perfMemory'] / 1024, 2) . '</td>'; echo "<td width='20' style='white-space:nowrap;' align='left'>" . (isset($hmib_hrSWTypes[$row['type']]) ? $hmib_hrSWTypes[$row['type']] : 'Unknown') . '</td>'; echo "<td style='white-space:nowrap;' align='right'>" . $hmib_hrSWRunStatus[$row['status']] . '</td>'; } echo '</tr>'; } else { print '<tr><td><em>' . __('No Running Software Found') . '</em></td></tr>'; } html_end_box(false); if (sizeof($rows)) { print $nav; } running_legend($totals, $total_rows); }
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 flowview_display_form() { global $config, $graph_timespans; include $config['base_path'] . '/plugins/flowview/variables.php'; include $config['base_path'] . '/plugins/flowview/arrays.php'; display_tabs(); form_start('flowview.php', 'flowview'); html_start_box('Flow Filter Constraints <span id="text"></span>', '100%', '', '3', 'center', ''); ?> <tr class='even center'> <td style='text-align:center'> <table class='filterTable' width='100%'> <tr> <td> Filter </td> <td> <?php draw_edit_control('query', $query_name_field); ?> </td> <td> Listener </td> <td> <?php draw_edit_control('device_name', $device_name_field); ?> </td> </tr> <tr> <td> Presets </td> <td> <select id='predefined_timespan' name='predefined_timespan' onChange='applyTimespan()'> <?php if ($timespan == 0) { $graph_timespans[GT_CUSTOM] = 'Custom'; $start_val = 0; $end_val = sizeof($graph_timespans); } else { if (isset($graph_timespans[GT_CUSTOM])) { asort($graph_timespans); array_shift($graph_timespans); } $start_val = 1; $end_val = sizeof($graph_timespans) + 1; } if (sizeof($graph_timespans) > 0) { for ($value = $start_val; $value < $end_val; $value++) { print "<option value='{$value}'"; if ($timespan == $value) { print ' selected'; } print '>' . title_trim($graph_timespans[$value], 40) . "</option>\n"; } } ?> </select> </td> <td> Start Date </td> <td class='nowrap'> <input type='text' size='15' id='date1' value='<?php echo $date1; ?> '> <i id='startDate' class='calendar fa fa-calendar' title='Start Date Selector'></i> </td> <td> End Date </td> <td> <input type='text' size='15' id='date2' value='<?php echo $date2; ?> '> <i id='endDate' class='calendar fa fa-calendar' title='End Date Selector'></i> </td> </tr> <tr> <td colspan='9'><hr size='2'></td> </tr> <tr> <td> Protocols </td> <td> <?php draw_edit_control('protocols', $ip_protocol_field); ?> </td> <td> TCP Flags </td> <td> <input type='text' size='10' name='tcp_flags' value='<?php echo $tcp_flags; ?> '> </td> <td> TOS Fields </td> <td> <input type='text' size='10' name='tos_fields' value='<?php echo $tos_fields; ?> '> </td> <td colspan=2> (e.g., -0x0b/0x0F) </td> </tr> <tr> <td> Source IP </td> <td> <input type='text' size='19' name='source_address' value='<?php echo $source_address; ?> '> </td> <td> Source Port(s) </td> <td> <input type='text' size='20' name='source_port' value='<?php echo $source_port; ?> '> </td> <td> Source Interface </td> <td> <input type='text' size='2' name='source_if' value='<?php echo $source_if; ?> '> </td> <td> Source AS </td> <td> <input type='text' size='6' name='source_as' value='<?php echo $source_as; ?> '> </td> </tr> <tr> <td> Dest IP </td> <td> <input type='text' size='19' name='dest_address' value='<?php echo $dest_address; ?> '></td> <td> Dest Port(s) </td> <td> <input type='text' size='20' name='dest_port' value='<?php echo $dest_port; ?> '> </td> <td> Dest Interface </td> <td> <input type='text' size='2' name='dest_if' value='<?php echo $dest_if; ?> '> </td> <td> Dest AS </td> <td> <input type='text' size='6' name='dest_as' value='<?php echo $dest_as; ?> '> <input type='hidden' name='header' value='false'> </td> </tr> <tr> <td colspan='9'> <hr size='2'> <center><strong>Note:</strong> Multiple field entries, separated by commas, are permitted in the fields above. A minus sign (-) will negate an entry (e.g. -80 for Port, would mean any Port but 80)</center> <hr size='2'> </td> </tr> </table> </td> </tr> <?php html_end_box(false); ?> <?php html_start_box('Report Parameters', '100%', '', '3', 'center', ''); ?> <tr class='even'> <td> <table class='filterTable'> <tr id='rsettings'> <td>Statistics:</td> <td><?php draw_edit_control('stat_report', $stat_report_field); ?> </td> <td>Printed:</td> <td><?php draw_edit_control('print_report', $print_report_field); ?> </td> <td>Include if:</td> <td><?php draw_edit_control('flow_select', $flow_select_field); ?> </td> <td>Resolve Addresses:</td> <td><?php draw_edit_control('resolve_addresses', $resolve_addresses_field); ?> </td> </tr> <tr id='rlimits'> <td class='sortfield'>Sort Field:</td> <td class='sortfield'><select id='sort_field' name='sort_field'></select></td> <td>Max Flows:</td> <td><?php draw_edit_control('cutoff_lines', $cutoff_lines_field); ?> </td> <td>Minimum Bytes:</td> <td><?php draw_edit_control('cutoff_octets', $cutoff_octets_field); ?> </td> </tr> </table> </td> </tr> <tr> <td colspan='9'><hr size='2'></td> </tr> <tr> <td colspan='9'> <input type='hidden' id='action' name='action' value='view'> <input type='hidden' id='new_query' name='new_query' value=''> <input type='hidden' id='changed' name='changed' value='0'> <center> <input id='view' type='button' name='view' value='View'> <input id='defaults' type='button' value='Defaults'> <input id='save' type='button' name='save' value='Save'> <input id='saveas' type='button' name='saveas' value='Save As'> <input id='delete' type='button' name='delete' value='Delete'> </center> </td> </tr> <?php html_end_box(); form_end(); ?> <script type='text/javascript'> var date1Open = false; var date2Open = false; function applyTimespan() { $.getJSON('flowview.php?action=gettimespan×pan='+$('#predefined_timespan').val(), function(data) { $('#date1').val(data['current_value_date1']); $('#date2').val(data['current_value_date2']); }); } function applyFilter() { loadPageNoHeader('flowview.php?action=loadquery&tab=filters&header=false&query='+$('#query').val()); } function statSelect() { statval = $('#stat_report').val(); setStatOption(statval); if (statval > 0) { $('#print_report').attr('value', 0); $('#print_report').prop('disabled', true); $('#rlimits').children('.sortfield').show(); }else{ $('#print_report').prop('disabled', false); } if (statval == 99 || statval < 1) { $('#rlimits').hide(); } else { $('#rlimits').show(); } if (statval == 0 && $('#print_report').val() == 0) { $('#view').prop('disabled', true); $('#save').prop('disabled', true); $('#saveas').prop('disabled', true); }else{ $('#view').prop('disabled', false); $('#save').prop('disabled', false); $('#saveas').prop('disabled', false); } } function printSelect() { statval = $('#print_report').val(); if (statval > 0) { $('#stat_report').attr('value',0); $('#stat_report').prop('disabled', false); $('#sort_field').prop('disabled', false); $('#rlimits').hide(); $('#rlimits').children('.sortfield').hide(); } else { $('#rlimits').show(); $('#cutoff_lines').prop('disabled', false); $('#cutoff_octets').prop('disabled', false); if ($('#stat_report').val() == 0) { $('#stat_report').attr('value', 10); } $('#stat_report').prop('disabled', false); statSelect(); return; } if (statval == 4 || statval == 5) { $('#cutoff_lines').prop('disabled', false); $('#cutoff_octets').prop('disabled', false); $('#rlimits').show(); } else { $('#cutoff_lines').prop('disabled', true); $('#cutoff_octets').prop('disabled', true); $('#rlimits').hide(); } if (statval == 0 && $('#stat_report').val() == 0) { $('#view').prop('disabled', true); $('#save').prop('disabled', true); $('#saveas').prop('disabled', true); }else{ $('#view').prop('disabled', false); $('#save').prop('disabled', false); $('#saveas').prop('disabled', false); } } $('#device_name').change(function () { <?php if (api_user_realm_auth('flowview_devices.php')) { ?> if ($(this).val() == 0) { $('#view').prop('disabled', true); $('#save').prop('disabled', true); }else{ $('#view').prop('disabled', false); $('#save').prop('disabled', false); } <?php } else { ?> if ($(this).val() == 0) { $('#view').prop('disabled', true); }else{ $('#view').prop('disabled', false); } <?php } ?> }); $('#date1, #date2').change(function() { if ($('#predefined_timespan option').length == 28) { $('#predefined_timespan').prepend("<option value='0' selected='selected'>Custom</option>"); $('#predefined_timespan').val('0'); <?php if (get_selected_theme() != 'classic') { ?> $('#predefined_timespan').selectmenu('refresh'); <?php } ?> } }); $(function() { $('#startDate').click(function() { if (date1Open) { date1Open = false; $('#date1').datetimepicker('hide'); }else{ date1Open = true; $('#date1').datetimepicker('show'); } }); $('#endDate').click(function() { if (date2Open) { date2Open = false; $('#date2').datetimepicker('hide'); }else{ date2Open = true; $('#date2').datetimepicker('show'); } }); $('#date1').datetimepicker({ minuteGrid: 10, stepMinute: 1, showAnim: 'slideDown', numberOfMonths: 1, timeFormat: 'HH:mm', dateFormat: 'yy-mm-dd', showButtonPanel: false }); $('#date2').datetimepicker({ minuteGrid: 10, stepMinute: 1, showAnim: 'slideDown', numberOfMonths: 1, timeFormat: 'HH:mm', dateFormat: 'yy-mm-dd', showButtonPanel: false }); $('#saveas').hide(); <?php if (api_user_realm_auth('flowview_devices.php')) { ?> if ($('#query').val() == 0) { $('#delete').hide(); }else{ $('#save').attr('value', 'Update'); $('#saveas').show(); } <?php } else { ?> $('#delete').hide(); $('#save').hide(); <?php } ?> $('#flowview').change(function() { $('#changed').attr('value', '1'); }); <?php if (api_user_realm_auth('flowview_devices.php')) { ?> if ($('#device_name').val() == 0) { $('#view').prop('disabled', true); $('#save').prop('disabled', true); }else{ $('#view').prop('disabled', false); $('#save').prop('disabled', false); } <?php } else { ?> if ($('#device_name').val() == 0) { $('#view').prop('disabled', true); }else{ $('#view').prop('disabled', false); } <?php } ?> $('#stat_report').change(function() { statSelect(); }); $('#print_report').change(function() { printSelect(); }); statSelect(); printSelect(); $('#fdialog').dialog({ autoOpen: false, width: 380, height: 120, resizable: false, modal: true }); }); $('#view').click(function() { $('#action').attr('value', 'view'); $.post('flowview.php', $('input, select, textarea').serialize(), function(data) { $('#main').html(data); applySkin(); }); }); $('#saveas').click(function() { console.log('This is saveas'); $('#squery').attr('value', $('#query>option:selected').text()+' (New)'); $('#fdialog').dialog('open'); $('#qcancel').click(function() { $('#fdialog').dialog('close'); }); $('#qsave').click(function() { $('#new_query').attr('value', $('#squery').val()); $('#action').attr('value', 'save'); $.post('flowview.php', $('#flowview').serialize(), function(data) { if (data!='error') { $('#text').show().text('Filter Saved').fadeOut(2000); $('#query').append("<option value='"+data+"'>"+$('#new_query').val()+"</option>"); $('#query').attr('value', data); } }); $('#fdialog').dialog('close'); }); }); $('#save').click(function() { if ($('#query').val() == 0) { $('#fdialog').dialog('open'); $('#qcancel').click(function() { $('#fdialog').dialog('close'); }); $('#qsave').click(function() { $('#new_query').attr('value', $('#squery').val()); $('#action').attr('value', 'save'); $.post('flowview.php', $('#flowview').serialize(), function(data) { if (data!='error') { loadPageNoHeader('flowview.php?tab=filters&header=false&action=loadquery&query='+data); $('#text').show().text('Filter Settings Saved').fadeOut(2000); } }); $('#fdialog').dialog('close'); }); }else{ $('#action').attr('value', 'save'); $.post('flowview.php', $('#flowview').serialize(), function(data) { $('#text').show().text('Filter Updated').fadeOut(2000); }); } }); $('#delete').click(function() { loadPageNoHeader('flowview.php?header=false&action=delete&query='+$('#query').val()); }); $('#defaults').click(function() { setDefaults(); }); function setDefaults() { // Flow Filter Settings $('#device').attr('value',0); $('#date1').attr('value', ''); $('#start_time').attr('value','-8 HOURS'); $('#date2').attr('value',''); $('#end_time').attr('value','NOW'); $('#source_address').attr('value',''); $('#source_port').attr('value',''); $('#source_if').attr('value',''); $('#source_as').attr('value',''); $('#dest_address').attr('value',''); $('#dest_port').attr('value',''); $('#dest_if').attr('value',''); $('#dest_as').attr('value',''); $('#protocols').attr('value',0); $('#tos_fields').attr('value',''); $('#tcp_flags').attr('value',''); // Report Settings $('#stat_report').attr('value',10); $('#print_report').attr('value',0); $('#flow_select').attr('value',1); $('#sort_field').attr('value',4); $('#cutoff_lines').attr('value','100'); $('#cutoff_octets').attr('value', ''); $('#resolve_addresses').attr('value',0); statSelect(); } function setStatOption(choose) { stat = document.flowview.sort_field; stat.options.length = 0; defsort = 1; if (choose == 10) { stat.options[stat.options.length] = new Option('Source IP', '1'); stat.options[stat.options.length] = new Option('Destination IP', '2'); stat.options[stat.options.length] = new Option('Flows', '3'); stat.options[stat.options.length] = new Option('Bytes', '4'); stat.options[stat.options.length] = new Option('Packets', '5'); defsort = 4; } else if (choose == 5 || choose == 6 || choose == 7) { stat.options[stat.options.length] = new Option('Port', '1'); stat.options[stat.options.length] = new Option('Flows', '2'); stat.options[stat.options.length] = new Option('Bytes', '3'); stat.options[stat.options.length] = new Option('Packets', '4'); defsort = 3; } else if (choose == 8 || choose == 9 || choose == 11) { stat.options[stat.options.length] = new Option('IP', '1'); stat.options[stat.options.length] = new Option('Flows', '2'); stat.options[stat.options.length] = new Option('Bytes', '3'); stat.options[stat.options.length] = new Option('Packets', '4'); defsort = 3; } else if (choose == 12) { stat.options[stat.options.length] = new Option('Protocol', '1'); stat.options[stat.options.length] = new Option('Flows', '2'); stat.options[stat.options.length] = new Option('Bytes', '3'); stat.options[stat.options.length] = new Option('Packets', '4'); defsort = 3; } else if (choose == 17 || choose == 18) { stat.options[stat.options.length] = new Option('Interface', '1'); stat.options[stat.options.length] = new Option('Flows', '2'); stat.options[stat.options.length] = new Option('Bytes', '3'); stat.options[stat.options.length] = new Option('Packets', '4'); defsort = 3; } else if (choose == 23) { stat.options[stat.options.length] = new Option('Input Interface', '1'); stat.options[stat.options.length] = new Option('Output Interface', '2'); stat.options[stat.options.length] = new Option('Flows', '3'); stat.options[stat.options.length] = new Option('Bytes', '4'); stat.options[stat.options.length] = new Option('Packets', '5'); defsort = 4; } else if (choose == 19 || choose == 20) { stat.options[stat.options.length] = new Option('AS', '1'); stat.options[stat.options.length] = new Option('Flows', '2'); stat.options[stat.options.length] = new Option('Bytes', '3'); stat.options[stat.options.length] = new Option('Packets', '4'); defsort = 3; } else if (choose == 21) { stat.options[stat.options.length] = new Option('Source AS', '1'); stat.options[stat.options.length] = new Option('Destination AS', '2'); stat.options[stat.options.length] = new Option('Flows', '3'); stat.options[stat.options.length] = new Option('Bytes', '4'); stat.options[stat.options.length] = new Option('Packets', '5'); defsort = 4; } else if (choose == 22) { stat.options[stat.options.length] = new Option('TOS', '1'); stat.options[stat.options.length] = new Option('Flows', '2'); stat.options[stat.options.length] = new Option('Bytes', '3'); stat.options[stat.options.length] = new Option('Packets', '4'); defsort = 3; } else if (choose == 24 || choose == 25) { stat.options[stat.options.length] = new Option('Prefix', '1'); stat.options[stat.options.length] = new Option('Flows', '2'); stat.options[stat.options.length] = new Option('Bytes', '3'); stat.options[stat.options.length] = new Option('Packets', '4'); defsort = 3; } else if (choose == 26) { stat.options[stat.options.length] = new Option('Source Prefix', '1'); stat.options[stat.options.length] = new Option('Destination Prefix', '2'); stat.options[stat.options.length] = new Option('Flows', '3'); stat.options[stat.options.length] = new Option('Bytes', '4'); stat.options[stat.options.length] = new Option('Packets', '5'); defsort = 4; } else { } if (statreport == choose) { stat.value = sortfield; } else { stat.value = defsort; } } var sortfield='<?php echo $sort_field; ?> '; var statreport='<?php echo $stat_report > 0 ? $stat_report : 0; ?> '; </script> <?php }
function syslog_removal() { global $syslog_actions, $message_types, $config; include dirname(__FILE__) . '/config.php'; /* ================= input validation and session storage ================= */ $filters = array('rows' => array('filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1'), 'page' => array('filter' => FILTER_VALIDATE_INT, 'default' => '1'), 'id' => array('filter' => FILTER_VALIDATE_INT, 'default' => '1'), 'enabled' => array('filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1'), 'filter' => array('filter' => FILTER_CALLBACK, 'pageset' => true, 'default' => '', 'options' => array('options' => 'sanitize_search_string')), 'sort_column' => array('filter' => FILTER_CALLBACK, 'default' => 'name', 'options' => array('options' => 'sanitize_search_string')), 'sort_direction' => array('filter' => FILTER_CALLBACK, 'default' => 'ASC', 'options' => array('options' => 'sanitize_search_string'))); validate_store_request_vars($filters, 'sess_syslogr'); /* ================= input validation ================= */ html_start_box(__('Syslog Removal Rule Filters'), '100%', '', '3', 'center', 'syslog_removal.php?action=edit&type=1'); syslog_filter(); html_end_box(); $sql_where = ''; if (get_request_var('rows') == -1) { $row_limit = read_config_option('num_rows_table'); } elseif (get_request_var('rows') == -2) { $row_limit = 999999; } else { $row_limit = get_request_var('rows'); } $removals = syslog_get_removal_records($sql_where, $row_limit); $rows_query_string = "SELECT COUNT(*)\n\t\tFROM `" . $syslogdb_default . "`.`syslog_remove`\n\t\t{$sql_where}"; $total_rows = syslog_db_fetch_cell($rows_query_string); $nav = html_nav_bar('syslog_removal.php?filter=' . get_request_var('filter'), MAX_DISPLAY_PAGES, get_request_var('page'), $row_limit, $total_rows, 13, 'Rules', 'page', 'main'); form_start('syslog_removal.php', 'chk'); print $nav; html_start_box('', '100%', '', '3', 'center', ''); $display_text = array('name' => array(__('Removal Name'), 'ASC'), 'enabled' => array(__('Enabled'), 'ASC'), 'type' => array(__('Match Type'), 'ASC'), 'message' => array(__('Search String'), 'ASC'), 'method' => array(__('Method'), 'DESC'), 'date' => array(__('Last Modified'), 'ASC'), 'user' => array(__('By User'), 'DESC')); html_header_sort_checkbox($display_text, get_request_var('sort_column'), get_request_var('sort_direction')); if (sizeof($removals)) { foreach ($removals as $removal) { form_alternate_row('line' . $removal['id'], true); form_selectable_cell(filter_value(title_trim($removal['name'], read_config_option('max_title_length')), get_request_var('filter'), $config['url_path'] . 'plugins/syslog/syslog_removal.php?action=edit&id=' . $removal['id']), $removal['id']); form_selectable_cell($removal['enabled'] == 'on' ? __('Yes') : __('No'), $removal['id']); form_selectable_cell($message_types[$removal['type']], $removal['id']); form_selectable_cell($removal['message'], $removal['id']); form_selectable_cell($removal['method'] == 'del' ? __('Deletion') : __('Transfer'), $removal['id']); form_selectable_cell(date('Y-m-d H:i:s', $removal['date']), $removal['id']); form_selectable_cell($removal['user'], $removal['id']); form_checkbox_cell($removal['name'], $removal['id']); form_end_row(); } } else { print "<tr><td colspan='4'><em>" . __('No Syslog Removal Rules Defined') . "</em></td></tr>"; } html_end_box(false); if (sizeof($removals)) { print $nav; } draw_actions_dropdown($syslog_actions); form_end(); }
function grow_right_pane_tree($tree_id, $leaf_id, $host_group_data) { global $current_user, $colors, $config, $graphs_per_page, $graph_timeshifts; include $config["include_path"] . "/global_arrays.php"; include_once $config["library_path"] . "/data_query.php"; include_once $config["library_path"] . "/tree.php"; include_once $config["library_path"] . "/html_utility.php"; define("MAX_DISPLAY_PAGES", 21); if (empty($tree_id)) { return; } $sql_where = ""; $sql_join = ""; $title = ""; $title_delimeter = ""; $search_key = ""; $leaf = db_fetch_row("SELECT order_key, title, host_id, host_grouping_type\r\n\t\t\t\t\tFROM graph_tree_items\r\n\t\t\t\t\tWHERE id={$leaf_id}"); $leaf_type = get_tree_item_type($leaf_id); /* get the "starting leaf" if the user clicked on a specific branch */ if (!empty($leaf_id)) { $search_key = substr($leaf["order_key"], 0, tree_tier($leaf["order_key"]) * CHARS_PER_TIER); } /* graph permissions */ if (read_config_option("auth_method") != 0) { /* get policy information for the sql where clause */ $sql_where = get_graph_permissions_sql($current_user["policy_graphs"], $current_user["policy_hosts"], $current_user["policy_graph_templates"]); $sql_where = empty($sql_where) ? "" : "AND {$sql_where}"; /* modify for multi user start */ if ($_SESSION["permission"] <= ACCESS_ADMINISTRATOR && $tree_id == $_SESSION["public_tree_id"]) { $sql_join = "\r\n LEFT JOIN (SELECT local_graph_id ,COUNT(local_graph_id) AS count FROM graph_tree_items WHERE local_graph_id != '0' GROUP BY local_graph_id) AS gti ON graph_tree_items.local_graph_id = gti.local_graph_id \r\n LEFT JOIN host ON (host.id=graph_local.host_id)\r\n LEFT JOIN graph_templates ON (graph_templates.id=graph_local.graph_template_id)\r\n LEFT JOIN user_auth_perms ON (graph_templates_graph.local_graph_id=user_auth_perms.item_id AND user_auth_perms.type=1)"; $sql_order = "gti.count DESC"; } else { $sql_join = "\r\n\t\t\tLEFT JOIN host ON (host.id=graph_local.host_id)\r\n\t\t\tLEFT JOIN graph_templates ON (graph_templates.id=graph_local.graph_template_id)\r\n\t\t\tLEFT JOIN user_auth_perms ON ((graph_templates_graph.local_graph_id=user_auth_perms.item_id AND user_auth_perms.type=1 AND user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (host.id=user_auth_perms.item_id and user_auth_perms.type=3 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (graph_templates.id=user_auth_perms.item_id AND user_auth_perms.type=4 AND user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . "))"; $sql_order = "graph_tree_items.order_key"; } /* modify for multi user end */ } /* get information for the headers */ if (!empty($tree_id)) { $tree_name = db_fetch_cell("SELECT name FROM graph_tree WHERE id={$tree_id}"); } if (!empty($leaf_id)) { $leaf_name = $leaf["title"]; } if (!empty($leaf_id)) { $host_name = db_fetch_cell("SELECT host.description FROM (graph_tree_items,host) WHERE graph_tree_items.host_id=host.id AND graph_tree_items.id={$leaf_id}"); } $host_group_data_array = explode(":", $host_group_data); if ($host_group_data_array[0] == "graph_template") { $host_group_data_name = "<strong>Graph Template:</strong> " . db_fetch_cell("select name from graph_templates where id=" . $host_group_data_array[1]); $graph_template_id = $host_group_data_array[1]; } elseif ($host_group_data_array[0] == "data_query") { $host_group_data_name = "<strong>Graph Template:</strong> " . (empty($host_group_data_array[1]) ? "Non Query Based" : db_fetch_cell("select name from snmp_query where id=" . $host_group_data_array[1])); $data_query_id = $host_group_data_array[1]; } elseif ($host_group_data_array[0] == "data_query_index") { $host_group_data_name = "<strong>Graph Template:</strong> " . (empty($host_group_data_array[1]) ? "Non Query Based" : db_fetch_cell("select name from snmp_query where id=" . $host_group_data_array[1])) . "-> " . (empty($host_group_data_array[2]) ? "Template Based" : get_formatted_data_query_index($leaf["host_id"], $host_group_data_array[1], $host_group_data_array[2])); $data_query_id = $host_group_data_array[1]; $data_query_index = $host_group_data_array[2]; } if (!empty($tree_name)) { $title .= $title_delimeter . "<strong>Tree:</strong>" . htmlspecialchars($tree_name); $title_delimeter = "-> "; } if (!empty($leaf_name)) { $title .= $title_delimeter . "<strong>Leaf:</strong>" . htmlspecialchars($leaf_name); $title_delimeter = "-> "; } if (!empty($host_name)) { $title .= $title_delimeter . "<strong>Host:</strong>" . htmlspecialchars($host_name); $title_delimeter = "-> "; } if (!empty($host_group_data_name)) { $title .= $title_delimeter . " {$host_group_data_name}"; $title_delimeter = "-> "; } if (isset($_REQUEST["tree_id"])) { $nodeid = "tree_" . get_request_var_request("tree_id"); } if (isset($_REQUEST["leaf_id"])) { $nodeid .= "_leaf_" . get_request_var_request("leaf_id"); } if (isset($_REQUEST["host_group_data"])) { $type_id = explode(":", get_request_var_request("host_group_data")); if ($type_id[0] == "graph_template") { $nodeid .= "_hgd_gt_" . $type_id[1]; } elseif ($type_id[0] == "data_query") { $nodeid .= "_hgd_dq_" . $type_id[1]; } else { $nodeid .= "_hgd_dqi" . $type_id[1] . "_" . $type_id[2]; } } print "<script type=\"text/javascript\">\n"; print "<!--\n"; print "myNode = findObj(\"{$nodeid}\")\n"; print "myNode.forceOpeningOfAncestorFolders();\n"; print "highlightObjLink(myNode)\n"; print "//-->\n"; print "</script>"; /* ================= input validation ================= */ input_validate_input_number(get_request_var_post("graphs")); input_validate_input_number(get_request_var_post("page")); /* ==================================================== */ /* clean up search string */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var_post("filter")); } /* clean up search string */ if (isset($_REQUEST["thumbnails"])) { $_REQUEST["thumbnails"] = sanitize_search_string(get_request_var_post("thumbnails")); } /* if the user pushed the 'clear' button */ if (isset($_POST["clear_x"])) { kill_session_var("sess_graph_view_graphs"); kill_session_var("sess_graph_view_filter"); kill_session_var("sess_graph_view_thumbnails"); kill_session_var("sess_graph_view_page"); unset($_POST["graphs"]); unset($_REQUEST["graphs"]); unset($_POST["filter"]); unset($_REQUEST["filter"]); unset($_REQUEST["page"]); unset($_POST["thumbnails"]); unset($_REQUEST["thumbnails"]); $changed = true; } else { /* if any of the settings changed, reset the page number */ $changed = 0; $changed += check_changed("graphs", "sess_graph_view_graphs"); $changed += check_changed("filter", "sess_graph_view_filter"); $changed += check_changed("action", "sess_graph_view_action"); } if (isset($_SESSION["sess_graph_view_tree_id"])) { if ($_SESSION["sess_graph_view_tree_id"] != $tree_id) { $changed += 1; } } $_SESSION["sess_graph_view_tree_id"] = $tree_id; if (isset($_SESSION["sess_graph_view_leaf_id"])) { if ($_SESSION["sess_graph_view_leaf_id"] != $leaf_id) { $changed += 1; } } $_SESSION["sess_graph_view_leaf_id"] = $leaf_id; if (isset($_SESSION["sess_graph_view_host_group_data"])) { if ($_SESSION["sess_graph_view_host_group_data"] != $host_group_data) { $changed += 1; } } $_SESSION["sess_graph_view_host_group_data"] = $host_group_data; if ($changed) { $_REQUEST["page"] = 1; } load_current_session_value("page", "sess_graph_view_page", "1"); load_current_session_value("graphs", "sess_graph_view_graphs", read_graph_config_option("treeview_graphs_per_page")); load_current_session_value("filter", "sess_graph_view_filter", ""); if (isset($_SESSION["sess_graph_view_thumbnails"])) { if ($_SESSION["sess_graph_view_thumbnails"] == "on") { if (isset($_POST["filter"])) { if (!isset($_POST["thumbnails"])) { $_SESSION["sess_graph_view_thumbnails"] = 'off'; } } } else { if (isset($_POST["thumbnails"])) { $_SESSION["sess_graph_view_thumbnails"] = 'on'; } } } else { $_SESSION["sess_graph_view_thumbnails"] = read_graph_config_option("thumbnail_section_tree_2"); if ($_SESSION["sess_graph_view_thumbnails"] == '') { $_SESSION["sess_graph_view_thumbnails"] = 'off'; } else { $_SESSION["sess_graph_view_thumbnails"] = 'on'; } } html_start_box("<strong>Graph Filters</strong>", "100%", $colors["header"], "3", "center", ""); /* include time span selector */ if (read_graph_config_option("timespan_sel") == "on") { ?> <tr bgcolor="#<?php print $colors["panel"]; ?> " class="noprint"> <td class="noprint"> <form style="margin:0px;padding:0px;" name="form_timespan_selector" method="post" action="graph_view.php"> <table cellpadding="0" cellspacing="0"> <tr> <td nowrap style='white-space: nowrap;'> <strong>Presets:</strong> </td> <td nowrap style='white-space: nowrap;'> <select name='predefined_timespan' onChange="applyTimespanFilterChange(document.form_timespan_selector)"> <?php if (isset($_SESSION["custom"])) { $graph_timespans[GT_CUSTOM] = "Custom"; $start_val = 0; $end_val = sizeof($graph_timespans); } else { if (isset($graph_timespans[GT_CUSTOM])) { asort($graph_timespans); array_shift($graph_timespans); } $start_val = 1; $end_val = sizeof($graph_timespans) + 1; } if (sizeof($graph_timespans) > 0) { for ($value = $start_val; $value < $end_val; $value++) { print "<option value='{$value}'"; if ($_SESSION["sess_current_timespan"] == $value) { print " selected"; } print ">" . title_trim($graph_timespans[$value], 40) . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;'> <strong>From:</strong> </td> <td nowrap style='white-space: nowrap;'> <input type='text' name='date1' id='date1' title='Graph Begin Timestamp' size='15' value='<?php print isset($_SESSION["sess_current_date1"]) ? $_SESSION["sess_current_date1"] : ""; ?> '> </td> <td nowrap style='white-space: nowrap;'> <input type='image' src='images/calendar.gif' align='middle' alt='Start date selector' title='Start date selector' onclick="return showCalendar('date1');"> </td> <td nowrap style='white-space: nowrap;'> <strong>To:</strong> </td> <td nowrap style='white-space: nowrap;'> <input type='text' name='date2' id='date2' title='Graph End Timestamp' size='15' value='<?php print isset($_SESSION["sess_current_date2"]) ? $_SESSION["sess_current_date2"] : ""; ?> '> </td> <td nowrap style='white-space: nowrap;'> <input type='image' src='images/calendar.gif' align='middle' alt='End date selector' title='End date selector' onclick="return showCalendar('date2');"> </td> <td nowrap style='white-space: nowrap;'> <input type='image' name='move_left' src='images/move_left.gif' align='middle' alt='Left' title='Shift Left'> </td> <td nowrap style='white-space: nowrap;'> <select name='predefined_timeshift' title='Define Shifting Interval' onChange="applyTimespanFilterChange(document.form_timespan_selector)"> <?php $start_val = 1; $end_val = sizeof($graph_timeshifts) + 1; if (sizeof($graph_timeshifts) > 0) { for ($shift_value = $start_val; $shift_value < $end_val; $shift_value++) { print "<option value='{$shift_value}'"; if ($_SESSION["sess_current_timeshift"] == $shift_value) { print " selected"; } print ">" . title_trim($graph_timeshifts[$shift_value], 40) . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;'> <input type='image' name='move_right' src='images/move_right.gif' align='middle' alt='Right' title='Shift Right'> </td> <td nowrap style='white-space: nowrap;'> <input type='submit' name='button_refresh_x' value='Refresh' title='Refresh selected time span'> </td> <td nowrap style='white-space: nowrap;'> <input type='submit' name='button_clear_x' value='Clear' title='Return to the default time span'> </td> </tr> </table> </form> </td> </tr> <?php } ?> <tr class="noprint" bgcolor="#e5e5e5"> <td class="noprint"> <form style="margin:0px;padding:0px;" name="form_graph_view" method="post"> <table cellspacing="0" cellpadding="0"> <tr> <td width="55" nowrap="" style="white-space: nowrap;"> <strong> Search:</strong> </td> <td width="130" nowrap="" style="white-space: nowrap;"> <input size='30' name='filter' value='<?php print htmlspecialchars(get_request_var_request("filter")); ?> '> </td> <td nowrap style='white-space:nowrap;' width="110"> <strong>Graphs per Page:</strong> </td> <td width="1"> <select name="graphs" id="graphs" onChange="submit()"> <?php if (sizeof($graphs_per_page) > 0) { foreach ($graphs_per_page as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("graphs") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> <td width="40"> <label for="thumbnails"><strong> Thumbnails: </strong></label> </td> <td> <input type="checkbox" name="thumbnails" onClick="submit()" <?php print $_SESSION['sess_graph_view_thumbnails'] == "on" ? "checked" : ""; ?> > </td> <td style='white-space:nowrap;' nowrap> <input type="submit" value="Go" title="Set/Refresh Filter"> <input type="submit" name="clear_x" value="Clear" title="Clear Filters"> </td> </tr> </table> </form> </td> </tr> <?php html_end_box(); api_plugin_hook_function('graph_tree_page_buttons', array('treeid' => $tree_id, 'leafid' => $leaf_id, 'mode' => 'tree', 'timespan' => $_SESSION["sess_current_timespan"], 'starttime' => get_current_graph_start(), 'endtime' => get_current_graph_end())); html_start_box("", "100%", $colors["header"], "3", "center", ""); $graph_list = array(); if ($leaf_type == "header" || empty($leaf_id)) { if (strlen(get_request_var_request("filter"))) { $sql_where = empty($sql_where) ? "" : "AND (title_cache LIKE '%" . get_request_var_request("filter") . "%' OR graph_templates_graph.title LIKE '%" . get_request_var_request("filter") . "%')"; } /* modify for multi user start */ $graph_list = db_fetch_assoc("SELECT\r\n\t\t\tgraph_tree_items.id,\r\n\t\t\tgraph_tree_items.title,\r\n\t\t\tgraph_tree_items.local_graph_id,\r\n\t\t\tgraph_tree_items.rra_id,\r\n\t\t\tgraph_tree_items.order_key,\r\n\t\t\tgraph_templates_graph.height,\r\n\t\t\tgraph_templates_graph.title_cache as title_cache\r\n\t\t\tFROM (graph_tree_items,graph_local)\r\n\t\t\tLEFT JOIN graph_templates_graph ON (graph_tree_items.local_graph_id=graph_templates_graph.local_graph_id AND graph_tree_items.local_graph_id>0)\r\n\t\t\t{$sql_join}\r\n\t\t\tWHERE graph_tree_items.graph_tree_id={$tree_id}\r\n\t\t\tAND graph_local.id=graph_templates_graph.local_graph_id\r\n\t\t\tAND graph_tree_items.order_key like '{$search_key}" . str_repeat('_', CHARS_PER_TIER) . str_repeat('0', MAX_TREE_DEPTH * CHARS_PER_TIER - (strlen($search_key) + CHARS_PER_TIER)) . "'\r\n\t\t\tAND graph_tree_items.local_graph_id>0\r\n\t\t\t{$sql_where}\r\n\t\t\tGROUP BY graph_tree_items.id\r\n\t\t\tORDER BY {$sql_order}"); /* modify for multi user end */ } elseif ($leaf_type == "host") { /* graph template grouping */ if ($leaf["host_grouping_type"] == HOST_GROUPING_GRAPH_TEMPLATE) { $graph_templates = db_fetch_assoc("SELECT\r\n\t\t\t\tgraph_templates.id,\r\n\t\t\t\tgraph_templates.name\r\n\t\t\t\tFROM (graph_local,graph_templates,graph_templates_graph)\r\n\t\t\t\tWHERE graph_local.id=graph_templates_graph.local_graph_id\r\n\t\t\t\tAND graph_templates_graph.graph_template_id=graph_templates.id\r\n\t\t\t\tAND graph_local.host_id=" . $leaf["host_id"] . "\r\n\t\t\t\t" . (empty($graph_template_id) ? "" : "AND graph_templates.id={$graph_template_id}") . "\r\n\t\t\t\tGROUP BY graph_templates.id\r\n\t\t\t\tORDER BY graph_templates.name"); /* for graphs without a template */ array_push($graph_templates, array("id" => "0", "name" => "(No Graph Template)")); if (sizeof($graph_templates) > 0) { foreach ($graph_templates as $graph_template) { if (strlen(get_request_var_request("filter"))) { $sql_where = empty($sql_where) ? "" : "AND (title_cache LIKE '%" . get_request_var_request("filter") . "%')"; } $graphs = db_fetch_assoc("SELECT DISTINCT\r\n\t\t\t\t\tgraph_templates_graph.title_cache,\r\n\t\t\t\t\tgraph_templates_graph.local_graph_id,\r\n\t\t\t\t\tgraph_templates_graph.height\r\n\t\t\t\t\tFROM (graph_local,graph_templates_graph)\r\n\t\t\t\t\t{$sql_join}\r\n\t\t\t\t\tWHERE graph_local.id=graph_templates_graph.local_graph_id\r\n\t\t\t\t\tAND graph_local.graph_template_id=" . $graph_template["id"] . "\r\n\t\t\t\t\tAND graph_local.host_id=" . $leaf["host_id"] . "\r\n\t\t\t\t\t{$sql_where}\r\n\t\t\t\t\tORDER BY graph_templates_graph.title_cache"); /* let's sort the graphs naturally */ usort($graphs, 'naturally_sort_graphs'); if (sizeof($graphs)) { foreach ($graphs as $graph) { $graph["graph_template_name"] = $graph_template["name"]; array_push($graph_list, $graph); } } } } /* data query index grouping */ } elseif ($leaf["host_grouping_type"] == HOST_GROUPING_DATA_QUERY_INDEX) { $data_queries = db_fetch_assoc("SELECT\r\n\t\t\t\tsnmp_query.id,\r\n\t\t\t\tsnmp_query.name\r\n\t\t\t\tFROM (graph_local,snmp_query)\r\n\t\t\t\tWHERE graph_local.snmp_query_id=snmp_query.id\r\n\t\t\t\tAND graph_local.host_id=" . $leaf["host_id"] . "\r\n\t\t\t\t" . (!isset($data_query_id) ? "" : "and snmp_query.id={$data_query_id}") . "\r\n\t\t\t\tGROUP BY snmp_query.id\r\n\t\t\t\tORDER BY snmp_query.name"); /* for graphs without a data query */ if (empty($data_query_id)) { array_push($data_queries, array("id" => "0", "name" => "Non Query Based")); } if (sizeof($data_queries) > 0) { foreach ($data_queries as $data_query) { /* fetch a list of field names that are sorted by the preferred sort field */ $sort_field_data = get_formatted_data_query_indexes($leaf["host_id"], $data_query["id"]); if (strlen(get_request_var_request("filter"))) { $sql_where = empty($sql_where) ? "" : "AND (title_cache LIKE '%" . get_request_var_request("filter") . "%')"; } /* grab a list of all graphs for this host/data query combination */ $graphs = db_fetch_assoc("SELECT\r\n\t\t\t\t\tgraph_templates_graph.title_cache,\r\n\t\t\t\t\tgraph_templates_graph.local_graph_id,\r\n\t\t\t\t\tgraph_templates_graph.height,\r\n\t\t\t\t\tgraph_local.snmp_index\r\n\t\t\t\t\tFROM (graph_local, graph_templates_graph)\r\n\t\t\t\t\t{$sql_join}\r\n\t\t\t\t\tWHERE graph_local.id=graph_templates_graph.local_graph_id\r\n\t\t\t\t\tAND graph_local.snmp_query_id=" . $data_query["id"] . "\r\n\t\t\t\t\tAND graph_local.host_id=" . $leaf["host_id"] . "\r\n\t\t\t\t\t" . (empty($data_query_index) ? "" : "and graph_local.snmp_index='{$data_query_index}'") . "\r\n\t\t\t\t\t{$sql_where}\r\n\t\t\t\t\tGROUP BY graph_templates_graph.local_graph_id\r\n\t\t\t\t\tORDER BY graph_templates_graph.title_cache"); /* re-key the results on data query index */ if (sizeof($graphs) > 0) { /* let's sort the graphs naturally */ usort($graphs, 'naturally_sort_graphs'); foreach ($graphs as $graph) { $snmp_index_to_graph[$graph["snmp_index"]][$graph["local_graph_id"]] = $graph["title_cache"]; $graphs_height[$graph["local_graph_id"]] = $graph["height"]; } } /* using the sorted data as they key; grab each snmp index from the master list */ while (list($snmp_index, $sort_field_value) = each($sort_field_data)) { /* render each graph for the current data query index */ if (isset($snmp_index_to_graph[$snmp_index])) { while (list($local_graph_id, $graph_title) = each($snmp_index_to_graph[$snmp_index])) { /* reformat the array so it's compatable with the html_graph* area functions */ array_push($graph_list, array("data_query_name" => $data_query["name"], "sort_field_value" => $sort_field_value, "local_graph_id" => $local_graph_id, "title_cache" => $graph_title, "height" => $graphs_height[$graph["local_graph_id"]])); } } } } } } } $total_rows = sizeof($graph_list); /* generate page list */ if ($total_rows > get_request_var_request("graphs")) { $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, get_request_var_request("graphs"), $total_rows, "graph_view.php?action=tree&tree_id=" . $tree_id . "&leaf_id=" . $leaf_id . (isset($_REQUEST["host_group_data"]) ? "&host_group_data=" . get_request_var_request("host_group_data") : "")); $nav = "<tr bgcolor='#" . $colors["header"] . "'>\r\n\t\t\t\t<td colspan='11'>\r\n\t\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td align='left' class='textHeaderDark'>\r\n\t\t\t\t\t\t\t\t<strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='" . htmlspecialchars("graph_view.php?action=tree&tree_id=" . $tree_id . "&leaf_id=" . $leaf_id . (isset($_REQUEST["host_group_data"]) ? "&host_group_data=" . get_request_var_request("host_group_data") : "") . "&page=" . (get_request_var_request("page") - 1)) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong>\r\n\t\t\t\t\t\t\t</td>\n\r\n\t\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\r\n\t\t\t\t\t\t\t\tShowing Graphs " . (get_request_var_request("graphs") * (get_request_var_request("page") - 1) + 1) . " to " . ($total_rows < read_graph_config_option("treeview_graphs_per_page") || $total_rows < get_request_var_request("graphs") * get_request_var_request("page") ? $total_rows : get_request_var_request("graphs") * get_request_var_request("page")) . " of {$total_rows} [{$url_page_select}]\r\n\t\t\t\t\t\t\t</td>\n\r\n\t\t\t\t\t\t\t<td align='right' class='textHeaderDark'>\r\n\t\t\t\t\t\t\t\t<strong>"; if (get_request_var_request("page") * get_request_var_request("graphs") < $total_rows) { $nav .= "<a class='linkOverDark' href='" . htmlspecialchars("graph_view.php?action=tree&tree_id=" . $tree_id . "&leaf_id=" . $leaf_id . (isset($_REQUEST["host_group_data"]) ? "&host_group_data=" . get_request_var_request("host_group_data") : "") . "&page=" . (get_request_var_request("page") + 1)) . "'>"; } $nav .= "Next"; if (get_request_var_request("page") * get_request_var_request("graphs") < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong>\r\n\t\t\t\t\t\t\t</td>\n\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\n"; } else { $nav = "<tr bgcolor='#" . $colors["header"] . "'>\r\n\t\t\t\t<td colspan='11'>\r\n\t\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\r\n\t\t\t\t\t\t\t\tShowing All Graphs" . (strlen(get_request_var_request("filter")) ? " [ Filter '" . htmlspecialchars(get_request_var_request("filter")) . "' Applied ]" : "") . "\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\n"; } print $nav; /* start graph display */ print "<tr bgcolor='#" . $colors["header_panel"] . "'><td width='390' colspan='11' class='textHeaderDark'>{$title}</td></tr>"; $i = get_request_var_request("graphs") * (get_request_var_request("page") - 1); $last_graph = $i + get_request_var_request("graphs"); $new_graph_list = array(); while ($i < $total_rows && $i < $last_graph) { $new_graph_list[] = $graph_list[$i]; $i++; } if ($_SESSION["sess_graph_view_thumbnails"] == "on") { html_graph_thumbnail_area($new_graph_list, "", "view_type=tree&graph_start=" . get_current_graph_start() . "&graph_end=" . get_current_graph_end()); } else { html_graph_area($new_graph_list, "", "view_type=tree&graph_start=" . get_current_graph_start() . "&graph_end=" . get_current_graph_end()); } if (!empty($leaf_id)) { api_plugin_hook_function('tree_after', $host_name . ',' . get_request_var("leaf_id")); } api_plugin_hook_function('tree_view_page_end'); print $nav; html_end_box(); }
function get_fbpops($days = 7) { global $wpdb; $request = "SELECT p.ID, post_title, countp FROM {$wpdb->posts} p INNER JOIN {$wpdb->fbpops} fb ON (p.ID = fb.postid) WHERE p.post_type='post' AND fb.fecha > '" . date('Y-m-d', strtotime('-' . $days . ' days')) . "' AND p.post_status='publish' ORDER BY fb.countp DESC, fb.fecha DESC LIMIT 10"; $posts = $wpdb->get_results($request); foreach ($posts as $post) { $post_title = stripslashes($post->post_title); $permalink = get_permalink($post->ID); echo '<a href="' . $permalink . '" title="' . $post_title . '" rel="nofollow">' . title_trim(80, $post_title) . ' (' . $post->countp . ')</a>'; echo $after; } }
if ($_SESSION["custom"]) { $graph_timespans[GT_CUSTOM] = "Custom"; $start_val = 0; $end_val = sizeof($graph_timespans); } else { if (isset($graph_timespans[GT_CUSTOM])) { asort($graph_timespans); array_shift($graph_timespans); } $start_val = 1; $end_val = sizeof($graph_timespans)+1; } if (sizeof($graph_timespans) > 0) { for ($value=$start_val; $value < $end_val; $value++) { print "<option value='" . $_SESSION["urlval"] . "&predefined_timespan=" . $value . "'"; if ($_SESSION["sess_current_timespan"] == $value) { print " selected"; } print ">" . title_trim($graph_timespans[$value], 40) . "</option>\n"; } } ?> </select> <strong> From: </strong> <input type='text' name='date1' id='date1' size='14' value='<?php print (isset($_SESSION["sess_current_date1"]) ? $_SESSION["sess_current_date1"] : "");?>'> <input type='image' src='images/calendar.gif' alt='Start date selector' border='0' align='absmiddle' onclick="return showCalendar('date1');"> <strong>To: </strong> <input type='text' name='date2' id='date2' size='14' value='<?php print (isset($_SESSION["sess_current_date2"]) ? $_SESSION["sess_current_date2"] : "");?>'> <input type='image' src='images/calendar.gif' alt='End date selector' border='0' align='absmiddle' onclick="return showCalendar('date2');"> <input type='image' name='button_refresh' src='images/button_refresh.gif' alt='Refresh selected time span' border='0' align='absmiddle' action='submit' value='refresh'> <input type='image' name='button_clear' src='images/button_clear.gif' alt='Return to the default time span' border='0' align='absmiddle' action='submit'>
function list_rrd() { global $config, $item_rows, $ds_actions, $rra_path, $hash_version_codes; /* suppress warnings */ error_reporting(0); /* install the rrdclean error handler */ set_error_handler('rrdclean_error_handler'); /* ================= input validation ================= */ input_validate_input_number(get_request_var_request('page')); input_validate_input_number(get_request_var_request('age')); 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_rrdclean_current_page'); kill_session_var('sess_rrdclean_age'); kill_session_var('sess_default_rows'); kill_session_var('sess_rrdclean_filter'); kill_session_var('sess_rrdclean_sort_column'); kill_session_var('sess_rrdclean_sort_direction'); unset($_REQUEST['page']); unset($_REQUEST['age']); unset($_REQUEST['rows']); 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_rrdclean_current_page', '1'); load_current_session_value('age', 'sess_rrdclean_current_age', '1'); load_current_session_value('rows', 'sess_rrdclean_rows', read_config_option('num_rows_table')); load_current_session_value('filter', 'sess_rrdclean_filter', ''); load_current_session_value('sort_column', 'sess_rrdclean_sort_column', 'name'); load_current_session_value('sort_direction', 'sess_rrdclean_sort_direction', 'ASC'); $width = '100%'; if (isset($hash_version_codes[$config['cacti_version']])) { if ($hash_version_codes[$config['cacti_version']] > 13) { $width = '100%'; } } html_start_box('<strong>RRD Cleaner</strong>', $width, '', '3', 'center', ''); filter(); html_end_box(); $sql_where = 'WHERE in_cacti=0'; /* form the 'where' clause for our main sql query */ if ($_REQUEST['filter'] != '') { $sql_where .= " AND (rc.name LIKE '%" . $_REQUEST['filter'] . "%' OR rc.name_cache LIKE '%" . $_REQUEST['filter'] . "%' OR dt.name LIKE '%" . $_REQUEST['filter'] . "%')"; } $secsback = $_REQUEST['age']; if ($REQUEST['age'] != 0) { $sql_where .= " AND last_mod>='" . date("Y-m-d H:i:s", time() - 86400 * 7) . "'"; } else { $sql_where .= " AND last_mod<='" . date("Y-m-d H:i:s", time() - $secsback) . "'"; } print "<form action='rrdcleaner.php' method='post'>\n"; html_start_box('', $width, '', '3', 'center', ''); $total_rows = db_fetch_cell("SELECT COUNT(rc.name) \n\t\tFROM data_source_purge_temp AS rc\n\t\tLEFT JOIN data_template AS dt\n\t\tON dt.id = rc.data_template_id\n\t\t{$sql_where}"); $total_size = db_fetch_cell("SELECT ROUND(SUM(size),2) \n\t\tFROM data_source_purge_temp AS rc\n\t\tLEFT JOIN data_template AS dt\n\t\tON dt.id = rc.data_template_id\n\t\t{$sql_where}"); $file_list = db_fetch_assoc("SELECT rc.id, rc.name, rc.last_mod, rc.size, \n\t\trc.name_cache, rc.local_data_id, rc.data_template_id, dt.name AS data_template_name\n\t\tFROM data_source_purge_temp AS rc\n\t\tLEFT JOIN data_template AS dt\n\t\tON dt.id = rc.data_template_id\n\t\t{$sql_where} \n\t\tORDER BY " . $_REQUEST['sort_column'] . ' ' . $_REQUEST['sort_direction'] . ' LIMIT ' . $_REQUEST['rows'] * ($_REQUEST['page'] - 1) . ',' . $_REQUEST['rows']); $nav = html_nav_bar($config['url_path'] . 'rrdcleaner.php?filter' . get_request_var_request('filter'), MAX_DISPLAY_PAGES, get_request_var_request('page'), get_request_var_request('rows'), $total_rows, 8, 'RRD Files', 'page', 'main'); print $nav; $display_text = array('name' => array('RRD File Name', 'ASC'), 'name_cache' => array('DS Name', 'ASC'), 'local_data_id' => array('DS ID', 'ASC'), 'data_template_id' => array('Template ID', 'ASC'), 'data_template_name' => array('Template', 'ASC'), 'last_mod' => array('Last Modified', 'DESC'), 'size' => array('Size [KB]', 'DESC')); html_header_sort_checkbox($display_text, $_REQUEST['sort_column'], $_REQUEST['sort_direction'], false); if (sizeof($file_list)) { foreach ($file_list as $file) { $data_template_name = empty($file['data_template_name']) ? '<em>None</em>' : $file['data_template_name']; form_alternate_row('line' . $file['id'], true); form_selectable_cell(($_REQUEST['filter'] != '' ? eregi_replace('(' . preg_quote($_REQUEST['filter']) . ')', "<span class='filteredValue'>\\1</span>", $file['name']) : $file['name']) . '</a>', $file['id']); form_selectable_cell($file['local_data_id'] != 0 ? "<a class='linkEditMain' href='../../data_sources.php?action=ds_edit&id=" . $file['local_data_id'] . "'>" . ($_REQUEST['filter'] != '' ? eregi_replace('(' . preg_quote($_REQUEST['filter']) . ')', "<span class='filteredValue'>\\1</span>", title_trim(htmlentities($file['name_cache']), read_config_option('max_title_length'))) : title_trim(htmlentities($file['name_cache']), read_config_option('max_title_length'))) . '</a>' : '<i>Deleted</i>', $file['id']); form_selectable_cell($file['local_data_id'] > 0 ? $file['local_data_id'] : '<i>Deleted</i>', $file['id']); form_selectable_cell($file['data_template_id'] > 0 ? $file['data_template_id'] : '<i>Deleted</i>', $file['id']); form_selectable_cell($file['data_template_id'] > 0 ? $_REQUEST['filter'] != '' ? eregi_replace('(' . preg_quote($_REQUEST['filter']) . ')', "<span class='filteredValue'>\\1</span>", $file['data_template_name']) . '</a>' : $file['data_template_name'] : '<i>Deleted</i>', $file['id']); form_selectable_cell($file['last_mod'], $file['id']); form_selectable_cell($file['size'], $file['id']); form_checkbox_cell($file['id'], $file['id']); form_end_row(); $i++; } /* put the nav bar on the bottom as well */ print $nav; } else { print "<tr><td><em>No unused RRD Files</em></td></tr>\n"; } html_end_box(false); rrdcleaner_legend($total_size); draw_actions_dropdown($ds_actions); print "</form>\n"; /* restore original error handler */ restore_error_handler(); }
function ds() { global $colors, $ds_actions; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("host_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_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_host_id"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); unset($_REQUEST["host_id"]); } /* 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("host_id", "sess_ds_host_id", "-1"); $host = db_fetch_row("select hostname from host where id=" . $_REQUEST["host_id"]); html_start_box("<strong>Data Sources</strong> [host: " . (empty($host["hostname"]) ? "No Host" : $host["hostname"]) . "]", "98%", $colors["header"], "3", "center", "data_sources.php?action=ds_edit&host_id=" . $_REQUEST["host_id"]); include("./include/html/inc_data_source_filter_table.php"); html_end_box(); /* form the 'where' clause for our main sql query */ $sql_where = "AND (data_template_data.name_cache like '%%" . $_REQUEST["filter"] . "%%'" . " OR data_template.name like '%%" . $_REQUEST["filter"] . "%%'" . " OR data_input.name like '%%" . $_REQUEST["filter"] . "%%')"; if ($_REQUEST["host_id"] == "-1") { /* Show all items */ }elseif ($_REQUEST["host_id"] == "0") { $sql_where .= " AND data_local.host_id=0"; }elseif (!empty($_REQUEST["host_id"])) { $sql_where .= " AND data_local.host_id=" . $_REQUEST["host_id"]; } $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_where")); $data_sources = db_fetch_assoc("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.host_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_where ORDER BY ". $_REQUEST['sort_column'] . " " . $_REQUEST['sort_direction'] . " LIMIT " . (read_config_option("num_rows_data_source")*($_REQUEST["page"]-1)) . "," . read_config_option("num_rows_data_source")); html_start_box("", "98%", $colors["header"], "3", "center", ""); /* generate page list */ $url_page_select = get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, read_config_option("num_rows_data_source"), $total_rows, "data_sources.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"]); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='5'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if ($_REQUEST["page"] > 1) { $nav .= "<a class='linkOverDark' href='data_sources.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"] . "&page=" . ($_REQUEST["page"]-1) . "'>"; } $nav .= "Previous"; if ($_REQUEST["page"] > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((read_config_option("num_rows_data_source")*($_REQUEST["page"]-1))+1) . " to " . ((($total_rows < read_config_option("num_rows_data_source")) || ($total_rows < (read_config_option("num_rows_data_source")*$_REQUEST["page"]))) ? $total_rows : (read_config_option("num_rows_data_source")*$_REQUEST["page"])) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if (($_REQUEST["page"] * read_config_option("num_rows_data_source")) < $total_rows) { $nav .= "<a class='linkOverDark' href='data_sources.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"] . "&page=" . ($_REQUEST["page"]+1) . "'>"; } $nav .= "Next"; if (($_REQUEST["page"] * read_config_option("num_rows_data_source")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; $display_text = array( "name_cache" => array("Name", "ASC"), "data_input_name" => array("Data Input Method", "ASC"), "active" => array("Active", "ASC"), "data_template_name" => array("Template Name", "ASC")); html_header_sort_checkbox($display_text, $_REQUEST["sort_column"], $_REQUEST["sort_direction"]); $i = 0; if (sizeof($data_sources) > 0) { foreach ($data_sources as $data_source) { $data_template_name = ((empty($data_source["data_template_name"])) ? "<em>None</em>" : $data_source["data_template_name"]); form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++; ?> <td> <a class='linkEditMain' href='data_sources.php?action=ds_edit&id=<?php print $data_source["local_data_id"];?>' title='<?php print $data_source["name_cache"];?>'><?php if ($_REQUEST["filter"] != "") { print eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($data_source["name_cache"], read_config_option("max_title_data_source"))); }else{ print title_trim($data_source["name_cache"], read_config_option("max_title_data_source")); } ?></a> </td> <td> <?php if ($_REQUEST["filter"] != "") { print eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $data_source["data_input_name"]); }else{ print $data_source["data_input_name"]; } ?></a> </td> <td> <?php print (($data_source["active"] == "on") ? "Yes" : "<span style='color: red;'>No</span>");?> </td> <td> <?php if ($_REQUEST["filter"] != "") { print eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $data_template_name); }else{ print $data_template_name; } ?></a> </td> <td style="<?php print get_checkbox_style();?>" width="1%" align="right"> <input type='checkbox' style='margin: 0px;' name='chk_<?php print $data_source["local_data_id"];?>' title="<?php print $data_source["name_cache"];?>"> </td> </tr> <?php } /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>No Data Sources</em></td></tr>"; } html_end_box(false); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($ds_actions); print "</form>\n"; }
function ds() { global $ds_actions, $item_rows; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("ds_rows")); input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("template_id")); input_validate_input_number(get_request_var_request("method_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_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"); kill_session_var("sess_ds_host_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["ds_rows"]); unset($_REQUEST["host_id"]); unset($_REQUEST["template_id"]); unset($_REQUEST["method_id"]); } /* 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("ds_rows", "sess_ds_rows", read_config_option("num_rows_data_source")); load_current_session_value("host_id", "sess_ds_host_id", "-1"); load_current_session_value("template_id", "sess_ds_template_id", "-1"); load_current_session_value("method_id", "sess_ds_method_id", "-1"); $host = db_fetch_row("select hostname from host where id=" . get_request_var_request("host_id")); /* if the number of rows is -1, set it to the default */ if (get_request_var_request("ds_rows") == -1) { $_REQUEST["ds_rows"] = read_config_option("num_rows_data_source"); } ?> <script type="text/javascript"> <!-- function applyDSFilterChange(objForm) { strURL = '?host_id=' + objForm.host_id.value; strURL = strURL + '&filter=' + objForm.filter.value; strURL = strURL + '&ds_rows=' + objForm.ds_rows.value; strURL = strURL + '&template_id=' + objForm.template_id.value; strURL = strURL + '&method_id=' + objForm.method_id.value; document.location = strURL; } --> </script> <?php html_start_box("<strong>Data Sources</strong> [host: " . (empty($host["hostname"]) ? "No Host" : htmlspecialchars($host["hostname"])) . "]", "100%", "", "3", "center", "data_sources.php?action=ds_edit&host_id=" . get_request_var_request("host_id")); ?> <tr class='even noprint'> <td> <form name="form_data_sources" action="data_sources.php"> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Host: </td> <td> <select name="host_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("host_id") == "-1") { ?> selected<?php } ?> >Any</option> <option value="0"<?php if (get_request_var_request("host_id") == "0") { ?> selected<?php } ?> >None</option> <?php $hosts = db_fetch_assoc("select id,CONCAT_WS('',description,' (',hostname,')') as name from host order by description,hostname"); if (sizeof($hosts) > 0) { foreach ($hosts as $host) { print "<option value='" . $host["id"] . "'"; if (get_request_var_request("host_id") == $host["id"]) { print " selected"; } print ">" . title_trim(htmlspecialchars($host["name"]), 40) . "</option>\n"; } } ?> </select> </td> <td width="50"> Template: </td> <td width="1"> <select name="template_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("template_id") == "-1") { ?> selected<?php } ?> >Any</option> <option value="0"<?php if (get_request_var_request("template_id") == "0") { ?> selected<?php } ?> >None</option> <?php $templates = db_fetch_assoc("SELECT DISTINCT data_template.id, data_template.name\n\t\t\t\t\t\t\t\tFROM data_template\n\t\t\t\t\t\t\t\tINNER JOIN data_template_data\n\t\t\t\t\t\t\t\tON data_template.id=data_template_data.data_template_id\n\t\t\t\t\t\t\t\tWHERE data_template_data.local_data_id>0\n\t\t\t\t\t\t\t\tORDER 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(htmlspecialchars($template["name"]), 40) . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;'> <input type="submit" value="Go" title="Set/Refresh Filters"> <input type="submit" name="clear_x" value="Clear" title="Clear Filters"> </td> </tr> <tr> <td width="50"> Method: </td> <td width="1"> <select name="method_id" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("method_id") == "-1") { ?> selected<?php } ?> >Any</option> <option value="0"<?php if (get_request_var_request("method_id") == "0") { ?> selected<?php } ?> >None</option> <?php $methods = db_fetch_assoc("SELECT DISTINCT data_input.id, data_input.name\n\t\t\t\t\t\t\t\tFROM data_input\n\t\t\t\t\t\t\t\tINNER JOIN data_template_data\n\t\t\t\t\t\t\t\tON data_input.id=data_template_data.data_input_id\n\t\t\t\t\t\t\t\tWHERE data_template_data.local_data_id>0\n\t\t\t\t\t\t\t\tORDER 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(htmlspecialchars($method["name"]), 40) . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="50"> Rows per Page: </td> <td width="1"> <select name="ds_rows" onChange="applyDSFilterChange(document.form_data_sources)"> <option value="-1"<?php if (get_request_var_request("ds_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("ds_rows") == $key) { print " selected"; } print ">" . htmlspecialchars($value) . "</option>\n"; } } ?> </select> </td> </tr> </table> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Search: </td> <td width="1"> <input type="text" name="filter" size="40" value="<?php print htmlspecialchars(get_request_var_request("filter")); ?> "> </td> </tr> </table> <input type='hidden' name='page' value='1'> </form> </td> </tr> <?php html_end_box(); /* 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 '%%" . get_request_var_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 '%%" . get_request_var_request("filter") . "%%'" . " OR data_template.name like '%%" . get_request_var_request("filter") . "%%')"; } else { $sql_where1 = ""; $sql_where2 = ""; } if (get_request_var_request("host_id") == "-1") { /* Show all items */ } elseif (get_request_var_request("host_id") == "0") { $sql_where1 .= " AND data_local.host_id=0"; $sql_where2 .= " AND data_local.host_id=0"; } elseif (!empty($_REQUEST["host_id"])) { $sql_where1 .= " AND data_local.host_id=" . get_request_var_request("host_id"); $sql_where2 .= " AND data_local.host_id=" . get_request_var_request("host_id"); } if (get_request_var_request("template_id") == "-1") { /* Show all items */ } elseif (get_request_var_request("template_id") == "0") { $sql_where1 .= " AND data_template_data.data_template_id=0"; $sql_where2 .= " AND data_template_data.data_template_id=0"; } elseif (!empty($_REQUEST["host_id"])) { $sql_where1 .= " AND data_template_data.data_template_id=" . get_request_var_request("template_id"); $sql_where2 .= " AND data_template_data.data_template_id=" . get_request_var_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"; } elseif (!empty($_REQUEST["method_id"])) { $sql_where1 .= " AND data_template_data.data_input_id=" . get_request_var_request("method_id"); $sql_where2 .= " AND data_template_data.data_input_id=" . get_request_var_request("method_id"); } $total_rows = sizeof(db_fetch_assoc("SELECT\n\t\tdata_local.id\n\t\tFROM (data_local,data_template_data)\n\t\tLEFT JOIN data_input\n\t\tON (data_input.id=data_template_data.data_input_id)\n\t\tLEFT JOIN data_template\n\t\tON (data_local.data_template_id=data_template.id)\n\t\tWHERE data_local.id=data_template_data.local_data_id\n\t\t{$sql_where1}")); $poller_intervals = array_rekey(db_fetch_assoc("SELECT data_template_data.local_data_id AS id,\n\t\tMin(data_template_data.rrd_step*rra.steps) AS poller_interval\n\t\tFROM data_template\n\t\tINNER JOIN (data_local\n\t\tINNER JOIN ((data_template_data_rra\n\t\tINNER JOIN data_template_data ON data_template_data_rra.data_template_data_id=data_template_data.id)\n\t\tINNER 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\n\t\t{$sql_where2}\n\t\tGROUP BY data_template_data.local_data_id"), "id", "poller_interval"); $data_sources = db_fetch_assoc("SELECT\n\t\tdata_template_data.local_data_id,\n\t\tdata_template_data.name_cache,\n\t\tdata_template_data.active,\n\t\tdata_input.name as data_input_name,\n\t\tdata_template.name as data_template_name,\n\t\tdata_local.host_id\n\t\tFROM (data_local,data_template_data)\n\t\tLEFT JOIN data_input\n\t\tON (data_input.id=data_template_data.data_input_id)\n\t\tLEFT JOIN data_template\n\t\tON (data_local.data_template_id=data_template.id)\n\t\tWHERE data_local.id=data_template_data.local_data_id\n\t\t{$sql_where1}\n\t\tORDER BY " . get_request_var_request("sort_column") . " " . get_request_var_request("sort_direction") . " LIMIT " . get_request_var_request("ds_rows") * (get_request_var_request("page") - 1) . "," . get_request_var_request("ds_rows")); print "<form name='chk' method='post' action='data_sources.php'>\n"; html_start_box("", "100%", "", "3", "center", ""); $nav = html_nav_bar("data_sources.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id"), MAX_DISPLAY_PAGES, get_request_var_request("page"), get_request_var_request("ds_rows"), $total_rows, 7); print $nav; $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"), false); $i = 0; if (sizeof($data_sources) > 0) { foreach ($data_sources as $data_source) { $data_source["data_template_name"] = htmlspecialchars($data_source["data_template_name"]); $data_name_cache = title_trim(htmlspecialchars($data_source["name_cache"]), read_config_option("max_title_data_source")); if (trim(get_request_var_request("filter") != "")) { $data_name_cache = preg_replace("/(" . preg_quote(get_request_var_request("filter"), "/") . ")/i", "<span style='background-color: #F8D93D;'>\\1</span>", $data_name_cache); } /* keep copy of data source for comparison */ $data_source_orig = $data_source; $data_source = api_plugin_hook_function('data_sources_table', $data_source); /* we're escaping strings here, so no need to escape them on form_selectable_cell */ if (empty($data_source["data_template_name"])) { $data_template_name = "<em>None</em>"; } elseif ($data_source_orig["data_template_name"] != $data_source["data_template_name"]) { /* was changed by plugin, plugin has to take care for html-escaping */ $data_template_name = empty($data_source["data_template_name"]) ? "<em>None</em>" : $data_source["data_template_name"]; } elseif (trim(get_request_var_request("filter") != "")) { /* we take care of html-escaping */ $data_template_name = preg_replace("/(" . preg_quote(get_request_var_request("filter"), "/") . ")/i", "<span style='background-color: #F8D93D;'>\\1</span>", htmlspecialchars($data_source['data_template_name'])); } else { $data_template_name = htmlspecialchars($data_source["data_template_name"]); } if (empty($data_source["data_input_name"])) { $data_input_name = "<em>None</em>"; } elseif ($data_source_orig["data_input_name"] != $data_source["data_input_name"]) { /* was changed by plugin, plugin has to take care for html-escaping */ $data_input_name = empty($data_source["data_input_name"]) ? "<em>None</em>" : $data_source["data_input_name"]; } elseif (trim(get_request_var_request("filter") != "")) { /* we take care of html-escaping */ $data_input_name = preg_replace("/(" . preg_quote(get_request_var_request("filter"), "/") . ")/i", "<span style='background-color: #F8D93D;'>\\1</span>", htmlspecialchars($data_source['data_input_name'])); } else { $data_input_name = htmlspecialchars($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('line' . $data_source["local_data_id"], true); form_selectable_cell("<a class='linkEditMain' href='" . htmlspecialchars("data_sources.php?action=ds_edit&id=" . $data_source["local_data_id"]) . "' title='" . htmlspecialchars($data_source["name_cache"], ENT_QUOTES) . "'>" . (get_request_var_request("filter") != "" ? preg_replace("/(" . preg_quote(get_request_var_request("filter"), "/") . ")/i", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim(htmlspecialchars($data_source["name_cache"]), read_config_option("max_title_data_source"))) : title_trim(htmlspecialchars($data_source["name_cache"]), 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($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'] == "on" ? "Yes" : "No", $data_source["local_data_id"]); form_selectable_cell($data_template_name, $data_source["local_data_id"]); form_checkbox_cell($data_source["name_cache"], $data_source["local_data_id"]); form_end_row(); } /* put the nav bar on the bottom as well */ print $nav; } else { print "<tr><td><em>No Data Sources</em></td></tr>"; } html_end_box(false); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($ds_actions); print "</form>\n"; }
function grow_right_pane_tree($tree_id, $leaf_id, $host_group_data) { global $current_user, $config, $graphs_per_page, $graph_timeshifts; include $config['include_path'] . '/global_arrays.php'; include_once $config['library_path'] . '/data_query.php'; include_once $config['library_path'] . '/html_utility.php'; if (empty($tree_id)) { return; } if (empty($leaf_id)) { $leaf_id = 0; } $sql_where = ''; $sql_join = ''; $title = ''; $title_delimeter = ''; $leaf = db_fetch_row("SELECT title, host_id, host_grouping_type\n\t\tFROM graph_tree_items\n\t\tWHERE id={$leaf_id}"); $leaf_type = api_tree_get_item_type($leaf_id); /* get information for the headers */ if (!empty($tree_id)) { $tree_name = db_fetch_cell("SELECT name FROM graph_tree WHERE id={$tree_id}"); } if (!empty($leaf_id)) { $leaf_name = $leaf['title']; } if (!empty($leaf_id)) { $host_name = db_fetch_cell("SELECT host.description FROM (graph_tree_items,host) WHERE graph_tree_items.host_id=host.id AND graph_tree_items.id={$leaf_id}"); } $host_group_data_array = explode(':', $host_group_data); if ($host_group_data_array[0] == 'graph_template') { $host_group_data_name = '<strong>Graph Template:</strong> ' . db_fetch_cell('select name from graph_templates where id=' . $host_group_data_array[1]); $graph_template_id = $host_group_data_array[1]; } elseif ($host_group_data_array[0] == 'data_query') { $host_group_data_name = '<strong>Graph Template:</strong> ' . (empty($host_group_data_array[1]) ? 'Non Query Based' : db_fetch_cell('select name from snmp_query where id=' . $host_group_data_array[1])); $data_query_id = $host_group_data_array[1]; } elseif ($host_group_data_array[0] == 'data_query_index') { $host_group_data_name = '<strong>Graph Template:</strong> ' . (empty($host_group_data_array[1]) ? 'Non Query Based' : db_fetch_cell('select name from snmp_query where id=' . $host_group_data_array[1])) . '-> ' . (empty($host_group_data_array[2]) ? 'Template Based' : get_formatted_data_query_index($leaf['host_id'], $host_group_data_array[1], $host_group_data_array[2])); $data_query_id = $host_group_data_array[1]; $data_query_index = $host_group_data_array[2]; } if (!empty($tree_name)) { $title .= $title_delimeter . '<strong>Tree:</strong>' . htmlspecialchars($tree_name); $title_delimeter = '-> '; } if (!empty($leaf_name)) { $title .= $title_delimeter . '<strong>Leaf:</strong>' . htmlspecialchars($leaf_name); $title_delimeter = '-> '; } if (!empty($host_name)) { $title .= $title_delimeter . '<strong>Device:</strong>' . htmlspecialchars($host_name); $title_delimeter = '-> '; } if (!empty($host_group_data_name)) { $title .= $title_delimeter . " {$host_group_data_name}"; $title_delimeter = '-> '; } validate_tree_vars($tree_id, $leaf_id, $host_group_data); html_start_box('<strong>Graph Filters</strong>' . (strlen(get_request_var_request('filter')) ? " [ Filter '" . htmlspecialchars(get_request_var_request('filter')) . "' Applied ]" : ''), '100%', "", '3', 'center', ''); /* include time span selector */ if (read_graph_config_option('timespan_sel') == 'on') { ?> <tr class='even noprint'> <td class='noprint'> <form name='form_timespan_selector' method='post' action='graph_view.php'> <table cellpadding='2' cellspacing='0'> <tr id='timespan'> <td width='50'> Presets </td> <td> <select id='predefined_timespan' name='predefined_timespan' onChange='spanTime()'> <?php if (isset($_SESSION['custom'])) { $graph_timespans[GT_CUSTOM] = 'Custom'; $start_val = 0; $end_val = sizeof($graph_timespans); } else { if (isset($graph_timespans[GT_CUSTOM])) { asort($graph_timespans); array_shift($graph_timespans); } $start_val = 1; $end_val = sizeof($graph_timespans) + 1; } if (sizeof($graph_timespans) > 0) { for ($value = $start_val; $value < $end_val; $value++) { print "<option value='{$value}'"; if ($_SESSION['sess_current_timespan'] == $value) { print ' selected'; } print '>' . title_trim($graph_timespans[$value], 40) . "</option>\n"; } } ?> </select> </td> <td> From </td> <td> <input type='text' name='date1' id='date1' title='Graph Begin Timestamp' size='15' value='<?php print isset($_SESSION['sess_current_date1']) ? $_SESSION['sess_current_date1'] : ''; ?> '> </td> <td> <input type='image' src='images/calendar.gif' align='middle' alt='Start date selector' title='Start date selector' onclick="return showCalendar('date1');"> </td> <td> To </td> <td> <input type='text' name='date2' id='date2' title='Graph End Timestamp' size='15' value='<?php print isset($_SESSION['sess_current_date2']) ? $_SESSION['sess_current_date2'] : ''; ?> '> </td> <td> <input type='image' src='images/calendar.gif' align='middle' alt='End date selector' title='End date selector' onclick="return showCalendar('date2');"> </td> <td> <img style='padding-bottom:0px;cursor:pointer;' border='0' src='images/move_left.gif' align='middle' alt='' title='Shift Left' onClick='timeshiftFilterLeft()'/> </td> <td> <select id='predefined_timeshift' name='predefined_timeshift' title='Define Shifting Interval'> <?php $start_val = 1; $end_val = sizeof($graph_timeshifts) + 1; if (sizeof($graph_timeshifts) > 0) { for ($shift_value = $start_val; $shift_value < $end_val; $shift_value++) { print "<option value='{$shift_value}'"; if ($_SESSION['sess_current_timeshift'] == $shift_value) { print ' selected'; } print '>' . title_trim($graph_timeshifts[$shift_value], 40) . "</option>\n"; } } ?> </select> </td> <td> <img style='padding-bottom:0px;cursor:pointer;' name='move_right' src='images/move_right.gif' align='middle' alt='' title='Shift Right' onClick='timeshiftFilterRight()'/> </td> <td> <input type='button' name='button_refresh_x' value='Refresh' title='Refresh selected time span' onClick='refreshTimespanFilter()'> </td> <td> <input type='button' name='button_clear_x' value='Clear' title='Return to the default time span' onClick='clearTimespanFilter()'> </td> </tr> <tr id='realtime' style='display:none;'> <td width='50'> Window </td> <td> <select name='graph_start' id='graph_start' onChange='self.imageOptionsChanged("timespan")'> <?php foreach ($realtime_window as $interval => $text) { printf('<option value="%d"%s>%s</option>', $interval, $interval == $_SESSION['sess_realtime_window'] ? ' selected="selected"' : '', $text); } ?> </select> </td> <td> Refresh </td> <td> <select name='ds_step' id='ds_step' onChange="self.imageOptionsChanged('interval')"> <?php foreach ($realtime_refresh as $interval => $text) { printf('<option value="%d"%s>%s</option>', $interval, $interval == $_SESSION['sess_realtime_dsstep'] ? ' selected="selected"' : '', $text); } ?> </select> </td> <td> <input type='button' id='realtimeoff' value='Stop'> </td> <td align='center' colspan='6'> <span id='countdown'></span> </td> </tr> </table> </form> </td> </tr> <?php } ?> <tr class='even noprint' id='search'> <td class='noprint'> <form name='form_graph_view' method='post' onSubmit='changeFilter();return false'> <table cellpadding='2' cellspacing='0'> <tr> <td width='50'> Search </td> <td> <input id='filter' size='30' name='filter' value='<?php print htmlspecialchars(get_request_var_request('filter')); ?> '> </td> <td> Graphs </td> <td> <select name='graphs' id='graphs' onChange='changeFilter()'> <?php if (sizeof($graphs_per_page) > 0) { foreach ($graphs_per_page as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request('graphs') == $key) { print ' selected'; } print '>' . $value . "</option>\n"; } } ?> </select> </td> <td> Columns </td> <td> <select name='columns' id='columns' onChange='changeFilter()' <?php print get_request_var_request('thumbnails') == 'false' ? 'disabled' : ''; ?> > <?php if (get_request_var_request('thumbnails') == 'false') { ?> <option value='<?php print get_request_var_request('columns'); ?> ' selected>N/A</option> <?php } else { ?> <option value='1' <?php print get_request_var_request('columns') == '1' ? ' selected' : ''; ?> >1 Column</option> <option value='2' <?php print get_request_var_request('columns') == '2' ? ' selected' : ''; ?> >2 Columns</option> <option value='3' <?php print get_request_var_request('columns') == '3' ? ' selected' : ''; ?> >3 Columns</option> <option value='4' <?php print get_request_var_request('columns') == '4' ? ' selected' : ''; ?> >4 Columns</option> <option value='5' <?php print get_request_var_request('columns') == '5' ? ' selected' : ''; ?> >5 Columns</option> <?php } ?> </select> </td> <td> <label for='thumbnails'>Thumbnails:</label> </td> <td> <input id='thumbnails' type='checkbox' name='thumbnails' onClick='changeFilter()' <?php print $_REQUEST['thumbnails'] == 'true' ? 'checked' : ''; ?> > </td> <td> <input type='button' value='Go' title='Set/Refresh Filter' onClick='changeFilter()'> </td> <td> <input type='button' value='Clear' title='Clear Filters' onClick='clearFilter()'> </td> </tr> </table> </form> </td> </tr> <script type='text/javascript'> $(function() { var navBar = "<div id='navBar' class='navBar'><?php print draw_navigation_text(); ?> </div>"; if (navBar != '') { $('#navBar').replaceWith(navBar); } setupBreadcrumbs(); }); function changeFilter() { $.get('graph_view.php?action=tree_content&tree_id=<?php print $_SESSION['sess_graph_tree_tree_id']; ?> &leaf_id=<?php print $_SESSION['sess_graph_tree_leaf_id']; ?> &host_group_data=<?php print $_SESSION['sess_graph_tree_host_group_data']; ?> &graphs='+$('#graphs').val()+'&filter='+$('#filter').val()+'&thumbnails='+$('#thumbnails').is(':checked')+'&columns='+$('#columns').val()+'&nodeid='+'<?php print $_SESSION['sess_graph_tree_nodeid']; ?> ', function(data) { $('#main').html(data); applySkin(); }); } function clearFilter() { $.get('graph_view.php?action=tree_content&tree_id=<?php print $_SESSION['sess_graph_tree_tree_id']; ?> &leaf_id=<?php print $_SESSION['sess_graph_tree_leaf_id']; ?> &host_group_data=<?php print $_SESSION['sess_graph_tree_host_group_data']; ?> &clear_x=1&nodeid='+'<?php print $_SESSION['sess_graph_tree_nodeid']; ?> ', function(data) { $('#main').html(data); applySkin(); }); } function spanTime() { $.get('graph_view.php?action=tree_content&tree_id=<?php print $_SESSION['sess_graph_tree_tree_id']; ?> &leaf_id=<?php print $_SESSION['sess_graph_tree_leaf_id']; ?> &host_group_data=<?php print $_SESSION['sess_graph_tree_host_group_data']; ?> &nodeid='+'<?php print $_SESSION['sess_graph_tree_nodeid']; ?> &predefined_timespan='+$('#predefined_timespan').val()+'&predefined_timeshift='+$('#predefined_timeshift').val(), function(data) { $('#main').html(data); applySkin(); }); } function clearTimespanFilter() { var json = { button_clear_x: 1, date1: $('#date1').val(), date2: $('#date2').val(), predefined_timespan: $('#predefined_timespan').val(), predefined_timeshift: $('#predefined_timeshift').val() }; var url = 'graph_view.php?action=tree_content&tree_id=<?php print $_SESSION['sess_graph_tree_tree_id']; ?> &leaf_id=<?php print $_SESSION['sess_graph_tree_leaf_id']; ?> &host_group_data=<?php print $_SESSION['sess_graph_tree_host_group_data']; ?> &nodeid=<?php print $_SESSION['sess_graph_tree_nodeid']; ?> '; $.post(url, json).done(function(data) { $('#main').html(data); applySkin(); }); } function refreshTimespanFilter() { var json = { button_refresh_x: 1, date1: $('#date1').val(), date2: $('#date2').val(), predefined_timespan: $('#predefined_timespan').val(), predefined_timeshift: $('#predefined_timeshift').val() }; var url = 'graph_view.php?action=tree_content&tree_id=<?php print $_SESSION['sess_graph_tree_tree_id']; ?> &leaf_id=<?php print $_SESSION['sess_graph_tree_leaf_id']; ?> &host_group_data=<?php print $_SESSION['sess_graph_tree_host_group_data']; ?> &nodeid=<?php print $_SESSION['sess_graph_tree_nodeid']; ?> '; $.post(url, json).done(function(data) { $('#main').html(data); applySkin(); }); } function timeshiftFilterLeft() { var json = { move_left_x: 1, move_left_y: 1, date1: $('#date1').val(), date2: $('#date2').val(), predefined_timespan: $('#predefined_timespan').val(), predefined_timeshift: $('#predefined_timeshift').val() }; var url = 'graph_view.php?action=tree_content&tree_id=<?php print $_SESSION['sess_graph_tree_tree_id']; ?> &leaf_id=<?php print $_SESSION['sess_graph_tree_leaf_id']; ?> &host_group_data=<?php print $_SESSION['sess_graph_tree_host_group_data']; ?> &nodeid=<?php print $_SESSION['sess_graph_tree_nodeid']; ?> '; $.post(url, json).done(function(data) { $('#main').html(data); applySkin(); }); } function timeshiftFilterRight() { var json = { move_right_x: 1, move_right_y: 1, date1: $('#date1').val(), date2: $('#date2').val(), predefined_timespan: $('#predefined_timespan').val(), predefined_timeshift: $('#predefined_timeshift').val() }; var url = 'graph_view.php?action=tree_content&tree_id=<?php print $_SESSION['sess_graph_tree_tree_id']; ?> &leaf_id=<?php print $_SESSION['sess_graph_tree_leaf_id']; ?> &host_group_data=<?php print $_SESSION['sess_graph_tree_host_group_data']; ?> &nodeid=<?php print $_SESSION['sess_graph_tree_nodeid']; ?> '; $.post(url, json).done(function(data) { $('#main').html(data); applySkin(); }); } function url_graph(strNavURL) { return ''; } </script> <?php html_end_box(); api_plugin_hook_function('graph_tree_page_buttons', array('treeid' => $tree_id, 'leafid' => $leaf_id, 'mode' => 'tree', 'timespan' => $_SESSION['sess_current_timespan'], 'starttime' => get_current_graph_start(), 'endtime' => get_current_graph_end())); html_start_box('', '100%', "", '3', 'center', ''); $graph_list = array(); /* if the number of rows is -1, set it to the default */ if ($_REQUEST['graphs'] == -1) { $_REQUEST['graphs'] = read_graph_config_option('treeview_graphs_per_page'); } if ($leaf_type == 'header' || empty($leaf_id)) { $sql_where = ''; if (strlen(get_request_var_request('filter'))) { $sql_where = " (gtg.title_cache LIKE '%" . get_request_var_request('filter') . "%' OR gtg.title LIKE '%" . get_request_var_request('filter') . "%')"; } $graph_list = get_allowed_tree_header_graphs($tree_id, $leaf_id, $sql_where); } elseif ($leaf_type == 'host') { /* graph template grouping */ if ($leaf['host_grouping_type'] == HOST_GROUPING_GRAPH_TEMPLATE) { $sql_where = 'gl.host_id=' . $leaf['host_id'] . (empty($graph_template_id) ? '' : ' AND gt.id=' . $graph_template_id); $graph_templates = get_allowed_graph_templates($sql_where); /* for graphs without a template */ array_push($graph_templates, array('id' => '0', 'name' => '(No Graph Template)')); if (sizeof($graph_templates) > 0) { foreach ($graph_templates as $graph_template) { $sql_where = ''; if (strlen(get_request_var_request('filter'))) { $sql_where = " (gtg.title_cache LIKE '%" . get_request_var_request('filter') . "%')"; } $sql_where .= (strlen($sql_where) ? 'AND' : '') . ' gl.graph_template_id=' . $graph_template['id'] . ' AND gl.host_id=' . $leaf['host_id']; $graphs = get_allowed_graphs($sql_where); /* let's sort the graphs naturally */ usort($graphs, 'naturally_sort_graphs'); if (sizeof($graphs)) { foreach ($graphs as $graph) { $graph['graph_template_name'] = $graph_template['name']; array_push($graph_list, $graph); } } } } /* data query index grouping */ } elseif ($leaf['host_grouping_type'] == HOST_GROUPING_DATA_QUERY_INDEX) { $data_queries = db_fetch_assoc("SELECT sq.id, sq.name\n\t\t\t\tFROM graph_local AS gl\n\t\t\t\tINNER JOIN snmp_query AS sq\n\t\t\t\tON gl.snmp_query_id=sq.id\n\t\t\t\tWHERE gl.host_id=" . $leaf['host_id'] . "\n\t\t\t\t" . (!isset($data_query_id) ? '' : "AND sq.id={$data_query_id}") . "\n\t\t\t\tGROUP BY sq.id\n\t\t\t\tORDER BY sq.name"); /* for graphs without a data query */ if (empty($data_query_id)) { array_push($data_queries, array('id' => '0', 'name' => 'Non Query Based')); } if (sizeof($data_queries) > 0) { foreach ($data_queries as $data_query) { $sql_where = ''; /* fetch a list of field names that are sorted by the preferred sort field */ $sort_field_data = get_formatted_data_query_indexes($leaf['host_id'], $data_query['id']); if (strlen(get_request_var_request('filter'))) { $sql_where = " (gtg.title_cache LIKE '%" . get_request_var_request('filter') . "%')"; } /* grab a list of all graphs for this host/data query combination */ $sql_where .= (strlen($sql_where) ? ' AND ' : '') . ' gl.snmp_query_id=' . $data_query['id'] . ' AND gl.host_id=' . $leaf['host_id'] . "\n " . (empty($data_query_index) ? '' : " AND gl.snmp_index='{$data_query_index}'"); $graphs = get_allowed_graphs($sql_where); /* re-key the results on data query index */ $snmp_index_to_graph = array(); if (sizeof($graphs) > 0) { /* let's sort the graphs naturally */ usort($graphs, 'naturally_sort_graphs'); foreach ($graphs as $graph) { $snmp_index_to_graph[$graph['snmp_index']][$graph['local_graph_id']] = $graph['title_cache']; $graphs_height[$graph['local_graph_id']] = $graph['height']; $graphs_width[$graph['local_graph_id']] = $graph['width']; } } /* using the sorted data as they key; grab each snmp index from the master list */ while (list($snmp_index, $sort_field_value) = each($sort_field_data)) { /* render each graph for the current data query index */ if (isset($snmp_index_to_graph[$snmp_index])) { while (list($local_graph_id, $graph_title) = each($snmp_index_to_graph[$snmp_index])) { /* reformat the array so it's compatable with the html_graph* area functions */ array_push($graph_list, array('data_query_name' => $data_query['name'], 'sort_field_value' => $sort_field_value, 'local_graph_id' => $local_graph_id, 'title_cache' => $graph_title, 'height' => $graphs_height[$graph['local_graph_id']], 'width' => $graphs_width[$graph['local_graph_id']])); } } } } } } } $total_rows = sizeof($graph_list); /* generate page list */ $nav = html_nav_bar("graph_view.php?action=tree_content&tree_id={$tree_id}&leaf_id={$leaf_id}&nodeid=" . get_request_var_request('nodeid') . '&host_group_data=' . get_request_var_request('host_group_data'), MAX_DISPLAY_PAGES, get_request_var_request('page'), get_request_var_request('graphs'), $total_rows, 5, 'Graphs', 'page', 'main'); print $nav; /* start graph display */ print "<tr class='tableHeader'><td width='390' colspan='11' class='graphSubHeaderColumn textHeaderDark'>{$title}</td></tr>"; $i = get_request_var_request('graphs') * (get_request_var_request('page') - 1); $last_graph = $i + get_request_var_request('graphs'); $new_graph_list = array(); while ($i < $total_rows && $i < $last_graph) { $new_graph_list[] = $graph_list[$i]; $i++; } if ($_REQUEST['thumbnails'] == 'true') { html_graph_thumbnail_area($new_graph_list, '', 'view_type=tree&graph_start=' . get_current_graph_start() . '&graph_end=' . get_current_graph_end(), '', get_request_var_request('columns')); } else { html_graph_area($new_graph_list, '', 'view_type=tree&graph_start=' . get_current_graph_start() . '&graph_end=' . get_current_graph_end(), '', 1); } if (!empty($leaf_id)) { api_plugin_hook_function('tree_after', $host_name . ',' . get_request_var_request('leaf_id')); } api_plugin_hook_function('tree_view_page_end'); if ($total_rows > 0) { print $nav; } html_end_box(); }
</td> <td width="1"> <select name="template_id" onChange="applyGraphsFilterChange(document.form_graph_id)"> <option value="-1"<?php if ($_REQUEST["template_id"] == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if ($_REQUEST["template_id"] == "0") {?> selected<?php }?>>None</option> <?php $templates = db_fetch_assoc("SELECT DISTINCT graph_templates.id, graph_templates.name FROM graph_templates INNER JOIN graph_templates_graph ON graph_templates.id=graph_templates_graph.graph_template_id WHERE graph_templates_graph.local_graph_id>0 ORDER BY graph_templates.name"); if (sizeof($templates) > 0) { foreach ($templates as $template) { print "<option value=' " . $template["id"] . "'"; if ($_REQUEST["template_id"] == $template["id"]) { print " selected"; } print ">" . title_trim($template["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="1" nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Search:
function graph() { global $colors, $graph_actions; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("page")); /* ==================================================== */ /* clean up search string */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } /* clean up sort_column string */ if (isset($_REQUEST["sort_column"])) { $_REQUEST["sort_column"] = sanitize_search_string(get_request_var("sort_column")); } /* clean up sort_direction string */ if (isset($_REQUEST["sort_direction"])) { $_REQUEST["sort_direction"] = sanitize_search_string(get_request_var("sort_direction")); } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_graph_current_page"); kill_session_var("sess_graph_filter"); kill_session_var("sess_graph_sort_column"); kill_session_var("sess_graph_sort_direction"); kill_session_var("sess_graph_host_id"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); unset($_REQUEST["host_id"]); } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_graph_current_page", "1"); load_current_session_value("filter", "sess_graph_filter", ""); load_current_session_value("sort_column", "sess_graph_sort_column", "title_cache"); load_current_session_value("sort_direction", "sess_graph_sort_direction", "ASC"); load_current_session_value("host_id", "sess_graph_host_id", "-1"); html_start_box("<strong>Graph Management</strong>", "100%", $colors["header"], "3", "center", "graphs.php?action=graph_edit&host_id=" . $_REQUEST["host_id"]); include("./include/html/inc_graph_filter_table.php"); html_end_box(); /* form the 'where' clause for our main sql query */ if (strlen($_REQUEST["filter"])) { $sql_where = "AND (graph_templates_graph.title_cache like '%%" . $_REQUEST["filter"] . "%%'" . " OR graph_templates.name like '%%" . $_REQUEST["filter"] . "%%')"; }else{ $sql_where = ""; } if ($_REQUEST["host_id"] == "-1") { /* Show all items */ }elseif ($_REQUEST["host_id"] == "0") { $sql_where .= " AND graph_local.host_id=0"; }elseif (!empty($_REQUEST["host_id"])) { $sql_where .= " AND graph_local.host_id=" . $_REQUEST["host_id"]; } html_start_box("", "100%", $colors["header"], "3", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(graph_templates_graph.id) FROM graph_templates_graph, graph_local LEFT JOIN graph_templates ON (graph_local.graph_template_id=graph_templates.id) WHERE graph_local.id=graph_templates_graph.local_graph_id $sql_where"); $graph_list = db_fetch_assoc("SELECT graph_templates_graph.id, graph_templates_graph.local_graph_id, graph_templates_graph.height, graph_templates_graph.width, graph_templates_graph.title_cache, graph_templates.name, graph_local.host_id from graph_templates_graph,graph_local left join graph_templates ON (graph_local.graph_template_id=graph_templates.id) where graph_local.id=graph_templates_graph.local_graph_id $sql_where order by " . $_REQUEST['sort_column'] . " " . $_REQUEST['sort_direction'], read_config_option("num_rows_graph"),(read_config_option("num_rows_graph")*($_REQUEST["page"]-1))); /* generate page list */ $url_page_select = get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, read_config_option("num_rows_graph"), $total_rows, "graphs.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"]); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='4'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if ($_REQUEST["page"] > 1) { $nav .= "<a class='linkOverDark' href='graphs.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"] . "&page=" . ($_REQUEST["page"]-1) . "'>"; } $nav .= "Previous"; if ($_REQUEST["page"] > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((read_config_option("num_rows_graph")*($_REQUEST["page"]-1))+1) . " to " . ((($total_rows < read_config_option("num_rows_graph")) || ($total_rows < (read_config_option("num_rows_graph")*$_REQUEST["page"]))) ? $total_rows : (read_config_option("num_rows_graph")*$_REQUEST["page"])) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if (($_REQUEST["page"] * read_config_option("num_rows_graph")) < $total_rows) { $nav .= "<a class='linkOverDark' href='graphs.php?filter=" . $_REQUEST["filter"] . "&host_id=" . $_REQUEST["host_id"] . "&page=" . ($_REQUEST["page"]+1) . "'>"; } $nav .= "Next"; if (($_REQUEST["page"] * read_config_option("num_rows_graph")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; $display_text = array( "title_cache" => array("Graph Title", "ASC"), "name" => array("Template Name", "ASC"), "height" => array("Size", "ASC")); html_header_sort_checkbox($display_text, $_REQUEST["sort_column"], $_REQUEST["sort_direction"]); $i = 0; if (sizeof($graph_list) > 0) { foreach ($graph_list as $graph) { $template_name = ((empty($graph["name"])) ? "<em>None</em>" : $graph["name"]); form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $graph["local_graph_id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='graphs.php?action=graph_edit&id=" . $graph["local_graph_id"] . "' title='" . htmlspecialchars($graph["title_cache"]) . "'>" . (($_REQUEST["filter"] != "") ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($graph["title_cache"], read_config_option("max_title_graph"))) : title_trim($graph["title_cache"], read_config_option("max_title_graph"))) . "</a>", $graph["local_graph_id"]); form_selectable_cell((($_REQUEST["filter"] != "") ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $template_name) : $template_name) . "</a>", $graph["local_graph_id"]); form_selectable_cell($graph["height"] . "x" . $graph["width"], $graph["local_graph_id"]); form_checkbox_cell($graph["title_cache"], $graph["local_graph_id"]); form_end_row(); } /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>No Graphs Found</em></td></tr>"; } html_end_box(false); /* add a list of tree names to the actions dropdown */ add_tree_names_to_actions_array(); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($graph_actions); print "</form>\n"; }
function syslog_alerts() { global $colors, $syslog_actions, $config, $message_types, $severities; include dirname(__FILE__) . "/config.php"; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("id")); input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("enabled")); input_validate_input_number(get_request_var_request("rows")); /* ==================================================== */ /* clean up 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"])) { kill_session_var("sess_syslog_alerts_page"); kill_session_var("sess_syslog_alerts_rows"); kill_session_var("sess_syslog_alerts_filter"); kill_session_var("sess_syslog_alerts_enabled"); kill_session_var("sess_syslog_alerts_sort_column"); kill_session_var("sess_syslog_alerts_sort_direction"); $_REQUEST["page"] = 1; unset($_REQUEST["filter"]); unset($_REQUEST["enabled"]); unset($_REQUEST["rows"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } else { /* if any of the settings changed, reset the page number */ $changed = 0; $changed += syslog_check_changed("filter", "sess_syslog_alerts_filter"); $changed += syslog_check_changed("enabled", "sess_syslog_alerts_enabled"); $changed += syslog_check_changed("rows", "sess_syslog_alerts_rows"); $changed += syslog_check_changed("sort_column", "sess_syslog_alerts_sort_column"); $changed += syslog_check_changed("sort_direction", "sess_syslog_alerts_sort_direction"); 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_syslog_alerts_paage", "1"); load_current_session_value("rows", "sess_syslog_alerts_rows", "-1"); load_current_session_value("enabled", "sess_syslog_alerts_enabled", "-1"); load_current_session_value("filter", "sess_syslog_alerts_filter", ""); load_current_session_value("sort_column", "sess_syslog_alerts_sort_column", "name"); load_current_session_value("sort_direction", "sess_syslog_alerts_sort_direction", "ASC"); html_start_box("<strong>Syslog Alert Filters</strong>", "100%", $colors["header"], "3", "center", "syslog_alerts.php?action=edit"); syslog_filter(); html_end_box(); html_start_box("", "100%", $colors["header"], "3", "center", ""); $sql_where = ""; if ($_REQUEST["rows"] == "-1") { $row_limit = read_config_option("num_rows_syslog"); } elseif ($_REQUEST["rows"] == -2) { $row_limit = 999999; } else { $row_limit = $_REQUEST["rows"]; } $alerts = syslog_get_alert_records($sql_where, $row_limit); $rows_query_string = "SELECT COUNT(*)\n\t\tFROM `" . $syslogdb_default . "`.`syslog_alert`\n\t\t{$sql_where}"; $total_rows = syslog_db_fetch_cell($rows_query_string); ?> <script type="text/javascript"> <!-- function applyChange(objForm) { strURL = '?enabled=' + objForm.enabled.value; strURL = strURL + '&filter=' + objForm.filter.value; strURL = strURL + '&rows=' + objForm.rows.value; document.location = strURL; } --> </script> <?php /* generate page list */ $url_page_select = get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, $row_limit, $total_rows, "syslog_alerts.php?filter=" . $_REQUEST["filter"]); if ($total_rows > 0) { $nav = "<tr bgcolor='#" . $colors["header"] . "'>\n\t\t\t\t\t<td colspan='13'>\n\t\t\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td align='left' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\t<strong><< "; if ($_REQUEST["page"] > 1) { $nav .= "<a class='linkOverDark' href='syslog_alerts.php?report=arp&page=" . ($_REQUEST["page"] - 1) . "'>"; } $nav .= "Previous"; if ($_REQUEST["page"] > 1) { $nav .= "</a>"; } $nav .= "</strong>\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\tShowing Rows " . ($total_rows == 0 ? "None" : $row_limit * ($_REQUEST["page"] - 1) + 1 . " to " . ($total_rows < $row_limit || $total_rows < $row_limit * $_REQUEST["page"] ? $total_rows : $row_limit * $_REQUEST["page"]) . " of {$total_rows} [{$url_page_select}]") . "\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t\t<td align='right' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\t<strong>"; if ($_REQUEST["page"] * $row_limit < $total_rows) { $nav .= "<a class='linkOverDark' href='syslog_alerts.php?report=arp&page=" . ($_REQUEST["page"] + 1) . "'>"; } $nav .= "Next"; if ($_REQUEST["page"] * $row_limit < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong>\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n"; } else { $nav = "<tr bgcolor='#" . $colors["header"] . "' class='noprint'>\n\t\t\t\t\t<td colspan='22'>\n\t\t\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\tNo Rows Found\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n"; } print $nav; $display_text = array("name" => array("Alert<br>Name", "ASC"), "severity" => array("<br>Severity", "ASC"), "method" => array("<br>Method", "ASC"), "num" => array("Threshold<br>Count", "ASC"), "enabled" => array("<br>Enabled", "ASC"), "type" => array("Match<br>Type", "ASC"), "message" => array("Search<br>String", "ASC"), "email" => array("E-Mail<br>Addresses", "DESC"), "date" => array("Last<br>Modified", "ASC"), "user" => array("By<br>User", "DESC")); html_header_sort_checkbox($display_text, $_REQUEST["sort_column"], $_REQUEST["sort_direction"]); $i = 0; if (sizeof($alerts) > 0) { foreach ($alerts as $alert) { form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $alert["id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='" . $config['url_path'] . "plugins/syslog/syslog_alerts.php?action=edit&id=" . $alert["id"] . "'>" . ($_REQUEST["filter"] != "" ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $alert["name"]) : $alert["name"]) . "</a>", $alert["id"]); form_selectable_cell($severities[$alert["severity"]], $alert["id"]); form_selectable_cell($alert["method"] == 1 ? "Threshold" : "Individual", $alert["id"]); form_selectable_cell($alert["method"] == 1 ? $alert["num"] : "N/A", $alert["id"]); form_selectable_cell($alert["enabled"] == "on" ? "Yes" : "No", $alert["id"]); form_selectable_cell($message_types[$alert["type"]], $alert["id"]); form_selectable_cell(title_trim($alert["message"], 60), $alert["id"]); form_selectable_cell(substr_count($alert["email"], ",") ? "Multiple" : $alert["email"], $alert["id"]); form_selectable_cell(date("Y-m-d H:i:s", $alert["date"]), $alert["id"]); form_selectable_cell($alert["user"], $alert["id"]); form_checkbox_cell($alert["name"], $alert["id"]); form_end_row(); } } else { print "<tr><td colspan='4'><em>No Syslog Alerts Defined</em></td></tr>"; } html_end_box(false); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($syslog_actions); }
<td> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td width="100"> Select a host: </td> <td width="1"> <select name="cbo_graph_id" onChange="window.location=document.form_graph_id.cbo_graph_id.options[document.form_graph_id.cbo_graph_id.selectedIndex].value"> <option value="data_sources.php?host_id=-1&filter=<?php print $_REQUEST["filter"];?>"<?php if ($_REQUEST["host_id"] == "-1") {?> selected<?php }?>>Any</option> <option value="data_sources.php?host_id=0&filter=<?php print $_REQUEST["filter"];?>"<?php if ($_REQUEST["host_id"] == "0") {?> selected<?php }?>>None</option> <?php $hosts = db_fetch_assoc("select id,CONCAT_WS('',description,' (',hostname,')') as name from host order by description,hostname"); if (sizeof($hosts) > 0) { foreach ($hosts as $host) { print "<option value='data_sources.php?host_id=" . $host["id"] . "&page=1'"; if ($_REQUEST["host_id"] == $host["id"]) { print " selected"; } print ">" . title_trim($host["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="30"></td> <td width="60"> Search: </td> <td width="1"> <input type="text" name="filter" size="20" value="<?php print $_REQUEST["filter"];?>"> </td> <td> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle">
function graph() { global $colors, $graph_actions, $item_rows; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("graph_rows")); input_validate_input_number(get_request_var_request("template_id")); input_validate_input_number(get_request_var_request("page")); /* ==================================================== */ /* clean up search string */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } /* clean up sort_column string */ if (isset($_REQUEST["sort_column"])) { $_REQUEST["sort_column"] = sanitize_search_string(get_request_var("sort_column")); } /* clean up sort_direction string */ if (isset($_REQUEST["sort_direction"])) { $_REQUEST["sort_direction"] = sanitize_search_string(get_request_var("sort_direction")); } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_graph_current_page"); kill_session_var("sess_graph_filter"); kill_session_var("sess_graph_sort_column"); kill_session_var("sess_graph_sort_direction"); kill_session_var("sess_graph_host_id"); kill_session_var("sess_graph_rows"); kill_session_var("sess_graph_template_id"); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); unset($_REQUEST["host_id"]); unset($_REQUEST["graph_rows"]); unset($_REQUEST["template_id"]); } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_graph_current_page", "1"); load_current_session_value("filter", "sess_graph_filter", ""); load_current_session_value("sort_column", "sess_graph_sort_column", "title_cache"); load_current_session_value("sort_direction", "sess_graph_sort_direction", "ASC"); load_current_session_value("host_id", "sess_graph_host_id", "-1"); load_current_session_value("graph_rows", "sess_graph_rows", read_config_option("num_rows_graph")); load_current_session_value("template_id", "sess_graph_template_id", "-1"); /* if the number of rows is -1, set it to the default */ if (get_request_var_request("graph_rows") == -1) { $_REQUEST["graph_rows"] = read_config_option("num_rows_graph"); } ?> <script type="text/javascript"> <!-- function applyGraphsFilterChange(objForm) { strURL = '?host_id=' + objForm.host_id.value; strURL = strURL + '&graph_rows=' + objForm.graph_rows.value; strURL = strURL + '&filter=' + objForm.filter.value; strURL = strURL + '&template_id=' + objForm.template_id.value; document.location = strURL; } --> </script> <?php html_start_box("<strong>Graph Management</strong>", "100%", $colors["header"], "3", "center", "graphs.php?action=graph_edit&host_id=" . get_request_var_request("host_id")); ?> <tr bgcolor="<?php print $colors["panel"];?>"> <form name="form_graph_id"> <td> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Host: </td> <td width="1"> <select name="host_id" onChange="applyGraphsFilterChange(document.form_graph_id)"> <option value="-1"<?php if (get_request_var_request("host_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("host_id") == "0") {?> selected<?php }?>>None</option> <?php if (read_config_option("auth_method") != 0) { /* get policy information for the sql where clause */ $current_user = db_fetch_row("select * from user_auth where id=" . $_SESSION["sess_user_id"]); $sql_where = get_graph_permissions_sql($current_user["policy_graphs"], $current_user["policy_hosts"], $current_user["policy_graph_templates"]); $hosts = db_fetch_assoc("SELECT DISTINCT host.id, CONCAT_WS('',host.description,' (',host.hostname,')') as name FROM (graph_templates_graph,host) LEFT JOIN graph_local ON (graph_local.host_id=host.id) LEFT JOIN graph_templates ON (graph_templates.id=graph_local.graph_template_id) LEFT JOIN user_auth_perms ON ((graph_templates_graph.local_graph_id=user_auth_perms.item_id and user_auth_perms.type=1 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (host.id=user_auth_perms.item_id and user_auth_perms.type=3 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (graph_templates.id=user_auth_perms.item_id and user_auth_perms.type=4 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ")) WHERE graph_templates_graph.local_graph_id=graph_local.id " . (empty($sql_where) ? "" : "and $sql_where") . " ORDER BY name"); }else{ $hosts = db_fetch_assoc("SELECT DISTINCT host.id, CONCAT_WS('',host.description,' (',host.hostname,')') as name FROM host ORDER BY name"); } if (sizeof($hosts) > 0) { foreach ($hosts as $host) { print "<option value=' " . $host["id"] . "'"; if (get_request_var_request("host_id") == $host["id"]) { print " selected"; } print ">" . title_trim($host["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="70"> Template: </td> <td width="1"> <select name="template_id" onChange="applyGraphsFilterChange(document.form_graph_id)"> <option value="-1"<?php if (get_request_var_request("template_id") == "-1") {?> selected<?php }?>>Any</option> <option value="0"<?php if (get_request_var_request("template_id") == "0") {?> selected<?php }?>>None</option> <?php if (read_config_option("auth_method") != 0) { $templates = db_fetch_assoc("SELECT DISTINCT graph_templates.id, graph_templates.name FROM (graph_templates_graph,graph_local) LEFT JOIN host ON (host.id=graph_local.host_id) LEFT JOIN graph_templates ON (graph_templates.id=graph_local.graph_template_id) LEFT JOIN user_auth_perms ON ((graph_templates_graph.local_graph_id=user_auth_perms.item_id and user_auth_perms.type=1 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (host.id=user_auth_perms.item_id and user_auth_perms.type=3 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") OR (graph_templates.id=user_auth_perms.item_id and user_auth_perms.type=4 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ")) WHERE graph_templates_graph.local_graph_id=graph_local.id AND graph_templates.id IS NOT NULL " . (empty($sql_where) ? "" : "AND $sql_where") . " ORDER BY name"); }else{ $templates = db_fetch_assoc("SELECT DISTINCT graph_templates.id, graph_templates.name FROM graph_templates ORDER BY name"); } if (sizeof($templates) > 0) { foreach ($templates as $template) { print "<option value=' " . $template["id"] . "'"; if (get_request_var_request("template_id") == $template["id"]) { print " selected"; } print ">" . title_trim($template["name"], 40) . "</option>\n"; } } ?> </select> </td> <td width="120" nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> <table cellpadding="1" cellspacing="0"> <tr> <td width="50"> Search: </td> <td> <input type="text" name="filter" size="40" value="<?php print get_request_var_request("filter");?>"> </td> <td nowrap style='white-space: nowrap;' width="50"> Rows per Page: </td> <td width="1"> <select name="graph_rows" onChange="applyGraphsFilterChange(document.form_graph_id)"> <option value="-1"<?php if (get_request_var_request("graph_rows") == "-1") {?> selected<?php }?>>Default</option> <?php if (sizeof($item_rows) > 0) { foreach ($item_rows as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("graph_rows") == $key) { print " selected"; } print ">" . $value . "</option>\n"; } } ?> </select> </td> </tr> </table> </td> <input type='hidden' name='page' value='1'> </form> </tr> <?php html_end_box(); /* form the 'where' clause for our main sql query */ if (strlen(get_request_var_request("filter"))) { $sql_where = "AND (graph_templates_graph.title_cache like '%%" . get_request_var_request("filter") . "%%'" . " OR graph_templates.name like '%%" . get_request_var_request("filter") . "%%')"; }else{ $sql_where = ""; } if (get_request_var_request("host_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("host_id") == "0") { $sql_where .= " AND graph_local.host_id=0"; }elseif (!empty($_REQUEST["host_id"])) { $sql_where .= " AND graph_local.host_id=" . get_request_var_request("host_id"); } if (get_request_var_request("template_id") == "-1") { /* Show all items */ }elseif (get_request_var_request("template_id") == "0") { $sql_where .= " AND graph_templates_graph.graph_template_id=0"; }elseif (!empty($_REQUEST["template_id"])) { $sql_where .= " AND graph_templates_graph.graph_template_id=" . get_request_var_request("template_id"); } html_start_box("", "100%", $colors["header"], "3", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(graph_templates_graph.id) FROM (graph_local,graph_templates_graph) LEFT JOIN graph_templates ON (graph_local.graph_template_id=graph_templates.id) WHERE graph_local.id=graph_templates_graph.local_graph_id $sql_where"); $graph_list = db_fetch_assoc("SELECT graph_templates_graph.id, graph_templates_graph.local_graph_id, graph_templates_graph.height, graph_templates_graph.width, graph_templates_graph.title_cache, graph_templates.name, graph_local.host_id FROM (graph_local,graph_templates_graph) LEFT JOIN graph_templates ON (graph_local.graph_template_id=graph_templates.id) WHERE graph_local.id=graph_templates_graph.local_graph_id $sql_where ORDER BY " . $_REQUEST["sort_column"] . " " . get_request_var_request("sort_direction") . " LIMIT " . (get_request_var_request("graph_rows")*(get_request_var_request("page")-1)) . "," . get_request_var_request("graph_rows")); /* generate page list */ $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, get_request_var_request("graph_rows"), $total_rows, "graphs.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id")); $nav = "<tr bgcolor='#" . $colors["header"] . "'> <td colspan='5'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='graphs.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id") . "&page=" . (get_request_var_request("page")-1) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . ((get_request_var_request("graph_rows")*(get_request_var_request("page")-1))+1) . " to " . ((($total_rows < get_request_var_request("graph_rows")) || ($total_rows < (get_request_var_request("graph_rows")*get_request_var_request("page")))) ? $total_rows : (get_request_var_request("graph_rows")*get_request_var_request("page"))) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if ((get_request_var_request("page") * get_request_var_request("graph_rows")) < $total_rows) { $nav .= "<a class='linkOverDark' href='graphs.php?filter=" . get_request_var_request("filter") . "&host_id=" . get_request_var_request("host_id") . "&page=" . (get_request_var_request("page")+1) . "'>"; } $nav .= "Next"; if ((get_request_var_request("page") * get_request_var_request("graph_rows")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; $display_text = array( "title_cache" => array("Graph Title", "ASC"), "local_graph_id" => array("ID", "ASC"), "name" => array("Template Name", "ASC"), "height" => array("Size", "ASC")); html_header_sort_checkbox($display_text, get_request_var_request("sort_column"), get_request_var_request("sort_direction")); $i = 0; if (sizeof($graph_list) > 0) { foreach ($graph_list as $graph) { $template_name = ((empty($graph["name"])) ? "<em>None</em>" : $graph["name"]); form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $graph["local_graph_id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='graphs.php?action=graph_edit&id=" . $graph["local_graph_id"] . "' title='" . htmlspecialchars($graph["title_cache"]) . "'>" . ((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($graph["title_cache"], read_config_option("max_title_graph"))) : title_trim($graph["title_cache"], read_config_option("max_title_graph"))) . "</a>", $graph["local_graph_id"]); form_selectable_cell($graph["local_graph_id"], $graph["local_graph_id"]); form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $template_name) : $template_name) . "</a>", $graph["local_graph_id"]); form_selectable_cell($graph["height"] . "x" . $graph["width"], $graph["local_graph_id"]); form_checkbox_cell($graph["title_cache"], $graph["local_graph_id"]); form_end_row(); } /* put the nav bar on the bottom as well */ print $nav; }else{ print "<tr><td><em>No Graphs Found</em></td></tr>"; } html_end_box(false); /* add a list of tree names to the actions dropdown */ add_tree_names_to_actions_array(); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($graph_actions); print "</form>\n"; }
function graph_view_timespan_selector($mode = "tree") { global $colors, $config; require(CACTI_BASE_PATH . "/include/graph/graph_arrays.php"); ?> <script type='text/javascript'> <!-- // Initialize the calendar calendar=null; // This function displays the calendar associated to the input field 'id' function showCalendar(id) { var el = document.getElementById(id); if (calendar != null) { // we already have some calendar created calendar.hide(); // so we hide it first. } else { // first-time call, create the calendar. var cal = new Calendar(true, null, selected, closeHandler); cal.weekNumbers = false; // Do not display the week number cal.showsTime = true; // Display the time cal.time24 = true; // Hours have a 24 hours format cal.showsOtherMonths = false; // Just the current month is displayed calendar = cal; // remember it in the global var cal.setRange(1900, 2070); // min/max year allowed. cal.create(); } calendar.setDateFormat('%Y-%m-%d %H:%M'); // set the specified date format calendar.parseDate(el.value); // try to parse the text in field calendar.sel = el; // inform it what input field we use // Display the calendar below the input field calendar.showAtElement(el, "Br"); // show the calendar return false; } // This function update the date in the input field when selected function selected(cal, date) { cal.sel.value = date; // just update the date in the input field. } // This function gets called when the end-user clicks on the 'Close' button. // It just hides the calendar without destroying it. function closeHandler(cal) { cal.hide(); // hide the calendar calendar = null; } request_type = 'preset'; function applyTimespanFilterChange(objForm) { <?php if ($mode == 'tree') { ?> if (request_type == 'preset') { strURL = '?action=ajax_tree_graphs&predefined_timespan=' + objForm.predefined_timespan.value; }else{ strURL = '?action=ajax_tree_graphs&date1=' + objForm.date1.value; strURL = strURL + '&date2=' + objForm.date2.value; } $.get("graph_view.php" + strURL, function (data) { $("#graphs").html(data); }); <?php }else{ ;?> if (request_type == 'preset') { strURL = '?action=ajax_preview&predefined_timespan=' + objForm.predefined_timespan.value; }else{ strURL = '?action=ajax_preview&date1=' + objForm.date1.value; strURL = strURL + '&date2=' + objForm.date2.value; } $.get("graph_view.php" + strURL, function (data) { $("#graph_content").html(data); }); <?php } ;?> } function clearTimespanFilter(objForm) { <?php if ($mode == 'tree') { ?> strURL = '?action=ajax_tree_graphs&button_clear_x=true'; $.get("graph_view.php" + strURL, function (data) { $("#graphs").html(data); }); <?php }else{ ;?> strURL = '?action=ajax_preview&button_clear_x=true'; $.get("graph_view.php" + strURL, function (data) { $("#graph_content").html(data); }); <?php } ;?> } function timeShift(objForm, direction) { <?php if ($mode == 'tree') { ?> strURL = '?action=ajax_tree_graphs&move_' + direction + '=true'; strURL = strURL + '&predefined_timeshift=' + objForm.predefined_timeshift.value; strURL = strURL + '&date1=' + objForm.date1.value; strURL = strURL + '&date2=' + objForm.date2.value; $.get("graph_view.php" + strURL, function (data) { $("#graphs").html(data); }); <?php }else{ ;?> strURL = '?action=ajax_preview&move_' + direction + '=true'; strURL = strURL + '&predefined_timeshift=' + objForm.predefined_timeshift.value; strURL = strURL + '&date1=' + objForm.date1.value; strURL = strURL + '&date2=' + objForm.date2.value; $.get("graph_view.php" + strURL, function (data) { $("#graph_content").html(data); }); <?php } ;?> } //--> </script> <?php html_start_box("", "100", $colors["header"], "0", "center", ""); ?> <tr class="rowGraphFilter noprint"> <td class="noprint"> <form name="form_timespan_selector" method="post" action="graph_view.php"> <table border="0" cellpadding="0" cellspacing="0"> <tr class="rowGraphFilter"> <td class="nw50"> <?php print __("Presets:");?> </td> <td class="nw120"> <select name='predefined_timespan' onChange='request_type="preset";applyTimespanFilterChange(document.form_timespan_selector)'><?php if ($_SESSION["custom"]) { $graph_timespans[GT_CUSTOM] = __("Custom"); $start_val = 0; $end_val = sizeof($graph_timespans); } else { if (isset($graph_timespans[GT_CUSTOM])) { asort($graph_timespans); array_shift($graph_timespans); } $start_val = 1; $end_val = sizeof($graph_timespans)+1; } if (sizeof($graph_timespans) > 0) { for ($value=$start_val; $value < $end_val; $value++) { print "\t\t\t\t\t\t\t<option value='$value'"; if ($_SESSION["sess_current_timespan"] == $value) { print " selected"; } print ">" . title_trim($graph_timespans[$value], 40) . "</option>\n"; } } ?> </select> </td> <td class='nw30'> <?php print __("From:");?> </td> <td class='nw140'> <input type='text' name='date1' id='date1' title='<?php print __("Graph Begin Timestamp");?>' size='16' value='<?php print (isset($_SESSION["sess_current_date1"]) ? $_SESSION["sess_current_date1"] : "");?>'> <input type='image' class='img_filter' src='images/calendar.gif' alt='<?php print __("Start");?>' title='<?php print __("Start Date Selector");?>' onclick='return showCalendar("date1");'> </td> <td class='nw30'> <?php print __("To:");?> </td> <td class='nw140'> <input type='text' name='date2' id='date2' title='<?php print __("Graph End Timestamp");?>' size='16' value='<?php print (isset($_SESSION["sess_current_date2"]) ? $_SESSION["sess_current_date2"] : "");?>'> <input type='image' class='img_filter' src='images/calendar.gif' alt='<?php print __("End");?>' title='<?php print __("End Date Selector");?>' onclick='return showCalendar("date2");'> </td> <td class='nw140'> <img onMouseOver='this.style.cursor="pointer"' onClick='return timeShift(document.form_timespan_selector, "left")' class='img_filter' name='move_left' src='images/move_left.gif' alt='<?php print __("Left");?>' title='<?php print __("Shift Left");?>'> <select name='predefined_timeshift' title='<?php print __("Define Shifting Interval");?>'><?php $start_val = 1; $end_val = sizeof($graph_timeshifts)+1; if (sizeof($graph_timeshifts) > 0) { for ($shift_value=$start_val; $shift_value < $end_val; $shift_value++) { print "\t\t\t\t\t\t\t<option value='$shift_value'"; if ($_SESSION["sess_current_timeshift"] == $shift_value) { print " selected"; } print ">" . title_trim($graph_timeshifts[$shift_value], 40) . "</option>\n"; } } ?> </select> <img onMouseOver='this.style.cursor="pointer"' onClick='return timeShift(document.form_timespan_selector, "right")' class='img_filter' name='move_right' src='images/move_right.gif' alt='<?php print __("Right");?>' title='<?php print __("Shift Right");?>'> </td> <td class="nw120"> <input type='button' value='<?php print __("Refresh");?>' name='button_refresh' onclick='request_type="daterange";applyTimespanFilterChange(document.form_timespan_selector)'> <input type='button' value='<?php print __("Clear");?>' name='button_clear_x' onclick='clearTimespanFilter()'> </td> </tr> </table> </form> </td> </tr> <?php html_graph_end_box(FALSE); }