* GNU General Public License version 2. (see COPYING.GPL)
*/
-#include "config.h" /* for PACKAGE_STRING */
+#include "config.h"
#include "str.h"
#include "html.h"
-#include "http.h" /* for base_url */
+#include "opt.h"
-void html_open(struct str *buf, const char *title, const char *interface,
- void (*header_callback)(struct str *buf))
+#include <assert.h>
+
+static const char *relpaths[] = {
+ ".",
+ "..",
+ "../.."
+};
+
+void html_open(struct str *buf, const char *title,
+ const unsigned int path_depth, const int want_graph_js)
{
- str_append(buf, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n"
- " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
- "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
- "<head>\n");
- str_appendf(buf, "<title>%s (darkstat3 : %s)</title>\n"
- "<meta name=\"generator\" content=\"%s\" />\n", title, interface,
- PACKAGE_STRING);
- str_append(buf, "<meta name=\"robots\" content=\"noindex, noarchive\" />\n");
- str_appendf(buf, "<link rel=\"stylesheet\" href=\"%s%s\" type=\"text/css\"/>\n",
- base_url, "style.css");
- if (header_callback != NULL)
- header_callback(buf);
-
- str_append(buf, "</head>\n"
+ const char *root;
+ assert(path_depth < (sizeof(relpaths)/sizeof(*relpaths)));
+ root = relpaths[path_depth];
+
+ str_appendf(buf,
+ "<!DOCTYPE html>\n"
+ "<html>\n"
+ "<head>\n"
+ "<title>%s (darkstat %s)</title>\n"
+ "<meta name=\"generator\" content=\"" PACKAGE_STRING "\">\n"
+ "<meta name=\"robots\" content=\"noindex, noarchive\">\n"
+ "<link rel=\"stylesheet\" href=\"%s/style.css\" type=\"text/css\">\n",
+ title, title_interfaces, root);
+
+ if (want_graph_js)
+ str_appendf(buf,
+ "<script src=\"%s/graph.js\" type=\"text/javascript\"></script>\n"
+ , root);
+
+ str_appendf(buf,
+ "</head>\n"
"<body>\n"
"<div class=\"menu\">\n"
- "<ul class=\"menu\">\n");
- str_appendf(buf, "<li class=\"label\">%s</li>\n"
- "<li><a href=\"%s\">graphs</a></li>\n"
- "<li><a href=\"%shosts/\">hosts</a></li>\n"
- "<li><a href=\"http://dmr.ath.cx/net/darkstat/\">homepage</a></li>\n",
- PACKAGE_STRING, base_url, base_url);
- str_append(buf, "</ul>\n"
+ "<ul class=\"menu\">" /* no whitespace (newlines) in list */
+ "<li class=\"label\">" PACKAGE_STRING "</li>"
+ "<li><a href=\"%s/\">graphs</a></li>"
+ "<li><a href=\"%s/hosts/\">hosts</a></li>"
+ "<li><a href=\"" PACKAGE_URL "\">homepage</a></li>"
+ "</ul>\n"
"</div>\n"
- "<div class=\"content\">\n");
- str_appendf(buf, "<h2 class=\"pageheader\">%s</h2>\n", title);
+ "<div class=\"content\">\n"
+ "<h2 class=\"pageheader\">%s</h2>\n"
+ , root, root, title);
}
void html_close(struct str *buf)
str_append(buf,
"</div>\n"
"</body>\n"
- "</html>\n"
- );
+ "</html>\n");
}
-
-/* vim:set ts=4 sw=4 tw=78 expandtab: */
+/* vim:set ts=4 sw=4 tw=80 et: */