aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Keeping <john@keeping.me.uk>2015-08-14 12:47:17 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2015-08-14 15:46:51 +0200
commit892c5441f4af2f53a3b1906c4d7e458829e0cf0a (patch)
tree5db7624970e2663ccb61cb14c4bbc6cb03024272
parent6d39dd1914dd0a904c606b079e8ef0f1643f2266 (diff)
downloadpkg-cgit-892c5441f4af2f53a3b1906c4d7e458829e0cf0a.zip
pkg-cgit-892c5441f4af2f53a3b1906c4d7e458829e0cf0a.tar.gz
pkg-cgit-892c5441f4af2f53a3b1906c4d7e458829e0cf0a.tar.bz2
stats: move layout into page function
This also allows us to return proper HTTP error codes for invalid requests. Signed-off-by: John Keeping <john@keeping.me.uk>
-rw-r--r--cmd.c2
-rw-r--r--ui-stats.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/cmd.c b/cmd.c
index ce66af9..4f8e71d 100644
--- a/cmd.c
+++ b/cmd.c
@@ -169,7 +169,7 @@ struct cgit_cmd *cgit_get_cmd(void)
def_cmd(refs, 1, 0, 0, 0),
def_cmd(repolist, 0, 0, 0, 0),
def_cmd(snapshot, 1, 0, 0, 0),
- def_cmd(stats, 1, 1, 1, 0),
+ def_cmd(stats, 1, 0, 1, 0),
def_cmd(summary, 1, 1, 0, 0),
def_cmd(tag, 1, 1, 0, 0),
def_cmd(tree, 1, 1, 1, 0),
diff --git a/ui-stats.c b/ui-stats.c
index 9cd8247..74ce0f7 100644
--- a/ui-stats.c
+++ b/ui-stats.c
@@ -372,11 +372,13 @@ void cgit_show_stats(void)
i = cgit_find_stats_period(code, &period);
if (!i) {
- cgit_print_error("Unknown statistics type: %c", code[0]);
+ cgit_print_error_page(404, "Not found",
+ "Unknown statistics type: %c", code[0]);
return;
}
if (i > ctx.repo->max_stats) {
- cgit_print_error("Statistics type disabled: %s", period->name);
+ cgit_print_error_page(400, "Bad request",
+ "Statistics type disabled: %s", period->name);
return;
}
authors = collect_stats(period);
@@ -387,6 +389,7 @@ void cgit_show_stats(void)
if (!top)
top = 10;
+ cgit_print_layout_start();
html("<div class='cgit-panel'>");
html("<b>stat options</b>");
html("<form method='get' action=''>");
@@ -421,5 +424,6 @@ void cgit_show_stats(void)
}
html("</h2>");
print_authors(&authors, top, period);
+ cgit_print_layout_end();
}