#include "graph.h"
#include "graph_ident.h"
#include "graph_list.h"
-#include "utils_params.h"
+#include "utils_cgi.h"
#include <fcgiapp.h>
#include <fcgi_stdio.h>
struct callback_data_s
{
graph_config_t *cfg;
+ int limit;
};
typedef struct callback_data_s callback_data_t;
memset (desc, 0, sizeof (desc));
graph_get_title (cfg, desc, sizeof (desc));
+ html_escape_buffer (desc, sizeof (desc));
- printf (" <li>%s\n <ul>\n", desc);
+ printf (" <li class=\"graph\">%s\n"
+ " <ul class=\"instance_list\">\n", desc);
data->cfg = cfg;
}
memset (params, 0, sizeof (params));
inst_get_params (cfg, inst, params, sizeof (params));
+ html_escape_buffer (params, sizeof (params));
memset (desc, 0, sizeof (desc));
inst_describe (cfg, inst, desc, sizeof (desc));
+ html_escape_buffer (desc, sizeof (desc));
- printf (" <li><a href=\"%s?action=graph;%s\">%s</a></li>\n",
+ printf (" <li class=\"instance\"><a href=\"%s?action=graph;%s\">%s</a></li>\n",
script_name (), params, desc);
+ if (data->limit > 0)
+ data->limit--;
+
+ /* Abort scan if limit is reached. */
+ if (data->limit == 0)
+ return (1);
+
return (0);
} /* }}} int print_graph_inst_html */
static int list_graphs_html (const char *term) /* {{{ */
{
- callback_data_t data = { NULL };
+ callback_data_t data = { NULL, /* limit = */ 20 };
+ char *term_html;
+
+ term_html = NULL;
+ if (term != NULL)
+ term_html = html_escape (term);
+
printf ("Content-Type: text/html\n\n");
- printf ("<ul>\n");
+ printf ("<html>\n <head>\n");
+ if (term != NULL)
+ printf (" <title>c4: Graphs matching "%s"</title>\n", term);
+ else
+ printf (" <title>c4: List of all graphs</title>\n");
+ printf (" <link rel=\"stylesheet\" type=\"text/css\" href=\"../share/style.css\" />\n");
+ printf (" </head>\n <body>\n");
+
+ printf ("<form action=\"%s\" method=\"get\">\n"
+ " <input type=\"hidden\" name=\"action\" value=\"list_graphs\" />\n"
+ " <input type=\"text\" name=\"search\" value=\"%s\" />\n"
+ " <input type=\"submit\" name=\"button\" value=\"Search\" />\n"
+ "</form>\n",
+ script_name (), (term_html != NULL) ? term_html : "");
+
+ free (term_html);
+
+ printf (" <ul class=\"graph_list\">\n");
if (term == NULL)
gl_instance_get_all (print_graph_inst_html, /* user_data = */ &data);
else
gl_search (term, print_graph_inst_html, /* user_data = */ &data);
if (data.cfg != NULL)
- printf (" </ul></li>\n");
+ printf (" </ul></li>\n");
+
+ printf (" </ul>\n");
- printf ("</ul>\n");
+ printf (" </body>\n</html>\n");
return (0);
} /* }}} int list_graphs_html */