+static void show_breadcrump_field (const char *str, /* {{{ */
+ const char *field_name)
+{
+ if ((str == NULL) || (str[0] == 0))
+ printf ("<em>none</em>");
+ else if (IS_ANY (str))
+ printf ("<em>any</em>");
+ else if (IS_ALL (str))
+ printf ("<em>all</em>");
+ else
+ {
+ char *str_html = html_escape (str);
+
+ 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 */
+
+static int show_breadcrump (show_graph_data_t *data) /* {{{ */
+{
+ graph_ident_t *ident;
+ char *prefix;
+
+ if (data->inst != NULL)
+ {
+ prefix = "Instance";
+ ident = inst_get_selector (data->inst);
+ }
+ else
+ {
+ prefix = "Graph";
+ ident = graph_get_selector (data->cfg);
+ }
+
+ printf ("<div class=\"breadcrump\">%s: "", prefix);
+ show_breadcrump_field (ident_get_host (ident), "host");
+ printf (" / ");
+ show_breadcrump_field (ident_get_plugin (ident), "plugin");
+ printf (" – ");
+ show_breadcrump_field (ident_get_plugin_instance (ident), "plugin_instance");
+ printf (" / ");
+ show_breadcrump_field (ident_get_type (ident), "type");
+ printf (" – ");
+ show_breadcrump_field (ident_get_type_instance (ident), "type_instance");
+ printf (""</div>\n");
+
+ return (0);
+} /* }}} int show_breadcrump */
+