function item_remove() { /* ================= input validation ================= */ input_validate_input_number(get_request_var("id")); input_validate_input_number(get_request_var("tree_id")); /* ==================================================== */ if ((read_config_option("remove_verification") == "on") && (!isset($_GET["confirm"]))) { $graph_tree_item = db_fetch_row("select title,local_graph_id,host_id from graph_tree_items where id=" . $_GET["id"]); if (!empty($graph_tree_item["local_graph_id"])) { $text = "Are you sure you want to delete the graph item <strong>'" . db_fetch_cell("select title_cache from graph_templates_graph where local_graph_id=" . $graph_tree_item["local_graph_id"]) . "'</strong>?"; }elseif ($graph_tree_item["title"] != "") { $text = "Are you sure you want to delete the header item <strong>'" . $graph_tree_item["title"] . "'</strong>?"; }elseif (!empty($graph_tree_item["host_id"])) { $text = "Are you sure you want to delete the host item <strong>'" . db_fetch_cell("select ".sql_function_concat("description","' ('","hostname","')'")." as hostname from host where id=" . $graph_tree_item["host_id"]) . "'</strong>?"; } include("./include/top_header.php"); form_confirm("Are You Sure?", $text, "tree.php?action=edit&id=" . $_GET["tree_id"], "tree.php?action=item_remove&id=" . $_GET["id"] . "&tree_id=" . $_GET["tree_id"]); include("./include/bottom_footer.php"); exit; } if ((read_config_option("remove_verification") == "") || (isset($_GET["confirm"]))) { delete_branch($_GET["id"]); } header("Location: tree.php?action=edit&id=" . $_GET["tree_id"]); exit; }
function graph_edit() { global $colors, $struct_graph, $image_types, $consolidation_functions, $graph_item_types, $struct_graph_item; /* ================= input validation ================= */ input_validate_input_number(get_request_var("id")); /* ==================================================== */ $use_graph_template = true; if (!empty($_GET["id"])) { $local_graph_template_graph_id = db_fetch_cell("select local_graph_template_graph_id from graph_templates_graph where local_graph_id=" . $_GET["id"]); $graphs = db_fetch_row("select * from graph_templates_graph where local_graph_id=" . $_GET["id"]); $graphs_template = db_fetch_row("select * from graph_templates_graph where id=$local_graph_template_graph_id"); $host_id = db_fetch_cell("select host_id from graph_local where id=" . $_GET["id"]); $header_label = "[edit: " . get_graph_title($_GET["id"]) . "]"; if ($graphs["graph_template_id"] == "0") { $use_graph_template = false; } }else{ $header_label = "[new]"; $use_graph_template = false; } /* handle debug mode */ if (isset($_GET["debug"])) { if ($_GET["debug"] == "0") { kill_session_var("graph_debug_mode"); }elseif ($_GET["debug"] == "1") { $_SESSION["graph_debug_mode"] = true; } } if (!empty($_GET["id"])) { ?> <table width="100%" align="center"> <tr> <td class="textInfo" colspan="2" valign="top"> <?php print get_graph_title($_GET["id"]);?> </td> <td class="textInfo" align="right" valign="top"> <span style="color: #c16921;">*<a href='graphs.php?action=graph_edit&id=<?php print (isset($_GET["id"]) ? $_GET["id"] : 0);?>&debug=<?php print (isset($_SESSION["graph_debug_mode"]) ? "0" : "1");?>'>Turn <strong><?php print (isset($_SESSION["graph_debug_mode"]) ? "Off" : "On");?></strong> Graph Debug Mode.</a> </td> </tr> </table> <br> <?php } html_start_box("<strong>Graph Template Selection</strong> $header_label", "100%", $colors["header"], "3", "center", ""); $form_array = array( "graph_template_id" => array( "method" => "drop_sql", "friendly_name" => "Selected Graph Template", "description" => "Choose a graph template to apply to this graph. Please note that graph data may be lost if you change the graph template after one is already applied.", "value" => (isset($graphs) ? $graphs["graph_template_id"] : "0"), "none_value" => "None", "sql" => "select graph_templates.id,graph_templates.name from graph_templates order by name" ), "host_id" => array( "method" => "drop_sql", "friendly_name" => "Host", "description" => "Choose the host that this graph belongs to.", "value" => (isset($_GET["host_id"]) ? $_GET["host_id"] : $host_id), "none_value" => "None", "sql" => "select id,".sql_function_concat("host.description","' ('","host.hostname","')'")." as name from host order by description,hostname" ), "graph_template_graph_id" => array( "method" => "hidden", "value" => (isset($graphs) ? $graphs["id"] : "0") ), "local_graph_id" => array( "method" => "hidden", "value" => (isset($graphs) ? $graphs["local_graph_id"] : "0") ), "local_graph_template_graph_id" => array( "method" => "hidden", "value" => (isset($graphs) ? $graphs["local_graph_template_graph_id"] : "0") ), "_graph_template_id" => array( "method" => "hidden", "value" => (isset($graphs) ? $graphs["graph_template_id"] : "0") ), "_host_id" => array( "method" => "hidden", "value" => (isset($host_id) ? $host_id : "0") ) ); draw_edit_form( array( "config" => array(), "fields" => $form_array ) ); html_end_box(); /* only display the "inputs" area if we are using a graph template for this graph */ if (!empty($graphs["graph_template_id"])) { html_start_box("<strong>Supplemental Graph Template Data</strong>", "100%", $colors["header"], "3", "center", ""); print "<form method='post' action='graphs.php'>\n"; draw_nontemplated_fields_graph($graphs["graph_template_id"], $graphs, "|field|", "<strong>Graph Fields</strong>", true, true, 0); draw_nontemplated_fields_graph_item($graphs["graph_template_id"], $_GET["id"], "|field|_|id|", "<strong>Graph Item Fields</strong>", true); html_end_box(); } /* graph item list goes here */ if ((!empty($_GET["id"])) && (empty($graphs["graph_template_id"]))) { item(); } if (!empty($_GET["id"])) { ?> <table width="100%" align="center"> <tr> <td align="center" class="textInfo" colspan="2"> <img src="graph_image.php?action=edit&local_graph_id=<?php print $_GET["id"];?>&rra_id=<?php print read_graph_config_option("default_rra_id");?>" alt=""> </td> <?php if ((isset($_SESSION["graph_debug_mode"])) && (isset($_GET["id"]))) { $graph_data_array["output_flag"] = RRDTOOL_OUTPUT_STDERR; $graph_data_array["print_source"] = 1; ?> <td> <span class="textInfo">RRDTool Command:</span><br> <pre><?php print rrdtool_function_graph($_GET["id"], 1, $graph_data_array);?></pre> <span class="textInfo">RRDTool Says:</span><br> <?php unset($graph_data_array["print_source"]);?> <pre><?php print rrdtool_function_graph($_GET["id"], 1, $graph_data_array);?></pre> </td> <?php } ?> </tr> </table> <br> <?php } if (((isset($_GET["id"])) || (isset($_GET["new"]))) && (empty($graphs["graph_template_id"]))) { html_start_box("<strong>Graph Configuration</strong>", "100%", $colors["header"], "3", "center", ""); $form_array = array(); while (list($field_name, $field_array) = each($struct_graph)) { $form_array += array($field_name => $struct_graph[$field_name]); $form_array[$field_name]["value"] = (isset($graphs) ? $graphs[$field_name] : ""); $form_array[$field_name]["form_id"] = (isset($graphs) ? $graphs["id"] : "0"); if (!(($use_graph_template == false) || ($graphs_template{"t_" . $field_name} == "on"))) { $form_array[$field_name]["method"] = "template_" . $form_array[$field_name]["method"]; $form_array[$field_name]["description"] = ""; } } draw_edit_form( array( "config" => array( "no_form_tag" => true ), "fields" => $form_array ) ); html_end_box(); } if ((isset($_GET["id"])) || (isset($_GET["new"]))) { form_hidden_box("save_component_graph","1",""); form_hidden_box("save_component_input","1",""); }else{ form_hidden_box("save_component_graph_new","1",""); } form_save_button("graphs.php"); }
function item() { global $colors, $consolidation_functions, $graph_item_types; /* ================= input validation ================= */ input_validate_input_number(get_request_var("id")); /* ==================================================== */ if (empty($_GET["id"])) { $template_item_list = array(); $header_label = "[new]"; }else{ $template_item_list = db_fetch_assoc("select graph_templates_item.id, graph_templates_item.text_format, graph_templates_item.value, graph_templates_item.hard_return, graph_templates_item.graph_type_id, graph_templates_item.consolidation_function_id, ".sql_function_concat("data_template_data.name","' - '","data_template_rrd.data_source_name")." as data_source_name, cdef.name as cdef_name, colors.hex from graph_templates_item left join data_template_rrd on (graph_templates_item.task_item_id=data_template_rrd.id) left join data_local on (data_template_rrd.local_data_id=data_local.id) left join data_template_data on (data_local.id=data_template_data.local_data_id) left join cdef on (cdef_id=cdef.id) left join colors on (color_id=colors.id) where graph_templates_item.graph_template_id=" . $_GET["id"] . " and graph_templates_item.local_graph_id=0 order by graph_templates_item.sequence"); $header_label = "[edit: " . db_fetch_cell("select name from graph_templates where id=" . $_GET["id"]) . "]"; } html_start_box("<strong>Graph Template Items</strong> $header_label", "100%", $colors["header"], "3", "center", "graph_templates_items.php?action=item_edit&graph_template_id=" . $_GET["id"]); draw_graph_items_list($template_item_list, "graph_templates_items.php", "graph_template_id=" . $_GET["id"], false); html_end_box(); html_start_box("<strong>Graph Item Inputs</strong>", "100%", $colors["header"], "3", "center", "graph_templates_inputs.php?action=input_edit&graph_template_id=" . $_GET["id"]); print "<tr bgcolor='#" . $colors["header_panel"] . "'>"; DrawMatrixHeaderItem("Name",$colors["header_text"],2); print "</tr>"; $template_item_list = db_fetch_assoc("select id,name from graph_template_input where graph_template_id=" . $_GET["id"] . " order by name"); $i = 0; if (sizeof($template_item_list) > 0) { foreach ($template_item_list as $item) { form_alternate_row_color($colors["alternate"],$colors["light"],$i); ?> <td> <a class="linkEditMain" href="graph_templates_inputs.php?action=input_edit&id=<?php print $item["id"];?>&graph_template_id=<?php print $_GET["id"];?>"><?php print $item["name"];?></a> </td> <td align="right"> <a href="graph_templates_inputs.php?action=input_remove&id=<?php print $item["id"];?>&graph_template_id=<?php print $_GET["id"];?>"><img src="images/delete_icon.gif" width="10" height="10" border="0" alt="Delete"></a> </td> </tr> <?php $i++; } }else{ print "<tr bgcolor='#" . $colors["form_alternate2"] . "'><td colspan='2'><em>No Inputs</em></td></tr>"; } html_end_box(); }
function get_host_array() { if (read_config_option("auth_method") != 0) { $current_user = db_fetch_row("select policy_hosts from user_auth where id=" . $_SESSION["sess_user_id"]); if ($current_user["policy_hosts"] == "1") { $sql_where = "where user_auth_perms.user_id is null"; }elseif ($current_user["policy_hosts"] == "2") { $sql_where = "where user_auth_perms.user_id is not null"; } $host_list = db_fetch_assoc("select host.id, ".sql_function_concat("host.description","' ('","host.hostname","')'")." as name, user_auth_perms.user_id from host left join user_auth_perms on (host.id=user_auth_perms.item_id and user_auth_perms.type=3 and user_auth_perms.user_id=" . $_SESSION["sess_user_id"] . ") $sql_where order by host.description,host.hostname"); }else{ $host_list = db_fetch_assoc("select id,".sql_function_concat("description","' ('","hostname","')'")." as name from host order by description,hostname"); } return $host_list; }
function item_edit() { global $colors, $struct_graph_item, $graph_item_types, $consolidation_functions; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("id")); input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("graph_template_id")); input_validate_input_number(get_request_var_request("local_graph_id")); input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("data_template_id")); /* ==================================================== */ /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("local_graph_id", "sess_local_graph_id", ""); load_current_session_value("host_id", "sess_ds_host_id", "-1"); load_current_session_value("data_template_id", "sess_data_template_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", ""); include("./include/html/inc_graph_items_filter_table.php"); html_end_box(); if ($_REQUEST["host_id"] == "-1") { $sql_where = ""; }elseif ($_REQUEST["host_id"] == "0") { $sql_where = " data_local.host_id=0 and "; }elseif (!empty($_REQUEST["host_id"])) { $sql_where = " data_local.host_id=" . $_REQUEST["host_id"] . " and "; } if ($_REQUEST["data_template_id"] == "-1") { $sql_where .= ""; }elseif ($_REQUEST["data_template_id"] == "0") { $sql_where .= " data_local.data_template_id=0 and "; }elseif (!empty($_REQUEST["data_template_id"])) { $sql_where .= " data_local.data_template_id=" . $_REQUEST["data_template_id"] . " and "; } if (!empty($_REQUEST["id"])) { $template_item = db_fetch_row("select * from graph_templates_item where id=" . $_REQUEST["id"]); $host_id = db_fetch_cell("select host_id from graph_local where id=" . $_REQUEST["local_graph_id"]); } $header_label = "[edit graph: " . db_fetch_cell("select title_cache from graph_templates_graph where local_graph_id=" . $_REQUEST["local_graph_id"]) . "]"; html_start_box("<strong>Graph Items</strong> $header_label", "100%", $colors["header"], "3", "center", ""); /* by default, select the LAST DS chosen to make everyone's lives easier */ if (!empty($_REQUEST["local_graph_id"])) { $default = db_fetch_row("select task_item_id from graph_templates_item where local_graph_id=" . $_REQUEST["local_graph_id"] . " order by sequence DESC"); if (sizeof($default) > 0) { $struct_graph_item["task_item_id"]["default"] = $default["task_item_id"]; }else{ $struct_graph_item["task_item_id"]["default"] = 0; } /* modifications to the default graph items array */ $struct_graph_item["task_item_id"]["sql"] = "select ".sql_function_concat(data_template_data.name_cache,' (',data_template_rrd.data_source_name,')'). " as name, data_template_rrd.id from data_template_data, data_template_rrd,data_local left join host on (data_local.host_id=host.id) where data_template_rrd.local_data_id=data_local.id and data_template_data.local_data_id=data_local.id "; /* Make sure we don't limit the list so that the selected DS isn't in the list in edit mode */ if (strlen($sql_where) > 0) { $sql_where = substr($sql_where,0,-5); if (!empty($_REQUEST["id"])) { $struct_graph_item["task_item_id"]["sql"] .= " and ((" . $sql_where . ") or (data_template_rrd.id = " . $template_item["task_item_id"] . "))"; } else { $struct_graph_item["task_item_id"]["sql"] .= " and (" . $sql_where . ")"; } } $struct_graph_item["task_item_id"]["sql"] .= " order by name"; } $form_array = array(); while (list($field_name, $field_array) = each($struct_graph_item)) { $form_array += array($field_name => $struct_graph_item[$field_name]); $form_array[$field_name]["value"] = (isset($template_item) ? $template_item[$field_name] : ""); $form_array[$field_name]["form_id"] = (isset($template_item) ? $template_item["id"] : "0"); } draw_edit_form( array( "config" => array( ), "fields" => $form_array ) ); form_hidden_box("local_graph_id", $_REQUEST["local_graph_id"], "0"); form_hidden_box("graph_template_item_id", (isset($template_item) ? $template_item["id"] : "0"), ""); form_hidden_box("local_graph_template_item_id", (isset($template_item) ? $template_item["local_graph_template_item_id"] : "0"), ""); form_hidden_box("graph_template_id", (isset($template_item) ? $template_item["graph_template_id"] : "0"), ""); form_hidden_box("sequence", (isset($template_item) ? $template_item["sequence"] : "0"), ""); form_hidden_box("_graph_type_id", (isset($template_item) ? $template_item["graph_type_id"] : "0"), ""); form_hidden_box("save_component_item", "1", ""); html_end_box(); form_save_button("graphs.php?action=graph_edit&id=" . $_REQUEST["local_graph_id"]); }
<tr bgcolor="<?php print $colors["panel"];?>"> <form name="form_graph_id"> <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">
function item_edit() { global $colors, $struct_graph_item, $graph_item_types, $consolidation_functions; /* ================= input validation ================= */ input_validate_input_number(get_request_var("id")); input_validate_input_number(get_request_var("graph_template_id")); /* ==================================================== */ $header_label = "[edit graph: " . db_fetch_cell("select name from graph_templates where id=" . $_GET["graph_template_id"]) . "]"; html_start_box("<strong>Graph Template Items</strong> $header_label", "100%", $colors["header"], "3", "center", ""); if (!empty($_GET["id"])) { $template_item = db_fetch_row("select * from graph_templates_item where id=" . $_GET["id"]); } /* by default, select the LAST DS chosen to make everyone's lives easier */ if (!empty($_GET["graph_template_id"])) { $default = db_fetch_row("select task_item_id from graph_templates_item where graph_template_id=" . $_GET["graph_template_id"] . " and local_graph_id=0 order by sequence DESC"); if (sizeof($default) > 0) { $struct_graph_item["task_item_id"]["default"] = $default["task_item_id"]; }else{ $struct_graph_item["task_item_id"]["default"] = 0; } } /* modifications to the default graph items array */ $struct_graph_item["task_item_id"]["sql"] = "select ".sql_function_concat("data_template.name","' - '","' ('","data_template_rrd.data_source_name","')'")." as name, data_template_rrd.id from data_template_data, data_template_rrd, data_template where data_template_rrd.data_template_id=data_template.id and data_template_data.data_template_id=data_template.id and data_template_data.local_data_id=0 and data_template_rrd.local_data_id=0 order by data_template.name,data_template_rrd.data_source_name"; $form_array = array(); while (list($field_name, $field_array) = each($struct_graph_item)) { $form_array += array($field_name => $struct_graph_item[$field_name]); $form_array[$field_name]["value"] = (isset($template_item) ? $template_item[$field_name] : ""); $form_array[$field_name]["form_id"] = (isset($template_item) ? $template_item["id"] : "0"); } if (!empty($_GET["id"])) { /* we want to mark the fields that are associated with a graph item input */ $graph_item_input_fields = db_fetch_assoc("select graph_template_input.id, graph_template_input.column_name from graph_template_input, graph_template_input_defs where graph_template_input.id=graph_template_input_defs.graph_template_input_id and graph_template_input.graph_template_id=" . $_GET["graph_template_id"] . " and graph_template_input_defs.graph_template_item_id=" . $_GET["id"] . " group by graph_template_input.column_name,graph_template_input.id"); if (sizeof($graph_item_input_fields) > 0) { foreach ($graph_item_input_fields as $field) { $form_array{$field["column_name"]}["friendly_name"] .= " [<a href='graph_templates_inputs.php?action=input_edit&id=" . $field["id"] . "&graph_template_id=" . $_GET["graph_template_id"] . "'>Field Not Templated</a>]"; } } } draw_edit_form( array( "config" => array( ), "fields" => $form_array ) ); html_end_box(); form_hidden_box("graph_template_item_id", (isset($template_item) ? $template_item["id"] : "0"), ""); form_hidden_box("graph_template_id", $_GET["graph_template_id"], "0"); form_hidden_box("sequence", (isset($template_item) ? $template_item["sequence"] : "0"), ""); form_hidden_box("_graph_type_id", (isset($template_item) ? $template_item["graph_type_id"] : "0"), ""); form_hidden_box("_task_item_id", (isset($template_item) ? $template_item["task_item_id"] : "0"), ""); form_hidden_box("save_component_item", "1", ""); form_save_button("graph_templates.php?action=template_edit&id=" . $_GET["graph_template_id"]); }
function input_edit() { global $colors, $consolidation_functions, $graph_item_types, $struct_graph_item, $fields_graph_template_input_edit; /* ================= input validation ================= */ input_validate_input_number(get_request_var("id")); input_validate_input_number(get_request_var("graph_template_id")); /* ==================================================== */ $header_label = "[edit graph: " . db_fetch_cell("select name from graph_templates where id=" . $_GET["graph_template_id"]) . "]"; /* get a list of all graph item field names and populate an array for user display */ while (list($field_name, $field_array) = each($struct_graph_item)) { if ($field_array["method"] != "view") { $graph_template_items[$field_name] = $field_array["friendly_name"]; } } if (!empty($_GET["id"])) { $graph_template_input = db_fetch_row("select * from graph_template_input where id=" . $_GET["id"]); } html_start_box("<strong>Graph Item Inputs</strong> $header_label", "100%", $colors["header"], "3", "center", ""); draw_edit_form(array( "config" => array(), "fields" => inject_form_variables($fields_graph_template_input_edit, (isset($graph_template_input) ? $graph_template_input : array()), (isset($graph_template_items) ? $graph_template_items : array()), $_GET) )); if (!(isset($_GET["id"]))) { $_GET["id"] = 0; } $item_list = db_fetch_assoc("select " . sql_function_concat("data_template_data.name","' - '","data_template_rrd.data_source_name")." as data_source_name, graph_templates_item.text_format, graph_templates_item.id as graph_templates_item_id, graph_templates_item.graph_type_id, graph_templates_item.consolidation_function_id, graph_template_input_defs.graph_template_input_id from graph_templates_item left join graph_template_input_defs on (graph_template_input_defs.graph_template_item_id=graph_templates_item.id and graph_template_input_defs.graph_template_input_id=" . $_GET["id"] . ") left join data_template_rrd on (graph_templates_item.task_item_id=data_template_rrd.id) left join data_local on (data_template_rrd.local_data_id=data_local.id) left join data_template_data on (data_local.id=data_template_data.local_data_id) where graph_templates_item.local_graph_id=0 and graph_templates_item.graph_template_id=" . $_GET["graph_template_id"] . " order by graph_templates_item.sequence"); form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],1); ?> <td width="50%"> <font class="textEditTitle">Associated Graph Items</font><br> Select the graph items that you want to accept user input for. </td> <td> <?php $i = 0; $any_selected_item = ""; if (sizeof($item_list) > 0) { foreach ($item_list as $item) { if ($item["graph_template_input_id"] == "") { $old_value = ""; }else{ $old_value = "on"; $any_selected_item = $item["graph_templates_item_id"]; } if ($graph_item_types{$item["graph_type_id"]} == "GPRINT") { $start_bold = ""; $end_bold = ""; }else{ $start_bold = "<strong>"; $end_bold = "</strong>"; } $name = "$start_bold Item #" . ($i+1) . ": " . $graph_item_types{$item["graph_type_id"]} . " (" . $consolidation_functions{$item["consolidation_function_id"]} . ")$end_bold"; form_checkbox("i_" . $item["graph_templates_item_id"], $old_value, $name, "", "", $_GET["graph_template_id"]); print "<br>"; $i++; } }else{ print "<em>No Items</em>"; } ?> </td> </tr> <?php html_end_box(); form_hidden_box("any_selected_item", $any_selected_item, ""); form_save_button("graph_templates.php?action=template_edit&id=" . $_GET["graph_template_id"]); }
function draw_nontemplated_fields_graph_item($graph_template_id, $local_graph_id, $field_name_format = "|field|_|id|", $header_title = "", $alternate_colors = true) { global $struct_graph_item, $colors; $form_array = array(); $draw_any_items = false; /* fetch information about the graph template */ $input_item_list = db_fetch_assoc("select * from graph_template_input where graph_template_id=$graph_template_id order by column_name,name"); /* modifications to the default graph items array */ if (!empty($local_graph_id)) { $host_id = db_fetch_cell("select host_id from graph_local where id=$local_graph_id"); $struct_graph_item["task_item_id"]["sql"] = "select ".sql_function_concat( "case when host.description is null then 'No Host - ' when host.description is not null then '' end","data_template_data.name_cache","' ('","data_template_rrd.data_source_name","')'")." as name, data_template_rrd.id from data_template_data,data_template_rrd,data_local left join host on (data_local.host_id=host.id) where data_template_rrd.local_data_id=data_local.id and data_template_data.local_data_id=data_local.id " . (empty($host_id) ? "" : " and data_local.host_id=$host_id") . " order by name"; } if (sizeof($input_item_list) > 0) { foreach ($input_item_list as $item) { if (!empty($local_graph_id)) { $current_def_value = db_fetch_row("select graph_templates_item." . $item["column_name"] . ", graph_templates_item.id from graph_templates_item, graph_template_input_defs where graph_template_input_defs.graph_template_item_id=graph_templates_item.local_graph_template_item_id and graph_template_input_defs.graph_template_input_id=" . $item["id"] . " and graph_templates_item.local_graph_id=$local_graph_id"); }else{ $current_def_value = db_fetch_row("select graph_templates_item." . $item["column_name"] . ", graph_templates_item.id from graph_templates_item, graph_template_input_defs where graph_template_input_defs.graph_template_item_id=graph_templates_item.id and graph_template_input_defs.graph_template_input_id=" . $item["id"] . " and graph_templates_item.graph_template_id=" . $graph_template_id); } /* find our field name */ $form_field_name = str_replace("|field|", $item["column_name"], $field_name_format); $form_field_name = str_replace("|id|", $item["id"], $form_field_name); $form_array += array($form_field_name => $struct_graph_item{$item["column_name"]}); /* modifications to the default form array */ $form_array[$form_field_name]["friendly_name"] = $item["name"]; $form_array[$form_field_name]["value"] = $current_def_value{$item["column_name"]}; /* if we are drawing the graph input list in the pre-graph stage we should omit the data source fields because they are basically meaningless at this point */ if ((empty($local_graph_id)) && ($item["column_name"] == "task_item_id")) { unset($form_array[$form_field_name]); }else{ if (($draw_any_items == false) && ($header_title != "")) { print "<tr bgcolor='#" . $colors["header_panel"] . "'><td colspan='2' style='font-size: 10px; color: white;'>$header_title</td></tr>\n"; } $draw_any_items = true; } } } /* setup form options */ if ($alternate_colors == true) { $form_config_array = array("no_form_tag" => true); }else{ $form_config_array = array("no_form_tag" => true, "force_row_color" => $colors["form_alternate1"]); } if (sizeof($input_item_list > 0)) { draw_edit_form( array( "config" => $form_config_array, "fields" => $form_array ) ); } return (isset($form_array) ? sizeof($form_array) : 0); }
function ds_edit() { global $colors, $struct_data_source, $struct_data_source_item, $data_source_types; /* ================= input validation ================= */ input_validate_input_number(get_request_var("id")); /* ==================================================== */ $use_data_template = true; $host_id = 0; if (!empty($_GET["id"])) { $data_local = db_fetch_row("select host_id,data_template_id from data_local where id='" . $_GET["id"] . "'"); $data = db_fetch_row("select * from data_template_data where local_data_id='" . $_GET["id"] . "'"); if (isset($data_local["data_template_id"]) && $data_local["data_template_id"] >= 0) { $data_template = db_fetch_row("select id,name from data_template where id='" . $data_local["data_template_id"] . "'"); $data_template_data = db_fetch_row("select * from data_template_data where data_template_id='" . $data_local["data_template_id"] . "' and local_data_id=0"); } else { $_SESSION["sess_messages"] = 'Data Source "' . $_GET["id"] . '" does not exist.'; header ("Location: data_sources.php"); exit; } $header_label = "[edit: " . get_data_source_title($_GET["id"]) . "]"; if (empty($data_local["data_template_id"])) { $use_data_template = false; } }else{ $header_label = "[new]"; $use_data_template = false; } /* handle debug mode */ if (isset($_GET["debug"])) { if ($_GET["debug"] == "0") { kill_session_var("ds_debug_mode"); }elseif ($_GET["debug"] == "1") { $_SESSION["ds_debug_mode"] = true; } } include_once("./include/top_header.php"); if (!empty($_GET["id"])) { ?> <table width="100%" align="center"> <tr> <td class="textInfo" colspan="2" valign="top"> <?php print get_data_source_title($_GET["id"]);?> </td> <td class="textInfo" align="right" valign="top"> <span style="color: #c16921;">*<a href='data_sources.php?action=ds_edit&id=<?php print (isset($_GET["id"]) ? $_GET["id"] : 0);?>&debug=<?php print (isset($_SESSION["ds_debug_mode"]) ? "0" : "1");?>'>Turn <strong><?php print (isset($_SESSION["ds_debug_mode"]) ? "Off" : "On");?></strong> Data Source Debug Mode.</a> </td> </tr> </table> <br> <?php } html_start_box("<strong>Data Template Selection</strong> $header_label", "100%", $colors["header"], "3", "center", ""); $form_array = array( "data_template_id" => array( "method" => "drop_sql", "friendly_name" => "Selected Data Template", "description" => "The name given to this data template.", "value" => (isset($data_template) ? $data_template["id"] : "0"), "none_value" => "None", "sql" => "select id,name from data_template order by name" ), "host_id" => array( "method" => "drop_sql", "friendly_name" => "Host", "description" => "Choose the host that this graph belongs to.", "value" => (isset($_GET["host_id"]) ? $_GET["host_id"] : $data_local["host_id"]), "none_value" => "None", "sql" => "select id,".sql_function_concat("host.description","' ('","host.hostname","')'")." as name from host order by description,hostname" ), "_data_template_id" => array( "method" => "hidden", "value" => (isset($data_template) ? $data_template["id"] : "0") ), "_host_id" => array( "method" => "hidden", "value" => (empty($data_local["host_id"]) ? (isset($_GET["host_id"]) ? $_GET["host_id"] : "0") : $data_local["host_id"]) ), "_data_input_id" => array( "method" => "hidden", "value" => (isset($data["data_input_id"]) ? $data["data_input_id"] : "0") ), "data_template_data_id" => array( "method" => "hidden", "value" => (isset($data) ? $data["id"] : "0") ), "local_data_template_data_id" => array( "method" => "hidden", "value" => (isset($data) ? $data["local_data_template_data_id"] : "0") ), "local_data_id" => array( "method" => "hidden", "value" => (isset($data) ? $data["local_data_id"] : "0") ), ); draw_edit_form( array( "config" => array(), "fields" => $form_array ) ); html_end_box(); /* only display the "inputs" area if we are using a data template for this data source */ if (!empty($data["data_template_id"])) { $template_data_rrds = db_fetch_assoc("select * from data_template_rrd where local_data_id=" . $_GET["id"] . " order by data_source_name"); html_start_box("<strong>Supplemental Data Template Data</strong>", "100%", $colors["header"], "3", "center", ""); draw_nontemplated_fields_data_source($data["data_template_id"], $data["local_data_id"], $data, "|field|", "<strong>Data Source Fields</strong>", true, true, 0); draw_nontemplated_fields_data_source_item($data["data_template_id"], $template_data_rrds, "|field|_|id|", "<strong>Data Source Item Fields</strong>", true, true, true, 0); draw_nontemplated_fields_custom_data($data["id"], "value_|id|", "<strong>Custom Data</strong>", true, true, 0); form_hidden_box("save_component_data","1",""); html_end_box(); } if (((isset($_GET["id"])) || (isset($_GET["new"]))) && (empty($data["data_template_id"]))) { html_start_box("<strong>Data Source</strong>", "100%", $colors["header"], "3", "center", ""); $form_array = array(); while (list($field_name, $field_array) = each($struct_data_source)) { $form_array += array($field_name => $struct_data_source[$field_name]); if (!(($use_data_template == false) || (!empty($data_template_data{"t_" . $field_name})) || ($field_array["flags"] == "NOTEMPLATE"))) { $form_array[$field_name]["description"] = ""; } $form_array[$field_name]["value"] = (isset($data[$field_name]) ? $data[$field_name] : ""); $form_array[$field_name]["form_id"] = (empty($data["id"]) ? "0" : $data["id"]); if (!(($use_data_template == false) || (!empty($data_template_data{"t_" . $field_name})) || ($field_array["flags"] == "NOTEMPLATE"))) { $form_array[$field_name]["method"] = "template_" . $form_array[$field_name]["method"]; } } draw_edit_form( array( "config" => array( "no_form_tag" => true ), "fields" => inject_form_variables($form_array, (isset($data) ? $data : array())) ) ); html_end_box(); /* fetch ALL rrd's for this data source */ if (!empty($_GET["id"])) { $template_data_rrds = db_fetch_assoc("select id,data_source_name from data_template_rrd where local_data_id=" . $_GET["id"] . " order by data_source_name"); } /* select the first "rrd" of this data source by default */ if (empty($_GET["view_rrd"])) { $_GET["view_rrd"] = (isset($template_data_rrds[0]["id"]) ? $template_data_rrds[0]["id"] : "0"); } /* get more information about the rrd we chose */ if (!empty($_GET["view_rrd"])) { $local_data_template_rrd_id = db_fetch_cell("select local_data_template_rrd_id from data_template_rrd where id=" . $_GET["view_rrd"]); $rrd = db_fetch_row("select * from data_template_rrd where id=" . $_GET["view_rrd"]); $rrd_template = db_fetch_row("select * from data_template_rrd where id=$local_data_template_rrd_id"); $header_label = "[edit: " . $rrd["data_source_name"] . "]"; }else{ $header_label = ""; } $i = 0; if (isset($template_data_rrds)) { if (sizeof($template_data_rrds) > 1) { /* draw the data source tabs on the top of the page */ print " <table class='tabs' width='100%' cellspacing='0' cellpadding='3' align='center'> <tr>\n"; foreach ($template_data_rrds as $template_data_rrd) { $i++; print " <td " . (($template_data_rrd["id"] == $_GET["view_rrd"]) ? "bgcolor='silver'" : "bgcolor='#DFDFDF'") . " nowrap='nowrap' width='" . ((strlen($template_data_rrd["data_source_name"]) * 9) + 50) . "' align='center' class='tab'> <span class='textHeader'><a href='data_sources.php?action=ds_edit&id=" . $_GET["id"] . "&view_rrd=" . $template_data_rrd["id"] . "'>$i: " . $template_data_rrd["data_source_name"] . "</a>" . (($use_data_template == false) ? " <a href='data_sources.php?action=rrd_remove&id=" . $template_data_rrd["id"] . "&local_data_id=" . $_GET["id"] . "'><img src='images/delete_icon.gif' border='0' alt='Delete'></a>" : "") . "</span> </td>\n <td width='1'></td>\n"; } print " <td></td>\n </tr> </table>\n"; }elseif (sizeof($template_data_rrds) == 1) { $_GET["view_rrd"] = $template_data_rrds[0]["id"]; } } html_start_box("", "100%", $colors["header"], "3", "center", ""); print " <tr> <td bgcolor='#" . $colors["header"] . "' class='textHeaderDark'> <strong>Data Source Item</strong> $header_label </td> <td class='textHeaderDark' align='right' bgcolor='" . $colors["header"] . "'> " . ((!empty($_GET["id"]) && (empty($data_template["id"]))) ? "<strong><a class='linkOverDark' href='data_sources.php?action=rrd_add&id=" . $_GET["id"] . "'>New</a> </strong>" : "") . " </td> </tr>\n"; /* data input fields list */ if ((empty($data["data_input_id"])) || (db_fetch_cell("select type_id from data_input where id=" . $data["data_input_id"]) > "1")) { unset($struct_data_source_item["data_input_field_id"]); }else{ $struct_data_source_item["data_input_field_id"]["sql"] = "select id,CONCAT(data_name,' - ',name) as name from data_input_fields where data_input_id=" . $data["data_input_id"] . " and input_output='out' and update_rra='on' order by data_name,name"; } $form_array = array(); while (list($field_name, $field_array) = each($struct_data_source_item)) { $form_array += array($field_name => $struct_data_source_item[$field_name]); if (!(($use_data_template == false) || ($rrd_template{"t_" . $field_name} == "on"))) { $form_array[$field_name]["description"] = ""; } $form_array[$field_name]["value"] = (isset($rrd) ? $rrd[$field_name] : ""); if (!(($use_data_template == false) || ($rrd_template{"t_" . $field_name} == "on"))) { $form_array[$field_name]["method"] = "template_" . $form_array[$field_name]["method"]; } } draw_edit_form( array( "config" => array( "no_form_tag" => true ), "fields" => array( "data_template_rrd_id" => array( "method" => "hidden", "value" => (isset($rrd) ? $rrd["id"] : "0") ), "local_data_template_rrd_id" => array( "method" => "hidden", "value" => (isset($rrd) ? $rrd["local_data_template_rrd_id"] : "0") ) ) + $form_array ) ); html_end_box(); /* data source data goes here */ data_edit(); form_hidden_box("current_rrd", $_GET["view_rrd"], "0"); } /* display the debug mode box if the user wants it */ if ((isset($_SESSION["ds_debug_mode"])) && (isset($_GET["id"]))) { ?> <table width="100%" align="center"> <tr> <td> <span class="textInfo">Data Source Debug</span><br> <pre><?php print rrdtool_function_create($_GET["id"], true, array());?></pre> </td> </tr> </table> <?php } if ((isset($_GET["id"])) || (isset($_GET["new"]))) { form_hidden_box("save_component_data_source","1",""); }else{ form_hidden_box("save_component_data_source_new","1",""); } form_save_button("data_sources.php"); include_once("./include/bottom_footer.php"); }
function graphs() { global $colors; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("host_id")); input_validate_input_number(get_request_var_request("graph_type")); /* ==================================================== */ /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_graphs_new_host_id"); kill_session_var("sess_graphs_new_graph_type"); kill_session_var("sess_graphs_new_filter"); unset($_REQUEST["host_id"]); unset($_REQUEST["graph_type"]); unset($_REQUEST["filter"]); }else{ /* if any of the settings changed, reset the page number */ $changed = 0; $changed += check_changed("host_id", "sess_graphs_new_host_id"); $changed += check_changed("graph_type", "sess_graphs_new_graph_type"); $changed += check_changed("filter", "sess_graphs_new_filter"); } load_current_session_value("host_id", "sess_graphs_new_host_id", db_fetch_cell("select id from host order by description,hostname")); load_current_session_value("graph_type", "sess_graphs_new_graph_type", read_config_option("default_graphs_new_dropdown")); load_current_session_value("filter", "sess_graphs_new_filter", ""); $host = db_fetch_row("select id,description,hostname,host_template_id from host where id=" . $_REQUEST["host_id"]); $row_limit = read_config_option("num_rows_data_query"); $debug_log = debug_log_return("new_graphs"); ?> <script type="text/javascript"> <!-- function applyGraphsNewFilterChange(objForm) { strURL = '?graph_type=' + objForm.graph_type.value; strURL = strURL + '&host_id=' + objForm.host_id.value; strURL = strURL + '&filter=' + objForm.filter.value;; document.location = strURL; } --> </script> <?php if (!empty($debug_log)) { debug_log_clear("new_graphs"); ?> <table width='100%' style='background-color: #f5f5f5; border: 1px solid #bbbbbb;' align='center'> <tr bgcolor="<?php print $colors["light"];?>"> <td style="padding: 3px; font-family: monospace;"> <?php print $debug_log;?> </td> </tr> </table> <br> <?php } ?> <form name="form_graphs_new"> <table width="100%" cellpadding="4" align="center"> <tr> <td nowrap style='white-space: nowrap;' width="30%" class="textInfo"> <?php print $host["description"];?> (<?php print $host["hostname"];?>) </td> <td align="left" class="textInfo" colspan="2" style="color: #aaaaaa;"> <?php if (!empty($host["host_template_id"])) { print db_fetch_cell("select name from host_template where id=" . $host["host_template_id"]); } ?> </td> </tr> </table> <table width="100%" cellpadding="0" align="center"> <tr> <td nowrap style='white-space: nowrap;' width="55" class="textArea"> Host: </td> <td width="1"> <select name="host_id" onChange="applyGraphsNewFilterChange(document.form_graphs_new)"> <?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 $item) { print "<option value='" . $item["id"] . "'"; if ($_REQUEST["host_id"] == $item["id"]) { print " selected"; } print ">" . $item["name"] . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="100" class="textArea"> Graph Types: </td> <td width="1"> <select name="graph_type" onChange="applyGraphsNewFilterChange(document.form_graphs_new)"> <option value="-2"<?php if ($_REQUEST["graph_type"] == "-2") {?> selected<?php }?>>All</option> <option value="-1"<?php if ($_REQUEST["graph_type"] == "-1") {?> selected<?php }?>>Graph Template Based</option> <?php $snmp_queries = db_fetch_assoc("SELECT snmp_query.id, snmp_query.name, snmp_query.xml_path FROM snmp_query, host_snmp_query WHERE host_snmp_query.snmp_query_id=snmp_query.id AND host_snmp_query.host_id=" . $host["id"] . " ORDER BY snmp_query.name"); if (sizeof($snmp_queries) > 0) { foreach ($snmp_queries as $query) { print "<option value='" . $query["id"] . "'"; if ($_REQUEST["graph_type"] == $query["id"]) { print " selected"; } print ">" . $query["name"] . "</option>\n"; } } ?> </select> </td> <td nowrap style='white-space: nowrap;' class="textInfo" align="center" valign="top"> <span style="white-space: nowrap; color: #c16921;">*</span><a href="host.php?action=edit&id=<?php print $_REQUEST["host_id"];?>">Edit this Host</a><br> <span style="white-space: nowrap; color: #c16921;">*</span><a href="host.php?action=edit">Create New Host</a> </td> </tr> </table> <?php if ($_REQUEST["graph_type"] > 0) {?> <table width="100%" cellpadding="0" align="center"> <tr> <td nowrap style='white-space: nowrap;' width="55" class="textArea"> Search: </td> <td nowrap style='white-space: nowrap;' width="200"> <input type="text" name="filter" size="30" width="200" value="<?php print $_REQUEST["filter"];?>"> </td> <td align="left" nowrap style='white-space: nowrap;'> <input type="image" src="images/button_go.gif" name="go" alt="Go" border="0" align="absmiddle"> <input type="image" src="images/button_clear.gif" name="clear" alt="Clear" border="0" align="absmiddle"> </td> </tr> </table> <?php }else{ form_hidden_box("filter", $_REQUEST["filter"], ""); }?> </form> <form name="chk" method="post" action="graphs_new.php"> <?php $total_rows = sizeof(db_fetch_assoc("select graph_template_id from host_graph where host_id=" . $_REQUEST["host_id"])); $i = 0; if ($_REQUEST["graph_type"] > 0) { load_current_session_value("page" . $_REQUEST["graph_type"], "sess_graphs_new_page" . $_REQUEST["graph_type"], "1"); }else if ($_REQUEST["graph_type"] == -2) { foreach($snmp_queries as $query) { load_current_session_value("page" . $query["id"], "sess_graphs_new_page" . $query["id"], "1"); } } if ($_REQUEST["graph_type"] < 0) { html_start_box("<strong>Graph Templates</strong>", "100%", $colors["header"], "3", "center", ""); print " <tr bgcolor='#" . $colors["header_panel"] . "'> <td class='textSubHeaderDark'>Graph Template Name</td> <td width='1%' align='center' bgcolor='#819bc0' style='" . get_checkbox_style() . "'><input type='checkbox' style='margin: 0px;' name='all_cg' title='Select All' onClick='SelectAll(\"cg\",this.checked);gt_update_selection_indicators();'></td>\n </tr>\n"; $graph_templates = db_fetch_assoc("SELECT graph_templates.id AS graph_template_id, graph_templates.name AS graph_template_name FROM host_graph, graph_templates WHERE host_graph.graph_template_id=graph_templates.id AND host_graph.host_id=" . $_REQUEST["host_id"] . " ORDER BY graph_templates.name"); $template_graphs = db_fetch_assoc("SELECT graph_local.graph_template_id FROM graph_local, host_graph WHERE graph_local.graph_template_id=host_graph.graph_template_id AND graph_local.host_id=host_graph.host_id AND graph_local.host_id=" . $host["id"] . " GROUP BY graph_local.graph_template_id"); print "<script type='text/javascript'>\nvar gt_created_graphs = new Array()\n</script>\n"; if (sizeof($template_graphs) > 0) { print "<script type='text/javascript'>\n<!--\n"; print "var gt_created_graphs = new Array("; $cg_ctr = 0; foreach ($template_graphs as $template_graph) { print (($cg_ctr > 0) ? "," : "") . "'" . $template_graph["graph_template_id"] . "'"; $cg_ctr++; } print ")\n"; print "//-->\n</script>\n"; } /* create a row for each graph template associated with the host template */ if (sizeof($graph_templates) > 0) { foreach ($graph_templates as $graph_template) { $query_row = $graph_template["graph_template_id"]; print "<tr id='gt_line$query_row' bgcolor='#" . (($i % 2 == 0) ? "ffffff" : $colors["light"]) . "'>"; $i++; print " <td onClick='gt_select_line(" . $graph_template["graph_template_id"] . ");'><span id='gt_text$query_row" . "_0'> <span id='gt_text$query_row" . "_0'><strong>Create:</strong> " . $graph_template["graph_template_name"] . "</span> </td> <td align='right'> <input type='checkbox' name='cg_$query_row' id='cg_$query_row' onClick='gt_update_selection_indicators();'> </td> </tr>"; } } print "<script type='text/javascript'>gt_update_deps(1);</script>\n"; $available_graph_templates = db_fetch_assoc("SELECT graph_templates.id, graph_templates.name FROM snmp_query_graph RIGHT JOIN graph_templates ON (snmp_query_graph.graph_template_id = graph_templates.id) WHERE (((snmp_query_graph.name) Is Null)) ORDER BY graph_templates.name"); /* create a row at the bottom that lets the user create any graph they choose */ print " <tr bgcolor='#" . (($i % 2 == 0) ? "ffffff" : $colors["light"]) . "'> <td colspan='2' width='60' nowrap> <strong>Create:</strong> "; form_dropdown("cg_g", $available_graph_templates, "name", "id", "", "(Select a graph type to create)", "", "textArea"); print " </td> </tr>"; html_end_box(); } if ($_REQUEST["graph_type"] != -1) { $snmp_queries = db_fetch_assoc("SELECT snmp_query.id, snmp_query.name, snmp_query.xml_path FROM snmp_query, host_snmp_query WHERE host_snmp_query.snmp_query_id=snmp_query.id AND host_snmp_query.host_id=" . $host["id"] . ($_REQUEST["graph_type"] != -2 ? " AND snmp_query.id=" . $_REQUEST["graph_type"] : '') . " ORDER BY snmp_query.name"); print "<script type='text/javascript'>\nvar created_graphs = new Array()\n</script>\n"; if (sizeof($snmp_queries) > 0) { foreach ($snmp_queries as $snmp_query) { unset($total_rows); $page = $_REQUEST["page" . $snmp_query["id"]]; $xml_array = get_data_query_array($snmp_query["id"]); $num_input_fields = 0; $num_visible_fields = 0; if ($xml_array != false) { /* loop through once so we can find out how many input fields there are */ reset($xml_array["fields"]); while (list($field_name, $field_array) = each($xml_array["fields"])) { if ($field_array["direction"] == "input") { $num_input_fields++; if (!isset($total_rows)) { $total_rows = db_fetch_cell("SELECT count(*) FROM host_snmp_cache WHERE host_id=" . $host["id"] . " and snmp_query_id=" . $snmp_query["id"] . " AND field_name='$field_name'"); } } } } if (!isset($total_rows)) { $total_rows = 0; } $snmp_query_graphs = db_fetch_assoc("SELECT snmp_query_graph.id,snmp_query_graph.name FROM snmp_query_graph WHERE snmp_query_graph.snmp_query_id=" . $snmp_query["id"] . " ORDER BY snmp_query_graph.name"); if (sizeof($snmp_query_graphs) > 0) { print "<script type='text/javascript'>\n<!--\n"; foreach ($snmp_query_graphs as $snmp_query_graph) { $created_graphs = db_fetch_assoc("SELECT DISTINCT data_local.snmp_index FROM data_local, data_template_data LEFT JOIN data_input_data ON (data_template_data.id=data_input_data.data_template_data_id) LEFT JOIN data_input_fields ON (data_input_data.data_input_field_id=data_input_fields.id) WHERE data_local.id=data_template_data.local_data_id AND data_input_fields.type_code='output_type' AND data_input_data.value='" . $snmp_query_graph["id"] . "' AND data_local.host_id=" . $host["id"]); print "created_graphs[" . $snmp_query_graph["id"] . "] = new Array("; $cg_ctr = 0; if (sizeof($created_graphs) > 0) { foreach ($created_graphs as $created_graph) { print (($cg_ctr > 0) ? "," : "") . "'" . encode_data_query_index($created_graph["snmp_index"]) . "'"; $cg_ctr++; } } print ")\n"; } print "//-->\n</script>\n"; } print " <table width='100%' style='background-color: #" . $colors["form_alternate2"] . "; border: 1px solid #" . $colors["header"] . ";' align='center' cellpadding='3' cellspacing='0'>\n <tr> <td bgcolor='#" . $colors["header"] . "' colspan='" . ($num_input_fields+1) . "'> <table cellspacing='0' cellpadding='0' width='100%' > <tr> <td class='textHeaderDark'> <strong>Data Query</strong> [" . $snmp_query["name"] . "] </td> <td align='right' nowrap> <a href='graphs_new.php?action=query_reload&id=" . $snmp_query["id"] . "&host_id=" . $host["id"] . "'><img src='images/reload_icon_small.gif' alt='Reload Associated Query' border='0' align='absmiddle'></a> </td> </tr> </table> </td> </tr>"; if ($xml_array != false) { $html_dq_header = ""; $snmp_query_indexes = array(); reset($xml_array["fields"]); /* if there is a where clause, get the matching snmp_indexes */ $sql_where = ""; if (strlen($_REQUEST["filter"])) { $sql_where = ""; $indexes = db_fetch_assoc("SELECT DISTINCT snmp_index FROM host_snmp_cache WHERE field_value LIKE '%%" . $_REQUEST["filter"] . "%%' AND snmp_query_id=" . $snmp_query["id"] . " AND host_id=" . $host["id"]); if (sizeof($indexes)) { foreach($indexes as $index) { if (strlen($sql_where)) { $sql_where .= ", '" . $index["snmp_index"] . "'"; }else{ $sql_where .= " AND snmp_index IN('" . $index["snmp_index"] . "'"; } } $sql_where .= ")"; } } if ((strlen($_REQUEST["filter"]) == 0) || ((strlen($_REQUEST["filter"])) && (sizeof($indexes)))) { /* determine the sort order */ if (isset($xml_array["index_order_type"])) { if ($xml_array["index_order_type"] == "numeric") { $sql_order = "ORDER BY CAST(snmp_index AS unsigned)"; }else if ($xml_array["index_order_type"] == "alphabetic") { $sql_order = "ORDER BY snmp_index"; }else if ($xml_array["index_order_type"] == "natural") { $sql_order = "ORDER BY INET_ATON(snmp_index)"; } } /* get the unique field values from the database */ $field_names = db_fetch_assoc("SELECT DISTINCT field_name FROM host_snmp_cache WHERE host_id=" . $host["id"] . " AND snmp_query_id=" . $snmp_query["id"]); /* build magic query */ $sql_query = "SELECT host_id, snmp_query_id, snmp_index, "; $num_visible_fields = sizeof($field_names); $i = 0; foreach($field_names as $column) { $field_name = $column["field_name"]; if ($i == ($num_visible_fields-1)) { $sql_query .= "MAX(CASE WHEN field_name='$field_name' THEN field_value ELSE NULL END) AS '$field_name'"; }else{ $sql_query .= "MAX(CASE WHEN field_name='$field_name' THEN field_value ELSE NULL END) AS '$field_name', "; } $i++; } $sql_query .= " FROM host_snmp_cache WHERE host_id=" . $host["id"] . " AND snmp_query_id=" . $snmp_query["id"] . " $sql_where GROUP BY host_id, snmp_query_id, snmp_index $sql_order"; $rows_query = "SELECT host_id, snmp_query_id, snmp_index FROM host_snmp_cache WHERE host_id=" . $host["id"] . " AND snmp_query_id=" . $snmp_query["id"] . " $sql_where GROUP BY host_id, snmp_query_id, snmp_index"; $snmp_query_indexes = db_fetch_assoc($sql_query, $row_limit, $row_limit*($page-1)); $total_rows = sizeof(db_fetch_assoc($rows_query)); if (($page-1) * $row_limit > $total_rows) { $page = 1; $_REQUEST["page" . $query["id"]] = $page; load_current_session_value("page" . $query["id"], "sess_graphs_new_page" . $query["id"], "1"); } if ($total_rows > $row_limit) { /* generate page list */ $url_page_select = get_page_list($page, MAX_DISPLAY_PAGES, $row_limit, $total_rows, "graphs_new.php?", "page" . $snmp_query["id"]); $nav = "<tr bgcolor='#" . $colors["header"] . "' class='noprint'> <td colspan='15'> <table width='100%' cellspacing='0' cellpadding='0' border='0'> <tr> <td align='left' class='textHeaderDark'> <strong><< "; if ($page > 1) { $nav .= "<a class='linkOverDark' href='graphs_new.php?page" . $snmp_query["id"] . "=" . ($page-1) . "'>"; } $nav .= "Previous"; if ($page > 1) { $nav .= "</a>"; } $nav .= "</strong> </td>\n <td align='center' class='textHeaderDark'> Showing Rows " . (($row_limit*($page-1))+1) . " to " . ((($total_rows < $row_limit) || ($total_rows < ($row_limit*$page))) ? $total_rows : ($row_limit*$page)) . " of $total_rows [$url_page_select] </td>\n <td align='right' class='textHeaderDark'> <strong>"; if (($page * $row_limit) < $total_rows) { $nav .= "<a class='linkOverDark' href='graphs_new.php?page" . $snmp_query["id"] . "=" . ($page+1) . "'>"; } $nav .= "Next"; if (($page * $row_limit) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong> </td>\n </tr> </table> </td> </tr>\n"; print $nav; } while (list($field_name, $field_array) = each($xml_array["fields"])) { if ($field_array["direction"] == "input") { foreach($field_names as $row) { if ($row["field_name"] == $field_name) { $html_dq_header .= "<td height='1'><strong><font color='#" . $colors["header_text"] . "'>" . $field_array["name"] . "</font></strong></td>\n"; break; } } } } if (!sizeof($snmp_query_indexes)) { print "<tr bgcolor='#" . $colors["form_alternate1"] . "'><td>This data query returned 0 rows, perhaps there was a problem executing this data query. You can <a href='host.php?action=query_verbose&id=" . $snmp_query["id"] . "&host_id=" . $host["id"] . "'>run this data query in debug mode</a> to get more information.</td></tr>\n"; }else{ print " <tr bgcolor='#" . $colors["header_panel"] . "'> $html_dq_header <td width='1%' align='center' bgcolor='#819bc0' style='" . get_checkbox_style() . "'><input type='checkbox' style='margin: 0px;' name='all_" . $snmp_query["id"] . "' title='Select All' onClick='SelectAll(\"sg_" . $snmp_query["id"] . "\",this.checked);dq_update_selection_indicators();'></td>\n </tr>\n"; } $row_counter = 0; $column_counter = 0; $fields = array_rekey($field_names, "field_name", "field_name"); if (sizeof($snmp_query_indexes) > 0) { foreach($snmp_query_indexes as $row) { $query_row = $snmp_query["id"] . "_" . encode_data_query_index($row["snmp_index"]); print "<tr id='line$query_row' bgcolor='#" . (($row_counter % 2 == 0) ? "ffffff" : $colors["light"]) . "'>"; $i++; $column_counter = 0; reset($xml_array["fields"]); while (list($field_name, $field_array) = each($xml_array["fields"])) { if ($field_array["direction"] == "input") { if (in_array($field_name, $fields)) { if (isset($row[$field_name])) { print "<td onClick='dq_select_line(" . $snmp_query["id"] . ",\"" . encode_data_query_index($row["snmp_index"]) . "\");'><span id='text$query_row" . "_" . $column_counter . "'>" . (strlen($_REQUEST["filter"]) ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $row[$field_name]) : $row[$field_name]) . "</span></td>"; }else{ print "<td onClick='dq_select_line(" . $snmp_query["id"] . ",\"" . encode_data_query_index($row["snmp_index"]) . "\");'><span id='text$query_row" . "_" . $column_counter . "'></span></td>"; } $column_counter++; } } } print "<td align='right'>"; print "<input type='checkbox' name='sg_$query_row' id='sg_$query_row' onClick='dq_update_selection_indicators();'>"; print "</td>"; print "</tr>\n"; $row_counter++; } } if ($total_rows > $row_limit) { print $nav; } }else{ print "<tr bgcolor='#" . $colors["form_alternate1"] . "'><td colspan='2' style='color: red; font-size: 12px; font-weight: bold;'>Search Returned no Rows.</td></tr>\n"; } }else{ print "<tr bgcolor='#" . $colors["form_alternate1"] . "'><td colspan='2' style='color: red; font-size: 12px; font-weight: bold;'>Error in data query.</td></tr>\n"; } print "</table>"; /* draw the graph template drop down here */ $data_query_graphs = db_fetch_assoc("select snmp_query_graph.id,snmp_query_graph.name from snmp_query_graph where snmp_query_graph.snmp_query_id=" . $snmp_query["id"] . " order by snmp_query_graph.name"); if (sizeof($data_query_graphs) == 1) { form_hidden_box("sgg_" . $snmp_query["id"] . "' id='sgg_" . $snmp_query["id"], $data_query_graphs[0]["id"], ""); }elseif (sizeof($data_query_graphs) > 1) { print " <table align='center' width='100%'> <tr> <td width='1' valign='top'> <img src='images/arrow.gif' alt='' align='absmiddle'> </td> <td align='right'> <span style='font-size: 12px; font-style: italic;'>Select a graph type:</span> <select name='sgg_" . $snmp_query["id"] . "' id='sgg_" . $snmp_query["id"] . "' onChange='dq_update_deps(" . $snmp_query["id"] . "," . $column_counter . ");'> "; html_create_list($data_query_graphs,"name","id","0"); print " </select> </td> </tr> </table>"; } print "<br>"; print "<script type='text/javascript'>dq_update_deps(" . $snmp_query["id"] . "," . ($num_visible_fields) . ");</script>\n"; } } } form_hidden_box("save_component_graph", "1", ""); form_hidden_box("host_id", $host["id"], "0"); form_hidden_box("host_template_id", $host["host_template_id"], "0"); form_save_button((isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : "index.php")); print "<script type='text/javascript'>dq_update_selection_indicators();</script>\n"; print "<script type='text/javascript'>gt_update_selection_indicators();</script>\n"; }
function reparent_branch($new_parent_id, $tree_item_id) { if (empty($tree_item_id)) { return 0; } /* get the current tree_id */ $graph_tree_id = db_fetch_cell("select graph_tree_id from graph_tree_items where id=$tree_item_id"); /* make sure the parent id actually changed */ if (get_parent_id($tree_item_id, "graph_tree_items", "graph_tree_id=$graph_tree_id") == $new_parent_id) { return 0; } /* get current key so we can do a sql select on it */ $old_order_key = db_fetch_cell("select order_key from graph_tree_items where id=$tree_item_id"); $new_order_key = get_next_tree_id(db_fetch_cell("select order_key from graph_tree_items where id=$new_parent_id"), "graph_tree_items", "order_key", "graph_tree_id=$graph_tree_id"); /* yeah, this would be really bad */ if (empty($old_order_key)) { return 0; } $old_starting_tier = tree_tier($old_order_key); $new_starting_tier = tree_tier($new_order_key); $new_base_tier = substr($new_order_key, 0, ($new_starting_tier * CHARS_PER_TIER)); $old_base_tier = substr($old_order_key, 0, ($old_starting_tier * CHARS_PER_TIER)); /* prevent possible collisions */ db_execute("update graph_tree_items set order_key = ".sql_function_concat("'x'","order_key")." where order_key like '$old_base_tier%%' and graph_tree_id=$graph_tree_id"); /* truncate */ if ($new_starting_tier >= $old_starting_tier) { db_execute("update graph_tree_items set order_key = ".sql_function_substr()."(".sql_function_replace()."(order_key, 'x$old_base_tier', '$new_base_tier'), 1, " . (MAX_TREE_DEPTH * CHARS_PER_TIER) . ") where order_key like 'x$old_base_tier%%' and graph_tree_id=$graph_tree_id"); /* append */ }else{ db_execute("update graph_tree_items set order_key = ".sql_function_concat(sql_function_replace()."(order_key, 'x$old_base_tier', '$new_base_tier')"," '" . str_repeat('0', (strlen($old_base_tier) - strlen($new_base_tier))) . "'")." where order_key like 'x$old_base_tier%%' and graph_tree_id=$graph_tree_id"); } }
function graph_perms_edit() { global $colors; /* ================= input validation ================= */ input_validate_input_number(get_request_var("id")); /* ==================================================== */ $graph_policy_array = array( 1 => "Allow", 2 => "Deny"); if (!empty($_GET["id"])) { $policy = db_fetch_row("SELECT policy_graphs,policy_trees,policy_hosts,policy_graph_templates FROM user_auth WHERE id = " . get_request_var("id")); $header_label = "[edit: " . db_fetch_cell("SELECT username FROM user_auth WHERE id = " . get_request_var("id")) . "]"; } ?> <table width='100%' align='center' cellpadding="5"> <tr> <td> <span style='font-size: 12px; font-weight: bold;'>Graph policies will be evaluated in the order shown until a match is found.</span> </td> </tr> </table> <?php /* box: graph permissions */ html_start_box("<strong>Graph Permissions (By Graph)</strong>", "100%", $colors["header"], "3", "center", ""); $graphs = db_fetch_assoc("SELECT graph_templates_graph.local_graph_id, graph_templates_graph.title_cache FROM graph_templates_graph LEFT JOIN user_auth_perms ON (graph_templates_graph.local_graph_id = user_auth_perms.item_id AND user_auth_perms.type = 1) WHERE graph_templates_graph.local_graph_id > 0 AND user_auth_perms.user_id = " . get_request_var("id", 0) . " ORDER BY graph_templates_graph.title_cache"); ?> <form method="post" action="user_admin.php"> <tr bgcolor="#<?php print $colors["form_alternate1"];?>"> <td width="50%"> <font class="textEditTitle">Default Policy</font><br> The default allow/deny graph policy for this user. </td> <td align="right"> <?php form_dropdown("policy_graphs",$graph_policy_array,"","",$policy["policy_graphs"],"",""); ?> </td> </tr> <tr> <td colspan="2"> <table width="100%" cellpadding="1"> <?php $i = 0; if (sizeof($graphs) > 0) { foreach ($graphs as $item) { $i++; print " <tr> <td><span style='font-weight: bold; color: " . (($policy["policy_graphs"] == "1") ? "red" : "blue") . ";'>$i)</span> " . $item["title_cache"] . "</td> <td align='right'><a href='user_admin.php?action=perm_remove&type=graph&id=" . $item["local_graph_id"] . "&user_id=" . $_GET["id"] . "'><img src='images/delete_icon.gif' width='10' height='10' border='0' alt='Delete'></a> </td> </tr>\n"; } }else{ print "<tr><td><em>No Graphs</em></td></tr>"; } ?> </table> </td> </tr> <?php html_end_box(false); ?> <table align='center' width='100%'> <tr> <td nowrap>Add Graph: <?php form_dropdown("perm_graphs",db_fetch_assoc("SELECT local_graph_id,title_cache FROM graph_templates_graph WHERE local_graph_id > 0 ORDER BY title_cache"),"title_cache","local_graph_id","","","");?> </td> <td align="right"> <input type="image" src="images/button_add.gif" alt="Add" name="add_graph" align="absmiddle"> </td> </tr> </table> <br> <?php /* box: device permissions */ html_start_box("<strong>Graph Permissions (By Device)</strong>", "100%", $colors["header"], "3", "center", ""); $hosts = db_fetch_assoc("SELECT host.id, ".sql_function_concat("host.description","' ('","host.hostname","')'")." as name FROM host LEFT JOIN user_auth_perms ON (host.id = user_auth_perms.item_id AND user_auth_perms.type = 3) WHERE user_auth_perms.user_id = " . get_request_var("id", 0) . " ORDER BY host.description,host.hostname"); ?> <tr bgcolor="#<?php print $colors["form_alternate1"];?>"> <td width="50%"> <font class="textEditTitle">Default Policy</font><br> The default allow/deny graph policy for this user. </td> <td align="right"> <?php form_dropdown("policy_hosts",$graph_policy_array,"","",$policy["policy_hosts"],"",""); ?> </td> </tr> <tr> <td colspan="2"> <table width="100%" cellpadding="1"> <?php $i = 0; if (sizeof($hosts) > 0) { foreach ($hosts as $item) { $i++; print " <tr> <td><span style='font-weight: bold; color: " . (($policy["policy_hosts"] == "1") ? "red" : "blue") . ";'>$i)</span> " . $item["name"] . "</td> <td align='right'><a href='user_admin.php?action=perm_remove&type=host&id=" . $item["id"] . "&user_id=" . $_GET["id"] . "'><img src='images/delete_icon.gif' width='10' height='10' border='0' alt='Delete'></a> </td> </tr>\n"; } }else{ print "<tr><td><em>No Devices</em></td></tr>"; } ?> </table> </td> </tr> <?php html_end_box(false); ?> <table align='center' width='100%'> <tr> <td nowrap>Add Host: <?php form_dropdown("perm_hosts",db_fetch_assoc("SELECT id,".sql_function_concat("description","' ('","hostname","')'")." AS name FROM host ORDER BY description,hostname"),"name","id","","","");?> </td> <td align="right"> <input type="image" src="images/button_add.gif" alt="Add" name="add_host" align="absmiddle"> </td> </tr> </table> <br> <?php /* box: graph template permissions */ html_start_box("<strong>Graph Permissions (By Graph Template)</strong>", "100%", $colors["header"], "3", "center", ""); $graph_templates = db_fetch_assoc("SELECT graph_templates.id, graph_templates.name from graph_templates LEFT JOIN user_auth_perms ON (graph_templates.id = user_auth_perms.item_id AND user_auth_perms.type = 4) WHERE user_auth_perms.user_id = " . get_request_var("id", 0) . " ORDER BY graph_templates.name"); ?> <tr bgcolor="#<?php print $colors["form_alternate1"];?>"> <td width="50%"> <font class="textEditTitle">Default Policy</font><br> The default allow/deny graph policy for this user. </td> <td align="right"> <?php form_dropdown("policy_graph_templates",$graph_policy_array,"","",$policy["policy_graph_templates"],"",""); ?> </td> </tr> <tr> <td colspan="2"> <table width="100%" cellpadding="1"> <?php $i = 0; if (sizeof($graph_templates) > 0) { foreach ($graph_templates as $item) { $i++; print " <tr> <td><span style='font-weight: bold; color: " . (($policy["policy_graph_templates"] == "1") ? "red" : "blue") . ";'>$i)</span> " . $item["name"] . "</td> <td align='right'><a href='user_admin.php?action=perm_remove&type=graph_template&id=" . $item["id"] . "&user_id=" . $_GET["id"] . "'><img src='images/delete_icon.gif' width='10' height='10' border='0' alt='Delete'></a> </td> </tr>\n"; } }else{ print "<tr><td><em>No Graph Templates</em></td></tr>"; } ?> </table> </td> </tr> <?php html_end_box(false); ?> <table align='center' width='100%'> <tr> <td nowrap>Add Graph Template: <?php form_dropdown("perm_graph_templates",db_fetch_assoc("SELECT id,name FROM graph_templates ORDER BY name"),"name","id","","","");?> </td> <td align="right"> <input type="image" src="images/button_add.gif" alt="Add" name="add_graph_template" align="absmiddle"> </td> </tr> </table> <br> <?php /* box: tree permissions */ html_start_box("<strong>Tree Permissions</strong>", "100%", $colors["header"], "3", "center", ""); $trees = db_fetch_assoc("SELECT graph_tree.id, graph_tree.name from graph_tree LEFT JOIN user_auth_perms ON (graph_tree.id = user_auth_perms.item_id AND user_auth_perms.type = 2) WHERE user_auth_perms.user_id = " . get_request_var("id", 0) . " ORDER BY graph_tree.name"); ?> <tr bgcolor="#<?php print $colors["form_alternate1"];?>"> <td width="50%"> <font class="textEditTitle">Default Policy</font><br> The default allow/deny graph policy for this user. </td> <td align="right"> <?php form_dropdown("policy_trees",$graph_policy_array,"","",$policy["policy_trees"],"",""); ?> </td> </tr> <tr> <td colspan="2"> <table width="100%" cellpadding="1"> <?php $i = 0; if (sizeof($trees) > 0) { foreach ($trees as $item) { $i++; print " <tr> <td><span style='font-weight: bold; color: " . (($policy["policy_trees"] == "1") ? "red" : "blue") . ";'>$i)</span> " . $item["name"] . "</td> <td align='right'><a href='user_admin.php?action=perm_remove&type=tree&id=" . $item["id"] . "&user_id=" . $_GET["id"] . "'><img src='images/delete_icon.gif' width='10' height='10' border='0' alt='Delete'></a> </td> </tr>\n"; } }else{ print "<tr><td><em>No Trees</em></td></tr>"; } ?> </table> </td> </tr> <?php html_end_box(false); ?> <table align='center' width='100%'> <tr> <td nowrap>Add Tree: <?php form_dropdown("perm_trees",db_fetch_assoc("SELECT id,name FROM graph_tree ORDER BY name"),"name","id","","","");?> </td> <td align="right"> <input type="image" src="images/button_add.gif" alt="Add" name="add_tree" align="absmiddle"> </td> </tr> </table> <br> <?php form_hidden_box("save_component_graph_perms","1",""); }
function grow_edit_graph_tree($tree_id, $user_id, $options) { global $config, $colors; include_once($config["library_path"] . "/tree.php"); $tree_sorting_type = db_fetch_cell("select sort_type from graph_tree where id='$tree_id'"); $tree = db_fetch_assoc("select graph_tree_items.id, graph_tree_items.title, graph_tree_items.graph_tree_id, graph_tree_items.local_graph_id, graph_tree_items.host_id, graph_tree_items.order_key, graph_tree_items.sort_children_type, graph_templates_graph.title_cache as graph_title, ".sql_function_concat("description","' ('","hostname","')'")." as hostname from graph_tree_items left join graph_templates_graph on (graph_tree_items.local_graph_id=graph_templates_graph.local_graph_id and graph_tree_items.local_graph_id>0) left join host on (host.id=graph_tree_items.host_id) where graph_tree_items.graph_tree_id=$tree_id order by graph_tree_id, graph_tree_items.order_key"); print "<!-- <P>Building Heirarchy w/ " . sizeof($tree) . " leaves</P> -->\n"; ## Here we go. Starting the main tree drawing loop. /* change the visibility session variable if applicable */ set_tree_visibility_status(); $i = 0; if (sizeof($tree) > 0) { foreach ($tree as $leaf) { $tier = tree_tier($leaf["order_key"]); $transparent_indent = "<img width='" . (($tier-1) * 20) . "' height='1' align='middle' alt=''> "; $sort_cache[$tier] = $leaf["sort_children_type"]; if ($i % 2 == 0) { $row_color = $colors["form_alternate1"]; }else{ $row_color = $colors["form_alternate2"]; } $i++; $visible = get_visibility($leaf); if ($leaf["local_graph_id"] > 0) { if ($visible) { print "<td bgcolor='#$row_color' bgcolor='#" . $colors["panel"] . "'>$transparent_indent<a href='tree.php?action=item_edit&tree_id=" . $_GET["id"] . "&id=" . $leaf["id"] . "'>" . $leaf["graph_title"] . "</a></td>\n"; print "<td bgcolor='#$row_color' bgcolor='#" . $colors["panel"] . "'>Graph</td>"; } }elseif ($leaf["title"] != "") { $icon = get_icon($leaf["graph_tree_id"], $leaf["order_key"]); if ($visible) { print "<td bgcolor='#$row_color' bgcolor='#" . $colors["panel"] . "'>$transparent_indent<a href='tree.php?action=edit&id=" . $_GET["id"] . "&leaf_id=" . $leaf["id"] . "&subaction=change'><img src='" . $icon . "' border='0'></a><a href='tree.php?action=item_edit&tree_id=" . $_GET["id"] . "&id=" . $leaf["id"] . "'> <strong>" . $leaf["title"] . "</strong></a> (<a href='tree.php?action=item_edit&tree_id=" . $_GET["id"] . "&parent_id=" . $leaf["id"] . "'>Add</a>)</td>\n"; print "<td bgcolor='#$row_color' bgcolor='#" . $colors["panel"] . "'>Heading</td>"; } }elseif ($leaf["host_id"] > 0) { if ($visible) { print "<td bgcolor='#$row_color' bgcolor='#" . $colors["panel"] . "'>$transparent_indent<a href='tree.php?action=item_edit&tree_id=" . $_GET["id"] . "&id=" . $leaf["id"] . "'><strong>Host:</strong> " . $leaf["hostname"] . "</a> <a href='host.php?action=edit&id=" . $leaf["host_id"] . "'>(Edit host)</a></td>\n"; print "<td bgcolor='#$row_color' bgcolor='#" . $colors["panel"] . "'>Host</td>"; } } if ($visible) { if ( ((isset($sort_cache{$tier-1})) && ($sort_cache{$tier-1} != TREE_ORDERING_NONE)) || ($tree_sorting_type != TREE_ORDERING_NONE) ) { print "<td bgcolor='#$row_color' width='80'></td>\n"; }else{ print "<td bgcolor='#$row_color' width='80' align='center'>\n <a href='tree.php?action=item_movedown&id=" . $leaf["id"] . "&tree_id=" . $_GET["id"] . "'><img src='images/move_down.gif' border='0' alt='Move Down'></a>\n <a href='tree.php?action=item_moveup&id=" . $leaf["id"] . "&tree_id=" . $_GET["id"] . "'><img src='images/move_up.gif' border='0' alt='Move Up'></a>\n </td>\n"; } print "<td bgcolor='#$row_color' align='right'>\n <a href='tree.php?action=item_remove&id=" . $leaf["id"] . "&tree_id=$tree_id'><img src='images/delete_icon.gif' width='10' height='10' border='0' alt='Delete'></a>\n </td></tr>\n"; } } }else{ print "<tr><td><em>No Graph Tree Items</em></td></tr>"; } }