X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Faction_show_graph.c;h=8cde5c2f9e11fdf750e42217f08df84afa7c7aab;hb=b7203b849d84ce9ca2b063dd768e7d0033472ace;hp=2f124de41974ec2b0ed926355fa29ea57ad060e3;hpb=022298601cad5a59aba37fa205f6f5ae6a364956;p=collection4.git diff --git a/src/action_show_graph.c b/src/action_show_graph.c index 2f124de..8cde5c2 100644 --- a/src/action_show_graph.c +++ b/src/action_show_graph.c @@ -8,7 +8,9 @@ #include "action_show_graph.h" #include "common.h" +#include "graph.h" #include "graph_ident.h" +#include "graph_instance.h" #include "graph_list.h" #include "utils_cgi.h" @@ -28,7 +30,8 @@ struct show_graph_data_s }; typedef struct show_graph_data_s show_graph_data_t; -static void show_breadcrump_field (const char *str) /* {{{ */ +static void show_breadcrump_field (const char *str, /* {{{ */ + const char *field_name) { if ((str == NULL) || (str[0] == 0)) printf ("none"); @@ -39,8 +42,14 @@ static void show_breadcrump_field (const char *str) /* {{{ */ else { char *str_html = html_escape (str); - printf ("%s", - script_name (), str_html, str_html); + + if (field_name != NULL) + printf ("%s", + script_name (), field_name, str_html, str_html); + else + printf ("%s", + script_name (), str_html, str_html); + free (str_html); } } /* }}} void show_breadcrump_field */ @@ -62,20 +71,49 @@ static int show_breadcrump (show_graph_data_t *data) /* {{{ */ } printf ("
%s: "", prefix); - show_breadcrump_field (ident_get_host (ident)); + show_breadcrump_field (ident_get_host (ident), "host"); printf (" / "); - show_breadcrump_field (ident_get_plugin (ident)); + show_breadcrump_field (ident_get_plugin (ident), "plugin"); printf (" – "); - show_breadcrump_field (ident_get_plugin_instance (ident)); + show_breadcrump_field (ident_get_plugin_instance (ident), "plugin_instance"); printf (" / "); - show_breadcrump_field (ident_get_type (ident)); + show_breadcrump_field (ident_get_type (ident), "type"); printf (" – "); - show_breadcrump_field (ident_get_type_instance (ident)); + show_breadcrump_field (ident_get_type_instance (ident), "type_instance"); printf (""
\n"); return (0); } /* }}} int show_breadcrump */ +static int show_time_selector (__attribute__((unused)) void *user_data) /* {{{ */ +{ + param_list_t *pl; + + pl = param_create (/* query string = */ NULL); + param_set (pl, "begin", NULL); + param_set (pl, "end", NULL); + param_set (pl, "button", NULL); + + printf ("
\n", script_name ()); + + param_print_hidden (pl); + + printf (" \n" + " \n"); + + printf ("
\n"); + + param_destroy (pl); + + return (0); +} /* }}} int show_time_selector */ + static int show_instance_list_cb (graph_instance_t *inst, /* {{{ */ void *user_data) { @@ -131,35 +169,50 @@ static int show_instance_list (void *user_data) /* {{{ */ return (0); } /* }}} int show_instance_list */ -static int show_instance (void *user_data) /* {{{ */ +static int show_instance_cb (graph_config_t *cfg, /* {{{ */ + graph_instance_t *inst, + __attribute__((unused)) void *user_data) { - show_graph_data_t *data = user_data; char title[128]; char descr[128]; char params[1024]; - show_breadcrump (data); - memset (title, 0, sizeof (title)); - graph_get_title (data->cfg, title, sizeof (title)); + graph_get_title (cfg, title, sizeof (title)); html_escape_buffer (title, sizeof (title)); memset (descr, 0, sizeof (descr)); - inst_describe (data->cfg, data->inst, descr, sizeof (descr)); + inst_describe (cfg, inst, descr, sizeof (descr)); html_escape_buffer (descr, sizeof (descr)); memset (params, 0, sizeof (params)); - inst_get_params (data->cfg, data->inst, params, sizeof (params)); + inst_get_params (cfg, inst, params, sizeof (params)); html_escape_buffer (params, sizeof (params)); + printf ("

Instance "%s"

\n", descr); printf ("
\n", script_name (), params, title, descr); return (0); +} /* }}} int show_instance_cb */ + +static int show_instance (void *user_data) /* {{{ */ +{ + show_graph_data_t *data = user_data; + int status; + + fprintf (stderr, "show_instance: Calling inst_get_all_selected()\n"); + status = inst_get_all_selected (data->cfg, + /* callback = */ show_instance_cb, /* user data = */ NULL); + if (status != 0) + fprintf (stderr, "show_instance: inst_get_all_selected failed " + "with status %i\n", status); + + return (0); } /* }}} int show_instance */ -static int show_graph (void *user_data) +static int show_graph (void *user_data) /* {{{ */ { show_graph_data_t *data = user_data; @@ -172,41 +225,24 @@ int action_show_graph (void) /* {{{ */ page_callbacks_t pg_callbacks = PAGE_CALLBACKS_INIT; show_graph_data_t pg_data; + char tmp[128]; char title[128]; pg_data.cfg = gl_graph_get_selected (); if (pg_data.cfg == NULL) OUTPUT_ERROR ("gl_graph_get_selected () failed.\n"); - memset (title, 0, sizeof (title)); - graph_get_title (pg_data.cfg, title, sizeof (title)); - - pg_data.inst = inst_get_selected (pg_data.cfg); - if (pg_data.inst != NULL) - { - char descr[128]; - char html_title[128]; - - memset (descr, 0, sizeof (descr)); - inst_describe (pg_data.cfg, pg_data.inst, descr, sizeof (descr)); - - snprintf (html_title, sizeof (html_title), "Graph \"%s / %s\"", - title, descr); - html_title[sizeof (html_title) - 1] = 0; + memset (tmp, 0, sizeof (tmp)); + graph_get_title (pg_data.cfg, tmp, sizeof (tmp)); + snprintf (title, sizeof (title), "Graph \"%s\"", tmp); + title[sizeof (title) - 1] = 0; - pg_callbacks.top_right = html_print_search_box; - pg_callbacks.middle_center = show_instance; - pg_callbacks.middle_left = show_instance_list; + pg_callbacks.top_right = html_print_search_box; + pg_callbacks.middle_center = show_instance; + pg_callbacks.middle_left = show_instance_list; + pg_callbacks.middle_right = show_time_selector; - html_print_page (html_title, &pg_callbacks, &pg_data); - } - else /* if (pg_data.inst == NULL) */ - { - pg_callbacks.top_right = html_print_search_box; - pg_callbacks.middle_center = show_graph; - - html_print_page (title, &pg_callbacks, &pg_data); - } + html_print_page (title, &pg_callbacks, &pg_data); return (0); } /* }}} int action_graph */