-rw-r--r-- | ui-shared.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c index 95dfeb4..4f28512 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -371,2 +371,8 @@ void cgit_patch_link(char *name, char *title, char *class, char *head, +void cgit_stats_link(char *name, char *title, char *class, char *head, + char *path) +{ + reporevlink("stats", name, title, class, head, NULL, path); +} + void cgit_object_link(struct object *obj) @@ -559,3 +565,3 @@ int print_archive_ref(const char *refname, const unsigned char *sha1, -void add_hidden_formfields(int incl_head, int incl_search, char *page) +void cgit_add_hidden_formfields(int incl_head, int incl_search, char *page) { @@ -589,5 +595,7 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page) +const char *fallback_cmd = "repolist"; + char *hc(struct cgit_cmd *cmd, const char *page) { - return (strcmp(cmd->name, page) ? NULL : "active"); + return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active"); } @@ -598,2 +606,5 @@ void cgit_print_pageheader(struct cgit_context *ctx) + if (!cmd && ctx->repo) + fallback_cmd = "summary"; + html("<table id='header'>\n"); @@ -616,3 +627,3 @@ void cgit_print_pageheader(struct cgit_context *ctx) html("<form method='get' action=''>\n"); - add_hidden_formfields(0, 1, ctx->qry.page); + cgit_add_hidden_formfields(0, 1, ctx->qry.page); html("<select name='h' onchange='this.form.submit();'>\n"); @@ -653,2 +664,5 @@ void cgit_print_pageheader(struct cgit_context *ctx) ctx->qry.sha1, ctx->qry.sha2, NULL); + if (ctx->repo->max_stats) + cgit_stats_link("stats", NULL, hc(cmd, "stats"), + ctx->qry.head, NULL); if (ctx->repo->readme) @@ -663,3 +677,3 @@ void cgit_print_pageheader(struct cgit_context *ctx) html("'>\n"); - add_hidden_formfields(1, 0, "log"); + cgit_add_hidden_formfields(1, 0, "log"); html("<select name='qt'>\n"); |