Code

"show graph" action: Create exact field searches in the breadcrump.
authorFlorian Forster <ff@octo.it>
Wed, 23 Jun 2010 07:20:57 +0000 (09:20 +0200)
committerFlorian Forster <octo@verplant.org>
Wed, 23 Jun 2010 07:20:57 +0000 (09:20 +0200)
src/action_show_graph.c

index 2f124de41974ec2b0ed926355fa29ea57ad060e3..7b3c93af9291fcd6d45b7767ae8d31462e83f912 100644 (file)
@@ -28,7 +28,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 ("<em>none</em>");
@@ -39,8 +40,14 @@ static void show_breadcrump_field (const char *str) /* {{{ */
   else
   {
     char *str_html = html_escape (str);
-    printf ("<a href=\"%s?action=list_graphs;q=%s\">%s</a>",
-        script_name (), str_html, str_html);
+
+    if (field_name != NULL)
+      printf ("<a href=\"%s?action=list_graphs;q=%s:%s\">%s</a>",
+          script_name (), field_name, str_html, str_html);
+    else
+      printf ("<a href=\"%s?action=list_graphs;q=%s\">%s</a>",
+          script_name (), str_html, str_html);
+
     free (str_html);
   }
 } /* }}} void show_breadcrump_field */
@@ -62,15 +69,15 @@ static int show_breadcrump (show_graph_data_t *data) /* {{{ */
   }
 
   printf ("<div class=\"breadcrump\">%s: &quot;", prefix);
-  show_breadcrump_field (ident_get_host (ident));
+  show_breadcrump_field (ident_get_host (ident), "host");
   printf ("&nbsp;/ ");
-  show_breadcrump_field (ident_get_plugin (ident));
+  show_breadcrump_field (ident_get_plugin (ident), "plugin");
   printf ("&nbsp;&ndash; ");
-  show_breadcrump_field (ident_get_plugin_instance (ident));
+  show_breadcrump_field (ident_get_plugin_instance (ident), NULL);
   printf ("&nbsp;/ ");
-  show_breadcrump_field (ident_get_type (ident));
+  show_breadcrump_field (ident_get_type (ident), "type");
   printf ("&nbsp;&ndash; ");
-  show_breadcrump_field (ident_get_type_instance (ident));
+  show_breadcrump_field (ident_get_type_instance (ident), NULL);
   printf ("&quot;</div>\n");
 
   return (0);