From e05de8dc7bc5a2f0fa7da365e2f3c60b2f42ef4a Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Wed, 23 Jun 2010 18:13:48 +0200 Subject: [PATCH] "show graph" action: Implement a time selector. --- src/action_show_graph.c | 55 +++++++++++++++++++++++++++++++++++++---- src/utils_cgi.c | 2 +- src/utils_cgi.h | 2 +- 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/src/action_show_graph.c b/src/action_show_graph.c index 9b2229a..0e0e89a 100644 --- a/src/action_show_graph.c +++ b/src/action_show_graph.c @@ -85,6 +85,35 @@ static int show_breadcrump (show_graph_data_t *data) /* {{{ */ 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) { @@ -145,7 +174,9 @@ static int show_instance (void *user_data) /* {{{ */ show_graph_data_t *data = user_data; char title[128]; char descr[128]; - char params[1024]; + param_list_t *pl; + char *params; + char params_html[1024]; show_breadcrump (data); @@ -157,14 +188,27 @@ static int show_instance (void *user_data) /* {{{ */ inst_describe (data->cfg, data->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)); - html_escape_buffer (params, sizeof (params)); + pl = param_create (/* query string = */ NULL); + param_set (pl, "action", "graph"); + param_set (pl, "button", NULL); + + params = param_as_string (pl); + if (params == NULL) + { + printf ("
param_as_string failed.
\n"); + param_destroy (pl); + return (-1); + } + + memset (params_html, 0, sizeof (params_html)); + html_escape_copy (params_html, params, sizeof (params_html)); - printf ("
\n", script_name (), params, title, descr); + param_destroy (pl); + free (params); return (0); } /* }}} int show_instance */ @@ -206,6 +250,7 @@ int action_show_graph (void) /* {{{ */ 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); } diff --git a/src/utils_cgi.c b/src/utils_cgi.c index b96e15a..92bda3e 100644 --- a/src/utils_cgi.c +++ b/src/utils_cgi.c @@ -344,7 +344,7 @@ int param_set (param_list_t *pl, const char *name, /* {{{ */ return (0); } /* }}} int param_set */ -const char *param_as_string (param_list_t *pl) /* {{{ */ +char *param_as_string (param_list_t *pl) /* {{{ */ { char buffer[4096]; char key[2048]; diff --git a/src/utils_cgi.h b/src/utils_cgi.h index 973d3f3..2cd8bc9 100644 --- a/src/utils_cgi.h +++ b/src/utils_cgi.h @@ -40,7 +40,7 @@ void param_destroy (param_list_t *pl); const char *param_get (param_list_t *pl, const char *name); int param_set (param_list_t *pl, const char *name, const char *value); -const char *param_as_string (param_list_t *pl); +char *param_as_string (param_list_t *pl); int param_print_hidden (param_list_t *pl); char *uri_escape (const char *string); -- 2.30.2