X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/c57aceb1d2f1a7d9fd3218fc8c6e9ea01b2952d2..0b3c746ba80738dbe0885a21406409390936537c:/ui-shared.c diff --git a/ui-shared.c b/ui-shared.c index 9319881..de77bbf 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -281,7 +281,8 @@ void cgit_plain_link(char *name, char *title, char *class, char *head, } void cgit_log_link(char *name, char *title, char *class, char *head, - char *rev, char *path, int ofs, char *grep, char *pattern) + char *rev, char *path, int ofs, char *grep, char *pattern, + int showmsg) { char *delim; @@ -305,6 +306,11 @@ void cgit_log_link(char *name, char *title, char *class, char *head, html(delim); html("ofs="); htmlf("%d", ofs); + delim = "&"; + } + if (showmsg) { + html(delim); + html("showmsg=1"); } html("'>"); html_txt(name); @@ -363,6 +369,12 @@ void cgit_patch_link(char *name, char *title, char *class, char *head, reporevlink("patch", name, title, class, head, rev, NULL); } +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) { char *page, *shortrev, *fullrev, *name; @@ -488,6 +500,8 @@ void cgit_print_docstart(struct cgit_context *ctx) } html("\n"); html("\n"); + if (ctx->cfg.header) + html_include(ctx->cfg.header); } void cgit_print_docend() @@ -551,7 +565,7 @@ int print_archive_ref(const char *refname, const unsigned char *sha1, return 0; } -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) { char *url; @@ -570,6 +584,8 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page) html_hidden("id", ctx.qry.sha1); if (ctx.qry.sha2) html_hidden("id2", ctx.qry.sha2); + if (ctx.qry.showmsg) + html_hidden("showmsg", "1"); if (incl_search) { if (ctx.qry.grep) @@ -579,15 +595,20 @@ 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"); } void cgit_print_pageheader(struct cgit_context *ctx) { struct cgit_cmd *cmd = cgit_get_cmd(ctx); + if (!cmd && ctx->repo) + fallback_cmd = "summary"; + html("\n"); html("\n"); html("