src/graph_ident.[ch]: Mark the inst argument to the "ident_get_*" functions as "const".
[collection4.git] / src / action_list_graphs.c
index e32b999..f883970 100644 (file)
@@ -7,6 +7,7 @@
 #include "common.h"
 #include "graph.h"
 #include "graph_ident.h"
+#include "graph_instance.h"
 #include "graph_list.h"
 #include "utils_cgi.h"
 
@@ -111,7 +112,26 @@ static int print_search_result (void *user_data) /* {{{ */
   else
   {
     char *term_lc = strtolower_copy (pg_data->search_term);
-    gl_search (term_lc, print_graph_inst_html, /* user_data = */ &cb_data);
+
+    if (strncmp ("host:", term_lc, strlen ("host:")) == 0)
+      gl_search_field (GIF_HOST, term_lc + strlen ("host:"),
+          print_graph_inst_html, /* user_data = */ &cb_data);
+    else if (strncmp ("plugin:", term_lc, strlen ("plugin:")) == 0)
+      gl_search_field (GIF_PLUGIN, term_lc + strlen ("plugin:"),
+          print_graph_inst_html, /* user_data = */ &cb_data);
+    else if (strncmp ("plugin_instance:", term_lc, strlen ("plugin_instance:")) == 0)
+      gl_search_field (GIF_PLUGIN_INSTANCE, term_lc + strlen ("plugin_instance:"),
+          print_graph_inst_html, /* user_data = */ &cb_data);
+    else if (strncmp ("type:", term_lc, strlen ("type:")) == 0)
+      gl_search_field (GIF_TYPE, term_lc + strlen ("type:"),
+          print_graph_inst_html, /* user_data = */ &cb_data);
+    else if (strncmp ("type_instance:", term_lc, strlen ("type_instance:")) == 0)
+      gl_search_field (GIF_TYPE_INSTANCE, term_lc + strlen ("type_instance:"),
+          print_graph_inst_html, /* user_data = */ &cb_data);
+    else
+      gl_search (term_lc,
+          print_graph_inst_html, /* user_data = */ &cb_data);
+
     free (term_lc);
   }
 
@@ -201,7 +221,8 @@ static int print_host_list (__attribute__((unused)) void *user_data) /* {{{ */
     return (0);
   }
 
-  printf ("<ul id=\"host-list\">\n");
+  printf ("<div><h3>List of hosts</h3>\n"
+      "<ul id=\"host-list\">\n");
   for (i = 0; i < hosts_argc; i++)
   {
     char *host = hosts_argv[i];
@@ -213,12 +234,12 @@ static int print_host_list (__attribute__((unused)) void *user_data) /* {{{ */
 
     host_html = html_escape (host);
 
-    printf ("  <li><a href=\"%s?action=list_graphs&search=%s\">%s</a></li>\n",
+    printf ("  <li><a href=\"%s?action=list_graphs&q=host:%s\">%s</a></li>\n",
         script_name (), host_html, host_html);
 
     free (host_html);
   }
-  printf ("</ul>\n");
+  printf ("</ul></div>\n");
 
   array_destroy (data.array);
 
@@ -256,10 +277,8 @@ int action_list_graphs (void) /* {{{ */
 
   gl_update ();
 
-  search = strtolower_copy (param ("search"));
-
+  search = strtolower_copy (param ("q"));
   status = list_graphs_html (search);
-
   free (search);
 
   return (status);