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>
This commit is contained in:
John Keeping 2015-08-14 12:47:17 +01:00 کامیت شده توسط Jason A. Donenfeld
والد 6d39dd1914
کامیت 892c5441f4
2فایلهای تغییر یافته به همراه7 افزوده شده و 3 حذف شده

2
cmd.c
مشاهده پرونده

@ -169,7 +169,7 @@ struct cgit_cmd *cgit_get_cmd(void)
def_cmd(refs, 1, 0, 0, 0), def_cmd(refs, 1, 0, 0, 0),
def_cmd(repolist, 0, 0, 0, 0), def_cmd(repolist, 0, 0, 0, 0),
def_cmd(snapshot, 1, 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(summary, 1, 1, 0, 0),
def_cmd(tag, 1, 1, 0, 0), def_cmd(tag, 1, 1, 0, 0),
def_cmd(tree, 1, 1, 1, 0), def_cmd(tree, 1, 1, 1, 0),

مشاهده پرونده

@ -372,11 +372,13 @@ void cgit_show_stats(void)
i = cgit_find_stats_period(code, &period); i = cgit_find_stats_period(code, &period);
if (!i) { 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; return;
} }
if (i > ctx.repo->max_stats) { 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; return;
} }
authors = collect_stats(period); authors = collect_stats(period);
@ -387,6 +389,7 @@ void cgit_show_stats(void)
if (!top) if (!top)
top = 10; top = 10;
cgit_print_layout_start();
html("<div class='cgit-panel'>"); html("<div class='cgit-panel'>");
html("<b>stat options</b>"); html("<b>stat options</b>");
html("<form method='get' action=''>"); html("<form method='get' action=''>");
@ -421,5 +424,6 @@ void cgit_show_stats(void)
} }
html("</h2>"); html("</h2>");
print_authors(&authors, top, period); print_authors(&authors, top, period);
cgit_print_layout_end();
} }